这里可以说很坑了,搞了很久才发现原来有些事情不能想当然
比如说空洞区域我们以为它的像素值为0.想提取出来可以让像素点为0的二值化得到,然而事实并非如此,以下讲述我的一些教训
首先看下原图
最初是想用彩色图直接提取
按照自己之前想法是没毛病的,结果恰恰出了问题,原来空洞区域全变为了绿色,百思不得其解,真是 不应该啊,然后每个通道都显示出来
最后把单个通道空洞处值打开才发现只有绿色通道为0,其他的皆有值,此时才恍然大悟,后来为了省事直接RGB2GRAY
用这种方法试了半天结果出现下面这个尴尬的情况
后来发现灰度图中空洞对应的像素值也不为0
然后就换了个判别语句
clear ;
clear all;
I=imread('book6_8_color-0.png');
I=double(I);
I = rgb2gray(I);%将RGB图变为灰度图
[rows,cols]=size(I);
for j=1:rows
for k=1:cols
if I(j,k)<1
I(j,k)=1;
else
I(j,k)=0;
end
end
end
imshow(I);
终于成功了