在图像上找点 - 数学方法?

时间:2013-03-20 12:08:24

标签: php math image-processing gd

我需要在图像上找到预定义区域并将其替换为另一个图像(仅通过嵌入后者)。预定义的点将是一个可变大小的矩形区域,其中填充了先前商定颜色的纯色背景。

有关如何实现这一目标的任何建议?

我想我可以通过循环逐行逐像素地找到指定颜色的第一个像素,但我觉得这不是最有效的解决方案。由于该地点应该相当大,我还想过看一下(请参阅下面的附件)。

finding spot

所以我需要帮助来定义这些循环。我相信我必须使用一些数学函数。

例如,如果大图是方形,则对角线环(黄色 EF 线)将使用简化线性函数y=xy=1x+0),但它是不太可能是正方形。所以我将不得不使用扩展的完整线性函数y=kx+b,其中k将与矩形大小有关(我认为k=height/width),而b将是只有0.所以循环看起来像:

$k = 1080/1920;
for ( $x=1920; $x>0; $x-- ) {
    $y = $k*$x;
}

但那是黄色的,我猜是最简单的。现在,我该如何定义其他?请帮忙。感谢

1 个答案:

答案 0 :(得分:3)

获取您要搜索的子图像以及在大图像中搜索它。

您可以使用ImageMagick的子图像搜索:

compare -verbose -dissimilarity-threshold 0.1 -subimage-search subimage.jpg bigimage.jpg

详细了解hereherehere

它会告诉你" TooDissimilar"或者它会告诉你子图像的x,y位置。