MATLB关于指纹图像二值化阈值
出现死循环,不知是哪出错了,怎样修改WHILE语句I=imread('L2.BMP');
=size(I);
for i=1+8:1:W-8
for j=1+8:1:H-8
Block=I(i-8:i+8,j-8:j+8);%%%%%%%%%%%%%%%%%%%分成17*17的平滑窗口
T=mean2(Block);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%求块均值
while 6,
Nh=sum(sum(histc(Block,T:256)));%%%%%%%%统计灰度值大于T的像素点数
Nl=17*17-Nh;%%%%%%%%%%%%%%%%%%%%%%%%%%%%统计灰度值小于T的像素点数
if abs(Nh-Nl)<=17*1.7
break;
elseif Nh>Nl
T=T+1;
elseif Nh<Nl
T=T-1;
end
end
if I(i,j)>=T
I1(i,j)=255;
elseI1(i,j)=0;
end
end
end
figure,imshow(I1),title('binary image ');
高手帮帮忙,不胜感激!!!!! 设个断点看看那里出现死循环!? 明显应该是while与if(break)无法配合
至于该怎改, 个人水平有限, 并不了解其中逻辑, 同待高人路过!
回复 楼主 springjunqing 的帖子
”while 6“这个条件是什么意思都看不懂回复 板凳 tuoniao992002 的帖子
while 6等同while 1, 即无限回圈
页:
[1]