非纹理的曲率驱动扩散的图像修复matlab源码程序 - matlab图像处理 - 谷速源码
下载频道> 资源分类> matlab源码> 图像处理> 非纹理的曲率驱动扩散的图像修复matlab源码程序

标题:非纹理的曲率驱动扩散的图像修复matlab源码程序
分享到:

所属分类: 图像处理 资源类型:程序源码 文件大小: 2.56 KB 上传时间: 2019-06-16 15:04:59 下载次数: 85 资源积分:1分 提 供 者: zhangsan456 CDDinpainting
内容:
非纹理的曲率驱动扩散的图像修复matlab源码程序
function [B] = L3_29()
R=imread('L4_6.jpg'); %读入待修复图像
R=double(R);        %把图像值uint8型转为double型
[nrow ncol]=size(R);  %读图像大小,nrow为图像高度,ncol为图像宽度
% R_mask=imread('mask.jpg');%读模版
mask=double(R>80 & R<150);  %把模版转换成0、1阵列,待修复为1,其他为0;同时把数值转为double型,使之可以参与MATLAB里的数值计算。
%系数设定
p=1;
dt=1;%时间步长
I=R;
tic   %计时开始
for n=1:2000  %迭代次数,其值可以任选
    for i=3:nrow-2
        for j=3:ncol-2  %选择开始点和终点,以消除在图像边缘,进行中心差分法时,数值溢出;因为待修复区在图像内部,去除图像边缘点,不影响结果
            if mask(i,j)==1
            %求J_e^1
            deta_I1=((I(i,j+1)-I(i,j))^2+(0.25*(I(i-1,j+1)+I(i-1,j)-I(i+1,j+1)-I(i+1,j)))^2+eps)^(1/2); 
            k1_x=(I(i,j+2)+I(i,j)-2*I(i,j+1))/((I(i,j+2)+I(i,j)-2*I(i,j+1))^2+(I(i-1,j+1)+I(i+1,j+1)-2*I(i,j+1))^2+eps)^(1/2)...
                -((I(i,j+1)+I(i,j-1)-2*I(i,j))/((I(i,j+1)+I(i,j-1)-2*I(i,j))^2+(I(i-1,j)+I(i+1,j)-2*I(i,j))^2+eps)^(1/2));
            k1_y=0.25*((I(i-2,j+1)+I(i,j+1)-2*I(i-1,j+1))/((I(i-1,j+2)+I(i-1,j)-2*I(i-1,j+1))^2+(I(i-2,j+1)+I(i,j+1)-2*I(i-1,j+1))^2+eps)^(1/2)...
                 +(I(i-2,j)+I(i,j)-2*I(i-1,j))/((I(i-1,j+1)+I(i-1,j-1)-2*I(i-1,j))^2+(I(i-2,j)+I(i,j)-2*I(i-1,j))^2+eps)^(1/2)...
                 -(I(i,j+1)+I(i+2,j+1)-2*I(i+1,j+1))/((I(i+1,j+2)+I(i+1,j)-2*I(i+1,j+1))^2+(I(i,j+1)+I(i+2,j+1)-2*I(i+1,j+1))^2+eps)^(1/2)...
                 -(I(i,j)+I(i+2,j)-2*I(i+1,j))/((I(i+1,j+1)+I(i+1,j-1)-2*I(i+1,j))^2+(I(i,j)+I(i+2,j)-2*I(i+1,j))^2+eps)^(1/2));
             k1=abs(k1_x+k1_y);
             Ve_1=(I(i,j+1)-I(i,j))*(k1^p)/deta_I1;
             %求J_w^1
             deta_I2=((I(i,j)-I(i,j-1))^2+(0.25*(I(i-1,j-1)+I(i-1,j)-I(i+1,j-1)-I(i+1,j)))^2+eps)^(1/2);
             k2_x=(I(i,j+1)+I(i,j-1)-2*I(i,j))/((I(i,j+1)+I(i,j-1)-2*I(i,j))^2+(I(i-1,j)+I(i+1,j)-2*I(i,j))^2+eps)^(1/2)...
                 -(I(i,j)+I(i,j-2)-2*I(i,j-1))/((I(i,j)+I(i,j-2)-2*I(i,j-1))^2+(I(i+1,j-1)+I(i-1,j-1)-2*I(i,j-1))^2+eps)^(1/2);
             k2_y=0.25*((I(i-2,j-1)+I(i,j-1)-2*I(i-1,j-1))/((I(i-2,j-1)+I(i,j-1)-2*I(i-1,j-1))^2+(I(i-1,j)+I(i-1,j-2)-2*I(i-1,j-1))^2+eps)^(1/2)...
                   +(I(i-2,j)+I(i,j)-2*I(i-1,j))/((I(i-2,j)+I(i,j)-2*I(i-1,j))^2+(I(i-1,j-1)+I(i-1,j+1)-2*I(i-1,j))^2+eps)^(1/2)...
                   -(I(i,j-1)+I(i+2,j-1)-2*I(i+1,j-1))/((I(i,j-1)+I(i+2,j-1)-2*I(i+1,j-1))^2+(I(i+1,j)+I(i+1,j-2)-2*I(i+1,j-1))^2+eps)^(1/2)...
                   -(I(i,j)+I(i+2,j)-2*I(i+1,j))/((I(i,j)+I(i+2,j)-2*I(i+1,j))^2+(I(i+1,j+1)+I(i+1,j-1)-2*I(i+1,j))^2+eps)^(1/2));
             k2=abs(k2_x+k2_y);
             Vw_1=(I(i,j)-I(i,j-1))*(k2^p)/deta_I2;
             %求J_n^2
             deta_I3=((0.25*(I(i-1,j+1)+I(i,j+1)-I(i-1,j-1)-I(i,j-1)))^2+(I(i,j)-I(i-1,j))^2+eps)^(1/2);
             k3_x=0.25*((I(i-1,j+2)+I(i-1,j)-2*I(i-1,j+1))/((I(i-1,j+2)+I(i-1,j)-2*I(i-1,j+1))^2+(I(i-2,j+1)+I(i,j+1)-2*I(i-1,j+1))^2+eps)^(1/2)...
                  +(I(i,j+2)+I(i,j)-2*I(i,j+1))/((I(i,j+2)+I(i,j)-2*I(i,j+1))^2+(I(i-1,j+1)+I(i+1,j+1)-2*I(i,j+1))^2+eps)^(1/2)...
                  -(I(i-1,j)+I(i-1,j-2)-2*I(i-1,j-1))/((I(i-1,j)+I(i-1,j-2)-2*I(i-1,j-1))^2+(I(i,j-1)+I(i-2,j-1)-2*I(i-1,j-1))^2+eps)^(1/2)...
                  -(I(i,j)+I(i,j-2)-2*I(i,j-1))/((I(i,j)+I(i,j-2)-2*I(i,j-1))^2+(I(i+1,j-1)+I(i-1,j-1)-2*I(i,j-1))^2+eps)^(1/2));
             k3_y= (I(i-2,j)+I(i,j)-2*I(i-1,j))/((I(i-2,j)+I(i,j)-2*I(i-1,j))^2+(I(i-1,j+1)+I(i-1,j-1)-2*I(i-1,j))^2+eps)^(1/2)...
                     -(I(i-1,j)+I(i+1,j)-2*I(i,j))/((I(i-1,j)+I(i+1,j)-2*I(i,j))^2+(I(i,j+1)+I(i,j-1)-2*I(i,j))^2+eps)^(1/2);
             k3=abs(k3_x+k3_y);
             Vn_2=(I(i-1,j)-I(i,j))*(k3^p)/deta_I3;
             %求J_s^2;
             deta_I4=(((I(i+1,j+1)+I(i,j+1)-I(i+1,j-1)-I(i,j-1))*0.25)^2+(I(i+1,j)-I(i,j))^2+eps)^(1/2);
             k4_x=0.25*((I(i+1,j+2)+I(i+1,j)-2*I(i+1,j+1))/((I(i+1,j+2)+I(i+1,j)-2*I(i+1,j+1))^2+(I(i,j+1)+I(i+2,j+1)-2*I(i+1,j+1))^2+eps)^(1/2)...
                  +(I(i,j+2)+I(i,j)-2*I(i,j+1))/((I(i,j+2)+I(i,j)-2*I(i,j+1))^2+(I(i-1,j+1)+I(i+1,j+1)-2*I(i,j+2))^2+eps)^(1/2)...
                  -(I(i+1,j)+I(i+1,j-2)-2*I(i+1,j-1))/((I(i+1,j)+I(i+1,j-2)-2*I(i+1,j-1))^2+(I(i,j-1)+I(i+2,j-1)-2*I(i+1,j-1))^2+eps)^(1/2)...
                  -(I(i,j)+I(i,j-2)-2*I(i,j-1))/((I(i,j)+I(i,j-2)-2*I(i,j-1))^2+(I(i+1,j-1)+I(i-1,j-1)-2*I(i,j-1))^2+eps)^(1/2));
             k4_y=(I(i-1,j)+I(i+1,j)-2*I(i,j))/((I(i-1,j)+I(i+1,j)-2*I(i,j))^2+(I(i,j+1)+I(i,j-1)-2*I(i,j))^2+eps)^(1/2)...
                   -(I(i,j)+I(i+2,j)-2*I(i+1,j))/((I(i,j)+I(i+2,j)-2*I(i+1,j))^2+(I(i+1,j+1)+I(i+1,j-1)-2*I(i+1,j))^2+eps)^(1/2);
              k4=abs(k4_x+k4_y);
              Vs_2=(I(i,j)-I(i+1,j))*(k4^p)/deta_I4;
              %求delta_J
              deta_J=Ve_1-Vw_1+Vn_2-Vs_2;
              %迭代公式
              I(i,j)=I(i,j)+dt*deta_J; 
        end
    end
  end 
end
toc  %计时结束,输出循环所用时间
figure,imshow(uint8(R));%输出原待修复图
figure,imshow(mask);    %输出模版
figure,imshow(uint8(I)); %输出修复后图像

文件列表(点击上边下载按钮,如果是垃圾文件请在下面评价差评或者投诉):

CDDinpainting/
CDDinpainting/L3_29.m
CDDinpainting/L4_6.jpg

关键词: 非纹理 曲率驱动扩散 图像修复

Top_arrow
回到顶部
联系方式| 版权声明| 招聘信息| 广告服务| 银行汇款| 法律顾问| 兼职技术| 付款方式| 关于我们|
网站客服网站客服 程序员兼职招聘 程序员兼职招聘
沪ICP备19040327号-3
公安备案号:沪公网安备 31011802003874号
库纳格流体控制系统(上海)有限公司 版权所有
Copyright © 1999-2014, GUSUCODE.COM, All Rights Reserved