如何最好地使用Eign来过滤图像并调整其大小?

时间:2018-12-08 01:48:32

标签: signal-processing eigen

我有一张图片,是uint8_ts的2D数组。我想使用可分离的滤镜调整图像大小。考虑先缩小宽度。由于原始尺寸与目标尺寸无关,我们将为每个目标像素使用不同的系数集。对于特定的进出尺寸,对于所有y,我们可能都有:

out(500, y) = in(673, y) * 12 + in(674, y) * 63 + in(675, y) * 25
out(501, y) =                   in(674, y) * 27 + in(675, y) * 58 + in(676, y) * 15

如何使用Eigen加快速度,例如为我向量化? 这可以表示为矩阵乘以尺寸为in_width * out_width的稀疏矩阵的乘积,其中在每一行中,仅in_width值中的3个为非零。在实际使用情况下,4到8通常将为非零。但是那些非零值将是连续的,并且使用SSE或其他可以使其快速运行的方法会很好。

请注意,源矩阵具有8位标量。缩放宽度和高度后的最终结果也将是8位。中间矩阵(图像)和过滤器具有更高的精度(例如16位)可能会很好。但是,即使它们是8位,在相乘时,我们也需要取乘积的最高有效位,而不是最低有效位。

用Eigen能做到的太远了吗?这种卷积,每个像素都有一个不同的内核(只是因为输出大小不是输入大小的整数倍),似乎很常见。

0 个答案:

没有答案