MATLAB中的面积计算

时间:2017-04-09 05:12:44

标签: matlab area

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

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

1 个答案:

答案 0 :(得分:0)

使用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

enter image description here