MATLAB图像处理帮助!

问题描述:

我正在尝试查找图像上某些区域的区域。MATLAB图像处理帮助!

alt text http://img821.imageshack.us/img821/7541/cell1.jpg

例如,我要找到深大区域的左上侧区域。 我想从图像中找到任何封闭几何图形的区域。

我该怎么在matlab中做到这一点。

我在网上看,我尝试了regionprops(),但它没有标识不同的地区。

使用'imfilter'过滤您的图片。使用'fspecial'来定义你的过滤器。然后使用活动轮廓模型来分割大对象。谷歌'主动轮廓matlab'。使用“多边形”和面积函数来查找封闭轮廓的面积。

+0

我尝试了一些代码从mathworks网站主动轮廓。其中一些有效,但我无法获得任何区域,而且这对小区域无效! 我想先裁剪图片,为了消除任何噪音,然后我用imadjust调整一点对比度。 我需要任何例子来更好地理解它。 – Beho86 2010-06-12 21:13:01

+3

您应该能够使用[C,h] =轮廓(...)提取轮廓的x和y坐标。请参阅http://www.mathworks.com/access/helpdesk/help/techdoc/ref/contour.html 然后查看此链接以查找该区域:http://www.mathworks.com/access/ helpdesk/help/techdoc/ref/polyarea.html 像任何其他图像处理方法一样的主动轮廓并不完美。您将不得不尝试模型的参数以满足您的需求。另外一个好主意是在主动轮廓方法上进行文献搜索,并在MATLAB中自己实现它们。它应该很有趣! – hkf 2010-06-14 15:58:45

要添加到hkf的答案中,您可能需要对图像应用一些预处理,以便于处理。

我觉得你正处在降低噪音的正确轨道上。您的轮廓看起来相对容易检测 - 也许您可以简单地对图像进行二值化处理,应用imdilate,imclose和imerode组合处理伪影(这主要是试验和错误),然后尝试检测轮廓。

然后,当然,挑战是找到适用于所有图像的配方,而不仅仅是一个样品。

+0

我喜欢使用imdilate,imclose和imerode的方法,但有没有办法消除主要形状周围的所有噪音。我的意思是一些物体靠近图像的边界,这是造成问题的原因。 我看到它在mathworks演示中的一些地方,但不知道在什么名字下! – Beho86 2010-06-26 16:42:27

+0

http://drop.io/319wyii 这就是我正在处理的图像。我想填充里面的白色区域,平滑边界并清除周围的所有噪音。 我试图用iclose和ierode,没有真正做出不同的。 提前致谢 – Beho86 2010-06-26 18:54:49

我可以reccomand你几个方法可以做到这一点:

一)算术均值滤波:

f = imfilter(g, fspecial('average', [m n])) 

二)几何均值滤波

f = exp(imfilter(log(g), ones(m, n), 'replicate')) .^ (1/(m*n)) 

C)调和平均数过滤

f = (m*n) ./ imfilter(1 ./ (g + eps), ones(m, n), 'replicate'); 

其中nm是一个面具的大小(例如,你可以设置m=3 n=3

我认为你可以使用轮廓方法来解决这个问题。最后,您可以借助轮廓数据提取功能进行提取。研究,你会在Mathworks网站上看到它。