一种基于凸优化的图像去噪方法演示
来源:互联网 发布:nginx版本1.13 编辑:程序博客网 时间:2024/05/17 08:12
本文介绍一种基于凸优化的图像去噪方法。 该方法采用L1范数来衡量图像的平滑度,即能滤除澡声,又能最大限度地保存图像的边缘。 模型如下:
其中f(x)为差分矩阵,存放了X每个元素与其4邻域的差值。 I为输入的灰度图像。 对于三通道彩色图像,可对每个通道进行单独处理。gamma为权重,值趣大则图像越平滑。
上述模型为无约束的最小化问题 ,用线性规化可解。 在这里用一个很强大通用的matlab算法包CVX[1]进行求解,可从网上下载。 代码如下:
clc;
clear;
close all;
%% 读入图像并进行加噪处理
I = imread('lean.jpg');
noise_level = 0.2;
G = mat2gray(I) + randn(size(I))*noise_level;
J = zeros(size(I));
%% 对每个通道进行优化
gamma = 0.003;
for i=1:3
g = G(:,:,i);
[m,n] = size(g);
cvx_begin
variable x(m,n)
minimize (norm(x-g,'fro')+gamma*sum(sum(abs((x(:,1:end-1)-x(:,2:end)))))+gamma*sum(sum(abs((x(1:end-1,:)-x(2:end,:))))))
cvx_end
J(:,:,i) = x; %保存优化结果
end
%% 显示图像
figure;
subplot(131);
imshow(I)
title('original image');
subplot(132);
imshow(G)
title('corrupted image');
subplot(133);
imshow(mat2gray(J));
str = ['denoising result (\gamma = ' num2str(gamma) ')'];
title(str);
clear;
close all;
%% 读入图像并进行加噪处理
I = imread('lean.jpg');
noise_level = 0.2;
G = mat2gray(I) + randn(size(I))*noise_level;
J = zeros(size(I));
%% 对每个通道进行优化
gamma = 0.003;
for i=1:3
g = G(:,:,i);
[m,n] = size(g);
cvx_begin
variable x(m,n)
minimize (norm(x-g,'fro')+gamma*sum(sum(abs((x(:,1:end-1)-x(:,2:end)))))+gamma*sum(sum(abs((x(1:end-1,:)-x(2:end,:))))))
cvx_end
J(:,:,i) = x; %保存优化结果
end
%% 显示图像
figure;
subplot(131);
imshow(I)
title('original image');
subplot(132);
imshow(G)
title('corrupted image');
subplot(133);
imshow(mat2gray(J));
str = ['denoising result (\gamma = ' num2str(gamma) ')'];
title(str);
经过设置不同的gamma值,得到如下三个结果:
参考:
[1] Michael Grant and Stephen Boyd. CVX: Matlab software for disciplined convex programming, version 2.0 beta.http://cvxr.com/cvx, September 2013.
阅读全文
0 0
- 一种基于凸优化的图像去噪方法演示
- 一种基于凸优化的图像去噪方法演示
- 一种基于图像对比度的去雾方法
- 一种基于单张图像的去雾算法研究
- 一种图像去噪算法的实现
- 基于优化对比度增强的图像去雾算法
- 基于总差变模型的图像去噪
- 基于FPGA的图像去噪
- 基于 DCT 过完备字典和 K-SVD 的图像稀疏去噪方法
- 基于 opencv图像去噪
- [转]图像处理去噪的方法
- 图像处理去噪的方法
- 常用的图像去噪方法
- 优化IPOL网站中基于DCT(离散余弦变换)的图像去噪算法(附源代码)。
- 优化IPOL网站中基于DCT(离散余弦变换)的图像去噪算法(附源代码)。
- 避免图像去雾算法中让天空部分出现过增强的一种简易方法
- 避免图像去雾算法中让天空部分出现过增强的一种简易方法。
- 案例演示:图像去雾
- Harris Corner Detector 公式推导以及具体含义
- SpringBoot 框架整合 (二) : MyBatis + Mapper + mybatis-generator
- Python之数组拼接,组合,连接
- QT使用属性页qtpropertybrowser
- 欢迎使用CSDN-markdown编辑器
- 一种基于凸优化的图像去噪方法演示
- Hadoop2.7.3下Hive 与MySQL
- python 匹配字符串开头和结尾
- 使用scikit-learn实现决策树的算法模板
- sort方法对象中按照某个属性排序
- sqlserver约束详解及用途
- 为什么匿名内部类中用外部类的成员变量,外部类的成员变量必须是final
- MLAPP读书笔记(一)监督式学习与非监督式学习简介
- java开发编译器:把结构体数组编译成java字节码