该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
直方图均衡化问题 一种自适应直方图均衡化我不知道如何确定阈值T,无法编出代码,求助,很急,下面是已编的普通直方图均衡算法代码请求帮忙继续编写确定阈值T的代码,确定了T自适应直方图均衡算法也就出来了,已有代码如下:
clear;
close all
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 读入图像
[fname,fpath]=uigetfile('E:\毕设\新建文件夹\gaoyue\*.bmp','打开图象文件',100,200);
if fname~=0
s1=strcat(fpath,fname);
I=imread(s1);
else
uiwait(msgbox('Go Wrong with the Program','error message!','modal'));
return
end
if(isrgb(I)) %判断是否是彩色图象
I=rgb2gray(I); % 转化为灰度图象
end
figure;
imshow(I,[]);
title(' Original gray image ')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 后面进行直接直方图均衡增强处理
%二,绘制直方图
[m,n]=size(I); %测量图像尺寸参数
GP=zeros(1,256); %预创建存放灰度出现概率的向量
for k=0:255
GP(k+1)=length(find(I==k))/(m*n); %计算每级灰度出现的概率,将其存入GP中相应位置
end
figure,bar(0:255,GP,'g') %绘制直方图 figure NO 3
title('原图像直方图')
xlabel('灰度值')
ylabel('出现概率')
%三,直方图均衡化
S1=zeros(1,256);
for i=1:256
[x,y]=find(I<=i-1);
S1(i)=length(x)/(m*n); % 计算Sk
end
I1=zeros(size(I));
for i=0:255
[x1,y1]=find(I==i);
for j=1:length(x1)
I1(x1(j,1),y1(j,1))= S1(1,i+1);
end
end
figure;
imshow(I1,[]);
title('均衡直接结果');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
I1=round(I1*255);
GP1=zeros(1,256); % 预创建存放灰度出现概率的向量
for k=0:255
GP1(k+1)=length(find(I1==k))/(m*n); % 计算每级灰度出现的概率,将其存入GP中相应位置
end
figure,bar(0:255,GP1,'g') % 绘制直方图 figure NO 3
title('均衡后的图像直方图')
xlabel('灰度值')
ylabel('出现概率')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
期待与高手交流,我qq381149227,邮箱gaoyue_1228@163.com
做出来后的效果图我贴不上来,有兴趣编的高手期待与您的互通,期待您的帮忙,我可以把更详细的资料给您发过去。