一、引言
在数字图像处理中,经常需要获取感兴趣区域的面积属性,下面给出图像处理的一般步骤。
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);
三、原始图像

四、主要运行结果


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














![OSError: [Errno 16] Device or resource busy: ‘.nfs*‘报错解决办法](https://i-blog.csdnimg.cn/direct/5de32cce0682476a8b6a1ace3f3a17c4.png)




