Gray和BGR<-->HSV。要用到的函數(shù)是:cv2.cvtColor(inp" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

OpenCV-Python學(xué)習(xí)筆記(六):顏色空間轉(zhuǎn)換(Changing

系統(tǒng) 2012 0

OpenCV 圖像處理之顏色空間轉(zhuǎn)換
目標(biāo)
? 你將學(xué)習(xí)如何對圖像進(jìn)行顏色空間轉(zhuǎn)換,比如從 BGR 到灰度圖,或者從BGR 到 HSV 等。
? 我沒還要創(chuàng)建一個程序用來從一幅圖像中獲取某個特定顏色的物體。
? 我們將要學(xué)習(xí)的函數(shù)有: cv2.cvtColor(), cv2.inRange() 等。

1.轉(zhuǎn)換顏色空間


在 OpenCV 中有超過 150 種進(jìn)行顏色空間轉(zhuǎn)換的方法。但是我們經(jīng)常用到的也就兩種: BGR<-->Gray 和 BGR<-->HSV。
要用到的函數(shù)是: cv2.cvtColor(input_image,flag) ,其中 flag就是轉(zhuǎn)換類型。

對于 BGR->Gray 的轉(zhuǎn)換,我們要使用的 flag 就是 cv2.COLOR_BGR2GRAY
同樣對于 BGR->HSV 的轉(zhuǎn)換,我們用的 flag 就是 cv2.COLOR_BGR2HSV。 ?


注意:在 OpenCV 的 HSV 格式中,?H(色彩/色度)的取值范圍是 [0, 179],S(飽和度)的取值范圍 [0, 255], V(亮度)的取值范圍 [0, 255]。但是不同的軟件使用的值可能不同。所以當(dāng)你需要拿 OpenCV 的 HSV 值與其他軟件的 HSV 值進(jìn)行對比時,一定要記得歸一化。
?

2 物體跟蹤
?

現(xiàn)在我們知道怎樣將一幅圖像從 BGR 轉(zhuǎn)換到 HSV 了,我們 可以利用這一點(diǎn)來提取帶有某個特定顏色的物體 。在 HSV 顏色空間中要比在 BGR 空間中更容易表示一個特定顏色。在下面的程序中,我們要提取的是一個藍(lán)色的物體。下面就是就是我們要做的幾步:

? 從視頻中獲取每一幀圖像
? 將圖像轉(zhuǎn)換到 HSV 空間
? 設(shè)置 HSV 閾值到藍(lán)色范圍。
? 獲取藍(lán)色物體,當(dāng)然我們還可以做其他任何我們想做的事,比如:在藍(lán)色物體周圍畫一個圈。
代碼如下,為簡單起見,省略了從視頻中獲取每一幀圖像,直接讀入圖像:

            
              import cv2
import numpy as np

img = cv2.imread(r'D:\OpenCV_Python\chepai.jpg')
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV_FULL)

lower_blue = np.array([120, 100, 100])
upper_blue = np.array([179, 255, 255])


mask = cv2.inRange(hsv, lower_blue, upper_blue)

res = cv2.bitwise_and(img, img, mask=mask)

cv2.imshow('image', img)
cv2.imshow('mask', mask)
cv2.imshow('res', res)

cv2.waitKey(0)
cv2.destroyAllWindows()
            
          

結(jié)果如下圖:

OpenCV-Python學(xué)習(xí)筆記(六):顏色空間轉(zhuǎn)換(Changing Colorspaces)_第1張圖片

注意:圖像中仍然有一些噪音,我們會在后面的章節(jié)中介紹如何消減噪音。


注意:這是物體跟蹤中最簡單的方法。當(dāng)你學(xué)習(xí)了輪廓之后,你就會學(xué)到更多相關(guān)知識,那是你就可以找到物體的重心,并根據(jù)重心來跟蹤物體,僅僅在攝像頭前揮揮手就可以畫出同的圖形,或者其他更有趣的事。

3 怎樣找到要跟蹤對象的 HSV 值?

在上述示例中,我們要用到一個關(guān)鍵的參數(shù),即要跟蹤的對象的HSV值,但是怎樣找到要跟蹤對象的 HSV 值呢?
在OpenCV中,可以這樣做:(以標(biāo)準(zhǔn)紅綠藍(lán)為例)

            
              import cv2
import numpy as np

“”“
# 注意:下面代碼里不能用 [0,255,0],而要用 [[[0,255,0]]]
# 這里的三層括號應(yīng)該分別對應(yīng)于 cvArray, cvMat, IplImage
“””

blue = np.uint8([[[255, 0, 0]]])
hsv_blue = cv2.cvtColor(blue, cv2.COLOR_BGR2HSV)
print('hsv_blue : ', hsv_blue)

green = np.uint8([[[0, 255, 0]]])
hsv_green = cv2.cvtColor(green, cv2.COLOR_BGR2HSV)
print('hsv_green : ', hsv_green)

red = np.uint8([[[0, 0, 255]]])
hsv_red = cv2.cvtColor(red, cv2.COLOR_BGR2HSV)
print('hsv_red : ', hsv_red)
            
          

?結(jié)果如下:

OpenCV-Python學(xué)習(xí)筆記(六):顏色空間轉(zhuǎn)換(Changing Colorspaces)_第2張圖片

這樣,就大概知道了對應(yīng)HSV的值的范圍,現(xiàn)在你可以分別用 [H-100, 100, 100] 和 [H+100, 255, 255] 做上
下閾值。除了這個方法之外,你可以使用任何其他圖像編輯軟件(例如 GIMP、Photoshop)或者Halcon或者在線轉(zhuǎn)換軟件找到相應(yīng)的 HSV 值,但是最后別忘了調(diào)節(jié) HSV 的范圍。
?

?這里以O(shè)penCV logo為例,提取其中的藍(lán)色部分:

            
              import cv2
import numpy as np

img = cv2.imread('opencv_logo.jpg')

hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

lower_blue = np.array([100, 100, 100])
upper_blue = np.array([140, 255, 255])


mask = cv2.inRange(hsv, lower_blue, upper_blue)

res = cv2.bitwise_and(img, img, mask=mask)

cv2.imshow('image', img)
cv2.imshow('mask', mask)
cv2.imshow('res', res)

cv2.waitKey(0)
cv2.destroyAllWindows()
            
          

結(jié)果如圖:

OpenCV-Python學(xué)習(xí)筆記(六):顏色空間轉(zhuǎn)換(Changing Colorspaces)_第3張圖片

?

參考文獻(xiàn):《OpenCV-Python 中文教程》(段力輝 譯)

圖片來源于網(wǎng)絡(luò),侵刪


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美人与动人物a级网站 | 国产精品视频不卡 | 久久99精品久久久久久黑人 | 一级毛片成人免费看免费不卡 | 欧美一及| 91手机在线视频观看 | 亚洲国产精品自产在线播放 | 看免费的毛片 | 欧美色欧美亚洲高清在线观看 | 亚洲色欧美 | 青青青国产免费线在 | 欧美区一区二区三 | 看全色黄大色黄大片爽一下 | 国产小福利 | 99视频在线精品免费观看18 | 色偷偷综合 | 可以免费观看的一级毛片 | 精品久久久久久久久久中文字幕 | 久久国产视频在线观看 | 亚洲夜夜骑 | 91婷婷| 久久这里只有精品国产99 | 中文日韩 | 91成人精品视频 | 四虎w345com| 波多野结衣中文字幕一区二区 | 99热久久国产这里有只有精品 | 91伦理片 | 精品国产中文字幕 | 亚洲视频1 | 成人国产综合 | 日日操日日碰 | 色综合天天综合给合国产 | 精品一区中文字幕 | 欧美亚洲动漫 | a4yy私人毛片 | 极品福利| 四虎影视8848a四虎在线播放 | 精品国产不卡一区二区三区 | 日韩中文字幕免费观看 | 在线播放真实国产乱子伦 |