【发布时间】:2013-07-03 21:38:37
【问题描述】:
我正在尝试查找图像上某些区域的面积。
alt text http://img821.imageshack.us/img821/7541/cell1.jpg
例如,我想找到左上角的深色大区域的面积。 我想从图像中找到任何封闭几何的区域。
如何在 matlab 中做到这一点。
我在网上查了一下,我尝试了 regionprops(),但它没有识别出不同的区域。
【问题讨论】:
我正在尝试查找图像上某些区域的面积。
alt text http://img821.imageshack.us/img821/7541/cell1.jpg
例如,我想找到左上角的深色大区域的面积。 我想从图像中找到任何封闭几何的区域。
如何在 matlab 中做到这一点。
我在网上查了一下,我尝试了 regionprops(),但它没有识别出不同的区域。
【问题讨论】:
使用“imfilter”过滤您的图像。使用“fspecial”来定义您的过滤器。然后使用活动轮廓模型来分割大对象。谷歌“活动轮廓 matlab”。使用“多边形”和面积函数来查找封闭轮廓的面积。
【讨论】:
我可以向您推荐几种方法:
a) 算术均值滤波器:
f = imfilter(g, fspecial('average', [m n]))
b) 几何均值滤波器
f = exp(imfilter(log(g), ones(m, n), 'replicate')) .^ (1/(m*n))
c) 谐波均值滤波器
f = (m*n) ./ imfilter(1 ./ (g + eps), ones(m, n), 'replicate');
其中n 和m 是掩码的大小(例如,您可以设置m=3 n=3)
【讨论】:
要添加到 hkf 的答案,您可能需要对图像进行一些预处理以使其更易于处理。
我认为您在降噪方面走在了正确的轨道上。您的轮廓看起来相对容易检测 - 也许您可以简单地对图像进行二值化,应用 imdilate、imclose 和 imerode 的组合来处理伪影(这主要是反复试验),然后尝试检测轮廓。
然后,当然,挑战是找到适用于所有图像的配方,而不仅仅是一个样本。
【讨论】:
我认为你可以使用轮廓方法来解决这个问题。最后,您可以借助轮廓数据提取功能进行提取。研究,您将在 Mathworks 网站上看到它。
【讨论】: