您好我是Matlab初学者,我想通过添加一定量的随机噪声数据来询问有关降级图像文件的帮助。
噪声的百分比将在0-100的范围内,表明输出将如何:
0将不会修改, 25表示图像内容的75%和噪声的25%, 75表示图像内容的25%和75%的噪点, 100表示输出应与图像内容的大小相同,但包含所有随机噪声而不包含原始图像数据。
以下是我的代码:
function out_image = image_plus_noise( in_image, percent_noise )
in_image = imread('sample_image.png');
image_proportion = 0.25;
percent_noise = rand(0:100);
my_percent_noise = uint8(percent_noise);
out_image = in_image{in_image}*image_proportion + percent_noise{my_percent_noise}*(1-image_proportion);
imshow(out_image)
但是我无法正常运行,第6行有一个错误。 谁能告诉我我有什么样的错误? 我是在正确的轨道上吗?*
答案 0 :(得分:0)
一对评论:
percent_noise
和in_image
rand(0:100)
为您提供100个随机值,每个值的范围为0到1.您可能不需要所有这些值。{}
而不是()
来索引矩阵。这不起作用。 这是向图像添加一些随机噪声的一种方法:
scaledImage = in_image * (1-percent_noise / 100); %scale image so
%its maximum
%value is some
%percentage of
%the original
maxOfImage = max(in_image(:));
noiseImage = (percent_noise/100) * maxOfImage * rand(size(in_image)); %create noise
%image
%relative to
%the maximum
%of the
%original image
out_image = scaledImage + noiseImage; %add noise to original image.
如果您有权访问通讯工具箱,则可以使用awgn
功能。