1

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

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

我想我可以通过循环并逐行逐个像素地遍历图像来找到指定颜色的第一个像素,但我觉得这不是最有效的解决方案。由于这个地方应该比较大,所以我也考虑过图片(请看下面的附件)。

寻找地点

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

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

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

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

4

1 回答 1

3

获取您正在搜索的子图像的片段并在大图像中搜索它。

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

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

在此处此处此处阅读有关此内容的更多信息。

它要么告诉你“TooDissimilar”,要么告诉你子图像的 x,y 位置。

于 2013-03-20T12:12:16.197 回答