clc;
close all;
clear all;
file_path='文件路径';
img_path_list=dir(strcat(file_path,'*jpg'));%获取文件
img_num = length(img_path_list); %获取图像总数量
I=cell(1,img_num);
if img_num > 0 %判断符合条件的图像
for j=1:img_num %逐一读取
img_name = img_path_list(j).name; %图像名
img = imread(strcat(file_path,img_name));
I{j} = img;
end
img1=rgb2gray(I{1});
img2=rgb2gray(I{2});
img_jian=(img1-img2)+(img2-img1);%避免数据溢出,因为可能数据为负数
img_yuzhi=graythresh(img_jian);
img_erzhi=imbinarize(img_jian,img_yuzhi);
end
shuzu = strel('square', 4); %创造一个4X4的矩阵元素
pengzhang = imdilate(img_erzhi, shuzu); %进行膨胀
liantong = bwlabel(pengzhang); %标记连通区域
stats = regionprops(liantong);
num = length(stats) ; %连通域总个数
subplot(121),imshow(I{1});
hold on
for index=1:num
rectangle('Position',stats(index).BoundingBox,'curvature',[1,1],'LineWidth',1,'EdgeColor','r') ;
end
subplot(122),imshow(I{2});
for index=1:num
rectangle('Position',stats(index).BoundingBox,'curvature',[1,1],'LineWidth',1,'EdgeColor','r') ;
end
实现结果
学一项东西总要实践一下。