HistogramEqualization
所属分类:图形图像处理
开发工具:matlab
文件大小:140KB
下载次数:44
上传日期:2008-05-08 10:20:34
上 传 者:
wjyhfut@163.com
说明: Histogram Equalization
文件列表:
Histogram Equalization\Fig1.jpg (49049, 2008-04-26)
Histogram Equalization\Fig2.jpg (86961, 2008-04-26)
Histogram Equalization\histogram.asv (2357, 2008-04-26)
Histogram Equalization\histogram.m (2327, 2008-04-26)
Histogram Equalization\Thumbs.db (6656, 2008-05-08)
Histogram Equalization (0, 2008-05-08)
Histogram Equalization
(a) Write a computer program for computing the histogram of an image.
(b) Implement the histogram equalization technique.
(c) Your program must be general to allow any gray-level image as its input.
1.1 程序说明
*******************运行环境:matlab7.1*******************
----------------------------------------------------------------------------------
* 函数名称:
* histogram 无参数
* 输入: 原图像路径path
* 输出: 1.原图像 2.原图像直方图3.均衡后图像 4.均衡后图像直方图 5变换函数
* answer里面保存了处理后图像的数据
* 运行中先在命令中输入histogram,再按照提示输入图像路径,运行后即可输出题目
* 中要求的5个图。
----------------------------------------------------------------------------------
下面在第一个problem中给出程序和注释,后面的报告中将不再给出具体的程序代码:
function answer=histogram %需要输入的参数有原图像路径path,answer里面保存了处理后图像的数据
disp('请输入图像的路径,本目录下请直接输入图像名');
path = input('请输入路径: ', 's');
f = imread(path); %f中保存了原始的像的灰度矩阵
file = imfinfo(path);
graylevel = file.BitDepth; %读取灰度级
totalgray = power(2, graylevel); %计算图像的最大灰度值范围
[m n]=size(f);
totalnumber=m*n;
answer=zeros(m,n);
original=zeros(1,totalgray);%用于存储原图像histogram信息
enhanced =zeros(1,totalgray);%用于存储增强后的图像histogram信息
temp=zeros(1,totalgray);%临时变换矩阵
for i=1:m
for j=1:n
original(f(i,j)+1)=original(f(i,j)+1)+1; %统计原图像histogram信息
end
end
%figure,plot(1:totalgray, original);
%axis fill
figure,imshow(f), title('原图像'); %显示原图像和原图像的histogram信息
figure,plot(0:totalgray-1, original); title('原图像的直方图'); axis( [0 256 0 20000] );
originalnorm=zeros(1,totalgray);%用于存储原图像规格化histogram信息
enhancednorm=zeros(1,totalgray);%用于存储增强后的图像的规格化histogram信息
for i=1:totalgray
originalnorm(i)=original(i)/totalnumber; %计算规格化信息
end
sum = 0;
for i = 1:totalgray
sum = sum + originalnorm(i);
temp(i) = sum; %保存中间转换信息
end
temp = uint8(temp * totalgray);
figure, plot(0:totalgray-1, temp),title('变换函数'); %显示变换函数
axis([0 255 0 255]);
for i=1:m
for j=1:n
answer(i,j)=temp(f(i,j)+1); %均衡化后的图像
end
end
for i = 1:m
for j = 1:n
enhanced( answer(i, j) + 1 ) = enhanced( answer(i, j) + 1 ) + 1;%统计均衡化后的图像的histogram信息
end
end
for i=1:totalgray
enhancednorm(i)=enhanced(i)/totalnumber; %计算均衡化后的图像的规格化信息
end
figure,plot(1:totalgray, enhanced),title('均衡化后的图像的直方图'); %显示加强后的图像标准的histogram
axis( [0 256 0 20000] );
figure,plot(1:totalgray, originalnorm); %显示原始图像规格化后的histogram信息
axis( [0 256 0 20000] );
answer=uint8(answer);
imshow(answer),title('均衡化后的图像'); %输出
近期下载者:
相关文件:
收藏者: