资源简介
本资源里有有效的CDD图像修复的matlab程序,程序里是正确的曲率K计算公式,还有有效的TV模型matlab程序,CDD修复效果见博客http://blog.csdn.net/cs_o_1/article/details/52943306
提醒:CDD模型不具有较好的收敛性,迭代次数得上千,效果才比较好,博客中CDD修复的迭代次数达到2000次
代码片段和文件信息
close all;
clc;
clear;
%--------------------------读入图像------------------------------------------
imgoriginal=imread(‘yuan.png‘);
figure(1);
imshow(imgoriginal);
[widthheight] = size(imgoriginal);
img= double(imgoriginal);
%--------------------------获取掩码图像---------------------------------------------
mask = zeros(widthheight/33);
for j = 1:height/3
for i = 1:width
if ((imgoriginal(ij1) >220)&&(imgoriginal(ij2) >220)&&(imgoriginal(ij3) >220))
mask(ij1) = 255;
mask(ij2) = 255;
mask(ij3) = 255;
else
mask(ij1) = 0;
mask(ij2) = 0;
mask(ij3) = 0;
end
end
end
figure(2);
imshow(mask);
%--------------------------更新原图修复区域内每点值------------------------------------------
a=zeros(widthheight);
I=cat(3a2*a3*a);
J=cat(3a2*a3*a);
n = 1;
itertimes=1000;
tic;
while n <= itertimes
for i = 2:width-1
for j = 2:height/3-1
if (mask(ij+11) == 255)||(mask(ij-11) == 255)||(mask(i+1j1) == 255)||(mask(i-1j1) == 255)
for k=1:3
grid_w(k) = (img(ijk)-img(i-1jk))^2+(1.0/16)*(img(i-1j+1k)+img(ij+1k)-img(i-1j-1k)-img(ij-1k))^2;
grid_e(k) = (img(ijk)-img(i+1jk))^2+(1.0/16)*(img(ij+1k)+img(i+1j+1k)-img(ij-1k)-img(i+1j-1k))^2;
grid_s(k) = (img(ijk)-img(ij-1k))^2+(1.0/16)*(img(i+1jk)+img(i+1j-1k)-img(i-1jk)-img(i-1j-1k))^2;
grid_n(k) = (img(ijk)-img(ij+1k))^2+(1.0/16)*(img(i+1jk)+img(i+1j+1k)-img(i-1jk)-img(i-1j+1k))^2;
I(ijk)=0.5*(img(i+1jk)-img(i-1jk))/sqrt(0.25*(img(i+1jk)-img(i-1jk))^2+0.25*(img(ij+1k)-img(ij-1k))^2+1);
J(ijk)=0.5*(img(ij+1k)-img(ij-1k))/sqrt(0.25*(img(i+1jk)-img(i-1jk))^2+0.25*(img(ij+1k)-img(ij-1k))^2+1);
Kw(k)=sqrt((I(ijk)-I(i-1jk)+(I(i-1j+1k)+I(ij+1k)-I(i-1j-1k)-I(ij-1k))/2)^2+(J(ijk)-J(i-1jk)+(J(i-1j+1k)+J(ij+1k)-J(i-1j-1k)-J(ij-1k))/2)^2);
Ke(k)=sqrt((I(i+1jk)-I(ijk)+(I(ij+1k)+I(i+1j+1k)-I(ij-1k)-I(i+1j-1k))/2)^2+(J(i+1jk)-J(ijk)+(J(ij+1k)+J(i+1j+1k)-J(ij-1k)-J(i+1j-1k))/2)^2);
Ks(k)=sqrt((I(ijk)-I(ij-1k)+(I(i+1jk)+I(i+1j-1k)-I(i-1jk)-I(i-1j-1k))/2)^2+(J(ijk)-J(ij-1k)+(J(i+1jk)+J(i+1j-1k)-J(i-1jk)-J(i-1j-1k))/2)^2);
Kn(k)=sqrt((I(ij+1k)-I(ijk)+(I(i+1jk)+I(i+1j+1k)-I(i-1jk)-I(i-1j+1k))/2)^2+(J(ij+1k)-J(ijk)+(I(i+1jk)+J(i+1j+1k)-J(i-1jk)-J(i-1j+1k))/2)^2);
w1(k) = Kw(k)/sqrt(1+grid_w(k))+1;
w2(k) = Ke(k)/sqrt(1+grid_e(k))+1;
w3(k) = Ks(k)/sqrt(1+grid_s(k))+1;
w4(k) = Kn(k)/sqrt(1+grid_n(k))+1;
img(ijk) =(w1(k)*img(i-1jk)+w2(k)*img(i+1jk)+w3(k)*img(ij-1k)+w4(k)*img(ij+1k))/(w1(k)+w2(k)+w3(k)+w4(k));
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 66614 2012-04-14 18:39 CDD\bc.bmp
文件 196662 2012-10-04 21:21 CDD\C1.bmp
文件 196662 2012-10-04 22:35 CDD\C1001.bmp
文件 196662 2012-10-04 23:30 CDD\C1003.bmp
文件 196662 2012-10-04 23:34 CDD\C1004.bmp
文件 196662 2012-04-20 20:58 CDD\C13.bmp
文件 196662 2012-04-20 20:55 CDD\C13x.bmp
文件 66614 2012-11-06 23:20 CDD\cdd.bmp
文件 3281 2016-10-27 15:02 CDD\CDD.m
文件 66614 2012-10-04 20:24 CDD\cdd2_abcd.bmp
文件 196662 2012-05-01 10:26 CDD\CDD_n100.bmp
文件 196662 2012-10-04 23:32 CDD\CDD_n1000.bmp
文件 196662 2012-10-04 23:36 CDD\CDD_n10004.bmp
文件 196662 2012-05-01 10:27 CDD\CDD_n200.bmp
文件 196662 2012-05-01 10:23 CDD\CDD_n50.bmp
文件 504456 2016-10-27 15:05 CDD\CDD修复后.bmp
文件 786486 2012-04-20 22:03 CDD\dt.bmp
文件 786486 2012-04-20 22:03 CDD\dtx.bmp
文件 66614 2012-10-07 20:44 CDD\TV1.bmp
文件 126849 2016-10-27 13:52 CDD\yuan.png
文件 786486 2012-03-18 22:16 TV\lena.bmp
文件 1710666 2012-06-06 16:42 TV\lena1.bmp
文件 786486 2012-06-06 16:42 TV\lena_修复后.bmp
文件 786486 2012-06-06 15:05 TV\lena_原图.bmp
文件 786486 2012-06-06 16:42 TV\lena_掩码图像.bmp
文件 2189 2016-10-27 15:10 TV\TV.m
文件 2270846 2012-06-06 16:47 TV\男兵.bmp
文件 1044989 2012-06-06 16:47 TV\男兵_修复后.png
文件 136150 2012-06-06 15:24 TV\男兵_原图.jpg
文件 35655 2012-06-06 16:43 TV\男兵_掩码图像.png
............此处省略5个文件信息
- 上一篇:贝叶斯压缩感知matlab函数包
- 下一篇:RVM-MATLAB-V1.3.zip
评论
共有 条评论