opencv顏色空間轉換

2021-10-05 11:12:39 字數 1677 閱讀 1314

使用工具python3.5

使用包cv2,numpy

涉及函式cv2.cvtcolor(),cv2.inrange()

.在 opencv 中有 超過150 種進行顏色空間轉換的方法。但是你以後就會發現我們經常用到的也就兩種:bgr↔gray 和 bgr↔hsv。

我們用到的函式是cv2.cvtcolor(input_imageflag),其中flag就是轉換型別。

對於bgr↔gray的轉換,我們使用的flag就是cv2.color_bgr2gray。

同樣對於bgr↔hsv的轉換我們用的flag就是cv2.color_bgr2hsv。

你可以下的命令得到所有可用的 flag。

import cv2 

flags=[i for i in dir(cv2)]

print (flags)

在 opencv 的 hsv 格式中,h(色彩/色度)的取值範圍是 [0,179], s(飽和度)的取值範圍 [0,255],v(亮度)的取值範圍 [0,255]。但是不同的軟體使用的值可能不同。所以當你拿 opencv 的 hsv 值與其他軟體的 hsv 值對比時,一定要記得歸一化。

下面提取紅綠藍三個顏色:

import cv2

import numpy as np

img = cv2.imread("f:/jupyter/image/second5_2.jpeg")

hsv = cv2.cvtcolor(img, cv2.color_bgr2hsv) # hsv空間

lower_blue = np.array([110, 100, 100]) # blue

upper_blue = np.array([130, 255, 255])

lower_green = np.array([60, 100, 100]) # green

upper_green = np.array([70, 255, 255])

lower_red = np.array([0, 100, 100]) # red

upper_red = np.array([10, 255, 255])

red_mask = cv2.inrange(hsv, lower_red, upper_red) # 取紅色

blue_mask = cv2.inrange(hsv, lower_blue, upper_blue) # 藍色

green_mask = cv2.inrange(hsv, lower_green, upper_green) # 綠色

red = cv2.bitwise_and(img, img, mask=red_mask) # 對原影象處理

ps:抽不出時間細學,改日再來填坑

open CV顏色空間轉換

使用工具python3.5 使用包cv2,numpy 涉及函式cv2.cvtcolor cv2.inrange import cv2 import numpy as np cap cv2.videocapture 0 while 1 獲取每一幀 ret,frame cap.read 轉換到hsv h...

opencv 轉換顏色空間 目標跟蹤

轉換顏色空間 import cv2 import numpy as np flags i for i in dir cv2 if i.startswith color print flags cap cv2.videocapture 0 while 1 ret,frame cap.read fram...

OpenCV 顏色空間轉換(Python實現)

轉換顏色空間 最常用的兩種顏色空間方法 bgr gray和bgr hsv。cv2.cvtcolor input image,flag input image 轉換的影象 flag 轉換型別 對於 bgr gray 的轉換,我們要使用的 flag 就是cv2.color bgr2gray。對於 bgr...