自学内容网 自学内容网

图像面积计算一般方法及MATLAB实现

一、引言

      在数字图像处理中,经常需要获取感兴趣区域的面积属性,下面给出图像处理的一般步骤。

1.读入的彩色图像  2.将彩色图像转化为灰度图像   3.灰度图像转化为二值图像  4.区域标记 5.对每个区域的面积进行计算和显示

二、程序代码

%面积计算
clear all;  %清除所有变量
close all; %关闭所有图形窗口
clc;      %清屏
I=imread('PIC240922.jpg');%读入图像
imshow(I);
Igray=rgb2gray(I);
figure,imhist(Igray);
BW=im2bw(Igray,graythresh(Igray));%使用最大类间方差法对图像进行二值化(注意:针对不同的灰度图像可能采用不同的二值化策略)
BW=~BW;
figure,imshow(BW);
[L, num] = bwlabel(BW);  
% 计算每个连通区域的属性,这里只获取面积,默认区域间像素间的连通方式为8连通  
stats = regionprops(L, 'Area');
%stats = regionprops(L, 'Area','Perimeter');  %获取每个连通区域的面积和周长
% 遍历并打印每个区域的面积  
for k = 1:num  
    fprintf('Region %d has %d pixels.\n', k, stats(k).Area);  
end  
% 如果你只想获取最大面积的区域  
[maxSize, idx] = max([stats.Area]);  
fprintf('The largest region has %d pixels.\n', maxSize);

三、原始图像

7eda8b7e847e451285f97b4bb7310425.jpeg

四、主要运行结果

4f258118508b43c39a51d21265590e74.png

50c6f748719f4d00bb3aa96150005a4b.png

f32b172f33fb49ed9748ccabf9dd9c2d.png  

     如果大家觉得本文对大家编程有所帮助,请关注、转发、点赞和收藏!感谢大家支持!

 


原文地址:https://blog.csdn.net/xrgs_shz/article/details/142433252

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!