Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.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去噪_Matlab_Gaussian_Noise - Fatal编程技术网

Matlab去噪

Matlab去噪,matlab,gaussian,noise,Matlab,Gaussian,Noise,我想去除图像中的噪声。我得到的图像是一个.mat文件,但它非常复杂,因为当我加载mat文件时,看不到图像,然后我使用imwrite使其成为jpg imwrite(destroyedImg,'fr.jpg') 但当我使用imshow时,我只能得到白色背景中的彩色圆点 有没有办法找出如何清除这张照片中的噪音?! 我不允许使用内部函数,但可以自己构建一个!但我无法找出噪音的类型,然后将其消除!我还必须返回RGB格式的“清晰图像”,而不是灰度 这是我的一些代码 clear all; close all;

我想去除图像中的噪声。我得到的图像是一个.mat文件,但它非常复杂,因为当我加载mat文件时,看不到图像,然后我使用imwrite使其成为jpg

imwrite(destroyedImg,'fr.jpg')

但当我使用imshow时,我只能得到白色背景中的彩色圆点

有没有办法找出如何清除这张照片中的噪音?! 我不允许使用内部函数,但可以自己构建一个!但我无法找出噪音的类型,然后将其消除!我还必须返回RGB格式的“清晰图像”,而不是灰度

这是我的一些代码

clear all; close all; 
load('image_destroyed.mat');
imwrite(image_destroyed, 'fraou.jpg');
img = imread('fraou.jpg'); 
subplot(2,2,1), imshow(img)
title('Fraou');
H = fspecial('average',[3 3]);
average = imfilter(img, H, 'replicate');
subplot(2,2,2), imshow(average);
title('average');H = fspecial('gaussian',[5 5]);
average = imfilter(img, H, 'replicate');
subplot(2,2,3); imshow(average);title('gaussian');
H = wiener2(img,[5 5]);
subplot(2,2,4); imshow(H)
title('wiener 5x5');

以下代码假定
image\u destromed
image\u destromed.mat
中包含的变量,可能是导致问题的原因:

load('image_destroyed.mat');
imwrite(image_destroyed, 'fraou.jpg');
img = imread('fraou.jpg');
最佳状态下这相当于
img=image\u,因此是不必要的。很有可能(考虑到你奇怪的结果,很有可能)这个写/读过程实际上通过不适当的缩放或剪切、压缩等,给你的图像带来了进一步的退化


对于MATLAB图像处理函数,使用Double时,应确保数据在0和1之间缩放。

不要使用
imwrite
'jpg'
获取图像-这只会引入伪影。
您的输入图像类型为
double
,其值超出了范围
[0..1]
,因此会产生混淆

load('image_destroyed.mat');
image_destroyed = image_destroyed / 255.0; % back to [0..1] range
imshow( image_destroyed ); % should be meaningful now.

你用谷歌搜索过如何消除噪音吗?例如,从一个低通滤波器开始……我已经尝试使用fspecial、medfilt2和wiener2函数来理解噪声的类型,然后自己创建一个类似的函数,但没有成功!这是我的图片,请包含您尝试的代码使用
imagesc
查看任何类似矩阵的变量(不仅仅是灰色图像)。如果您的.mat确实是RGB图像,则需要进行一些操作才能正确查看图像(如缩放、剪裁和转换)。为什么要将
图像写入jpg,并将其作为
img
读回?一个好的起点是向我们展示
whos-file image\u destromed.mat的输出。这是正确的,它是有意义的!!!现在我可以看到这幅画了!但是错的是双倍的数字,所以我不得不把它们改成0,1,我不知道怎么做!这是我的错,非常感谢@非常欢迎你。祝你的作业顺利。