数字图像处理8-动态模糊,噪声
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
噪声本体
添加了高斯噪声的运动模糊图像
Baidu Nhomakorabea
可以看出高斯噪声对图像的影响是很大的。噪声本身不具有规律性,而且频率忽 高忽低。因此这也是之后图像复原中最难处理的一环。
h=1; else h=sin(pi*(i1*a+j1*b))*exp(complex(0,-pi*(i1*a+j1*b)))/(pi *(i1*a+j1*b)); end y(i,j)=x(i,j)*h; end end g=ifft2(y); %t= sqrt(0.01) * randn(m,n); %g=g+t; imshow(g,[]); 首先我们读入预设的文件 original_DIP.tif, 同时用复制的方法生成一个输 出图像的模板。运用 fft2 函数求得该图像的频谱函数,同时也复制一个模板来 进行变换。随后测量图像大小,预设 ab 都是 0.1,这些都是常规的操作。随后 这个循环则是整个程序的运算核心,也是最容易出错的地方。 首先循环中有两个小的判断,如果循环变量 i 或 j 大于图像边长的一半,就让 它减去一个边长。 这样 i1 和 j1 就和图像进行傅里叶变换后本身的 uv 坐标相对 应。随后又进行了了一个判断,如果 a*i1+b*j1 的值为 0,对应到计算式中就 是分母的值为 0,MATLAB 无法处理这种情况,因此答案会出错。但是从数学的 角度来看,sinx 和 x 是等价无穷小,在 a*i1+b*j1 的值为 0 时原式的值就应 该为 1,这样 h(u,v)的值就得以确定了。 随后又是一些很简单的运算,做反变换,并用 imshow 函数显示,结果就如上面 四张图一样。a 的值确定的是垂直方向上的运动模糊,不难看出,a 大于 0 是图
像有向下运动的运动模糊,反之就是向上运动的运动模糊。b 也是同理。二者叠 加起来就会产生类似矢量和的效果,也就是斜 45°方向上的运动模糊。此外,a 或 b 的值越大,运动的效果就越明显,也就是图像上像素抖动的距离就越长,如 下图所示。
a=0.05 b=0
a=0.1 b=0
a=0.2 b=0
随后我们来进行高斯噪声的生成与叠加。按照作业的要求,其方差应为 0.01,而 均值为 0,打下自然就是图像大小。因此程序生成了一个噪声 t,同时叠加在了 输出 g 上,噪声的本体以及叠加的效果如下图所示:
a=0.1 b=0.1
a=0.1 b=-0.1
a=-0.1 b=0.1
a=-0.1 b=-0.1
作业中第一个任务要求利用退化函数对图像的频域进行处理, 进而在空间域上达 到运动模糊的目的。这里我们来一边分析程序,一边对其造成的效果进行解释。 程序代码如下: f=imread('original_DIP.tif'); f=im2double(f); g=f; x=fft2(f); y=x; [m,n]=size(f); a=0.1; b=0.1; for i=1:m for j=1:n if(i>m/2) i1=i-m; else i1=i; end if(j>n/2) j1=j-n; else j1=j; end if(i1*a+j1*b==0)