给一副彩色图片加高斯白噪声的程序,错在哪里?
下面是我写的一小段给一副彩色图片加高斯白噪声的程序,可是运行时报错,请问是什么问题?function imnr = addnoi(im,snr)
im = double(im);
% for RGB color image
for k = 1:ndims(im)
si = std(im(:,:,k));
sn = si/10^(snr/20);
imnr(:,:,k) = im(:,:,1) + randn(size(im,1),size(im,2))*sn;
end
return
主程序里用:imnr=addnoi(im,30); 调用。
可是运行时报错如下:
??? Error using ==> mtimes
Inner matrix dimensions must agree.
Error in ==> addnoi at 8
imnr(:,:,k) = im(:,:,1) + randn(size(im,1),size(im,2))*sn;
请大家看看是什么问题?
另外谁手头有给一副彩色图片加高斯白噪声的MATLAB程序,是否可以分享一下。
谢谢! Ref : 常见的程序出错问题整理 (eight), 5F
http://forum.vibunion.com/forum/thread-46001-1-1.html 这个常见的程序出错问题整理其实我看过,不过其实具体到实际问题不一定管用。
还请高手看一下,因为我对添加高斯白噪声也是一知半解而已,呵呵! 其实我也知道,还有个什么AWGN,但是因为导师一直用我写的那个最基本的,我对AWGN(貌似不能直接处理彩色图片),还有IMNOISE不是特别熟悉,所以才用了这一段。当然如果哪位能直接贴出一段用AWGN或者IMNOSE的感激不尽。
我的要求是参数就两个,输入的图像im和高斯白噪声强度比如30(以SNR为单位)。
我曾经尝试用awgn(im,30),但是因为我是3通道的RGB彩色图片,似乎AWGN报错,说不支持。MATLAB新手,不是很懂,问题可能比较浅显。
谢谢帮助!
页:
[1]