close all; clear; clc;
img1=imread('1.png');
img2=imread('2.png');
figure(1);
imshow(img1);
hold on
figure(2);
imshow(img2);
hold on
img1=rgb2gray(img1);
%img=im2double(img1);
left=im2double(img1);
img2=rgb2gray(img2);
right=im2double(img2);
%[height,width]=size(img(:,:,1));
%left=imcrop(img(:,:,1),[0,0,ceil(width/2),height]);
%right=imcrop(img(:,:,1),[ceil(width/2),0,ceil(width/2),height]);
diff(:,:,1)=abs(left-right);
%diff=im2uint8(diff);
%diff(:,:,n)=right-left;
diff(:,:,1) =imadjust(diff(:,:,1),[0.02,0.1],[0,0.3]);
%figure(2)
%imshow(diff(:,:,n));
se=strel('disk',2);
diff(:,:,1)=imerode(diff(:,:,1),se);
se=strel('disk',4);
a=imdilate(diff(:,:,1),se);
% imshow(diff(:,:,n))
diff(:,:,1) =imadjust(a,[0.02,0.1],[0,0.3]);
% imshow(diff(:,:,n))
difff(:,:,1)=a>0.08;
% imshow(difff(:,:,n))
se=strel('disk',3);
difff(:,:,1)=imdilate(difff(:,:,1),se);
% imshow(difff(:,:,n))
[Lbw4(:,:,1), numbw4] = bwlabel(difff(:,:,1));%把每个单词(此时已连通)贴上标签
%Lbw4为贴标签之后的矩阵,numbw4为标签(即单词)个数
stats = regionprops(Lbw4(:,:,1));%获取区域的某个属性(面积、最小包围矩形的坐标长宽等)的值
for j = 1 : numbw4
tempBound = stats(j).BoundingBox;
rectangle('position',tempBound,'edgecolor','r');
end
disp(numbw4);
评论0