1.一種光流計(jì)算方法,其特征在于,包括以下步驟:
步驟S110:初始化,從待處理視頻中獲取需要計(jì)算光流的圖像I,調(diào)用灰度化函數(shù)將圖像I灰度化;
步驟S120:用Fast角點(diǎn)檢測(cè)算法確定灰度化圖像I中的所有的Fast角點(diǎn),并存儲(chǔ);
所述步驟S120中包括以下步驟:設(shè)定閾值t,以待求的像素點(diǎn)Pi為圓心,以3個(gè)像素為半徑作圓,所得圓周上包含了16個(gè)像素點(diǎn),設(shè)I(Pi)為Pi點(diǎn)的灰度值,
Fast角點(diǎn)檢測(cè)算法處理16個(gè)像素點(diǎn),如果16個(gè)像素點(diǎn)中任意12個(gè)連續(xù)的像素點(diǎn)的像素灰度值均大于I(Pi)+t或小于I(Pi)-t,則設(shè)該像素點(diǎn)Pi為Fast角點(diǎn),存儲(chǔ)起來(lái),否則,設(shè)該像素點(diǎn)Pi不是Fast角點(diǎn),其中t為閾值;
步驟S130:用Shi-Tomasi算法逐一計(jì)算所述Fast角點(diǎn)并判斷所述Fast角點(diǎn)是否為Shi-Tomasi強(qiáng)角點(diǎn),得到最終需要的強(qiáng)角點(diǎn),并存儲(chǔ):
如果所述Fast角點(diǎn)不是Shi-Tomasi強(qiáng)角點(diǎn),則舍棄該點(diǎn),遍歷所有所述Fast角點(diǎn),通過(guò)Shi-Tomasi角點(diǎn)檢測(cè)算法計(jì)算得到多個(gè)所述最終需要的強(qiáng)角點(diǎn);
步驟S200:采用L-K光流算法計(jì)算所述Shi-Tomasi強(qiáng)角點(diǎn)對(duì)應(yīng)的光流,遍歷各所述Shi-Tomasi強(qiáng)角點(diǎn),輸出光流結(jié)果,求得光流場(chǎng)。
2.根據(jù)權(quán)利要求1所述的光流計(jì)算方法,其特征在于,所述步驟S130中對(duì)于Shi-Tomasi強(qiáng)角點(diǎn)的確定包括以下步驟:
設(shè)圖像I中像素點(diǎn)p(x,y)處的灰度為I(x,y),以P點(diǎn)為中心建立一個(gè)n·n的窗口Ω,將該窗口平移[△x,△y],則該窗口內(nèi)的灰度變化E[△x,△y]為:
其中,w(x,y)為窗口函數(shù),在領(lǐng)域中心點(diǎn)具有較高值,邊緣點(diǎn)值較小。對(duì)于微小的平移,將I(x+△x,y+△y)進(jìn)行泰勒展開(kāi)并忽略二階及以上項(xiàng),帶入(1)式可得:
其中,Ix、Iy分別表示圖像灰度在x和y方向的偏導(dǎo)數(shù),將(2)寫(xiě)成矩陣的形式:
其中M為2×2的矩陣:
對(duì)于像素點(diǎn)p(x,y),若λ1和λ2滿足λ1≥λ2且λ2≥k·λ2max,那么像素點(diǎn)p(x,y)為Shi-Tomasi強(qiáng)角點(diǎn);
如果λ1和λ2不滿足上述條件,那么該像素點(diǎn)p(x,y)不是Shi-Tomasi強(qiáng)角點(diǎn);
其中,λ1和λ2為素點(diǎn)p(x,y)對(duì)于矩陣M的兩個(gè)特征值,λ2max是所有像素點(diǎn)較小特征值中的最大值,k為系數(shù),k·λ2max即為所述閾值λ。
3.根據(jù)權(quán)利要求2所述的光流計(jì)算方法,其特征在于,所述L-K算法中鄰域窗口為5×5。
4.根據(jù)權(quán)利要求3所述的光流計(jì)算方法,其特征在于,所述步驟S200中包括以下步驟:
根據(jù)光流約束方程Ix·u+Iy·v+It=0,其中u、v為像素點(diǎn)的光流分量,建立25個(gè)方程:
通過(guò)公式(6)來(lái)求解最小化的||Ad-b||2,即
(ATA)d=ATb (6)
當(dāng)(AAT)可逆時(shí),方程組的解如下:
當(dāng)圖像I的紋理至少包含兩個(gè)梯度方向時(shí),(ATA)秩為2時(shí),(ATA)有兩個(gè)較大的特征向量,(ATA)可逆,求得方程(7)的解,得到光流。