0

我试图在图像的任何矩形中找到最多的空白(最大白色像素),我将用另一个较小的图像覆盖。矩形的尺寸是 X 像素乘 Y 像素,由覆盖图像的大小(高度、宽度)决定。

目前我唯一的解决方案是尝试将每个像素作为叠加图像的 TLC 并计算下面有多少白色像素。一旦我达到最大值,我就可以定位叠加图像。

例如,给定一个 2x2 的固定子矩阵大小和这个数组: -

        int[,] arr = { {  1,  1,  1,  1,   0 },
                       {  0,  1,  0,  0,   1 },
                       {  1,  0,  1,  1,   1 },
                       {  1,  0,  1,  1,   0 } };

我希望最大结果为 4,坐标为 2,2

不用说,这个问题效率极低:-(

我尝试了 Kadane 的算法,但这似乎只适用于不同的值,甚至会产生一个可变大小的子矩阵。

有任何想法吗?更好的算法?

我将计算 (0,0) TLC 矩形中的空白,然后只需减去视口外的 col 或 row 并在覆盖矩形移动到基础图像上时添加新的行或 col。

4

0 回答 0