具体程序如下
img=imread('D:\下载\指静脉\归一化图片','bmp');
img=rgb2gray;
%%% OTSU
[m,n]=size(img);
yuzh=0;
for yuzhi=1:255
xiaoyu=0;
dayu=0;
huidushu=zeros(1,255);
for huiduzhi=1:255
huidushu(1,huiduzhi)=sum(sum(img=huiduzhi));
end
for i=1:m
for j=1:n
if img[i,j]<yuzhi
xiaoyu=xiaoyu+1;
end
if img[i,j]>yuzhi
dayu=dayu+1;
end
end
end
for huiduzhi=1:yuzhi
ma=sum(huiduzhu*huidushu(huiduzhi)/xiaoyu);
end
for huiduzhi=yuzhi:255
mb=sum(huiduzhi*huidushu(huiduzhi)/dayu);
end
m=ma+mb;
pa=xiaoyu/m*n;
pb=1-pa;
s=pa*(ma-m)*(ma-m)+pb*(mb-m)*(mb-m);
end
if s>yuzh
g=yuzhi;
end
for i=1:m
for j=1:n
if img(i,j)<=g
h(i,j)=img(i,j)*double((img(i,j)/g).^l);
else
h(i,j)=1-(1-img(i,j))*double(((1-img(i,j))/(1-g)).^l);
end
end
end
figure,imshow(h);
主要是这句报错 huidushu(1,huiduzhi)=sum(sum(img=huiduzhi));
错误原因:等号左边的表达式不是赋值的有效目标。
不知道该怎么修改