白平衡 matlab 程序 0.01%最小值

来源:互联网 发布:公务员考试经验知乎 编辑:程序博客网 时间:2024/05/22 08:15


%求出0.01的最亮的像素
for y=1:h


    for x=1:w


        dc(y,x) = min(img(y,x,:));


    end


end 
 [a,index]=sort(dc(:),'descend');
 length=0.0001*w*h;
 sumr=0;
 sumg=0;
 sumb=0;
%白平衡的图像获得
 for  kk=1:length
     m= fix(index(kk)/w)+1;
     n=mod( index(kk),w );
     sumr=sumr+img(m,n,1)/length;
     sumg=sumg+img(m,n,2)/length;
     sumb=sumb+img(m,n,3)/length;
 end
 img=double(img);
img_baipingheng(:,:,1)=(img(:,:,1))/double(sumr)*255;
img_baipingheng(:,:,2)=(img(:,:,2))/double(sumg)*255;
img_baipingheng(:,:,3)=(img(:,:,3))/double(sumb)*255;


figure,imshow(uint8(img_baipingheng),[]), title('白平衡');
0 0