主题:作业题求解
chenjie888
[专家分:0] 发布于 2009-09-14 15:26:00
图像的直方图均衡,,谁能给个源代码
板凳
511hetao [专家分:30] 发布于 2009-09-17 11:21:00
function hist=Process(in)%图像in的直方图计算
%in(x,y,k)表示第x行第y列的三基色元素的灰度值(1-256),k=1,2,3,对应红绿蓝
[sizeY,sizeX,sizeZ]=size(in);his(1:257)=0;
for i=1:sizeY,for j=1:sizeX,
if in(i,j,1)==0,k=257;else k=in(i,j,1);end ,his(k)=his(k)+1;end,end,
his( : ,257)=[];hist=his/(sizeX*sizeY);
% figure;plot(hist,'r'),hold on;
function fun=Process1(hist)%图像直方图的均衡化函数计算
len=length(hist);f(1)=hist(1);for k=2:len,f(k)=f(k-1)+hist(k);end,fun=256*f;
% figure;plot(fun,'b'),hold on;
function B=Process2(A,fun)%图像A的点运算
[sizeY,sizeX,sizeZ]=size(A);
for i=1:sizeY,for j=1:sizeX,
f1=A(i,j,1);if f1<1,f1=1;end,f2=round(fun(f1));if f2<1,f2=1;end,B(i,j,1)=f2;B(i,j,2)=f2;B(i,j,3)=f2;end,end,
% figure;imshow(B/256);%显示图形
function Display(A,histA,funA,B,histB)
subplot(2,2,1),subimage(A);title('原始图像');
subplot(2,2,2),subimage(B/256);title('均衡化图像');
subplot(2,2,3),plot(histA*1,'r.');title('原始图像直方图');
subplot(2,2,4),plot(histB*1,'b.');title('均衡化图像直方图');