数字图像处理(三)直方图规定化

  • Post author:
  • Post category:其他




1.直方图规定化

所谓直方图规定化,就是通过一个灰度映像函数,将原灰度直方图改造成所希望的直方图。所以直方图修正的关键就是灰度映像函数。直方图规定化是用于产生处理后有特殊直方图图像的方法。令Pr(V)和Pz(Z)分别为原始图像和期望图像的灰度概率密度函数。对原始图像和期望图像均做直方图均衡化处理,应有

在这里插入图片描述

由于都是作直方图均衡化处理,所以处理后的原图像的灰度概率密度函数Ps(S)及理想图像的灰度概率密度函数Pv(V)是相等的。因此,可以用变换后的原始图像灰度级S代替上式中的V,即

在这里插入图片描述

利用此式可以从原始图像得到希望的图像灰度级。对离散图像有

在这里插入图片描述



2.直方图规定化步骤

(1)将图像进行直方图均衡化处理,求出原图像中每一个灰度级ri所对应的变换函数Si;

(2)对给定直方图做类似计算,得到理想图像中每一个灰度级Zi所对应的函数Vi;

(3)找出Vi≈Si的点对,并映射到Zi;

(4)求出Pi(Zi);



3.灰色图的直方图规定

在这里插入图片描述

>>  f=imread('下载.jpg');
g=imread('树.jpg');
g=rgb2gray(g);
f=rgb2gray(f);
g1=imhist(g);
match=histeq(f,g1);
figure;
subplot(231),imshow(f),title('原图像');
subplot(232),imshow(g),title('模板图像');
subplot(233),imshow(match),title('规定化后的图像');
subplot(234),imhist(f),title('原图像的直方图');
subplot(235),imhist(g),title('模板图像的直方图');
subplot(236),imhist(match),title('规定化后的图像的直方图');



4.彩色图的直方图规定化

彩色图的直方图匹配与灰度图像稍有不同,需要分解成RGB进行分别匹配才可以完成彩色图像的直方图匹配。与灰度图像匹配一样,原图像也受到模板图像灰度级的影响。

在这里插入图片描述

在这里插入图片描述

 I=imread('下载.jpg');%读取图像
Imatch=imread('树.jpg');%读取匹配图像
R=I(:,:,1);%获取原图像R通道
G=I(:,:,2);%获取原图像G通道
B=I(:,:,3);%获取原图像B通道
Rmatch=Imatch(:,:,1);%获取匹配图像R通道
Gmatch=Imatch(:,:,2);%获取匹配图像G通道
Bmatch=Imatch(:,:,3);%获取匹配图像B通道
Rmatch_hist=imhist(Rmatch);%获取匹配图像R通道直方图
Gmatch_hist=imhist(Gmatch);%获取匹配图像G通道直方图
Bmatch_hist=imhist(Bmatch);%获取匹配图像B通道直方图
Rout=histeq(R,Rmatch_hist);%R通道直方图匹配
Gout=histeq(G,Gmatch_hist);%G通道直方图匹配
Bout=histeq(B,Bmatch_hist);%B通道直方图匹配
J(:,:,1)=Rout;
J(:,:,2)=Gout;
J(:,:,3)=Bout;
figure;%显示原图像、匹配图像和匹配后的图像
subplot(131),imshow(I);title('原图像');
subplot(132),imshow(Imatch);title('匹配图像');
subplot(133),imshow(J);title('匹配之后图像');
figure;%显示原图像、匹配图像和匹配后图像的直方图
subplot(331),imhist(R,64);ylabel('原图像R通道直方图');
subplot(332),imhist(G,64);ylabel('原图像G通道直方图');
subplot(333),imhist(B,64);ylabel('原图像B通道直方图'); 
subplot(334),imhist(Rmatch,64);ylabel('匹配图像R通道直方图');
subplot(335),imhist(Gmatch,64);ylabel('匹配图像G通道直方图');
subplot(336),imhist(Bmatch,64);ylabel('匹配图像B通道直方图'); 
subplot(337),imhist(Rout,64);ylabel('匹配之后图像R通道直方图');
subplot(338),imhist(Gout,64);ylabel('匹配之后图像G通道直方图');
subplot(339),imhist(Bout,64);ylabel('匹配之后图像B通道直方图')



版权声明:本文为xcjlk原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。