regionprops函数详解及应用
一、regionprops函数及应用
regionprops 函数在 MATLAB 中是一个强大的工具,用于计算和分析二值图像(或更一般地说,标注矩阵)中连通区域的属性。当处理二值图像时,连通区域通常对应于图像中的前景对象,而背景则为另一个值(通常是0)。可以在matlab的命令窗口中输入help regionprops获得该函数的帮助信息。
其基本语法如下:
STATS = regionprops(L,properties) 测量标注矩阵 L中每一个标注区域的一系列属性。L 中不同的正整数元素对应不同的区域, 例如:L 中等于整数1的元素对应区域1;L 中等于整数2的元素对应区域2;以此类推。
当调用 regionprops 函数时,可以省略 properties 参量,在这种情况下,该函数将返回 "Area"、"Centroid" 和 "BoundingBox" 测量值。返回值STATS 是一个长度为 max(L(:))的结构数组,结构数组的相应域定义了每一个区域相应属性下的度量。 properties 可以是由逗号分割的字符串列表,包含字符串的单元数组,单个字符串 'all' 或者 'basic'。如果 properties 等于字符串 'all',则所有下述字串列表中的度量数据都将被计算,如果properties 没有指定或者等于 'basic',则属性 'Area'、'Centroid' 和'BoundingBox' 将被计算。
要计算二值图像中连通区域的面积和质心,你可以使用 regionprops 函数并指定 'Area'和'Centroid' 属性。以下是一个 MATLAB 范例,演示了如何计算二值图像中所有连通区域的面积和质心并显示:
二、程序代码
clear all;close all;clc;
%bw = imread('circles.png'); % 读入二值图像
bw = imread('text.png'); % 读入二值图像
% 使用 regionprops 计算面积和质心
stats = regionprops(bw, 'Area','Centroid');
% 显示所有连通区域的面积
disp('连通区域的面积:');
for k = 1:length(stats)
fprintf('区域 %d 的面积: %d\n', k, stats(k).Area);
end
% 如果你想以数组形式获取所有面积
allAreas = [stats.Area];
disp('所有连通区域的面积(数组形式):');
disp(allAreas);
imshow(bw)
centroids = cat(1,stats.Centroid);
hold on
plot(centroids(:,1),centroids(:,2),'b*'),title('质心');%绘制出各区域的质心
hold off
三、部分运行结果
如果你觉得本文对大家有帮助,请关注、点赞和转发,谢谢大家!!!
原文地址:https://blog.csdn.net/xrgs_shz/article/details/142896924
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!