首页 > 编程知识 正文

图像直方图均衡算法,自适应直方图均衡化

时间:2023-05-05 22:40:28 阅读:12534 作者:3974

问题分析内容1 :图像增强显示通过创建灰度扩展函数来实现功能。 将原始图像的灰度值线性扩展到0-255之间。

导入./data/flower.tif文件,显示原始图像和原始图像的直方图,分别使用上述步骤创建的函数、imadjust函数进行图像增强,显示图像增强效果和对应图像的直方图。

./data/mars_moon.tif文件,显示原始图像、原始图像的直方图,读取imadjust函数,了解伽马参数的含义,然后设置不同的伽马值进行图像增强,得到图像和增强的图像

内容2 )根据直方图均衡化直方图均衡化原理,实现直方图均衡化功能,制作直方图均衡化函数。

读取./data/flower.tif文件,分别利用您创建的直方图均衡函数和histeq。

函数对此进行直方图的平均化操作,比较显示效果和直方图的形态。

内容3 :直方图匹配读取./data/bhtmref.img文件,将./data/bhtmref_reference.tif文件作为参考图像,对所有波段图像进行直方图匹配实验数据flower.tif,多波段图像文件;

mars_moon.tif,灰度图像;

bhtmref.img,遥感影像;

bhtmref_reference.tif,遥感影像直方图匹配参考。

操作过程直方图拉伸1灰度拉伸函数%%灰度拉伸函数functionimg2=enhance(img ) %UNTITLED此处显示此函数的摘要%此处显示详细说明low=min(min ) ) imitled hi=max(max ) img ); cha=hi-low; img2=(img-low ).* ) *(255/cha ); return end 2图像拉伸%%读取图像拉伸/data/flower.tif文件以显示原始图像和原始图像的直方图。 然后,分别使用在上述步骤中创建的函数、imadjust函数进行图像强调,在图像强调后显示%的效果和对应图像的直方图。 img=imread(flower.TIF ); img2=Enhance(img; img3=imadjust(img ); figure(1) subplot ) 3,2,1 ) imshow ) img ) title ('原图') subplot ) 3,2,2 ) imhist ) img,64 ) subplot ) 3,2,2,2 64 )4gamma参数调整(% gamma参数调整)./data/mars_moon.tif文件,显示原始图像,然后设置不同的gamma值进行图像增强,显示%图像和增强的图像直方图% gamma指定描述关系的曲线形状%介于I和j值之间。 如果gamma小于1,贴图将对高于% (明亮)的输出值进行加权。 如果gamma大于%且大于1,贴图将对较低(较暗)的输出值进行加权。 如果%省略参数,则gamma默认为1 (线性映射)。 img4=imread(Mars_moon.TIF ); img5=imadjust(img4,[],[],0.2 ); img6=imadjust(img4,[],[],5 ); figure(2) subplot ) 3,2,1 ) title (原图) imshow ) img4) subplot ) 3,2,2 ) imhist ) img,64 ) subplot ) 3,25 ) 64 )直方图平均化1平均化函数functionoutimage=junheng(image ) %平均化函数)统计每个灰度的像素值的累计数() ) )。 numpixel=Zeros(1,256 ); %创建256列行向量,以计算每个灰度的像素数fori=1: height forj=1: widthk=image (I,j )。 % k是像素点(I,j )的灰度值) NumPixel阵列的下标从1开始,但图像像素的取值范围为0 ) 255 ),因此num pixel (k1 ) num pixel (k1 ) num pixel (k1 ) k1 ) 在对与%对应灰度值像素点数加上1 endend%之后,计算频率值作为频率prob pixel=zeros (1,256 ); %统计各灰度出现频率forI=1:256probpixel(I )=NumPixel(i ) I )/)/(height * width ); end%再使用函数cumsum ()计算累积分布函数(CDF ),将频率(可能值的范围从0(1)映射到255的无符号整数cumpixel=cumsum ) (probpixel ) %这里的序列CumPixel的大小也是1256cumpixel=uint8() 256-1 ).* CumPixel 0.5 ); 在用于实现%直方图均衡的以下赋值语句的右端,image(I,j )用作CumPixel的索引: 例如,如果image ) I,j )=120,则从CumPixel中提取第120个值作为image ) I,j ) )的新像素值outimage=) %预分配数组fori=1: height endendend 2平差APP应用%%直方图平差img=imread('flower.TIF ); img2=俊恒(img; img3=histeq(img; figure(1) subplot(3(3(3) 3,2,1 ) imshow(img3 ) title ('原图') subplot (3,2,2 ) imhist ) img,64 ) subplow 6 ) imhist ) img3,64 )直方图匹配%直方图匹配%读取./data/bhtmref.img文件对所有波段图像进行直方图匹配,并使用fwriteenvi函数进行匹配img=freadenvi(bhtmref.img ); histref=imhist(ref ); img=uint8(img; [m,n,p]=size(img ); newImg=[]; 图形; imshow(ref ) forI=1:pmatched=histeq ) img ) :I ),HistRef ); newImg=cat(3,newimg,匹配); 结束图形(2; fori=1: psubplot (2,3,I ) imshow(newImg ) :I ) ) endfwriteenvi('bhtmref_new.img ',newimg

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。