![]() |
[求助]matlab的灰度直方图均衡化的程序
不要用histeq函数,
本人编的程序如下: I=imread('C:\Documents and Settings\Administrator\桌面\1.bmp','bmp'); J=rgb2gray(I); A=im2double(J); [m,n]=size(A);%获得该图的行列数。 m1=zeros(1,256);%为直方图申请矩阵。 m2=zeros(1,256); for i=1:m for j=1:n m1(A(i,j)+1)=m1(A(i,j)+1)+1;%统计各级灰度的像素数。 end end m2(1)=0; for k=2:256 m3(k)=m1(k)/(m*n);%计算出灰度的概率。 m2(k)=m2(k-1)+m3(k);%累加直方图。 end M=zeros(m,n); for i=1:m for j=1:n M(i,j)=(255*m2(A(i,j))); %将处理后的灰度装入新的矩阵。 end end P=uint8(M);%转成uint8型。 subplot(3,2,1);imshow(I);title('原始图像');subplot(3,2,2);imhist(I);title('原始直方图');%输出图像和直方图,加以对比。 但是运行时,提示第9行即“m1(A(i,j)+1)=m1(A(i,j)+1)+1;”错误,不知错在哪里,希望哪位解答一下,谢谢了 |
所有时间均为北京时间。现在的时间是 12:23。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.