数字图像处理作业(一)

数字图像处理作业(一)

同态滤波概念

同态滤波(Homomorphic filter)是信号与图像处理中的一种常用技术,它采用了一种线性滤波在不同域中的非线性映射。

同态系统:是将非线性问题,转化为线性问题处理。即对非线性(乘性)混杂信号,通过某种数学运算(如对数变换),变成加性模型,而后采用线性滤波方法进行处理。

同态滤波:是把频率滤波和空域灰度变换结合起来的一种图像处理方法,它根据图像的照度/反射率模型作为频域处理的基础,利用压缩亮度范围和增强对比度来改善图像的质量。

我们可以将一幅图像分为两个分量,如下:
在这里插入图片描述
这两个分量分别为照射分量fi(x,y)和反射分量fr(x,y)。

其中 0<fi(x,y)<∞,0<fr(x,y)<1。fi(x,y)描述景物的照明,变化缓慢,处于低频成分。fr(x,y)描述景物的细节,变化较快,处于高频成分。

同态滤波过程,分为以下5个基本步骤:

① 原图做对数变换,得到如下两个加性分量,即
在这里插入图片描述
② 对数图像做傅里叶变换,得到其对应的频域表示为:
在这里插入图片描述
③ 设计一个频域滤波器H(u,v),进行对数图像的频域滤波。

④ 傅里叶反变换,返回空域对数图像。

⑤ 取指数,得空域滤波结果。

综上所述,得到同态滤波的基本步骤如下图:
在这里插入图片描述

获取灰度图像直方图

通过用户自己编写的获取灰度直方图,代码即注释如下:

image=imread('lena.jpg');
[M, N, D]=size(image);  %获取图片长、宽以及颜色通道数
if D>1
   image=rgb2gray(image);  %如果颜色通道数D>1,则将彩色图像转化为灰度图
end
grayNumber=zeros(1,256);  %申明1256列的数组用于存放[0;255]的像素个数

%使用双for循环获取图像灰度值信息
for i=1:M
    for j=1:N
    	%图像image灰度在(0-255),而grayNumber数组为(1-256)所以image(i,j)加一
        grayNumber(image(i,j)+1)=grayNumber(image(i,j)+1)+1;
    end
end
figure(1)
plot(grayNumber),xlim([0,256]),title("图像灰度直方图")

下面为使用matlab的内置函数来直接获取灰度图像直方图的方法:

figure(2)
imhist(image);   %此时的image为灰度图

程序中所使用的图片lena.jpg为下图:
在这里插入图片描述

将自己编写的灰度直方图与内置函数获取灰度直方图进行对比。
用户程序获得灰度信息折线图结果:

用户自己编写的程序获得的图像灰度直方图使用函数imhist(image)直接显示直方图信息:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值