DSP

图像处理-图像加高斯噪声之后除噪

2019-07-13 15:43发布

 一副图像加高斯噪声之后,通过100次相加求和的方法除噪声,其matlab实现以及遇到的问题:源代码: I=imread('C:Users1.png'); J=imnoise(I,'gaussian',0,0.02); %对图像进行加噪声 subplot(1,2,1),imshow(I); %显示图像 subplot(1,2,2),imshow(J); K=zeros(270,669); for i=1:1:100 %循环100对图像加噪声然后累加 J=imnoise(I,'gaussian',0,0.02); J1=im2double(J); K=K+J1; end K=K/100; %求图像的平均 figure;imshow(K); %显示处理过的图像
出现的问题: Error using  + 
Matrix dimensions must agree.
解释:矩阵的维数必须一致 出错原因:这是由于运算符(= + - / * 等)两边的运算对象维数不匹配造成的,典型的出错原因是错用了矩阵运算符。matlab 通过“.”来区分矩阵运算和元素运算。
size(K) size(J1)
就会得到不同的维度,因此需要将维度调制统一; 正确的代码如下:
I=imread('C:Users1.png'); J=imnoise(I,'gaussian',0,0.02); %对图像进行加噪声 subplot(1,2,1),imshow(I); %显示图像 subplot(1,2,2),imshow(J); K=zeros(270,669); %创建与原图像一样维数的全0矩阵 J1=im2double(J); K=ones(size(J1)); for i=1:1:100 %循环100对图像加噪声然后累加 J=imnoise(I,'gaussian',0,0.02); J1=im2double(J); K=K+J1; end K=K/100; %求图像的平均 figure;imshow(K); %显示处理过的图像
小问题,码代码出来给自己看,以后一定注意,细节错误不要再犯。