光流与Lucas-Kanade 光流法
光流optical flow是指空間運(yùn)動(dòng)物體在觀察成像平面上的像素運(yùn)動(dòng)瞬時(shí)速度,即由于目標(biāo)對(duì)象或者攝像機(jī)移動(dòng)造成、圖像對(duì)象在連續(xù)兩幀圖像中的移動(dòng)。光流是一個(gè) 2D 向量場(chǎng),如下圖所示,可以顯示一個(gè)點(diǎn)從第一幀圖像到第二 幀圖像之間的移動(dòng):
?
關(guān)于光流的假設(shè):目標(biāo)對(duì)象在連續(xù)的兩幀圖像之間像素灰度值不改變,并且這些相鄰像素都具有相同的運(yùn)動(dòng)。根據(jù)這一假設(shè),Lucas-Kanade 利用一個(gè) 3x3 鄰域中的 9 具有相同運(yùn)動(dòng)的這一點(diǎn)獲得空間尺度上的光流。OpenCV 函數(shù)cv2.calcOpticalFlowPyrLK()、cv2.goodFeatureToTrack()等幫助我們跟蹤視頻中的一些點(diǎn),我們通過(guò)下面的圖像先感受一下:
?
光流跟蹤方法:
##### 示例方法: url_path = 'https://img1.baidu.com/it/u=681934324,621431638&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=333' ori_img = url2img(url_path) img = ori_img.copy() color = np.random.randint(0,255,(100,3)) ### 隨機(jī)顏色 lk_params = dict( winSize = (15,15), maxLevel = 2,criteria = (cv2.TERM_CRITERIA_EPS | cv2.TERM_CRITERIA_COUNT, 10, 0.03))feature_params = dict( maxCorners = 100,qualityLevel = 0.3,minDistance = 7,blockSize = 7 )old_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) p0 = cv2.goodFeaturesToTrack(old_gray, mask = None, **feature_params) mask = np.zeros_like(img, np.uint8) frame_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) p1, st, err = cv2.calcOpticalFlowPyrLK(old_gray, frame_gray, p0, None, **lk_params) good_new = p1[st==1] good_old = p0[st==1] for i,(new,old) in enumerate(zip(good_new,good_old)):a, b = new.ravel()c, d = old.ravel()[a,b,c,d] = map(int, [a,b,c,d])mask = cv2.line(mask, (a, b), (c, d), color[i].tolist() )frame = cv2.circle(img, (a, b), 5, color[i].tolist(), -1) img = cv2.add(frame, mask) mat = np.hstack((ori_img, img)) cv2.imshow("mat", 'mat')?如下是針對(duì)視頻的效果:光流檢測(cè),
https://www.ixigua.com/7103944810792222720?from_scene=all&is_new_connect=0&is_new_user=0&log_from=75482141479d_1654038585719&wid_try=1
今天就分享到這里, 我是paperClub。
備注:WeiXin 搜索paperClub, 添加關(guān)注并回復(fù)【paperClub】即可獲取使用方法。?
1. 感謝各位小伙伴的關(guān)注, 您的點(diǎn)贊、鼓勵(lì)和留言,都是我深夜堅(jiān)持的一份動(dòng)力,無(wú)論褒貶,都是我們行進(jìn)途中最好的回饋,也都會(huì)被認(rèn)真對(duì)待。
2. 我將持續(xù)分享各類(lèi)、好玩且有趣的算法應(yīng)用及工程和項(xiàng)目,歡迎分享和轉(zhuǎn)發(fā)。溝通、學(xué)習(xí)和交流,請(qǐng)與我聯(lián)系,雖然平時(shí)忙,但留言必回,勿急,感謝理解!
3. 分享內(nèi)容包括開(kāi)源項(xiàng)目和自研項(xiàng)目,如在引用或使用時(shí),考慮不周、遺漏引用信息或涉及版權(quán)等,請(qǐng)您及時(shí)聯(lián)系。如果您對(duì)某些內(nèi)容感興趣,我們可以一起討論、交流和學(xué)習(xí)。
?
總結(jié)
以上是生活随笔為你收集整理的光流与Lucas-Kanade 光流法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: crypto 抄错的字符
- 下一篇: 基于FPAG的简易数字频率计设计