首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何读取图像上的特定点,然后将值自动导出到html?

问如何读取图像上的特定点,然后将值自动导出到html?
EN

Stack Overflow用户
提问于 2014-09-18 08:05:16
回答 1查看 322关注 0票数 0

我有一张图片如下

http://forkiki.com/forkita/image.iklan/question.jpg

是否有一个工具能够读取图像上的红点,然后提供如下输出

代码语言:javascript
复制
<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。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-18 10:31:58

您没有给出任何上下文,说明您想在哪里/为什么要这样做,但是这可能会让您开始工作。我使用的是ImageMagick,它是免费的,可以在这里中使用命令行、Perl、python、.Net绑定。

使用您的图像,您可以识别如下所有的红色像素:

代码语言:javascript
复制
convert question.jpg -fuzz 5% -fill black +opaque red -fill red -opaque red out.jpg

它会给你这个图像:

​

​

如果您想要在每个点的像素颜色,您可以这样提取它们:

代码语言:javascript
复制
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:

代码语言:javascript
复制
convert question.jpg -fuzz 5% -fill black +opaque red -fill white -opaque white -morphology erode:5 square out.jpg

你会得到这个:

​

​

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25907351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档