我有一张图片如下
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。
发布于 2014-09-18 10:31:58
您没有给出任何上下文,说明您想在哪里/为什么要这样做,但是这可能会让您开始工作。我使用的是ImageMagick,它是免费的,可以在这里中使用命令行、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你会得到这个:

https://stackoverflow.com/questions/25907351
复制相似问题