我试图在图像的任何矩形中找到最多的空白(最大白色像素),我将用另一个较小的图像覆盖。矩形的尺寸是 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。