把你的图片保存为文件dingdian.bmp(注意边上的空白去掉,可以先取消组合,然后选中中间图片部分,copy到画图板保存为dingdian.bmp),然后运行下面的代码- I = imread('dingdian.bmp'); %读入图片
- I = I(:,:,1);
- BW=im2bw(I,0.6); %阈值分割
- imshow(BW)
- BW=bwareaopen(BW,100); %去处ABCD四个字母
- BW=bwmorph(BW,'skel',Inf); %图像细化
- [y,x]=find(BW); %提取坐标
- [miny,id]=min(y);
- Bxy=[x(id) miny];
- [maxy,id]=max(y);
- Dxy=[x(id) maxy];
- [minx,id]=min(x);
- Axy=[minx y(id)];
- [maxx,id]=max(x);
- Cxy=[maxx y(id)];
- xy=[Axy;Bxy;Cxy;Dxy] %ABCD四点的坐标
- figure
- imshow(~BW)
- hold on
- plot(xy(:,1),xy(:,2),'r*')
复制代码
运行结果:
xy =
29 94
245 31
310 248
95 312
效果图如下: |