?? buchang22.m
字號:
% function image12=buchang22(X,pa) %%運(yùn)行正確
% 此程序完成視頻穩(wěn)定系統(tǒng)中的運(yùn)動補(bǔ)償功能
% 根據(jù)全局運(yùn)動估計(jì)參數(shù),也就是模型參數(shù),對于校正后圖像的任一像素坐標(biāo)(x',y')
% 都可以求得它在參考圖像中的對應(yīng)坐標(biāo)(x,y),公式為
% x=(a5*x'-a2*y'-a3*a5+a2*a6)/(a1*a5-a2*a4)
% y=(a4*x'-a1*y'-a3*a4+a1*a6)/(a2*a4-a1*a5)
% 求解后的x和y值未必是整數(shù),而在參考圖像中只有x和y都是整數(shù)時才有像素
% 所以實(shí)現(xiàn)方法是使用雙線性插值方法
% X 輸入的參考圖像
% pa 求得的仿射模型六參數(shù)
% image 視頻校正后的穩(wěn)定圖像
clear all;
close all;
load woman;
image(X); colormap(map);
pa=[0.01 0.005 0.01 0.005 0 0];
X=double(X);
[row,col]=size(X);
B=zeros(row,col);
for xx=1:row % xx相當(dāng)于教正后的圖像的任一像素坐標(biāo)的橫坐標(biāo)x'
for yy=1:col % yy相當(dāng)于教正后的圖像的任一像素坐標(biāo)的縱坐標(biāo)y'
mm=pa(5)*xx-pa(2)*yy-pa(3)*pa(5)+pa(2)*pa(6);
nn=pa(1)*pa(5)-pa(2)*pa(4);
pp=pa(4)*xx-pa(1)*yy-pa(3)*pa(4)+pa(1)*pa(6);
qq=pa(2)*pa(4)-pa(1)*pa(5);
x=mm/nn;
y=pp/qq;
if x<1|x>=row|y<1|y>=col
continue;
end
x1=floor(x); % 確定(x,y)周圍的四個坐標(biāo)點(diǎn)
y1=floor(y);
x2=x1+1;
y2=y1+1;
P1=X(x1,y1); % (x,y)周圍的四個坐標(biāo)點(diǎn)的像素值
P2=X(x1,y2);
P3=X(x2,y1);
P4=X(x2,y2);
% 雙線形插值開始
P12=P1+(x-x1)*(P2-P1);
P34=P3+(x-x1)*(P4-P3);
B(xx,yy)=floor(P12+(y-y1)*(P34-P12)); % 教正后圖像(xx,yy)點(diǎn)的像素值
end
end
image12=B;
figure;
image(image12);colormap(map);
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -