主要内容

使用预制神经网络从彩色图像中清除噪声

此示例显示如何从RGB图像中删除高斯噪声。将图像分成单独的颜色通道,然后使用预先磨平的去噪神经网络DNCNN来表示每个通道。

将彩色图像读入工作区并将数据转换为双倍的。显示原始彩色图像。

pristinergb = imread('lighthouse.png');pristinergb = im2double(pristinergb);imshow(pristinergb)标题('原始图像​​'

添加零均衡的高斯白噪声,差异为0.01到图像。imnoise.独立地向每个颜色通道添加噪声。显示嘈杂的彩色图像。

noisyrgb = imnoise(pristinergb,'高斯',0,0.01);imshow(noisyrgb)标题('吵闹的形象'

将嘈杂的RGB图像拆分为其各个颜色通道。

[Noisyr,Noisyg,Noisyb] = Imsplit(Noisyrgb);

加载预制的DNCNN网络。

net = denoisingnetwork('dncnn');

使用DNCNN网络从每个颜色通道中移除噪声。

denoisedr = denoiseimage(诺斯罗,净);denoisedg = denoiseimage(noisyg,net);denoisedb = denoiseimage(noisyb,net);

重组去噪色信道以形成去噪的RGB图像。显示去噪彩色图像。

denoisedrgb =猫(3,denoisedr,denoisedg,denoosedb);imshow(denoisedrgb)标题('去世图像'

计算噪声和去噪图像的峰值信噪比(PSNR)。较大的PSNR表示噪声具有较小的相对信号,并且与更高的图像质量相关联。

noisypsnr = psnr(noisyrgb,pristinergb);fprintf('\ n嘈杂图像的PSNR值为%0.4f。,noisypsnr);
嘈杂图像的PSNR值为20.6395。
denoisedpsnr = psnr(denoisedrgb,pristinergb);fprintf('\ n去噪图像的PSNR值为%0.4f。,denoosedpsnr);
去噪图像的PSNR值为29.6857。

计算噪声和去噪图像的结构相似性(SSIM)索引。接近1的SSIM指数表示与参考图像的良好一致性,更高的图像质量。

Noisyssim = SSIM(Noisyrgb,Pristinergb);fprintf('\ n嘈杂图像的SSIM值为%0.4f。,Noisyssim);
嘈杂图像的SSIM值为0.7393。
denoisedssim = ssim(denoisedrgb,pristinergb);fprintf('\ n去噪图像的SSIM值为%0.4f。,denoisedssim);
去噪图像的SSIM值为0.9507。

在实践中,图像颜色通道经常具有相关噪声。为了消除相关图像噪声,首先将RGB图像转换为具有亮度通道的颜色空间,例如L * A * B *颜色空间。仅消除亮度通道上的噪声,然后将DeAoised Image转换回RGB颜色空间。

也可以看看

||||||

相关话题