关于温馨饭店的!
原图:
目的:
思路:
首先转化为二值图:
然后膨胀一下,这个是因为不进行膨胀的话,第二个字:温馨的“馨”。无法进行图像恢复。
没有连接到一起就会得到下面的结果:
可以看到,上面的那一部分丢失啦。这个就是重建图形只会重建连接在一起的图形。
接下来就是缩小研究范围,通过截取高亮度:im2bw(f,0.99);
im2bw函数的用法
得到:
接下来去除小对象:
bw_ao=bwareaopen(bw_adjust,100);
figure,imshow(bw_ao)
bwareaopen是matlab函数,作用是删除二值图像BW中面积小于P的对象,默认情况下conn使用8邻域。
本例是用100 邻域。
不去除小对象,直接重建的话:
使用去除小对象之后的还原;
因为之前进行了膨胀处理,所以要还原回来:
bw_re=imreconstruct(bw_ao,bw_dilate);
figure,imshow(bw_re);
对比图:
然后,进行切割就好啦:
[r,c]=find(rr);
result=rr(min(r):max(r),min(c):max(c));
figure,imshow(result)
全部代码:
clc,clear,close all;
f=imread('ws.jpg');
g=rgb2gray(f);
imshow(g)
bw=im2bw(f);
figure,imshow(bw)
se=strel('disk',2);
bw_dilate=imdilate(bw,se);
figure,imshow(bw_dilate);
bw_adjust=im2bw(f,0.99);
figure,imshow(bw_adjust)
bw_ao=bwareaopen(bw_adjust,100);
figure,imshow(bw_ao)
%bwareaopen是matlab函数,
%作用是删除二值图像BW中面积小于P的对象,默认情况下conn使用8邻域。
bw_re=imreconstruct(bw_ao,bw_dilate);
figure,imshow(bw_re);
rr=imreconstruct(bw_re,bw);
figure,imshow(rr)
[r,c]=find(rr);
result=rr(min(r):max(r),min(c):max(c));
figure,imshow(result)