MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   求助:matlab设计维纳滤波器去除图像中噪声时的问题 (https://www.labfans.com/bbs/showthread.php?t=2954)

marrina 2008-05-09 21:07

求助:matlab设计维纳滤波器去除图像中噪声时的问题
 
F=imread('f:\xy10082.jpg');
figure(1);
imshow(F,[]);
PSF=fspecial('motion',7,45);
MF=imfilter(F,PSF,'circular');
noise=imnoise(zeros(size(F)),'gaussian',0,0.001);
MFN=MF+noise;
figure(2);
imshow(MFN,[]);
NSR=sum(noise(:).^2)/sum(MFN(:).^2);
figure(3);
imshow(deconvwnr(MFN,PSF),[]);
figure(4);
imshow(deconvwnr(MFN,PSF,NSR),[]);
我想在已知图像中添加运动模糊和高斯噪声,然后用维纳滤波器除去噪声,运行上面的程序后针对MFN=MF+noise出现如下错误:Integers can only be combined with integers of the same class, or scalar doubles. 请问为什么呢?谢谢!

baltaM 2008-06-20 12:12

图片信息为二维的,因此不能以相加来表示
如果想要两幅图片融合那么要分两种情况,
1 RGB 必须将图像拆分为三个向量矩阵
2 灰度图像可以用求和的方式但是必须矩阵阶数相同
你出现的问题在于你的两个矩阵定义的大小不一样,建议用空矩阵

tianming5202 2008-12-21 20:00

回复: 求助:matlab设计维纳滤波器去除图像中噪声时的问题
 
MFN=MF+noise;
这里相加的时候要注意,
MF是uint8型的而noise是double的。
相加的时候要转换成double的最好。


所有时间均为北京时间。现在的时间是 03:22

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.