【问题标题】:Area calculation in MATLABMATLAB 中的面积计算
【发布时间】:2017-09-04 07:45:51
【问题描述】:

我正在写一篇论文,我需要从我所附的图像中找出黑色区域的区域。

Original image

我已经通过使用阈值和补充图像进行了一些处理。Processed image 现在我在寻找黑色区域的区域时遇到问题。有人可以帮忙吗?我是MATLAB 的新手。

这是我的代码:

img1=imread('C:/Users/Allan/Desktop/unnamed1.jpg');
imshow(img1)

img1=rgb2gray(img1);
imshow(img1)

img2=im2bw(img1,graythresh(img1));
imshow(img2)

img2=~img2;
imshow(img2)

B = bwboundaries(img2);
imshow(img2)
hold on

for k = 1:length(B)
boundary = B{k};
plot(boundary(:,2), boundary(:,1), 'g', 'LineWidth', 0.2)
end

【问题讨论】:

  • 您能否提供更多信息,说明您的代码未达到预期效果?是否会导致错误或错误输出?
  • 不,它没有给出任何错误!它只会将原始图像转换为我附加的处理过的图像。所以在此之后我需要知道如何找到黑色区域的区域。
  • @AlSweigart 我已经提供了问题中两个图像的链接。

标签: matlab area


【解决方案1】:

使用regionpropsbwarea

% take the NOT image
bw = ~img2;
% find individual regions
cc = bwconncomp(bw);
% find area for each black region
props = regionprops(cc,{'Area','Centroid'});
regionArea = [props(:).Area];
% find area of total black region
totalArea = bwarea(bw);
% plotting
for ii = find(regionArea > 100)
    c = props(ii).Centroid;
    text(c(1),c(2),num2str(regionArea(ii)),'Color','b',...
        'HorizontalAlignment','center','VerticalAlignment','middle',...
        'FontWeight','bold');
end

【讨论】:

  • 谢谢。会试试看!!
猜你喜欢
  • 1970-01-01
  • 2015-11-05
  • 1970-01-01
  • 2011-02-08
  • 2016-12-16
  • 1970-01-01
  • 1970-01-01
  • 2021-06-20
  • 1970-01-01
相关资源
最近更新 更多