我的图片如下
http://forkiki.com/forkita/image.iklan/question.jpg
是否有工具能够读取图像上的红点,然后按如下方式提供输出
<img src="test.jpg" width="1024" height="768" alt="Pinguins" usemap="#pinguins">
<map name="pinguins">
<area shape="circle" coords="90,58,3" alt="Dot1">
<area shape="circle" coords="124,58,8" alt="Dot2">
</map>
我熟悉php
答案 0 :(得分:2)
您没有提供关于您希望在何处/为何做到这一点的任何背景信息,但这可能会让您开始。我正在使用免费的ImageMagick,它可以从here获得命令行,PHP,Perl,python,.Net绑定。
拍摄图像,您可以识别所有红色像素:
convert question.jpg -fuzz 5% -fill black +opaque red -fill red -opaque red out.jpg
将为您提供此图片:
如果你想要每个点的像素颜色,你可以像这样提取它们:
convert question.jpg -fuzz 5% -fill black +opaque red -fill red -opaque red text: | more
# ImageMagick pixel enumeration: 1024,768,255,srgb
0,0: (0,0,0) #000000 black
1,0: (0,0,0) #000000 black
2,0: (0,0,0) #000000 black
....
....
729,81: (255,0,0) #FF0000 red
730,81: (255,0,0) #FF0000 red
725,82: (255,0,0) #FF0000 red
726,82: (255,0,0) #FF0000 red
因此,如果您只想要红点的坐标,请将more
更改为grep red
,您会看到红色像素位于729,81,依此类推。
如果圆圈太大,并且您希望它们朝向点减少,则可以使用形态运算符erode
,如下所示:
convert question.jpg -fuzz 5% -fill black +opaque red -fill white -opaque white -morphology erode:5 square out.jpg
你会得到这个: