clc;clear;close all;
img=double(imread('lena.jpg'));
mask=rgb2gray(imread('ma.jpg'))>160;
[m n]=size(img);
for i=1:m
for j=1:n
if mask(i,j)==0
img(i,j)=0;
end
end
end
imshow(img,[]); %合成的需要修复的图像
lambda=0.2;
a=0.5;
imgn=img;
for l=1:300 %迭代次数
for i=2:m-1
for j=2:n-1
if mask(i,j)==0 %如果当前像素是被污染的像素,则进行处理
Un=sqrt((img(i,j)-img(i-1,j))^2+((img(i-1,j-1)-img(i-1,j+1))/2)^2);
Ue=sqrt((img(i,j)-img(i,j+1))^2+((img(i-1,j+1)-img(i+1,j+1))/2)^2);
Uw=sqrt((img(i,j)-img(i,j-1))^2+((img(i-1,j-1)-img(i+1,j-1))/2)^2);
Us=sqrt((img(i,j)-img(i+1,j))^2+((img(i+1,j-1)-img(i+1,j+1))/2)^2);
Wn=1/sqrt(Un^2+a^2);
We=1/sqrt(Ue^2+a^2);
Ww=1/sqrt(Uw^2+a^2);
Ws=1/sqrt(Us^2+a^2);
Hon=Wn/((Wn+We+Ww+Ws)+lambda);
Hoe=We/((Wn+We+Ww+Ws)+lambda);
How=Ww/((Wn+We+Ww+Ws)+lambda);
Hos=Ws/((Wn+We+Ww+Ws)+lambda);
Hoo=lambda/((Wn+We+Ww+Ws)+lambda);
imgn(i,j)=Hon*img(i-1,j)+Hoe*img(i,j+1)+How*img(i,j-1)+Hos*img(i+1,j)+Hoo*img(i,j);
end
end
end
img=imgn;
end
figure;
imshow(img,[])
用matlab TV模型图像修复
需积分: 3 166 浏览量
2018-10-21
11:56:09
上传
评论 4
收藏 49KB ZIP 举报
qq_42575305
- 粉丝: 1
- 资源: 2
最新资源
- HC小区开源项目的一个分支项目,主要给业主使用,包括缴物业费,缴停车费,投诉建议,房屋保修 房屋出租,公告查看,小区圈等功能
- 基于element-ui的年度选择器
- 211040100431梁玉凤.zip
- MyDockFinder.1.8.8.5.Official.Version-piracyisbadmkay.zip
- choose1111111
- 爬虫-数据分析-实战项目代码
- 博文《入门机器视觉的正确打开方式-徒手撸一个python+opencv实现的机器视觉简易调试工具》配套python源码
- MyDockFinder.1.8.6.Official.Version-piracyisbadmkay.zip
- 软考中级系统集成项目管理工程师五组十域图
- 基于Flurl.Http的微信HTTP API SDK,包含公众平台、开放平台、商户平台、企业微信、广告平台、对话开放平台等模块
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈