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('均衡化后的图像'); %输出

近期下载者

相关文件


收藏者