做毕业设计需要用到这个,所以自己写了个函数。函数作用是求两张轮廓线图片不一致地方所围成区域的周长和面积。后面还要优化,先把大致结构贴在这里:
function area_peri(a,b)%输入为两张轮廓图像
n = 481;m = 321;%n,m分别为图像的高和宽
pic1 = imread(a);
pic2 = imread(b);
pic1 = logical(pic1);
pic2 = logical(pic2);
pic = bitxor(pic1,pic2);%将两幅图像进行异或运算,求出边界
perimeter = bwarea(pic);%边界的像素点个数即周长
for i = 1:n,%遍历整个图像区域,求出边界围成面积的像素总个数即面积
flag = 0;
for j = 1:m,
if flag == 0
if pic(i,j) == 1
flag = 1;
end
else
if pic(i,j) == 1
flag = 0;
else
pic(i,j) = 1;
end
end
end
end
area = bwarea(pic);
fprintf('area = %f\nperimeter = %f\n',area,perimeter);
imshow(pic);
end