我正在尝试寻找图像上某些区域的面积。
alt text http://img821.imageshack.us/img821/7541/cell1.jpg
例如,我想找出左上角的大暗区域的面积。我想从图像中找出任何闭合几何图形的面积。
我如何在matlab中做到这一点。
我在网上查找并尝试了regionprops(),但它没有识别不同的区域。
发布于 2010-06-12 07:57:07
使用'imfilter‘过滤你的图像。使用'fspecial‘来定义你的过滤器。然后使用活动轮廓模型来分割大对象。谷歌‘活动轮廓matlab’。使用'polygon‘和area函数查找封闭轮廓的面积。
发布于 2012-11-17 02:28:33
我可以推荐几种方法来做到这一点:
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
)
发布于 2010-06-15 22:12:19
为了补充hkf的答案,您可能需要对图像进行一些预处理,以使其更易于处理。
我认为你在减少噪音方面走在了正确的道路上。你的轮廓看起来相对容易检测-也许你可以简单地将你的图像二值化,应用imdilate,imclose和imerode的组合来处理伪影(这主要是试验和错误),然后尝试检测轮廓。
然后,当然,挑战是找到一个适用于所有图像的食谱,而不仅仅是一个样本。
https://stackoverflow.com/questions/3026877
复制相似问题