Image Smoothing via L0 Gradient Minimization
来源:互联网 发布:java识别图片中文文字 编辑:程序博客网 时间:2024/06/08 16:15
研究背景与意义
图像分解:将图像分解为具有不同特征的两层或多层图像。
应用领域:图像去噪,图像增强,高动态图像压缩。
(1)非真实感图像(卡通,铅笔画)
(2)去除卡通图像中的振铃现象(去噪)
(3)对比度增强(图像增强)
(4)图像压缩(HDR图像压缩)
(5)边缘矫正,使边缘变换更平缓
L0 smothing算法原理
图像分解为基础层图像和细节层图像:
式中,
由于需要得到的滤波图像(基础层图像)能够保留较大的边缘,同时去除图像中的纹理、小边缘等梯度较小的细节信息。因此可以考虑以下惩罚函数:
从而可得到目标函数:
为了便于求解,在此引入辅助变量h,v,公式如下:
式中,
具体求解步骤:
计算S:
利用FFT,求解等式(7),可得滤波图像S:
计算:
为了更直观的表示,用代替,重写上式为:
求解等式(11)可得:
推到过程如下:
算法实现步骤:
MATLAB代码:
function S = L0Smoothing(Im, lambda, kappa)if ~exist('kappa','var') kappa = 2.0;endif ~exist('lambda','var') lambda = 2e-2;endS = im2double(Im);betamax = 1e5;fx = [1, -1];fy = [1; -1];[N,M,D] = size(Im);sizeI2D = [N,M];otfFx = psf2otf(fx,sizeI2D);otfFy = psf2otf(fy,sizeI2D);Normin1 = fft2(S);Denormin2 = abs(otfFx).^2 + abs(otfFy ).^2;if D>1 Denormin2 = repmat(Denormin2,[1,1,D]);endbeta = 2*lambda;while beta < betamax Denormin = 1 + beta*Denormin2; % h-v subproblem h = [diff(S,1,2), S(:,1,:) - S(:,end,:)]; v = [diff(S,1,1); S(1,:,:) - S(end,:,:)];%原文 if D==1 t = (h.^2+v.^2)<lambda/beta; else t = sum((h.^2+v.^2),3)<lambda/beta; t = repmat(t,[1,1,D]); end h(t)=0; v(t)=0; % S subproblem Normin2 = [h(:,end,:) - h(:, 1,:), -diff(h,1,2)]; Normin2 = Normin2 + [v(end,:,:) - v(1, :,:); -diff(v,1,1)]; FS = (Normin1+ beta*fft2(Normin2))./Denormin; S = real(ifft2(FS)); beta = beta*kappa; fprintf('.');endfprintf('\n');end
阅读全文
0 0
- Image Smoothing Via L0 Gradient Minimization
- Image Smoothing via L0 Gradient Minimization
- 利用区域协方差:Structure-Preserving Image Smoothing via Region Covariances
- L0 Smoothing 笔记(一)
- L0 Smoothing 笔记(二)
- Improved Image Captioning via Policy Gradient optimization of SPIDEr
- Visual Enhancement using Constrained L0 Gradient Image Decomposition for Low Backlight Displays
- Fast Approximate Energy Minimization via Graph Cuts
- Fast Approximate Energy Minimization via Graph Cuts
- Gradient 并且存为image
- linear-gradient是image属性
- 利用小波变换进行直方图平滑 Histogram Smoothing via the Wavelet Transform
- background-image中的-webkit-gradient属性
- Auto mount iso image via /etc/fstab
- Uploading image to Flickr via AppleScript
- Sharing image via bluetooth 蓝牙分享图片
- Image Denoising via CNNs: An Adversarial Approach
- Supervised Hashing for Image Retrieval via Image Representation Learning
- 编写第一个Spark程序WordCount
- python入门之初体验-----A Byte of Python3
- Android应用程序的Activity启动过程简要介绍和学习计划
- mysql_存储过程
- GC详解及Minor GC和Full GC触发条件总结
- Image Smoothing via L0 Gradient Minimization
- 比特币的原理及运作机制
- codeforces 827D(kruskal+倍增+并查集)
- mysql_触发器
- python从入门到实践:10-6 加法运算
- Linux功耗管理(23)_Linux PM QoS framework(2)_PM QoS class
- A_Byte_Of_Python_1
- 二、log4j配置文件说明
- List<T>排序工具类---泛型和反射实现