资源简介
CDD的matlab代码,里面也有处理前和处理后的图像。
用的是lena标准图。下载后注意改代码中图像的相对位置
代码片段和文件信息
function [B] = CDDInpainting()
tic;
%t0 = clock;
ImgOriginal=imread(‘Lena1.bmp‘);
figure(1);imshow(ImgOriginal);
[widthheight] = size(ImgOriginal);
Img = double(ImgOriginal);
U = Img;
V = Img;
n = 1;
a=0.0001;
IterTimes=150;
MASK=~(Img>=251); %人为选择阈值
figure(2);imshow(MASK);
while n <= IterTimes
%更新修复区域内每点值
for i = 2:width-1
for j = 2:height-1
% if (MASK(ij+1) == 255)|(MASK(ij-1) == 255)|(MASK(i+1j) == 255)|(MASK(i-1j) == 255)
if MASK(ij) == 0
if MASK(ij) == 0
%计算w1w2w3w4
gridw2 = (V(ij)-V(i-1j))^2+((V(i-1j-1)-V(i-1j+1))/2)^2;
gride2 = (V(ij)-V(i+1j))^2+((V(i+1j-1)-V(i+1j+1))/2)^2;
grids2 = (V(ij)-V(ij-1))^2+((V(i-1j-1)-V(i+1j-1))/2)^2;
gridn2 = (V(ij)-V(ij+1))^2+((V(i-1j+1)-V(i+1j+1))/2)^2;
a1 = 1/sqrt(gridw2+a);
a2 = 1/sqrt(gride2+a);
a3 = 1/sqrt(grids2+a);
a4 = 1/sqrt(gridn2+a);
k =(a1*V(i-1j)+a2*V(i+1j)+a3*V(ij+1)+a4*V(ij-1))/(a1+a2+a3+a4);
end
%计算w1w2w3w4
gridUw2 = (V(ij)-V(i-1j))^2+((V(i-1j-1)-V(i-1j+1))/2)^2;
gridUe2 = (V(ij)-V(i+1j))^2+((V(i+1j-1)-V(i+1j+1))/2)^2;
gridUs2 = (V(ij)-V(ij-1))^2+((V(i-1j-1)-V(i+1j-1))/2)^2;
gridUn2 = (V(ij)-V(ij+1))^2+((V(i-1j+1)-V(i+1j+1))/2)^2;
w1 = k/sqrt(gridUw2+a);
w2 = k/sqrt(gridUe2+a);
w3 = k/sqrt(gridUs2+a);
w4 = k/sqrt(gridUn2+a);
U(ij) =(w1*V(i-1j)+w2*V(i+1j)+w3*V(ij+1)+w4*V(ij-1))/(w1+w2+w3+w4);
end
end
end
n = n+1;
V = U;
end
D = floor(V);
figure(3);imshow(D[]);
inpaintedImg=double(D);
% origImg=double(ImgOriginal);
% % fill_mse=mse(origImg(fill(:))-inpaintedImg(fill(:)))
% fill_all=mse(origImg-inpaintedImg)
% psnr_img=10*log10(255^2/fill_all)
origImg=double(imread(‘Lena.bmp‘));
% fill_mse=mse(origImg(fill(:))-inpaintedImg(fill(:)))
fill_all=mse(origImg-inpaintedImg)
fill_all_before=mse(origImg-double(ImgOriginal))
psnr_img=10*log10(255^2/fill_all)
toc;
%etime(clockt0)
%imwrite(uint8(D)‘inpainted.bmp‘);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2369 2010-12-17 13:37 CDD\CDDgray.m
文件 5723 2010-12-17 13:37 CDD\CDDRGB.m
文件 263224 2010-12-17 13:37 CDD\Lena.bmp
文件 263222 2010-12-17 13:37 CDD\Lena1.bmp
文件 263222 2010-12-17 13:37 CDD\Lena2.bmp
文件 263222 2010-12-17 13:37 CDD\Lena3.bmp
文件 263222 2010-12-17 13:37 CDD\Lena4.bmp
文件 263222 2010-12-17 13:37 CDD\Lena5.bmp
文件 263222 2010-12-17 13:37 CDD\Lena6.bmp
文件 274262 2010-12-17 13:37 CDD\Lincoln2.bmp
..A.SH. 42496 2010-12-17 14:04 CDD\Thumbs.db
目录 0 2010-12-17 14:04 CDD
----------- --------- ---------- ----- ----
2167406 12
相关资源
- sift特征检测的matlab程序实现
- 计算电磁场的矩量法部分程序的MATL
- dct域数字水印MATLAB代码及实验报告
- matlab反距离权重插值
- 基于栅格地图的A-星算法路径规划
- 基于栅格地图的A星算法路径规划
- 关于PID整定的matlab,m文件
- 10分钟搞定matlabGUI.ppt
- 通信原理课程设计 课程设计 MATLA
- PCM编码器与PCM解码器的MATLAB实现及性
- 模糊神经网络的构建及MATLAB仿真
- 期末设计基于Criminisi算法的matlab实现
- MATLAB智能算法30个案例分析 源代码
- wuyufei_Turbo码matlab仿真.rar
-
基于MATLAB_Simuli
nk的扩频通信系统仿 - Image Deformation Using Moving Least Squaresma
- 通信系统仿真课后答案
- Matlab+R2008a+安装教程.pdf
- MATLAB仿真空调系统
- Duda《模式分类》第二版的Matlab源代码
- 超完整规范的多目标遗传优化算法M
- Matlab优化算法.pdf
- matlab动力学分析程序详解
- 车牌识别MATLAB程序
- 基于蚁群算法和神经网络匹配算法的
- MapleToolboxforMATLAB-MapleToolboxforMATLAB操作
- MapleToolboxforMATLAB-Maple Toolbox for MATLAB演
- matlab开发-Image2Data
- MATLAB条形码识别GUI版.zip
- LSB算法水印安全性测试及MATLAB实现
评论
共有 条评论