如何从复杂的指针式仪表图像中提取出指针
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/09 05:33:08
如何从复杂的指针式仪表图像中提取出指针
具体的步骤及相应的matlab程序,仪表图像如下
![](http://img.wesiedu.com/upload/9/51/9515bf2341ea346af6cbf812382bf8a6.jpg)
具体的步骤及相应的matlab程序,仪表图像如下
![](http://img.wesiedu.com/upload/9/51/9515bf2341ea346af6cbf812382bf8a6.jpg)
clf;clear;clc;
I=imread('zhezhen.jpg');
p=im2bw(I,0.28);%二值化
subplot(221)
imshow(p);
se=strel('line',10,10);
g=imdilate(p,se);%膨胀
subplot(222)
imshow(g)
f=~g;%取反
f2=bwareaopen(f,200);%去除面积小于200的小区域
f3=imdilate(f2,se);%膨胀3次
f3=imdilate(f3,se);
f3=imdilate(f3,se);
f3=bwareaopen(f3,10000);%去除面积小于10000的区域
subplot(223)
imshow(f3)
L=bwlabeln(f3);
S=regionprops(L,'Area');
f4=ismember(L,find([S.Area]<=16000));%去除面积大于16000的区域,这几个值可以反复摸索设
subplot(224)
imshow(f4)
![](http://img.wesiedu.com/upload/9/ed/9ed79a143fc0027e4d4fcaff587b9fea.jpg)
I=imread('zhezhen.jpg');
p=im2bw(I,0.28);%二值化
subplot(221)
imshow(p);
se=strel('line',10,10);
g=imdilate(p,se);%膨胀
subplot(222)
imshow(g)
f=~g;%取反
f2=bwareaopen(f,200);%去除面积小于200的小区域
f3=imdilate(f2,se);%膨胀3次
f3=imdilate(f3,se);
f3=imdilate(f3,se);
f3=bwareaopen(f3,10000);%去除面积小于10000的区域
subplot(223)
imshow(f3)
L=bwlabeln(f3);
S=regionprops(L,'Area');
f4=ismember(L,find([S.Area]<=16000));%去除面积大于16000的区域,这几个值可以反复摸索设
subplot(224)
imshow(f4)
![](http://img.wesiedu.com/upload/9/ed/9ed79a143fc0027e4d4fcaff587b9fea.jpg)