使用工具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...