資源簡介
自己寫的泊松圖像融合算法的實現,很多地方可以改進
代碼片段和文件信息
function?[S?A?B]=poisson
I=imread(‘BearInWater.bmp‘);
O=imread(‘NewBackGround.bmp‘);?
C=zeros(1162513);
C(1:1161:2511:3)=I(30:14550:3001:3);
num=114*249;??%選定區域內部像素的數目
A=speye(numnum);%系數矩陣?
A=4*A;
X=zeros(num3);%要求的未知向量
B=zeros(num3);%常向量?
%系數矩陣A
for?i=2:113
????for?j=2:248
????????A((i-1)*249+j(i-1)*249+j-1)=-1;
????????A((i-1)*249+j(i-1)*249+j+1)=-1;
????????A((i-1)*249+j(i-2)*249+j)=-1;
????????A((i-1)*249+ji*249+j)=-1;?????
????end
end
%上下邊界上
for?j=1:249
????if?j==1
????????A(jj+1)=-1;
????????A(jj+249)=-1;
????????A(num-249+jnum-249+j+1)=-1;
?????????A(num-249+jnum-249+j-249)=-1;
????end
?????????
????
????if?j==249
????????A(jj-1)=-1;
????????A(jj+249)=-1;
?????????A(num-249+jnum-249+j-1)=-1;
?????????A(num-249+jnum-249+j-249)=-1;
????end
????
????if?j~=1&&j~=249
????????A(jj-1)=-1;
????????A(jj+1)=-1;
????????A(jj+249)=-1;
????????A(num-249+jnum-249+j+1)=-1;
????????A(num-249+jnum-249+j-249)=-1;?
????????A(num-249+jnum-249+j-1)=-1;??????
????end?
end
%左右邊界上.
for?i=2:113
????A((i-1)*249+1(i-1)*249+1+1)=-1;
????A((i-1)*249+1(i-1)*249+1+249)=-1;
????A((i-1)*249+1(i-1)*249+1-249)=-1;
????A(i*249i*249-1)=-1;
????A(i*249i*249-249)=-1;
????A(i*249i*249+249)=-1;
end
%常數向量賦值
for?i=2:115
????for?j=2:250
????????B((i-2)*249+j-1:)=4*C(ij:)-C(ij+1:)-C(ij-1:)-C(i+1j:)-C(i-1j:);?????
????end
end
%上下邊界上
for?j=1:249
????B(j1)=B(j1)+O(200j+1001);
????B(num-249+j1)=B(num-249+j1)+O(215j+1001);
????B(j2)=B(j2)+O(200j+1002);
????B(num-249+j2)=B(num-249+j2)+O(215j+1002);
????B(j3)=B(j3)+O(200j+1003);
????B(num-249+j3)=B(num-249+j3)+O(215j+1003);
end
%左右邊界上.
for?i=1:114
????B((i-1)*249+11)=B((i-1)*249+11)+O(i+2001001);
????B(i*2491)=B(i*2491)+O(i+2003501);
????B((i-1)*249+12)=B((i-1)*249+12)+O(i+2001002);
????B(i*2492)=B(i*2492)+O(i+2003502);
????B((i-1)*249+13)=B((i-1)*249+13)+O(i+2001003);
????B(i*2493)=B(i*2493)+O(i+2003503);
end
%左右邊界上.
H=zeros(1142493);
for?i=1:114
????for?j=1:249
???????H(ij:)=B((i-1)*249+j:);
????end
end
H=uint8(H);
%imshow(H);???
%解稀疏線性方程組
X(:1)=gmres(AB(:1)60);
X(:2)=gmres(AB(:2)60);
X(:3)=gmres(AB(:3)60);
%將解以三維數組的形式表示
S=zeros(1142493);
for?i=1:114
????for?j=1:249
????????S(ij:)=X((i-1)*249+j:);
????end
end
O(201:314101:349:)=S(1:1141:249:);
????
%輸出解
imshow(O);???????
end
????????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2591??2012-02-23?21:42??poisson.m
-----------?---------??----------?-----??----
?????????????????2591????????????????????1
- 上一篇:CS KSVDSR
- 下一篇:Edit68CMU pack
評論
共有 條評論