1.轉換顏色空間
在OpenCV中有超過150 種進行顏色空間轉換的方法。經常用到的也就兩種:BGR↔Gray 和 BGR↔HSV。我們用到的函數是cv2.cvtColor(input_image flag),其中flag就是轉換類型。
對於BGR↔Gray的轉換,我們使用的flag就是cv2.COLOR_BGR2GRAY。
對於BGR↔HSV的轉換我們用的flag就是cv2.COLOR_BGR2HSV。
在 OpenCV 的 HSV 格式中,H(色彩/色度)的取值範圍是 [0,179], S(飽和度)的取值範圍 [0,255],V(亮度)的取值範圍 [0,255]。但是不同的軟件使用的值可能不同。
2.物體跟蹤
現在我們知怎樣將一幅圖像從 BGR 換到 HSV 了,我們可以利用 一點來提取帶有某個特定色的物體。在 HSV 顏色空間中要比在 BGR 空間中更容易表示一個特定顏色。
在我們的程序中,我們提取的是一個藍色的物體。下就是就是我們做的幾步:
• 從視頻中獲取每一幀圖像
• 將圖像換到 HSV 空間
• 設置 HSV 閥值到藍色範圍。
• 獲取藍色物體,當然我們可以做其他任何我們想做的事,比如:在藍色物體周圍畫一個圈。
我運行了這個,噪點非常的多,沒出來效果,這是網上的圖,可能還需要再修正這個值,需要消減噪音。
3.怎樣找到要跟蹤對象的HSV值
函數cv2.cvtColor()可以用到這裡,現在需要傳入的參數是RGB的值而不是一幅圖。例如要找到綠色的HSV值,只需在終端輸入以下命令或運行該指令腳本。
你可以分別用 [H-100,100,100] 和 [H+100,255,255] 做上下閥值。
閱讀更多 小5嵌入式 的文章