【图像修复】基于matlab全变分TV+curvelet变换彩色图像修复【含Matlab源码 461期】

举报
海神之光 发表于 2022/05/29 04:25:36 2022/05/29
【摘要】 一、TV整体变分修复算法简介 TV整体变分修复算法最早由Rudin等人于1992年提出, 随后很多学者对其进行了分析和研究。Chan等人指出, 由于图像不平滑以及受噪声影响等原因, 一些模型的实际修复效...

一、TV整体变分修复算法简介

TV整体变分修复算法最早由Rudin等人于1992年提出, 随后很多学者对其进行了分析和研究。Chan等人指出, 由于图像不平滑以及受噪声影响等原因, 一些模型的实际修复效果往往较差, 并在此基础上提出了图像修复应该遵循的3大原则:

  1. 待修复区域应该是局部的, 且完全由待修复区域附近的信息确定;
  2. 能够修复断裂的狭窄边缘;
  3. 对噪声具有鲁棒性。

1 TV模型算法
TV模型算法上依据上述3个原则, 通过最小化能量泛函来修复破损图像, 其原理如图1所示。
在这里插入图片描述
图1 图像修复原理图
图1中, D为待修复区域, Γ为D的边界, E为D的外邻域。假定在区域E中一点u0|E被高斯白噪声所污染, 修复后的图像函数为u, 代价函数定义为
R (u) =∫E∪Dr (|∇u|) dxdy (1)
且满足约束条件
在这里插入图片描述
式中:Area (E) 为E区域的面积;σ为高斯白噪声的标准偏差。则上述问题转化为:找到合适的函数u使得代价函数 (1) 最小。由Lagrange乘数法, 可以将代价函数 (1) 转化为
在这里插入图片描述
根据Euler-Lagrange方程求解函数u, 可以得到迭代
公式 u (n) O=∑P∈Λh (n-1) OPu (n-1) P +h (n-1) OOu (n-1) O (4)
其中, hOP (P∈Λ, Λ={N, S, W, E}, hOO, 为权值系数。

二、部分源代码

clear all;close all;clc;
if 0
    img = imread('lina.jpg');
end
if 1
     img = imread('butterfly.png');
end

img = imresize(img,0.5);
img = im2double(img);
[n_row,n_col,c] = size(img);
% randomly choose missing lines (75% lost)
miss_data = repmat(rand(15,15) > 0.5,[15,15,c]); %根据实际图片大小创建匹配维度的随机噪声矩阵
miss_image = img.*miss_data;
% miss_image(miss_data == 0) = 1;
% imshow(miss_image);
% some parameters
maxiter = 40;
check   = 10;
lambda  = 640;%自定义平滑指数
tic
% grayscale images
if c == 1
    % inpainting using a TV prior
    u1 = TV_inpainting_primal_dual(miss_image, miss_data, lambda, maxiter*4, check);
time1=toc
    % inpainting using a Curvelet prior(fast discrete curvelet transform)
    u2 = Curvelet_inpainting_primal_dual(miss_image, miss_data, lambda, maxiter, check);
time2=toc
end
%rgb images
if c == 3
    u3 = rgb_TV_inpainting_primal_dual(miss_image, miss_data, lambda, maxiter*4, check); 
        time3=toc
    u4 = rgb_Curvelet_inpainting_primal_dual(miss_image, miss_data, lambda, maxiter, check);
        time4=toc
end

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

三、运行结果

在这里插入图片描述

四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 蔡利梅.MATLAB图像处理——理论、算法与实例分析[M].清华大学出版社,2020.
[2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,2013.
[3]周品.MATLAB图像处理与图形用户界面设计[M].清华大学出版社,2013.
[4]刘成龙.精通MATLAB图像处理[M].清华大学出版社,2015.
[5]何凯,张涛,梁然.一种基于全变分模型的图像修复改进算法[J].光电子.激光. 2010,21(12)

文章来源: qq912100926.blog.csdn.net,作者:海神之光,版权归原作者所有,如需转载,请联系作者。

原文链接:qq912100926.blog.csdn.net/article/details/114461447

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。