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

 

一副图像加高斯噪声之后,通过100次相加求和的方法除噪声,其matlab实现以及遇到的问题:

源代码:


I=imread('C:\Users\1.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:\Users\1.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);   %显示处理过的图像

小问题,码代码出来给自己看,以后一定注意,细节错误不要再犯。


你可能感兴趣的:(计算机图像学&图像处理)