如何去除图像噪声?

2视图(30天)
Hemanth库马尔
Hemanth库马尔 2021年1月20日
评论道: KALYAN ACHARJYA 2021年1月22日
我知道这是非常基本的但我不知道任何关于matlab。我只是需要一个代码,可以消除噪音。我有一组图片下载从谷歌。我看到一些代码,但问题是,代码由服用胡椒。png和添加盐和胡椒噪音的完美形象。后来使用过滤器去除噪声。我可以消除噪音的代码简单imgae和显示各种渠道和恢复。谢谢。
clc;%明确命令窗口。
清晰;%删除所有变量。
关闭所有;%关闭所有除由imtool图窗口。
imtool关闭所有;%由imtool关闭所有图窗口。
工作空间;%确定工作区面板显示。
字形大小= 15;
%读入一个标准的MATLAB演示图像颜色。
文件夹= fullfile (matlabroot ' \工具箱\ \ imdemos图像');
baseFileName =“peppers.png”;
fullFileName = fullfile(文件夹,baseFileName);
%得到完整的文件名,路径前缀。
fullFileName = fullfile(文件夹,baseFileName);
如果存在~ (fullFileName,“文件”)
%没有找到它。检查它的搜索路径。
fullFileName = baseFileName;%没有路径。
如果存在~ (fullFileName,“文件”)
%仍然没有找到它。提醒用户。
errorMessage = sprintf(错误:%年代并不存在。”,fullFileName);
uiwait (warndlg (errorMessage));
返回;
结束
结束
rgbImage = imread (fullFileName);
%得到图像的尺寸。numberOfColorBands应该= 3。
[行列numberOfColorBands] =大小(rgbImage);
%显示原始彩色图像。
次要情节(3、4、1);
imshow (rgbImage);
标题(“原始彩色图像”,“字形大小”,字形大小);
%全屏放大图。
“位置”,集(gcf获得(0,'拉'));
%提取个人红、绿、蓝通道。
redChannel = rgbImage (:: 1);
greenChannel = rgbImage (:: 2);
blueChannel = rgbImage (:: 3);
%显示单独的红色,绿色和蓝色通道。
次要情节(3、4、2);
imshow (redChannel);
标题(“红色频道”、“字形大小”字形大小);
次要情节(3、4、3);
imshow (greenChannel);
标题(“绿色通道”,“字形大小”,字形大小);
次要情节(3、4、4);
imshow (blueChannel);
标题(“蓝色通道”,“字形大小”,字形大小);
%生成一个嘈杂的图像。这有盐和胡椒噪声独立
%每个颜色通道的噪声可能是彩色的。
noisyRGB = imnoise (rgbImage,盐和胡椒,0.05);
次要情节(3、4、5);
imshow (noisyRGB);
标题(图像噪声用盐和胡椒调味,字形大小,字形大小);
%提取个人红、绿、蓝通道。
redChannel = noisyRGB (:: 1);
greenChannel = noisyRGB (:: 2);
blueChannel = noisyRGB (:: 3);
%显示噪声信道的图像。
次要情节(3、4、6);
imshow (redChannel);
标题(“嘈杂的红色通道”,“字形大小”,字形大小);
次要情节(3、4、7);
imshow (greenChannel);
标题(“嘈杂的绿色通道”,“字形大小”,字形大小);
次要情节(3、4、8);
imshow (blueChannel);
标题(“嘈杂的蓝色通道”,“字形大小”,字形大小);
%中值滤波通道:
redMF = medfilt2 (redChannel [5 5]);
greenMF = medfilt2 (greenChannel [3 3]);
blueMF = medfilt2 (blueChannel [3 3]);
%找到红色的噪音。
noiseImage = (redChannel = = 0 | redChannel = = 255);
%去除噪声的红色与中值代替。
noiseFreeRed = redChannel;
noiseFreeRed (noiseImage) = redMF (noiseImage);
%找到绿色的噪音。
noiseImage = (greenChannel = = 0 | greenChannel = = 255);
%去除噪声的绿色与中值代替。
noiseFreeGreen = greenChannel;
noiseFreeGreen (noiseImage) = greenMF (noiseImage);
%找到蓝色的噪音。
noiseImage = (blueChannel = = 0 | blueChannel = = 255);
%去除噪声的蓝色与中值代替。
noiseFreeBlue = blueChannel;
noiseFreeBlue (noiseImage) = blueMF (noiseImage);
%重建自由RGB图像噪声
rgbFixed =猫(3 noiseFreeRed noiseFreeGreen noiseFreeBlue);
次要情节(3、4、9);
imshow (rgbFixed);
标题(“恢复图像”,“字形大小”,字形大小);
1评论
KALYAN ACHARJYA
KALYAN ACHARJYA 2021年1月22日
如果问题是特定的,它会导致更好的机会去得到答案。

登录置评。

答案(0)

s manbetx 845


释放

R2014a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!