机器视觉算法与应用

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

主讲人:王俊俊

实验目的

利用matlab对已知的图片做处理,选择图片中不符合要求的或者缺陷的胶囊,并将其框出。

实验算法

1.阈值分割

2.连通区域提取

3.轮廓特征

4.特征匹配

利用canny算子进行边缘检测

4

将图片二值化处

3

使用中值滤波提高图像清晰度

2

膨胀、腐蚀

5

计算特征距、图像匹配

6

实验步骤

将图片转化为灰度

图处理

1

I=imread('ima2.png'); subplot(1,2,1);

imshow(I);title('原图');

i=rgb2gray(I);

subplot(1,2,2);imshow(i);title('灰度

图')

灰度图

中值滤波

F0=imadjust(i,stretchlim(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('二值化');

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');

(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);%计算特征距

进行图像匹配

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).I

mage);

sim=match(inv2,inv1)

if(sim>1&&sim<1.1)

rectangle('position',stats

(i).BoundingBox,'edgecol

or','r');

end

figure(1);

end

两者的结果对比

相关文档
最新文档