資源簡介
TV模型圖像修復 ;matlab語言;去除人臉上的雜字;運算不斷迭代就可以了,迭代次數可自定義,或是不斷迭代直到某條件成立都是可以的。

代碼片段和文件信息
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(ij)==0
???????????img(ij)=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(ij)==0?????%如果當前像素是被污染的像素,則進行處理
????????????????????????????????????????????
????????????????Un=sqrt((img(ij)-img(i-1j))^2+((img(i-1j-1)-img(i-1j+1))/2)^2);
????????????????Ue=sqrt((img(ij)-img(ij+1))^2+((img(i-1j+1)-img(i+1j+1))/2)^2);
????????????????Uw=sqrt((img(ij)-img(ij-1))^2+((img(i-1j-1)-img(i+1j-1))/2)^2);
????????????????Us=sqrt((img(ij)-img(i+1j))^2+((img(i+1j-1)-img(i+1j+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(ij)=Hon*img(i-1j)+Hoe*img(ij+1)+How*img(ij-1)+Hos*img(i+1j)+Hoo*img(ij);
????????????
????????????end
????????end
????end
????img=imgn;
????
end
figure;
imshow(img[])
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????1430??2018-10-21?09:21??tuxiangxiufu1\Unti
?????文件???????10555??2018-10-21?09:23??tuxiangxiufu1\lena.jpg
?????文件???????38118??2018-10-21?09:27??tuxiangxiufu1\ma.jpg
?????目錄???????????0??2018-10-21?09:27??tuxiangxiufu1\
- 上一篇:multisim 四路搶答器
- 下一篇:數值計算方法 基于 MATLAB實現
評論
共有 條評論