【图像去噪】基于BdCNN算法实现图像去噪含Matlab源码

简介: 【图像去噪】基于BdCNN算法实现图像去噪含Matlab源码

1 简介

The removal of mixed noise is a stiff problem since the distribution of the noise cannot be predicted accurately. The most common mixed noise is the combination of Additive White Gaussian Noise (AWGN) and Impulse Noise (IN). Many methods first attempt to remove IN but it might collapse the texture of the image. In this paper, we propose a new learning-based method using convolutional neural network (CNN) for removing mixed gaussian-impulse noise. Since our denoising network can remove various level of mixed noise, neither the preprocessing for removing IN nor noise-level estimation is necessary.

2 部分代码

% Use this code when trainingtraining_image_list = {};for a=1000:2:1200        training_image_list = [training_image_list,['image/train/train_image_gray', num2str(a) ,'.png']];    endpatch_size = 33;train_data = zeros(patch_size, patch_size, 1000000, 'single');train_label = zeros(patch_size, patch_size, 1000000, 'single');num_patches = 0;% Make training datafor image_index = 1 : length(training_image_list)    fprintf('Reading %s\n', training_image_list{image_index});        for impulse_loop =1        for impulse_noise_rate = 0:5:45             for gaussian_noise_sigma = 0:10:50                        img_original = im2single(imread(training_image_list{image_index}));            img_original = padarray(img_original, ceil(size(img_original)/patch_size)*patch_size-size(img_original) ,'symmetric','post');                        % AWGN            img_noisy = img_original + (gaussian_noise_sigma / 255) * randn(size(img_original));                        % RVIN            img_noise_position = rand(size(img_original)) < impulse_noise_rate / 100;            img_noisy(repmat(img_noise_position,1,1)) = rand(1, sum(img_noise_position(:)));                        if impulse_noise_rate>0                if gaussian_noise_sigma >0                    if rand<0.15                        % SPIN                        img_noise_position = rand(size(img_original)) < randi(30) / 100;                        img_noisy(repmat(img_noise_position,1,1)) = rand(1, sum(img_noise_position(:)))>0.5;                    end                end            end                                    tmp_data = im2col(img_noisy, [patch_size, patch_size], 'distinct');            tmp_data = reshape(tmp_data, patch_size, patch_size, []);            tmp_label = im2col(img_original, [patch_size, patch_size], 'distinct');            tmp_label = reshape(tmp_label, patch_size, patch_size, []);                        train_data(:, :, num_patches + 1 : num_patches + size(tmp_data, 3)) = tmp_data;            train_label(:, :, num_patches + 1 : num_patches + size(tmp_label, 3)) = tmp_label;                        num_patches = num_patches + size(tmp_data, 3);            end        end    endendtrain_data = train_data(:, :, 1 : num_patches);train_label = train_label(:, :, 1 : num_patches);% reshape to MxNx1xCtrain_data = reshape(train_data, patch_size, patch_size, 1, []);train_label = reshape(train_label, patch_size, patch_size, 1, []);% save('mixed_data.mat','train_data','train_label');% clear allfprintf('Complete.\n');

3 仿真结果

4 参考文献

Ryo Abiko, and Masaaki Ikehara. "Blind Denoising of Mixed Gaussian-impulse Noise by Single CNN." ICASSP 2019-2019 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2019.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。


相关文章
|
1天前
|
算法 数据安全/隐私保护 计算机视觉
基于二维CS-SCHT变换和LABS方法的水印嵌入和提取算法matlab仿真
该内容包括一个算法的运行展示和详细步骤,使用了MATLAB2022a。算法涉及水印嵌入和提取,利用LAB色彩空间可能用于隐藏水印。水印通过二维CS-SCHT变换、低频系数处理和特定解码策略来提取。代码段展示了水印置乱、图像处理(如噪声、旋转、剪切等攻击)以及水印的逆置乱和提取过程。最后,计算并保存了比特率,用于评估水印的稳健性。
|
1天前
|
算法 计算机视觉
基于高斯混合模型的视频背景提取和人员跟踪算法matlab仿真
该内容是关于使用MATLAB2013B实现基于高斯混合模型(GMM)的视频背景提取和人员跟踪算法。算法通过GMM建立背景模型,新帧与模型比较,提取前景并进行人员跟踪。文章附有程序代码示例,展示从读取视频到结果显示的流程。最后,结果保存在Result.mat文件中。
|
1天前
|
资源调度 算法 块存储
m基于遗传优化的LDPC码OMS译码算法最优偏移参数计算和误码率matlab仿真
MATLAB2022a仿真实现了遗传优化的LDPC码OSD译码算法,通过自动搜索最佳偏移参数ΔΔ以提升纠错性能。该算法结合了低密度奇偶校验码和有序统计译码理论,利用遗传算法进行全局优化,避免手动调整,提高译码效率。核心程序包括编码、调制、AWGN信道模拟及软输入软输出译码等步骤,通过仿真曲线展示了不同SNR下的误码率性能。
9 1
|
1天前
|
存储 算法 数据可视化
基于harris角点和RANSAC算法的图像拼接matlab仿真
本文介绍了使用MATLAB2022a进行图像拼接的流程,涉及Harris角点检测和RANSAC算法。Harris角点检测寻找图像中局部曲率变化显著的点,RANSAC则用于排除噪声和异常点,找到最佳匹配。核心程序包括自定义的Harris角点计算函数,RANSAC参数设置,以及匹配点的可视化和仿射变换矩阵计算,最终生成全景图像。
|
1天前
|
算法 Serverless
m基于遗传优化的LDPC码NMS译码算法最优归一化参数计算和误码率matlab仿真
MATLAB 2022a仿真实现了遗传优化的归一化最小和(NMS)译码算法,应用于低密度奇偶校验(LDPC)码。结果显示了遗传优化的迭代过程和误码率对比。遗传算法通过选择、交叉和变异操作寻找最佳归一化因子,以提升NMS译码性能。核心程序包括迭代优化、目标函数计算及性能绘图。最终,展示了SNR与误码率的关系,并保存了关键数据。
15 1
|
1天前
|
算法 调度
考虑需求响应的微网优化调度模型【粒子群算法】【matlab】
考虑需求响应的微网优化调度模型【粒子群算法】【matlab】
|
1天前
|
运维 算法
基于改进遗传算法的配电网故障定位(matlab代码)
基于改进遗传算法的配电网故障定位(matlab代码)
|
1天前
|
算法 调度
基于多目标粒子群算法冷热电联供综合能源系统运行优化(matlab代码)
基于多目标粒子群算法冷热电联供综合能源系统运行优化(matlab代码)
|
1天前
|
算法
【免费】基于ADMM算法的多微网电能交互分布式运行策略(matlab代码)
【免费】基于ADMM算法的多微网电能交互分布式运行策略(matlab代码)
|
1天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于有序抖动块截断编码的水印嵌入和提取算法matlab仿真
这是一个关于数字图像水印嵌入的算法介绍。使用MATLAB2022a,该算法基于DOTC,结合抖动和量化误差隐藏,确保水印的鲁棒性和隐蔽性。图像被分为N*N块,根据水印信号进行二值化处理,通过调整重建电平的奇偶性嵌入水印。水印提取是嵌入过程的逆操作,通过重建电平恢复隐藏的水印比特。提供的代码片段展示了从块处理、水印嵌入到噪声攻击模拟及水印提取的过程,还包括PSNR和NC的计算,用于评估水印在不同噪声水平下的性能。

热门文章

最新文章