溫馨提示×

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

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

C++ OpenCV怎么使用InRange對(duì)HSV顏色進(jìn)行分割

發(fā)布時(shí)間:2021-07-16 10:47:10 來(lái)源:億速云 閱讀:1007 作者:chen 欄目:大數(shù)據(jù)

這篇文章主要講解了“C++ OpenCV怎么使用InRange對(duì)HSV顏色進(jìn)行分割”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“C++ OpenCV怎么使用InRange對(duì)HSV顏色進(jìn)行分割”吧!


API函數(shù)

void inRange(InputArray src, InputArray lowerb, InputArray upperb, OutputArray dst)
官方文檔中的解釋:檢查數(shù)組元素是否在另外兩個(gè)數(shù)組元素值之間。這里的數(shù)組通常也就是矩陣Mat或向量。請(qǐng)注意:該函數(shù)輸出的dst是一幅二值化之后的圖像。

使用示例1:針對(duì)單通道圖像
dst(I) = lowerb(I)0 ≤ src(I)0 < upperb(I)0
即,如果一幅灰度圖像的某個(gè)像素的灰度值在指定的高、低閾值范圍之內(nèi),則在dst圖像中令該像素值為255,否則令其為0,這樣就生成了一幅二值化的輸出圖像。

使用示例2:針對(duì)三通道圖像
dst(I) = lowerb(I)0 ≤ src(I)0 < upperb(I)0 ∧ lowerb(I)1 ≤ src(I)1 < upperb(I)1 ∧lowerb(I)2 ≤ src(I)2 < upperb(I)2
即,每個(gè)通道的像素值都必須在規(guī)定的閾值范圍內(nèi)!


代碼演示

我們?cè)傩陆ㄒ粋€(gè)項(xiàng)目名為opencv--video2,按照配置屬性(VS2017配置OpenCV通用屬性),然后在源文件寫入#include和main方法

C++ OpenCV怎么使用InRange對(duì)HSV顏色進(jìn)行分割

C++ OpenCV怎么使用InRange對(duì)HSV顏色進(jìn)行分割

我這里提前錄了一個(gè)test6.mp4的視頻,我們這里運(yùn)行一下這個(gè)程序看看原始視頻。

從視頻中我們看到,里面我拿了一個(gè)藍(lán)色的按摩器來(lái)鏡頭里來(lái)回晃動(dòng)。

下面我們就通過(guò)InRange的函數(shù)把藍(lán)色提取出來(lái)進(jìn)行分割。在《》一篇中的顏色HSV的表格中我們可以看到藍(lán)色的H范圍在100-124之間,S的范圍在43-255之間,V的范圍在46-255之間,如下圖:

C++ OpenCV怎么使用InRange對(duì)HSV顏色進(jìn)行分割

所以我們?cè)诖a中先把這兩個(gè)范圍值定義出來(lái)

C++ OpenCV怎么使用InRange對(duì)HSV顏色進(jìn)行分割

然后我們?cè)谝曨l播放的時(shí)候需要對(duì)原始圖像轉(zhuǎn)換變HSV圖像,然后通過(guò)InRange把顏色分割后顯示出來(lái)

C++ OpenCV怎么使用InRange對(duì)HSV顏色進(jìn)行分割

運(yùn)行后的效果就是文章開始的視頻,下面是視頻中的屏幕截圖

C++ OpenCV怎么使用InRange對(duì)HSV顏色進(jìn)行分割

上面的視頻中我們可以看出來(lái),藍(lán)色的都已經(jīng)獲取下來(lái)了,說(shuō)一下重點(diǎn):

  1. 圖像必須先通過(guò)cvtColor轉(zhuǎn)換為HSV的圖像

  2. 定義的Scalar里的三個(gè)數(shù)值就是以H,S,V的參數(shù)設(shè)置的

感謝各位的閱讀,以上就是“C++ OpenCV怎么使用InRange對(duì)HSV顏色進(jìn)行分割”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)C++ OpenCV怎么使用InRange對(duì)HSV顏色進(jìn)行分割這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(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