数字图像处理(4)——图像复原
数字图像处理(4)——图像复原
文章目录
- 数字图像处理(4)——图像复原
- 1 概述与图像降质模型
- 1.1 图像增强与图像复原
- 1.2 图像降质的数学模型
- 1.2.1 连续图像退化的数学模型
- 1.2.2 离散图像退化的数学模型
- 2 无约束与约束图像复原
- 2.1 无约束图像复原
- 2.2 约束图像复原
- 3 图像几何空间变换
- 4 Matlab命令
1 概述与图像降质模型
1.1 图像增强与图像复原
图像增强:旨在改善图像质量、提高图像的可懂度。更偏向主观判断,即要突出所关心的信息,满足人的视觉系统,具有好的视觉结果。
图像复原:根据图像畸变或退化的原因,进行模型化处理,将质量退化的图像重建或恢复到原始图像,即恢复退化图像的本来面目,忠实于原图像。因此必须根据一定的图像退化模型来进行图像复原,又称图像恢复。
图像复原的目的是尽量减少或去除获取图像或处理图像过程中的图像降质(图像退化),恢复其本来面目。要进行图像恢复,先弄清楚降质或退化的原因,分析引起降质或退化的因素,建立相应的数学模型,并沿着图像降质的逆过程恢复图像。所以所用方法大致可分为两种:一种方法适用于缺乏图像先验知识的情况,此时可对退化过程建立模型进行描述,进而寻找一种去除或消弱其影响的过程,是一种估计方法;另一种是针对原始图像有足够的先验知识的情况,对原始图像建立一个数学模型并根据它的退化图像进行拟合,能够获得更好的复原效果。
1.2 图像降质的数学模型
1.2.1 连续图像退化的数学模型
考虑系统收到加性噪声的影响,对于线性移不变系统,有下述退化模型
原图像f(x,y)→退化系统h(x,y)→噪声η(x,y)→降质图像g(x,y)原图像f(x,y)\rightarrow 退化系统h(x,y)\rightarrow 噪声\eta(x,y)\rightarrow 降质图像g(x,y)原图像f(x,y)→退化系统h(x,y)→噪声η(x,y)→降质图像g(x,y)
数学表达式为g(x,y)=f(x,y)∗h(x,y)+η(x,y)g(x,y)=f(x,y)*h(x,y)+\eta(x,y)g(x,y)=f(x,y)∗h(x,y)+η(x,y),频率域上的表达式(傅立叶变换后)有G(u,v)=F(u,v)H(u,v)+N(u,v)G(u,v)=F(u,v)H(u,v)+N(u,v)G(u,v)=F(u,v)H(u,v)+N(u,v)。
图像退化包含了两种因素:图像噪声η(x,y)\eta(x,y)η(x,y)(来源于获取过程和传输过程)和退化系统h(x,y)h(x,y)h(x,y)。当不考虑噪声时,即η(x,y)orN(u,v)\eta(x,y) \ or \ N(u,v)η(x,y) or N(u,v)为0,有三种方法可估计退化函数:
(1)观察估计法
通过图像自身结构信息进行估计,选择图像中具有强信号特征的局部区域图像g(x,y)g(x,y)g(x,y),设法构建一个具有相同大小与特征,但没有退化的近似图像,可有
Hs(u,v)=Gs(u,v)Fs(u,v)H_s(u,v)=\frac{G_s(u,v)}{F_s(u,v)} Hs(u,v)=Fs(u,v)Gs(u,v)
利用这一函数,进一步假设H(u,v)H(u,v)H(u,v)的数学表达式,从而构建H(u,v)H(u,v)H(u,v)使其与Hs(u,v)H_s(u,v)Hs(u,v)具有基本相同的形状。
(2)实验估计法
使用或设计一个与图像退化过程相似的装置(过程),使其成像一个脉冲,可得退化系统的冲激响应
H(u,v)=G(u,v)AH(u,v)=\frac{G(u,v)}{A} H(u,v)=AG(u,v)
(3)模型估计法
从引起图像退化的基本原理进行推到,进而对原始图像进行模拟,在模拟过程中调整模型参数以获得尽可能精准的退化模型。如大气湍流模型和大气扰动模型。
1.2.2 离散图像退化的数学模型
一维离散情况退化模型
g(x)=f(x)∗h(x)+η(x)g(x)=f(x)*h(x)+\eta(x) g(x)=f(x)∗h(x)+η(x)
其中f,g分别具有A个和B个采样点。也就是说离散情况下的退化模型为卷积运算。
2 无约束与约束图像复原
2.1 无约束图像复原
目的:已知降质图像g以及对降质系统的循环矩阵H,包括对噪声η\etaη的了解或假设,估计原始图像f^\hat ff^,使得某种事先确定的误差最小。
方法:不同的误差最优准则,得到不同的复原方法。下面主要介绍逆滤波
g=Hf+η⇒η=g−Hfg=Hf+\eta \Rightarrow \eta=g-Hf g=Hf+η⇒η=g−Hf
使得∣∣η∣∣2||\eta||^2∣∣η∣∣2最小的准则称为最小二乘准则,此时的复原方法是无约束图像复原,称为逆滤波。推导过程就自己看书咯。
remark:无约束图像复原的病态性质,当H(u,v)很小或等于零,即出现了零点,就会导致不定解。即使没有噪声,一般也不可能精确地复原f(x,y)。如果考虑噪声项N(u,v),则出现零点时,噪声项将被放大,零点的影响将会更大,对复原的结果起主导地位。但可以对其进行一些列改进。
2.2 约束图像复原
有约束图像复原技术是指除了要求了解关于退化系统的传递函数之外,还需要知道某些噪声的统计特性或噪声与图像的某些相关情况。根据所了解的噪声的先验知识的不同,采用不同的约束条件,从而得到不同的图像复原技术。主要方法有维纳滤波,平滑度约束滤波
3 图像几何空间变换
空间操作直接在给定图像的像素上执行,分为以下三大类:单像素操作,邻域操作,几何空间变换。其中几何变换的两个基本操作:①坐标的空间变换;②灰度内插
图像的仿射变换提出的意义是采用通用的数学影射变换公式,来表示几何变换。为了适应平移,提出了齐次坐标的概念。齐次坐标形式图像(x,y)→(u,v)(x,y)\rightarrow(u,v)(x,y)→(u,v)的变换表达形式:
∣uv1∣=∣a1b1c1a2b2c2001∣∣xy1∣\begin{vmatrix}u\\v\\1\end{vmatrix}= \begin{vmatrix}a_1&b_1&c_1\\a_2&b_2&c_2\\0&0&1\end{vmatrix} \begin{vmatrix}x\\y\\1\end{vmatrix} ∣∣uv1∣∣=∣∣a1a20b1b20c1c21∣∣∣∣xy1∣∣
(1)平移
∣uv1∣=∣100010txty1∣∣xy1∣\begin{vmatrix}u\\v\\1\end{vmatrix}= \begin{vmatrix}1&0&0\\0&1&0\\t_x&t_y&1\end{vmatrix} \begin{vmatrix}x\\y\\1\end{vmatrix} ∣∣uv1∣∣=∣∣10tx01ty001∣∣∣∣xy1∣∣
(2)旋转
∣uv1∣=∣cosθ−sinθ0sinθcosθ0001∣∣xy1∣\begin{vmatrix}u\\v\\1\end{vmatrix}= \begin{vmatrix}cos\theta&-sin\theta&0\\sin\theta&cos\theta&0\\0&0&1\end{vmatrix} \begin{vmatrix}x\\y\\1\end{vmatrix} ∣∣uv1∣∣=∣∣cosθsinθ0−sinθcosθ0001∣∣∣∣xy1∣∣
(3)水平镜像
∣uv1∣=∣1000−10001∣∣xy1∣\begin{vmatrix}u\\v\\1\end{vmatrix}= \begin{vmatrix}1&0&0\\0&-1&0\\0&0&1\end{vmatrix} \begin{vmatrix}x\\y\\1\end{vmatrix} ∣∣uv1∣∣=∣∣1000−10001∣∣∣∣xy1∣∣
(4)垂直镜像
∣uv1∣=∣−100010001∣∣xy1∣\begin{vmatrix}u\\v\\1\end{vmatrix}= \begin{vmatrix}-1&0&0\\0&1&0\\0&0&1\end{vmatrix} \begin{vmatrix}x\\y\\1\end{vmatrix} ∣∣uv1∣∣=∣∣−100010001∣∣∣∣xy1∣∣
(5)水平错切
∣uv1∣=∣100dy10001∣∣xy1∣\begin{vmatrix}u\\v\\1\end{vmatrix}= \begin{vmatrix}1&0&0\\dy&1&0\\0&0&1\end{vmatrix} \begin{vmatrix}x\\y\\1\end{vmatrix} ∣∣uv1∣∣=∣∣1dy0010001∣∣∣∣xy1∣∣
(6)垂直错切
∣uv1∣=∣1dx0010001∣∣xy1∣\begin{vmatrix}u\\v\\1\end{vmatrix}= \begin{vmatrix}1&dx&0\\0&1&0\\0&0&1\end{vmatrix} \begin{vmatrix}x\\y\\1\end{vmatrix} ∣∣uv1∣∣=∣∣100dx10001∣∣∣∣xy1∣∣
(7)缩放
∣uv1∣=∣cx000cy0001∣∣xy1∣\begin{vmatrix}u\\v\\1\end{vmatrix}= \begin{vmatrix}c_x&0&0\\0&c_y&0\\0&0&1\end{vmatrix} \begin{vmatrix}x\\y\\1\end{vmatrix} ∣∣uv1∣∣=∣∣cx000cy0001∣∣∣∣xy1∣∣
相关程序
Img = imread('1.jpg');
subplot(1,2,1); imshow(Img);
T=affine2d([cos(30) -sin(30) 0;sin(30) cos(30) 0;0 0 1]);
R=imwarp(Img, T, ’nearest’);
subplot(1,2,2); imshow(R);
4 Matlab命令
命令 | 参数说明 | 作用 |
---|---|---|
h = fspecial(type) h = fspecial(‘average’,hsize) h = fspecial(‘disk’,radius) h = fspecial(‘gaussian’,hsize,sigma) h = fspecial(‘laplacian’,alpha) h = fspecial(‘log’,hsize,sigma) h = fspecial(‘motion’,len,theta) h = fspecial(‘prewitt’) h = fspecial(‘sobel’) |
hsize - Size of the filter radius - Radius of a disk-shaped filter(默认值5) sigma - Standard deviation(默认值0.5) alpha - Shape of the Laplacian(0.2默认值) len - Linear motion of camera(9默认值) theta - Angle of camera motion(0默认值) |
创建二维滤波器 |
J = deconvwnr(I,psf,nsr) |
I - Blurry image psf - Point-spread function nsr - Noise-to-signal ratio(0) |
用维纳滤波去模糊图像 |
[J,psfr] = deconvblind(I,psfi,iter,dampar,weight) |
I - Blurry image psfi - Initial estimate of PSF iter - Number of iterations(10默认值) dampar - Threshold for damping(0默认值) weight - Weight of each pixel |
用盲去卷积去模糊图像 |
J = deconvreg(I,psf,np,lrange) |
np - Noise power(0默认值) lrange - Search range([1e-9 1e9] 默认值) |
用正则化滤波去模糊图像 |
一些程序 |
I=im2double(imread('cat1.jpg'));
figure,imshow(I);
title('原图');
LEN=21;
THETA=11;
PSF=fspecial('motion',LEN,THETA);
blurred=imfilter(I,PSF,'conv','circular');
figure(2),imshow(blurred),title('运动模糊')
LEN=20;
THETA=10;
INITPSF=fspecial('motion',LEN,THETA);
[J,P]=deconvblind(blurred,INITPSF,30);
figure(3),imshow(J),title('恢复图像')
PSF=fspecial('motion',7,45);
% MF=im2double(imfilter(I,PSF,'circular'));
MF=imfilter(I,PSF,'circular');
noise=imnoise(zeros(size(I)),'gaussian',0,0.001);
MFN=MF+noise;
figure(4);subplot(2,2,1);imshow(MFN,[]);
title('无噪声运动 deconvwnr 复原')
NSR=sum(noise(:).^2)/sum(MFN(:).^2);
subplot(2,2,2);imshow(deconvwnr(MFN,PSF,NSR),[]);
title('有噪声运动 deconvwnr(I,PSF)复原');
subplot(2,2,3);imshow(deconvwnr(MFN,PSF),[]);
title('有噪 deconvwnr(I,PSF,NSR)复原');
subplot(2,2,4);A=deconvreg(MFN,PSF,0.4,[1e-7,1e7]);imshow(A);
title('有噪 deconvwnr(I,PSF,NCORR,ICORR)复原');
figure(5),B=deconvreg(MFN,PSF,4);imshow(B);
数字图像处理(4)——图像复原相关推荐
- 第5章 Python 数字图像处理(DIP) - 图像复原与重建1 - 高斯噪声
本章主要讲图像复原与重建,首先是了解一下各种噪声的特点与模型,还有形成的方法.一些重点的噪声,如高斯噪声,均匀噪声,伽马噪声,指数噪声,还有椒盐噪声等. 本章主要的噪声研究方法主要是加性噪声. 标题 ...
- paper 108:系统学习数字图像处理之图像复原与重建
首先,必须注意这里所限制的处理条件. 关于图像退化/复原模型 退化的图像是由成像系统的退化加上额外的噪声形成的. 1.只考虑噪声引起的退化 噪声模型,包含于空间不相关和相关两种,除了空间周期噪声,这里 ...
- 系统学习数字图像处理之图像复原与重建
首先,必须注意这里所限制的处理条件. 关于图像退化/复原模型 退化的图像是由成像系统的退化加上额外的噪声形成的. 1.只考虑噪声引起的退化 噪声模型,包含于空间不相关和相关两种,除了空间周期噪声,这里 ...
- 数字图像处理之图像复原
一.图像复原与图像增强的区别 图像的增强是一个主观的过程,其目的是改善图片的质量,对感兴趣的部分加以增强,对不感兴趣的部分予以抑制.而图像复原是一个客观的过程,针对质量降低或失真的图像,试图恢复其原始 ...
- 第5章 Python 数字图像处理(DIP) - 图像复原与重建17 - 由投影重建图像、雷登变换、投影、反投影、反投影重建
标题 由投影重建图像 投影和雷登变换 Johann Radon 反投影 滤波反投影重建 由投影重建图像 本由投影重建图像,主要是雷登变换与雷登把变换的应用,所以也没有太多的研究,只为了保持完整性,而添 ...
- 第5章 Python 数字图像处理(DIP) - 图像复原与重建16 - 约束最小二乘方滤波、几何均值滤波
标题 约束最小二乘方滤波 几何均值滤波 约束最小二乘方滤波 F^(u,v)=[H∗(u,v)∣H(u,v)∣2+γ∣P(u,v)∣2]G(u,v)(5.89)\hat{F}(u,v) = \bigg[ ...
- 第5章 Python 数字图像处理(DIP) - 图像复原与重建15 - 最小均方误差(维纳)滤波
标题 最小均方误差(维纳)滤波 最小均方误差(维纳)滤波 目标是求未污染图像fff的一个估计f^\hat{f}f^,使它们之间的均方误差最小. e2=E{(f−f^)2}(5.80)e^2 = E ...
- 第5章 Python 数字图像处理(DIP) - 图像复原与重建14 - 逆滤波
标题 逆滤波 逆滤波 逆滤波 逆滤波 图像的退化函数已知或者由前面的方法获取退化函数,则可以直接逆滤波 F^(u,v)=G(u,v)H(u,v)(5.78)\hat{F}(u,v) = \frac{G ...
- 第5章 Python 数字图像处理(DIP) - 图像复原与重建13 - 空间滤波 - 线性位置不变退化 - 退化函数估计、运动模糊函数
标题 线性位置不变退化 估计退化函数 采用观察法估计退化函数 采用试验法估计退化函数 采用建模法估计退化函数 运动模糊函数 OpenCV Motion Blur 在这一节中,得到的结果,有些不是很好, ...
- 第5章 Python 数字图像处理(DIP) - 图像复原与重建12 - 空间滤波 - 使用频率域滤波降低周期噪声 - 陷波滤波、最优陷波滤波
标题 使用频率域滤波降低周期噪声 陷波滤波深入介绍 最优陷波滤波 本章陷波滤波器有部分得出的结果不佳,如果有更好的解决方案,请赐教,不胜感激. 使用频率域滤波降低周期噪声 陷波滤波深入介绍 零相移滤波 ...
最新文章
- 【数论】[CF258C]Little elephant and LCM
- 二十一、PHP框架Laravel学习笔记——模型的访问器和修改器
- Qt利用setStyleSheet设置样式
- python // 运算符
- zabbix使用ICMP ping监控网络状态
- Java中一个逐渐被遗忘的强大功能,强到你难以置信!
- 活动报名管理系统 php源码,活动报名系统微预约源码,万能表单8.1.21版
- Logistic回归公式推导和代码实现和Python中的sklearn.linear_model.LogisticRegression 的参数
- gcode2pointClound
- java实现文章伪原创_网站伪原创的方法 - 百度搜狗360神马网站快速排名 - OSCHINA - 中文开源技术交流社区...
- NVR宇视云通过免注册功能添加之后如何让已经用APP添加过设备的人停止观看?
- js自定义信息提示框
- 几种ESB(企业服务总线)介绍
- ECMAScript 6基础总结
- javascript+css实现走马灯图片轮播器
- WhatsApp群控的好处,为什么使用SendWS拓客系统实现WhatsApp耐用账号的群控管理?
- Andriod Studio虚拟机启动失败解决方案
- c语言去掉文件中重复单词,awk脚本 使用awk去掉重复的单词
- python读取图片文字-Python3实现获取图片文字里中文的方法分析
- 使用 crypto 模块进行加密和解密
热门文章
- python播放音乐同步歌词_使用python播放音乐并制作LRC歌词文件
- jQuery周日历选择器代码
- 网件WNDR4300刷openwrt/LEDE固件
- 苹果cmsv10资源采集插件+一键添加到本地
- HTML 做个漂亮的表格
- nmake编译dll
- java串口监控数据,怎样监听或者拦截串口上的数据
- 机器学习处理信号分离_机器学习和深度学习现如今能应用在雷达信号处理,或者信号处理的哪些方面?...
- 华硕幻16、酷睿12代、windows11、vmware折腾总结
- matlab 设置计算精度,matlab计算精度设置