我正在尝试根据图像的强度为图像添加噪点。
I = imread(filename);
figure, imshow(I);
v = I(:);
J = imnoise(I, 'localvar', v, 0.04*v);
figure, imshow(J);
但是当我运行算法时,我得到以下异常:
错误使用max:整数只能与整数组合使用 同一类或标量双打
我不确定我的问题是什么。非常感谢你!
答案 0 :(得分:0)
最有可能的是,您以一种格式从文件中读取I
,imnoise
函数使用不同的格式。阅读I
后,请写下以下一行:
I = double(I)
那会对你有所帮助。以下是类似问题的整个例子:
Using imnoise to add gaussian noise to an image:
I = imread('eight.tif');
I = double(I);
%// Adjust intensities in image I to range from 0 to 1
I = I - min(I(:));
I = I / max(I(:));
%// Add noise to image
v = var(I(:)) / sqrt(10);
I_noisy = imnoise(I, 'gaussian', 0, v);
%// Show images
figure
subplot(1, 2, 1), imshow(I), title('Original image')
subplot(1, 2, 2), imshow(I_noisy), title('Noisy image, SNR=5db')