影象顏色空間的轉換,例如:bgr圖與灰度圖轉換,bgr圖與hsv轉換等。
最常用的顏色空間轉變是: bgr圖與灰度圖轉換,bgr圖與hsv轉換
我們用函式cv.cvtcolor(input_image, flag)來進行顏色轉換,flag決定轉換的型別。
bgr轉gray用的flag是cv.color_bgr2gray。bgr轉hsv的flag是cv.color_bgr2hsv。
現在我們知道如何將bgr影象轉換成hsv,我們可以用它來提取有色物體。hsv模型比bgr模型更容易表徵顏色空間。在我們的程式中,我們將嘗試提取乙個藍色的物體。
l 把bgr模型轉為hsv模型
l 設定hsv模型中藍色的閾值
l 提取藍色物體。
demo:
# coding=utf-8
import cv2 as cv
import numpy as np
cap = cv.videocapture(0)
while(1):
_, frame = cap.read()
#把bgr轉為hsv
hsv = cv.cvtcolor(frame, cv.color_bgr2hsv)
#定義藍色在hsv模型中的範圍
lower_blue = np.array([100,50,50])
upper_blue = np.array([130,255,255])
#只提取hsv中的藍色並二值化
mask = cv.inrange(hsv, lower_blue, upper_blue)
#原影象與mask影象按位與
res = cv.bitwise_and(frame,frame, mask= mask)
cv.imshow('frame',frame)
cv.imshow('mask',mask)
cv.imshow('res',res)
k= cv.waitkey(5) & 0xff
ifk == 27:
break
cv.destroyallwindows()
可以用cv.cvtcolor().函式很容易得到。不需要通過影象,可以通過bgr值來獲得。例如提取hsv中的綠色值:
# coding=utf-8
import cv2 as cv
import numpy as np
green = np.uint8([[[0,255,0 ]]])
hsv_green =cv.cvtcolor(green,cv.color_bgr2hsv)
print( hsv_green )
# [[[ 60 255 255]]]
可以把[h-10,100, 100 ]和[h+ 10, 255, 255 ]分別作為下界和上界。 Python OpenCV學習(十二)Haar聯級
haar特徵 haar特徵是一種反映影象的灰度變化的,畫素分模組求差值的一種特徵。它分為三類 邊緣特徵 線性特徵 中心特徵和對角線特徵。用黑白兩種矩形框組合成特徵模板,在特徵模板內用 黑色矩形畫素和 減去 白色矩形畫素和來表示這個模版的特徵值。例如 臉部的一些特徵能由矩形模組差值特徵簡單的描述,如 ...
python opencv學習筆記(二)
影象與原始位元組之間的轉換 從概念上,乙個位元組能表示0到255的整數,通常乙個畫素每個通道由乙個位元組表示。乙個opencv影象是.array型別的二維或者三維陣列。8位的灰度影象是乙個含有位元組值得二維陣列。乙個24位的bgr影象是乙個三維陣列,也包含了位元組值,可以使用表示式訪問這些值,如im...
Python Opencv學習筆記1
我選用的教材是opencv python torturial的翻譯版本,這裡給出基礎部分的學習 以及我的學習備註。import numpy as np import cv2 img cv2.imread untitled.png 0 這裡後面的引數是如何讀取這張,即以下三種情況 print cv2....