根据《一种三角权重的图像拼接算法》,其实我觉得应该叫《一种三角权重的图像融合算法》更合适,侧重融合。
A=imread('F:\fisheye\others1.jpg');
B=imread('F:\fisheye\others2.jpg');
[H,W,k]=size(A);
rdata1=-76;
rdata2=5;
Y=2*W+rdata1+1;
C=zeros(H,Y);
for i=1:H
for j=1:W
C(i,j,1)=A(i,j,1);
C(i,j,2)=A(i,j,2);
C(i,j,3)=A(i,j,3);
y=W+j+rdata1;
x=i+rdata2;
if(x>H||x<1||y>Y||y<1)
continue;
end
C(x,y,1)=B(i,j,1);
C(x,y,2)=B(i,j,2);
C(x,y,3)=B(i,j,3);
end
end
C=uint8(C);
[H,Y,k]=size(C);
ay=W+1+rdata1;
cy=W;
if ay<cy
min=ay;
max=cy;
else
min=cy;
max=ay;
end
n=max-min;
for i=1:H
for j=min:max
sita=(j-min)*pi/2/n;
d=cos(sita)*cos(sita);
x=i-rdata2;
y=j-rdata1-W;
if(x<1||x>H||y<1||y>W)
continue;
end
C(i,j,1)=d*A(i,j,1)+(1-d)*B(x,y,1);
C(i,j,2)=d*A(i,j,2)+(1-d)*B(x,y,2);
C(i,j,3)=d*A(i,j,3)+(1-d)*B(x,y,3);
end
end
结果图:
而以前的渐入渐出融合结果: