这个例子展示了如何使用去噪卷积神经网络从RGB图像中去除高斯噪声。
将彩色图像读入工作区并将数据转换为数据类型双
.显示原始彩色图像。
pristineRGB = imread (“lighthouse.png”);pristineRGB = im2double (pristineRGB);imshow (pristineRGB)标题(原始图像的)
添加零均匀高斯白噪声,方差为0.01到图像。这imnoise
功能为每个颜色通道单独添加噪声。显示有噪声的彩色图像。
Noisyrgb = imnoise(pristinergb,“高斯”, 0, 0.01);imshow (noisyRGB)标题(“嘈杂的图像”)
预先训练的去噪卷积神经网络(DnCNN)对单通道图像进行操作。将有噪声的RGB图像分成三个单独的颜色通道。
[noisyR, noisyG noisyB] = imsplit (noisyRGB);
加载预训练的DnCNN网络。
网= denoisingNetwork (“dncnn”);
使用DnCNN网络去除每个颜色通道的噪声。
denoisedR = denoiseImage (noisyR,净);denoisedG = denoiseImage (noisyG,净);denoisedB = denoiseImage (noisyB,净);
将去噪后的彩色通道重新组合,形成去噪后的RGB图像。显示去噪后的彩色图像。
denoisedRGB =猫(3 denoisedR denoisedG denoisedB);imshow (denoisedRGB)标题(”“去噪图像)
计算噪声图像和去噪图像的峰值信噪比(PSNR)。PSNR越大,说明噪声的相对信号越小,图像质量越高。
noisyPSNR = psnr (noisyRGB pristineRGB);流('\ n嘈杂图像的PSNR值为%0.4f。', noisyPSNR);
嘈杂图像的PSNR值为20.6395。
denoisedpsnr = psnr(denoisedrgb,pristinergb);流(“\n去噪后图像的PSNR值为%0.4f。”, denoisedPSNR);
去噪后图像的PSNR值为29.6857。
计算噪声图像和去噪图像的结构相似度(SSIM)指数。SSIM指数接近1表示与参考图像一致性好,图像质量较高。
noisySSIM = ssim (noisyRGB pristineRGB);流('\n噪声图像的SSIM值为%0.4f。', noisySSIM);
噪声图像的SSIM值为0.7393。
denoisedSSIM = ssim (denoisedRGB pristineRGB);流('\n去噪后图像的SSIM值为%0.4f ', denoisedSSIM);
去噪后图像的SSIM值为0.9507。
在实际应用中,图像的彩色通道经常存在相关噪声。要去除相关图像噪声,首先将RGB图像转换为具有亮度通道的颜色空间,如L*a*b*颜色空间。只去除亮度通道上的噪声,然后将去噪后的图像转换回RGB颜色空间。
denoisingNetwork
(图像处理工具箱)|denoiseImage
(图像处理工具箱)|RGB2LAB.
(图像处理工具箱)|lab2rgb
(图像处理工具箱)|psnr值
(图像处理工具箱)|SSIM
(图像处理工具箱)|imnoise
(图像处理工具箱)