C++OpenCV基于Camshift实现颜色范围内的车辆跟踪
生活随笔
收集整理的這篇文章主要介紹了
C++OpenCV基于Camshift实现颜色范围内的车辆跟踪
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
基本概念
camshift("continuously adaptive mean-shift"的縮寫),即連續自適應的 算法。其基本思想是對視頻序列的所有圖像幀都作MeanShift運算,并將上一幀的結果(即搜索窗口的中心位置和窗口大小)作為下一幀MeanShift算法的搜索窗口的初始值,如此迭代下去。簡單點說,meanShift是針對單張圖片尋找最優迭代結果,而camShift則是針對視頻序列來處理,并對該序列中的每一幀圖片都調用meanShift來尋找最優迭代結果。正是由于camShift針對一個視頻序列進行處理,從而保證其可以不斷調整窗口的大小,如此一來,當目標的大小發生變化的時候,該算法就可以自適應地調整目標區域繼續跟蹤。算法基本步驟:
示例演示
在OpenCV自帶的camShift的例子當中,是通過計算目標在HSV空間下的H分量直方圖,通過直方圖反向投影得到目標像素的概率分布,然后通過調用OpenCV的CAMSHIFT算法,自動跟蹤并調整目標窗口的中心位置與大小。該算法對于簡單背景下的單目標跟蹤效果較好,但如果被跟蹤目標與背景顏色或周圍其它目標顏色比較接近,則跟蹤效果較差。另外,由于采用顏色特征,所以它對被跟蹤目標的形狀變化有一定的抵抗能力。
完整代碼
#include <iostream>
#include <opencv2/opencv.hpp&
總結
以上是生活随笔為你收集整理的C++OpenCV基于Camshift实现颜色范围内的车辆跟踪的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 老李分享:六度分隔理论 2
- 下一篇: vijos 1641 Vs Snowy