function J=fill_func(BW,ori_image)
[m,n]=size(BW);获取图片灰度矩阵的行数和列数,求出图片像素大小
J=ori_image;back=[];
figure,imshow(BW);
L=bwlabel(BW,8); %对二值图像进行标识
[nx,ny]=find(L==0); % 找到所有的背景像素点坐标
for i=1:length(nx)
back=[back ori_image(nx(i),ny(i))];
end
fill_grey=mean(back);
num=max(L(:));
% 对于每一个标识所对应的区域中的每一个像素,用填充灰度值代替其3*3邻域像素的原有灰度值
for i=1:num
[idx,idy]=find(L==i);
for j=1:length(idx)
if idx(j) == 1 || idx(j) == m || idy(j) == 1 || idy(j) == n
break;
end
J(idx(j)-1:idx(j)+1,idy(j)-1:idy(j)+1)=fill_grey; % J(idx(j),idy(j))=fill_grey;
end
End
菜鸟问题:function J=fill_func(BW,ori_image)中ori_image是什么?
J=ori_image;back=[];中back=[]是什么作用?括号中为什么没东西?
L=bwlabel(BW,8)这是什么公式,作用?
[nx,ny]=find(L==0);中nx和ny是什么?两个等号是恒等么?
for i=1:length(nx)中length(nx)是什么?
fill_grey=mean(back); 这是个函数还是调用程序?这是在干嘛?
num=max(L(:));这个完全看不懂?
idx(j) == 1 || idx(j) == m || idy(j) == 1 || idy(j) == n这个是在干嘛?俩等号俩竖线是什么东西?
J(idx(j)-1:idx(j)+1,idy(j)-1:idy(j)+1)=fill_grey;最后一个问题,这在算什么?