function Y=my_rgb2hist(J)
%% 找出直方图分布
hist(1:256)=0;
[x,y]=size(J);
for i=1:x
for j=1:y
for k=1:256
if J(i,j)==k
hist(k)=hist(k)+1;
break;
end
end
end
end
figure
subplot(211)
bar((1:256),hist);%利用自己写的函数直方图效果
title('自己写的转换后的直方图');
subplot(212),imhist(J);title('matlab的函数直方图');%显示原始图像直方图
%% 直方图CDF直方图计算
N=x*y; %图像中像素的个数
ps(1:256)=0;
for i=1:256
ps(i)=hist(i)/N;
end
Eh(1:256)=0;
for i=1:256
for j=1:255
if j<i
Eh(i)=Eh(i)+ps(j+1);
else
break;
end
end
end
figure
subplot(311)
bar((1:256),Eh);%利用自己写的CDF直方图效果
title('自己写的CDF直方图效果');
%% 取整拓展且确定映射关系
SS=round(Eh*255+0.5);
Sk(1:256)=0;
% %确立一个进入指针,指向当前待判断的位置
% point=0;
% for i=1:256
% point=point+1;
% for j=point:256
% if SS(j)==i
% Sk(i)=Eh(j)+1;
% point=j;
% end
% end
% end
for i=1:256
Sk(SS(i))=ps(i)+Sk(SS(i));
end
%Sk(find(Sk==0))=[];
fprintf('转换后的像素大小为:%d\n',length(find(Sk==0)));
subplot(312)
bar((1:length(Sk)),Sk);%利用自己写的函数直方图均衡化效果
title('自己写的均衡化后的直方图');
subplot(313);
matlab_eq=histeq(J,length(Sk)); %利用matlab的函数直方图均衡化
imhist(matlab_eq),title('matlab均衡化后的直方图');%显示原始图像直方图
%%
Y(x:y)=0;
for i=1:x
for j=1:y
for k=1:256
if J(i,j)==k
Y(i,j)=SS(k);
break;
end
end
end
end
figure;
subplot(311);
Y=uint8(Y);
imshow(Y);title('自己均衡化后的图')
subplot(312);
imshow(matlab_eq);title('matlab均衡化后的图')
subplot(313);
imshow(J);title('原图')
end

舔甜歌姬的EGUMILEGACY
- 粉丝: 733
最新资源
- 【Android应用源码】音乐播放器videoplayer.zip
- 【Android应用源码】音乐播放器-.zip
- 【Android应用源码】音乐播放器源码.zip
- MAE154A_UAVDesign-master.zip
- Trabalho_SCM_Drone_UAV-main.zip
- UAV-control-and-path-planning-main.zip
- 基于动量的估计器无人机.zip
- 带有 matlab 的小型卸载飞机书示例模型.zip
- 多架无人机(在 MATLAB 中模拟)的容错和无碰撞区域覆盖系统。.zip
- 基于多任务的多目标海鞘群算法(MTMMA)用于无人机视觉覆盖.zip
- 具有基线结果的无人机路径规划多目标基准的源代码.zip
- 激光雷达和光谱传感器在桉树属遗传改良实验自动评估中的潜在应用的调查”。.zip
- N通道MOS管Si2301产品介绍
- devops实战模型.zip
- 【Android应用源码】音量seekbar制作.zip
- 【Android应用源码】银联支付Demo.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


