1、主讲人:王俊俊利用matlab对已知的图片做处理,选择图片中不符合要求的或者缺陷的胶囊,并将其框出。实验目的1.阈值分割2.连通区域提取3.轮廓特征4.特征匹配实验算法利用canny算子进行边缘检测4将图片二值化处理 3使用中值滤波提高图像清晰度 2 膨胀、腐蚀5 计算特征距、图像匹配6实验步骤将图片转化为灰度图处理 1I=imread(ima2.png); subplot(1,2,1); imshow(I);title(原图); i=rgb2gray(I); subplot(1,2,2);imshow(i);title(灰度图)灰度图中值滤波F0=imadjust(i,stretchlim(
2、i),0 1);Ft=medfilt2(F0,5 5);subplot(1,2,2);imshow(i);title(滤波)二值化%图像分割,一曲所需目标的特征,背景显示为白色,目标为黑色level=graythresh(Ft);BW=im2bw(Ft,level); %图像二值化%imshow(BW);title(二值化);subplot(1,2,2);imshow(i);title(二值化)canny%图像分割,一曲所需目标的特征,背景显示为白色,目标为黑色level=graythresh(Ft);BW=im2bw(Ft,level); %图像二值化%imshow(BW);title(二值
3、化);subplot(1,2,2);imshow(i);title(二值化)膨胀、腐蚀%膨胀操作,膨胀系数需要调整,使得不牵连的两个膨胀后也不牵连se90=strel(line,7,90);se0=strel(line,7,0);BW2=imdilate(BW1,se90,se0);figure,imshow(BW2);title(膨胀);裁剪1.本本步骤的目的是为了剪裁出可以用于匹配的目标(1)imwrite(BW1,BW.png);BW5=BW1(82:177,160:212,:);imwrite(BW5,BW1-part.png);figure;imshow(BW1-part.png);
4、(2)imwrite(BW2,BW.png);BW3=BW2(82:177,160:212,:);imwrite(BW3,BW2-part.png);figure;imshow(BW2-part.png);1.剪裁后canny算子2.剪裁后获得特征in_image1 = imread(BW2-part.png);in_image1 = logical(in_image1);b,l=bwboundaries(in_image1,noholes);stats= regionprops(l, All);in_image1=stats.Image; inv1=getfeature(in_image1)
5、;%计算特征距进行图像匹配image = imread(BWtwo.png);image = logical(image);image2=image;se=strel(disk,2);image=imclose(image,se);%待匹配图像%in_image= imfill(in_image,hole); B,L=bwboundaries(image,noholes); %提取出来的是所有轮廓的边缘坐标stats=regionprops(L,All);%L中不同的正整数元素对应不同的区域;figure;imshow(image2);结果 for i=1:length(stats)inv2=getfeature(stats(i).Image);sim=match(inv2,inv1) if(sim1 end figure(1);end两者的结果对比