溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C++ OpenCV基于顏色分割如何實(shí)現(xiàn)源視頻上物體追蹤

發(fā)布時(shí)間:2021-11-15 14:37:17 來源:億速云 閱讀:202 作者:柒染 欄目:大數(shù)據(jù)

本篇文章給大家分享的是有關(guān)C++ OpenCV基于顏色分割如何實(shí)現(xiàn)源視頻上物體追蹤,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

實(shí)現(xiàn)思路

  1. 對(duì)源視頻用InRange進(jìn)行顏色分割

  2. 對(duì)分割出來的圖像進(jìn)行形態(tài)學(xué)操作(開操作去燥)

  3. 然后再進(jìn)行N閃的膨脹(N為整數(shù),需要自己把握)

  4. 對(duì)膨脹后的形態(tài)進(jìn)行查找輪廓

  5. 生成輪廓的外接矩形

  6. 在源圖上把外接矩形繪制出來

代碼實(shí)現(xiàn)

我們還是用上次的那個(gè)項(xiàng)目opencv--video2,按照配置屬性(VS2017配置OpenCV通用屬性),然后在原來的基礎(chǔ)上增加一個(gè)矩形的定義,如下圖紅框所示:

C++ OpenCV基于顏色分割如何實(shí)現(xiàn)源視頻上物體追蹤

對(duì)源視頻用InRange進(jìn)行顏色分割

C++ OpenCV基于顏色分割如何實(shí)現(xiàn)源視頻上物體追蹤

對(duì)分割出來的圖像進(jìn)行開操作(先腐蝕后膨脹)

C++ OpenCV基于顏色分割如何實(shí)現(xiàn)源視頻上物體追蹤

再進(jìn)行4次的膨脹操作,這一步的作用是因?yàn)橐曨l中部門藍(lán)色由于反光的問題會(huì)認(rèn)為是白色,所以在顏色提取的時(shí)候會(huì)變成好幾個(gè)色塊,這樣我們通過膨脹的操作把分散的色塊融合到一起,具體的膨脹次數(shù)可以自己測(cè)試一下。我是直接填的4效果還不錯(cuò)。

C++ OpenCV基于顏色分割如何實(shí)現(xiàn)源視頻上物體追蹤

根據(jù)膨脹后的開關(guān)獲取最小外接矩形

C++ OpenCV基于顏色分割如何實(shí)現(xiàn)源視頻上物體追蹤

上面我們用到了一個(gè)DealRect的函數(shù),我們重點(diǎn)看一下這個(gè)函數(shù),首先在文件最上面定義了DealRect的函數(shù)

C++ OpenCV基于顏色分割如何實(shí)現(xiàn)源視頻上物體追蹤

然后我們?cè)賹慏ealRect的實(shí)現(xiàn)方法

C++ OpenCV基于顏色分割如何實(shí)現(xiàn)源視頻上物體追蹤

C++ OpenCV基于顏色分割如何實(shí)現(xiàn)源視頻上物體追蹤

最后我們?cè)谠磮D上繪制出外接矩形并把圖像顯示出來

C++ OpenCV基于顏色分割如何實(shí)現(xiàn)源視頻上物體追蹤

這樣整個(gè)效果就完成了,生成的結(jié)果就是文章開始時(shí)的視頻顯示效果,下面是視頻中的截圖

C++ OpenCV基于顏色分割如何實(shí)現(xiàn)源視頻上物體追蹤

以上就是C++ OpenCV基于顏色分割如何實(shí)現(xiàn)源視頻上物體追蹤,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI