python opencv(一) 色彩轉換

前提條件

使用工具python3.x
使用庫numpy;opencv,

api簡介

1.cv.imread(“圖片路徑”)
用來讀取本地圖片,函數會返回一個對象

2.cv.imshow(“窗口名字”,b)
建立窗口來顯示圖片,b爲cv.imread函數返回的對象

3.cv.split(src)
分割圖像的彩色通道,一般分割爲三通道,src爲cv.imread函數返回的對象

4.cv.cvtColor(image, cv.COLOR_BGR2GRAY)
圖片色彩轉換,image爲cv.imread函數返回的對象,cv.COLOR_BGR2GRAY是宏定義,表示將圖片轉換爲灰度圖像

5.cv.VideoCapture(“MP4文件路徑”)
讀取本地mp4文件,可以通過循環讀取視頻的每一幀圖像

6.captrue =cv.VideoCapture(“MP4文件路徑”)
6.(1)captrue .read()

返回讀取每一幀結果

7.cv.inRange(img, lowerb = arr1, upperb = arr2)
實現二值化功能,參數img是cv.imread函數返回的對象,arr1,arr2是一個圖像三通道的數組,表示要進行二值化的範圍,具體可見代碼示例

代碼示例

import cv2 as cv
import numpy as np

def colorSpaceDemo(image): #將圖片轉換成各類型的顏色
	gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)
	cv.imshow("gray",gray)
	hsv = cv.cvtColor(image, cv.COLOR_BGR2HSV)
	cv.imshow("hsv",hsv)
	yuv = cv.cvtColor(image, cv.COLOR_BGR2YUV)
	cv.imshow("yuv",yuv)
	YCrcb = cv.cvtColor(image, cv.COLOR_BGR2YCrCb)
	cv.imshow("Ycrcb",YCrcb )
#讀取視頻
def extraceObjectDemo():
	captrue = cv.VideoCapture("test2.mp4")
	while(True):
		ret, frame = captrue.read()
		if ret == False:
			break;
		hsv = cv.cvtColor(frame, cv.COLOR_BGR2HSV)
		lowerHsv = np.array([37, 43, 46])
		upperHsv = np.array([77, 255, 255])
		mask = cv.inRange(hsv, lowerb = lowerHsv , upperb = upperHsv )
		cv.imshow('video',frame)
		#mask 通過對某一個範圍的像素值進行檢測,可以用來追蹤
		cv.imshow('mask', mask)
		c = cv.waitKey(40)
		if c==27: #按ESC鍵退出
			break
src=cv.imread("D:/openCV_image/image/1.png")
# print(src)
#cv.namedWindow("input image",cv.WINDOW_AUTOSIZE) #新建一個window窗口,名字是input image,窗口大小爲cv.WINDOW_AUTOSIZE,表示自動縮放
# colorSpaceDemo(src)
# extraceObjectDemo()

b, g, r = cv.split(src) #彩色通道分割
cv.imshow("blue",b)
cv.imshow("green",g)
cv.imshow("red",r)

# src[:,:,2] = 0 #將src的最後一個通道置0,效果可查看
# src[:,:,0] = 0 
# src = cv.merge([b, g, r]) #可以將拆開的通道再合併
cv.imshow("input image",src)

cv.waitKey(0) #等待按鍵,參數是等待時間
cv.destroyAllWindows() #摧毀所有windows窗口


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章