zl程序教程

您现在的位置是:首页 >  后端

当前栏目

2021年春季学期-信号与系统-第四次作业参考答案-MATLAB实验1

MATLAB系统 2021 实验 信号 作业 春季 参考答案
2023-09-11 14:15:21 时间

![](https://img-blog.csdnimg.cn/20210316221220995.gif#pic_center#pic_center =800x#pic_center =640x)
本文是 2021年春季学期-信号与系统-第四次作业参考答案 的内容。

 

▌MATLAB实验题1


1. 使用解卷积对运动模糊图像进行恢复

图像拍摄过程中由于运动也会造成模糊。这个过程也可以使用卷积来描述。

运动造成的相机成像系统的点扩散函数(PSF)是一个与运动方向和速度相关的线段,即在曝光期间光点运动的轨迹。

图像与该PSF卷积后便形成了模糊的图像。

使用load命令,将imagedata.mat调入MATLAB的工作区域,
包括有三个数据对象:

① I : 图像
② PSf:运动点扩散函数;
③ blurred:I与PSf卷积后形成的运动模糊图像。

请大家使用deconvwnr(blurred, PSf)命令对原图像进行解卷积,去除运动模糊效果。

deconvwnr使用了维纳滤波的方法进行解卷积,感兴趣的同学可以进一步寻找相关的资料了解其原理。

通过imshow()命令可以显示解卷积后的效果。

 

▌求解


1.利用Python读取MAT文件

利用scipy.io.loadmat读取MATLAB的mat文件。

import scipy.io

datafile1 = r'D:\Temp\HMW4-ALL\echodata.mat'
datafile2 = r'D:\Temp\HMW4-ALL\imagedata.mat'
data = scipy.io.loadmat(datafile2)

idata = data['I']
psf = data['PSf']

plt.imshow(psf, 'gray')
plt.show()

2.显示读取的文件

下面给出了MAT文件中的数据。
▲ 点扩散函数图像

▲ 点扩散函数图像

▲ 原始图像

▲ 原始图像

▲ 模糊化之后的图片

▲ 模糊化之后的图片

3.使用逆滤波与维纳滤波进行图像恢复

4.使用盲反卷积来回复图像

具体算法参见博文: OpenCV—Python 盲反卷积模糊图像恢复算法

f ^ k + 1 ( x , y ) = f ^ k ( x , y ) [ g ( x , y ) h ( x , y ) ∗ f ^ k ( x , y ) ∗ h ( − x , − y ) ] \hat f_{k + 1} \left( {x,y} \right) = \hat f_k \left( {x,y} \right)\left[ {{{g\left( {x,y} \right)} \over {h\left( {x,y} \right) * \hat f_k \left( {x,y} \right)}} * h\left( { - x, - y} \right)} \right] f^k+1(x,y)=f^k(x,y)[h(x,y)f^k(x,y)g(x,y)h(x,y)]

其中: ∗ * 代表卷积, f ^ \hat f f^代表为退化的图像估计, h ( x , y ) h\left( {x,y} \right) h(x,y)为退化矩阵。该函数求结果虫蛹到了极大似然法和EM算法。

[ J , P S F ] = d e c o n v b l i n k ( I , I N I T P S F ) \left[ {J,PSF} \right] = deconvblink\left( {I,INITPSF} \right) [J,PSF]=deconvblink(I,INITPSF)使用最大似然算法对图像 I I I解卷积,返回去模糊图像 J J J和回复的点扩散函数PSF。

 

▌附件


※ 每道题目参考答案见每道题目后面连接