Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/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 如何使用遮罩去除图像的噪声_Matlab_Image Processing_Noise Reduction - Fatal编程技术网

Matlab 如何使用遮罩去除图像的噪声

Matlab 如何使用遮罩去除图像的噪声,matlab,image-processing,noise-reduction,Matlab,Image Processing,Noise Reduction,前几天我问了一些类似的问题,最后我解决了那部分,但我又被卡住了 我想创建一个噪声过滤器,以消除图像中的噪声,避免边缘和边界。我的输入是一个图像文件,滤波器是一个平滑的线性FIR 但我希望结果与原始内容混合写入输出,遵循下一个等式: result(x,y) = original(x,y)*mask(x,y) + filter_output(x,y)*(1-mask(x,y)) 其中:原始(x,y)将是输入,带有噪声的图像(,带有高斯噪声)。 遮罩(x,y)是基于图像边缘的系数矩阵() 和滤波器输

前几天我问了一些类似的问题,最后我解决了那部分,但我又被卡住了

我想创建一个噪声过滤器,以消除图像中的噪声,避免边缘和边界。我的输入是一个图像文件,滤波器是一个平滑的线性FIR

但我希望结果与原始内容混合写入输出,遵循下一个等式:

result(x,y) = original(x,y)*mask(x,y) + filter_output(x,y)*(1-mask(x,y))
其中:原始(x,y)将是输入,带有噪声的图像(,带有高斯噪声)。 遮罩(x,y)是基于图像边缘的系数矩阵() 和滤波器输出(x,y)应为线性FIR后的图像

我的问题是:我尝试了太多的过滤器和噪声类型(高斯、盐和胡椒…),但没有得到好的结果。我得到的结果(x,y)与有噪声的图像相同!有任何变化。真奇怪

哪个过滤器是正确的?我不知道我的错误是在过滤器中还是在代码中。但有些事情实施得不对。这是代码

filter = ones(5,5) / 25;
a2 = imfilter(a,filter); % a is the image with noise, a2 is the filtered image (output)

%The equation. G is the mask.

result=uint8(a).*uint8(G) + uint8(a2).*uint8(1-G);
imshow(result);
附言:没有噪音


有什么想法吗?非常感谢你

a2
a
上应用平均滤波器后平滑。我试图理解您希望在结果图像中显示的内容。实际上,您的
G
,是在sobel运算符之后获得的,也是一个
uint8
图像,范围从0到255。所以我猜你的

result=uint8(a).*uint8(G) + uint8(a2).*uint8(1-G);
应该是
result=a.*uint8(G1)+a2.*uint8(1-G1)其中
G1=im2bw(G,thresh)
带有预设的
thresh

编辑

回应您的建议:使用

result=a2+(255-G);

掩码
G
的值范围是多少?
[min(G),max(G)]
的输出是什么?
G
的数据类型是什么?它是双精度的还是双精度的?G的范围是[0,1],512x512,double.Hello。我希望只在平坦区域获得无噪声的图像,避免边缘和边界。我照你说的做了,我也有同样的麻烦。结果,我在平坦区域获得了一个有噪声的图像。我会继续努力的。我不知道我能不能解释一下,对不起。仅使用过滤器(a->a2),我得到了一个平滑的图像,没有噪音,但边缘模糊。使用这个方程,目标是获得没有噪声的图像,但保持原始边缘,即不模糊。使用result=a2+(255-G);?不@lennon310,我知道你想做什么,但我有一个黑色背景。无论如何谢谢你!:)我会继续查找错误。