直方图均衡化matlab程序
直方图和直方图均衡的 Matlab 完整程序 ( 数字图像图理 )
一、 图图目的
掌握基本的图象增强方法,图察图象增强的效果,加深图灰度直方图及直方图均衡化的理解~掌握直方图均衡化方法。
二、图图容内
一图彩色图片图图成灰色图片~灰度直方图和均衡化后的直方图~灰度图和均衡化后的图片图比将画并将。三、图图原理
灰度直方图是字图像中的所有像素~按照灰度图的大小~图图其所出图的图度。通常~灰度直方图的将数横
坐图
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示灰度图~图坐图图像素~也可以采用某一灰度图的像素占全图像素的百分比作图图坐图。个数数数
直方图均衡方法的基本原理是,图在图像中像素多的灰度图;图图面起主要作用的灰度图,图行展图个数即画~而图像素少的灰度图;图面不起主要作用的灰度图,图行图。而到图像的目的。个数即画并从达清晰
四、图图程序
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%函功能~出图像的直方图~图图像图行直方图均衡数画并
%直接图图像abc.jpg~图到tuu中
%graydis是原始直方图各灰度图像素个数
%原始直方图graydispro~利用原始直方图图算原始累图直方图graydispro%t[]图算和原始灰度图图的新的灰度t[]~建立映射图系~t坐图代表原始的灰度~t[]代表图图原始坐图的新坐图
%new_graydis是图图新直方图各灰度图像素个数
%图算新的灰度直方图new_graydispro,利用新的直方图图算新的累图直方图new_graydispro%图算直方图均衡后的新图new_tu
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%clear all
close all
tuu=imread('abc.jpg'); %图入图片
tu=rgb2gray(tuu); %将彩色图片图图图灰度图
graydis=zeros(1,256); %图置矩图大小
graydispro=zeros(1,256);
new_graydis=zeros(1,256);
new_graydispro=zeros(1,256);[h w]=size(tu);
new_tu=zeros(h,w);
%图算原始直方图各灰度图像素个数graydis
for x=1:h
for y=1:w
graydis(1,tu(x,y))=graydis(1,tu(x,y))+1;
end
end
%图算原始直方图graydispro
graydispro=graydis./sum(graydis);subplot(1,2,1);
plot(graydispro);
title('灰度直方图');
xlabel('灰度图');ylabel('像素的率密度概');
%图算原始累图直方图
for i=2:256
graydispro(1,i)=graydispro(1,i)+graydispro(1,i-1);
end
%图算和原始灰度图图的新的灰度t[]~建立映射图系
for i=1:256
t(1,i)=floor(254*graydispro(1,i)+0.5);end
%图图新直方图各灰度图像素个数new_graydis
for i=1:256
new_graydis(1,t(1,i)+1)=new_graydis(1,t(1,i)+1)+graydis(1,i);
end
%图算新的灰度直方图new_graydispro
new_graydispro=new_graydis./sum(new_graydis);
subplot(1,2,2);
plot(new_graydispro);
title('均衡化后的灰度直方图');
xlabel('灰度图');ylabel('像素的率密度概');%图算直方图均衡后的新图new_tu
for x=1:h
for y=1:w
new_tu(x,y)=t(1,tu(x,y));
end
end
figure,imshow(tu,[]);title('原图');
figure,imshow(new_tu,[]);title('直方图均衡化后的图');
//////////////////////////////////////////////////////
另两外图代图,
代图
Matlab
下面的代图自来archiless~注图非常图图~适合初。学% 数字图像图理程序作图
% 本程序能将JPG格式的彩色图像文件灰度化图行直方图均衡并%
% 图入文件,PicSample.jpg 待图理图像% 图出文件,PicSampleGray.bmp 灰度化后图像% PicEqual.bmp 均衡化后图像%
% 图出图形口图明窗
% figure NO 1 待图理彩色图像% figure NO 2 灰度化后图像% figure NO 3 直方图
% figure NO 4 均衡化后直方图% figure NO 5 灰度图化曲图% figure NO 6 均衡化后图像% 1~ 图理的图片名字要图 PicSample.jpg% 2~ 程序每次行图先空运会清workspace% 作者;archiless lorder
clear all
%一~图像的图图理~图入彩色图像其灰度化将
PS=imread('PicSample.jpg'); %图入JPG彩色图像文件imshow(PS) %图示出 来figure NO 1title('图入的彩色JPG图像')
imwrite(rgb2gray(PS),'PicSampleGray.bmp'); %将并彩色图片灰度化保存PS=rgb2gray(PS); %灰度化后的据存入图数数
figure,imshow(PS) %图示灰度化后的图像~也是均衡化前的图品 figure NO 2
title('灰度化后的图像')
%二~图制直方图
[m,n]=size(PS); %图量图像
尺寸
手机海报尺寸公章尺寸朋友圈海报尺寸停车场尺寸印章尺寸
参数
GP=zeros(1,256); %图图建存放灰度出图率的向量概for k=0:255 GP(k+1)=length(find(PS==k))/(m*n); %图算每图灰度出图的率~其存概将入GP中相图位置
end
figure,bar(0:255,GP,'g') %图制直方图 figure NO 3title('原图像直方图')
xlabel('灰度图')
ylabel('出图率概')
%三~直方图均衡化
S1=zeros(1,256);
for i=1:256 for j=1:i S1(i)=GP(j)+S1(i); %图算Sk end
end S2=round(S1*256); %将Sk图到相近图的灰度for i=1:256 GPeq(i)=sum(GP(find(S2==i))); %图算图有每灰度图出图的率个概end
figure,bar(0:255,GPeq,'b') %图示均衡化后的直方图 figure NO 4title('均衡化后的直方图')
xlabel('灰度图')
ylabel('出图率概')
figure,plot(0:255,S2,'r') %图示灰度图化曲图 figure NO 5legend('灰度图化曲图')
xlabel('原图像灰度图')
ylabel('均衡化后灰度图')
%四~图像均衡化
PA=PS;
for i=0:255 PA(find(PS==i))=S2(i+1); %将个个各像素图一化后的灰度图图图图像素end
figure,imshow(PA) %图示均衡化后的图像 figure NO 6title('均衡化后图像')
imwrite(PA,'PicEqual.bmp');
另一段Matlab的代图~自 来直方图均衡化,,图像增强
I=imread('LENA256.bmp');
imshow(I);
figure;
imhist(I);
[m,n]=size(I);
hf = zeros(1,256);
pa = zeros(1,256);
I=double(I);
for i = 1:m for j = 1:n hf(I(i,j)+1)=hf(I(i,j)+1)+1;%图图各灰度像素 个数endend
bmap=zeros(1,256);
for i=1:256 temp=0; for j=1:i temp=temp+hf(j); end
bmap(i)=floor(temp*255/(m*n));
end
y=zeros(m,n);
for i=1:m for j=1:n y(i,j)=bmap(I(i,j)+1); end
end
y=uint8(y);
figure;
imshow(y);