概述:
第一张图片是我的原始图像。我想用另一张图片替换显示的白色矩形。
我的方法:
我使用floodfill
创建了一个掩码图像,如下所示:
问题:
现在我想获取第二张图片中矩形的距离或坐标,以便我可以使用这些坐标将新图像覆盖在第一张(原始)图像上。
我有一个小想法,可以使用ImageMagick的切比雪夫形态学算子,但不知道如何操作。
概述:
第一张图片是我的原始图像。我想用另一张图片替换显示的白色矩形。
我的方法:
我使用floodfill
创建了一个掩码图像,如下所示:
问题:
现在我想获取第二张图片中矩形的距离或坐标,以便我可以使用这些坐标将新图像覆盖在第一张(原始)图像上。
我有一个小想法,可以使用ImageMagick的切比雪夫形态学算子,但不知道如何操作。
我认为您可以通过简单的阈值来相当准确地定位形状,就像这样:
convert image.jpg -threshold 90% result.jpg
然后,您可以像这样进行Canny边缘检测:
convert image.jpg -threshold 90% -canny 0x1+10%+30% result.jpg
接下来,我将使用-trim
函数查找修剪框坐标,如下所示:
convert result.jpg -format "%@" info:
320x248+152+40
我已经在下面的红框标出来了。
如果您实际上想要进行修剪,请使用以下内容:
convert result.jpg -trim result.jpg
此外,还有倾斜角度。
convert result.jpg -deskew 40 -format "%[deskew:angle]" info:
-0.111906
convert image.jpg -threshold 90% -canny 0x1+10%+30% \
\( +clone -background none \
-fill red -stroke red -strokewidth 2 \
-hough-lines 5x5+80 -write lines.mvg \
\) -composite hough.png
文件lines.mvg
中包含您正在寻找的4条线。
# Hough line transform: 5x5+80
viewbox 0 0 640 360
line 449.259,0 474.432,360 # 90
line 0,72.5604 640,27.8072 # 143
line 0,293.098 640,248.344 # 187
line 153.538,0 178.712,360 # 153
因为有些懒,我不想求解那些线的交点,所以我想让ImageMagick来做这件事——通过使用形态学技术来查找线交叉点,就像这样:
convert image.jpg -threshold 90% -canny 0x1+10%+30% \
\( +clone -background none -fill red -stroke red -hough-lines 5x5+80 \) \
-composite -fuzz 50% -fill black -opaque white \
-morphology HMT LineJunctions hough.png
convert hough.png txt:- | grep "red"
一起使用。 - wittich
convert image.jpg -threshold 90% result.jpg
进行图像处理。 - Mark Setchellconvert image.jpg -threshold 90% -canny 0x1+10%+30% result.jpg
。 - Mark Setchell