企業(yè)網(wǎng)站必須備案網(wǎng)站按天扣費(fèi)優(yōu)化推廣
一、引言
????? 在數(shù)字圖像處理中,經(jīng)常需要獲取感興趣區(qū)域的面積屬性,下面給出圖像處理的一般步驟。
1.讀入的彩色圖像? 2.將彩色圖像轉(zhuǎn)化為灰度圖像?? 3.灰度圖像轉(zhuǎn)化為二值圖像? 4.區(qū)域標(biāo)記 5.對每個(gè)區(qū)域的面積進(jìn)行計(jì)算和顯示
二、程序代碼
%面積計(jì)算
clear all;? %清除所有變量
close all; %關(guān)閉所有圖形窗口
clc;????? %清屏
I=imread('PIC240922.jpg');%讀入圖像
imshow(I);
Igray=rgb2gray(I);
figure,imhist(Igray);
BW=im2bw(Igray,graythresh(Igray));%使用最大類間方差法對圖像進(jìn)行二值化(注意:針對不同的灰度圖像可能采用不同的二值化策略)
BW=~BW;
figure,imshow(BW);
[L, num] = bwlabel(BW); ?
% 計(jì)算每個(gè)連通區(qū)域的屬性,這里只獲取面積,默認(rèn)區(qū)域間像素間的連通方式為8連通 ?
stats = regionprops(L, 'Area');
%stats = regionprops(L, 'Area','Perimeter');? %獲取每個(gè)連通區(qū)域的面積和周長
% 遍歷并打印每個(gè)區(qū)域的面積 ?
for k = 1:num ?
??? fprintf('Region %d has %d pixels.\n', k, stats(k).Area); ?
end ?
% 如果你只想獲取最大面積的區(qū)域 ?
[maxSize, idx] = max([stats.Area]); ?
fprintf('The largest region has %d pixels.\n', maxSize);
三、原始圖像
四、主要運(yùn)行結(jié)果
??