首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >图像处理方法

图像处理方法
EN

Stack Overflow用户
提问于 2015-06-10 12:50:47
回答 4查看 1.2K关注 0票数 2

在下面的灰度图像中,我试图识别我手动标记为红色的对象。有人对如何做这件事有建议吗?

我试图使用高斯模糊和阈值,但不能完全识别这些粒子。边缘检测是一种好方法吗?欢迎任何建议。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-06-13 12:35:32

谢谢你的建议。我已经研究过许多解决这个问题的方法,最好的结果就是使用opencv和haar一样的特性级联分类。

我遵循了本教程,并取得了很高的准确性:

http://coding-robin.de/2013/07/22/train-your-own-opencv-haar-classifier.html

这是前两幅图像的结果,如果对分类器进行一些优化,它还可以进一步改进:

票数 1
EN

Stack Overflow用户

发布于 2015-06-11 08:46:22

您的图像看起来是机器学习的合适目标。

  • 我使用ImageJ/斐济的可训练的Weka分段插件创建了以下概率图(将第二个图像作为输入):

您应该能够通过简单的阈值处理和可能的后续大小过滤来获取对象。

  • 您也可能希望尝试散乱,这是一种将像素分类和对象跟踪与机器学习的所有功能结合在一起的免费软件。

编辑

这就是我如何使用可训练的Weka分段:

  1. 在“设置”窗口中,我激活了一些更多的功能,将sigma范围设置为4到32,并将类命名为“Object”和"Background":

  1. 然后,我创建了一些徒手行跟踪,并将它们添加到相应的类中,并单击“列车分类器”。(在第一次运行培训时,创建特性堆栈需要一段时间,但细化分类所需的时间更短,因为只需要运行分类。)

  1. 要获得概率图,请单击“获取概率”。
票数 4
EN

Stack Overflow用户

发布于 2015-06-10 16:05:20

我在命令行中使用ImageMagick快速完成了这个任务。我相信可以通过查看检测到的气泡的squareness来改进它,但是我没有无限的时间,你说过任何想法都是受欢迎的。

首先,我对图像进行了阈值化,然后将每个像素替换为水平行中的最大像素,向左和向右显示6个像素--这是将每个咖啡豆形状的两个部分连接在一起。命令如下:

代码语言:javascript
复制
convert http://i.stack.imgur.com/mr0OM.jpg -threshold 80% -statistic maximum 13x1 w.jpg

看起来是这样的:

然后,我在其上添加了一个连接组件分析,以查找这些小块,如下所示:

代码语言:javascript
复制
convert http://i.stack.imgur.com/mr0OM.jpg            \
      -threshold 80% -statistic maximum 13x1          \
      -define connected-components:verbose=true       \
      -define connected-components:area-threshold=500 \
      -connected-components 8 -auto-level output.png

Objects (id: bounding-box centroid area mean-color):
  0: 1280x1024+0+0 642.2,509.7 1270483 srgb(4,4,4)
  151: 30x303+137+712 152.0,863.7 5669 srgb(255,255,255)
  185: 29x124+410+852 421.2,913.2 2281 srgb(255,255,255)
  43: 48x48+445+247 467.9,271.5 1742 srgb(255,255,255)
  35: 21x94+234+214 243.7,259.2 1605 srgb(255,255,255)
  10: 52x49+183+31 209.9,56.2 1601 srgb(255,255,255)
  30: 31x86+504+176 523.1,217.2 1454 srgb(255,255,255)
  171: 61x39+820+805 856.0,825.7 1294 srgb(255,255,255)
  119: 20x78+1212+625 1221.6,664.3 1277 srgb(255,255,255)
  17: 44x40+587+106 608.3,124.9 1267 srgb(255,255,255)
  94: 19x70+1077+545 1086.1,580.6 1100 srgb(255,255,255)
  59: 43x33+947+329 967.4,344.3 1092 srgb(255,255,255)
  40: 39x32+735+235 754.4,251.0 1074 srgb(255,255,255)
  91: 22x62+1258+540 1268.3,571.0 1045 srgb(255,255,255)
  18: 23x50+197+124 207.1,148.1 996 srgb(255,255,255)
  28: 40x28+956+165 976.8,177.7 970 srgb(255,255,255)
  76: 22x55+865+467 875.6,493.8 955 srgb(255,255,255)
  187: 18x59+236+858 244.4,886.4 928 srgb(255,255,255)
  211: 46x27+720+997 743.8,1009.0 891 srgb(255,255,255)
  206: 19x47+418+977 427.5,1000.5 804 srgb(255,255,255)
  57: 21x44+231+313 241.4,335.5 769 srgb(255,255,255)
  97: 20x45+1215+553 1224.3,574.3 766 srgb(255,255,255)
  52: 19x47+516+293 525.4,316.2 752 srgb(255,255,255)
  129: 20x41+18+645 28.2,665.1 746 srgb(255,255,255)
  83: 21x45+1079+497 1088.1,518.9 746 srgb(255,255,255)
  84: 17x44+636+514 644.0,535.7 704 srgb(255,255,255)
  62: 19x43+514+348 523.3,369.3 704 srgb(255,255,255)
  201: 19x42+233+951 242.3,971.8 675 srgb(255,255,255)
  134: 21x39+875+659 884.3,676.9 667 srgb(255,255,255)
  194: 25x32+498+910 509.5,924.6 625 srgb(255,255,255)
  78: 19x38+459+483 467.8,501.8 622 srgb(255,255,255)
  100: 20x37+21+572 30.6,589.4 615 srgb(255,255,255)
  53: 18x37+702+296 710.5,314.5 588 srgb(255,255,255)
  154: 18x37+1182+723 1191.2,741.3 566 srgb(255,255,255)
  181: 47x18+808+842 827.6,850.4 565 srgb(255,255,255)
  80: 19x33+525+486 534.2,501.9 544 srgb(255,255,255)
  85: 17x34+611+517 618.9,533.4 527 srgb(255,255,255)
  203: 21x31+51+960 60.5,974.6 508 srgb(255,255,255)
  177: 19x30+692+827 700.7,841.5 503 srgb(255,255,255)

告诉我它发现的所有斑点,它们的边界和质心。然后,我让ImageMagick将检测到的框绘制到图像上,如下所示:

为了解释输出,每一行代表一个blob。让我们看第二行,即:

代码语言:javascript
复制
  151: 30x303+137+712 152.0,863.7 5669 srgb(255,255,255)

这意味着blob宽30像素,高303像素,位于图像左侧137像素,从顶部向下712像素。所以它基本上是图片左下角最高的绿色盒子。152,863是其质心的x,y坐标,面积为5,669像素,颜色为白色。

就像我说的,它可以改进,可能是通过观察气泡边的比率来找出正方形,但它可能会给你一些想法。顺便问一下,你能说出这些斑点是什么吗?

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

https://stackoverflow.com/questions/30756891

复制
相关文章

相似问题

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