在图像上寻找现货 - 数学方法?(Finding spot on an image - mathem

2019-08-17 19:14发布

我需要找到一个图像上的预定区域,并与其他图像替换它(即使只嵌入后者)。 该预定点是填充有先前商定颜色的固体背景的可变大小的矩形区域。

如何任何建议我做到这一点?

我想我可以做一个循环,并通过像素通过图像逐行,像素会找到指定颜色的第一像素,但我觉得这不是最有效的解决方案。 由于现场被认为是相当大的,我也想过整个画面会(请参阅下面的附件)。

所以,我需要在定义这些循环帮助。 我相信我将不得不使用一些数学函数为。

例如,如果大画面呈方形,对角线环路(黄色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;
}

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

Answer 1:

让您的子图像的作品,你要搜索和搜索它在大图像。

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

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

了解更多关于此这里 , 这里和这里 。

它要么告诉你“TooDissimilar”或者它会告诉你的X,子图像的y位置。



文章来源: Finding spot on an image - mathematical way?