MATLAB 求兩張大小完全相同二值影象影象的白色區域重疊面積
阿新 • • 發佈:2019-01-02
如下圖,兩副大小完全相同的二值影象,現求取白色區域的重疊面積
左側影象為test01.jpg,右側為test02.jpg。思路為
1.使用imsubtract將兩副影象進行相減操作,假設為test01-test02,則imsubtract(test01,test02),相減之後如下圖
2.areaTest01-上圖白色區域的面積,即為二者重疊區域的面積。
1°:讀取兩副影象,並將其轉換為二值影象
function [ bw ] = readBinary( imageName ) %UNTITLED3 此處顯示有關此函式的摘要 % 讀取影像,並轉化為二值影象 image=imread(imageName); bw=im2bw(image); end
呼叫上述函式,完成兩副影象的讀取以及轉換為為二值影象
bw01=readBinary('test01.jpg');
bw02=readBinary('test02.jpg');
2°:重疊區域的求取
首先設定一個面積求取函式
function [ sum_White ] = Area( binaryima_Name )
%UNTITLED 此處顯示有關此函式的摘要
% 求取轉換為二值影象的影象面積
sum_White=sum(sum(binaryima_Name==1));
end
分別求取test01、相減區域的面積
area01=Area(bw01); area02=Area(bw02); %相減操作 imSubtract=imsubtract(bw01,bw02); %轉換為二值影象 bwSubtract=im2bw(imSubtract); %求取面積 areaSub=Area(bwSubtract); %%計算兩張影象重疊區域 areaOverlap=area01-areaSub;