如下图,两副大小完全相同的二值图像,现求取白色区域的重叠面积
左侧图像为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;