Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 如何";扰乱;带有噪声的图像,但保持原始未受干扰的像素完整,并写入imagesc中的文件_Matlab - Fatal编程技术网

Matlab 如何";扰乱;带有噪声的图像,但保持原始未受干扰的像素完整,并写入imagesc中的文件

Matlab 如何";扰乱;带有噪声的图像,但保持原始未受干扰的像素完整,并写入imagesc中的文件,matlab,Matlab,对于标题的简单解释,假设您使用的是Photoshop图层,其中噪波位于顶层 % load a test image I = rgb2gray(imread('peppers.png')); % recreate image cmap = colormap(); % grab current colormap ncolors = size(cmap,1); % do what imagesc does Iind = double(I) - double(min(I(:)));

对于标题的简单解释,假设您使用的是Photoshop图层,其中噪波位于顶层

% load a test image
I = rgb2gray(imread('peppers.png'));

% recreate image
cmap = colormap();          % grab current colormap
ncolors = size(cmap,1);
% do what imagesc does
Iind = double(I) - double(min(I(:)));
Iind = Iind / max(Iind(:));
% quantize image
Iind = round(Iind * ncolors + 0.5);
Iind(Iind > ncolors) = ncolors;
Iind(Iind < 1) = 1;
% convert to RGB from indexed image using cmap as palette
Irgb = ind2rgb(Iind,cmap);

imwrite(Irgb, 'filename.bmp');
这将在视觉上生成一个完全不同的颜色贴图,而带有噪波的颜色贴图看起来有点褪色。顶部图像是原始图像,底部是噪声。

编辑:下图是左上角的裁剪图像。左边是原始的,右边是噪音。在右边,你可以看到颜色有点褪色,如果你仔细看,你可以看到一个噪音(深蓝色,位置(50,50))


你知道在添加噪音后如何保持原样吗?提前谢谢

问题在于,您正在向原始图像添加噪声(介于0和1之间),原始图像具有
min=8
max=255
。这将新的最小值减少到0或1(输入图像的类型为
uint8
,看起来MATLAB对随机数进行了取整),从而略微延伸了彩色贴图。有两种选择可以避免这种情况

在原始图像的范围内添加随机噪声
I(50,50)=randi([min(I(:)),max(I(:)]);
缩放原始图像后添加随机噪波
Irgb(50,50)=兰德(1);

在我看来,这两张链接的图片看起来一模一样。你能强调一下差异吗?如果你仔细看,后面的画布是最明显的,有点褪色。对不起,我还是不确定我看到了效果。我也看不到效果<代码>顶部图像为原始图像,底部为原始图像。这是什么意思?哪一个是原创的?对不起,那是错别字。事实上,你不需要看图片就能知道区别。如果添加了噪波,像素强度将发生变化,因此比例将不同,因此输出图像颜色将被缩放。
I(50,50) = rand(1);