每天一練P3-Python和OpenCV做圖像處理(inRange)
每天一練P3 提取特定顏色
在OpenCV中,一般轉換圖像格式為HSV格式(默認格式為BGR),再進行指定顏色的提取。
直接使用RGB提取顏色不推薦
HSV格式的介紹:HSV 為色相,飽和度,明度。
色彩空間中的HSL、HSV、HSB有什麼區別?
小示例:提取opencv logo中的藍色部分,完整的代碼如下:
# coding by 劉雲飛# email: liuyunfei.1314@163.com # date: 2018-4-13import cv2import numpy as np# 讀取名稱為 opencvlogo.png的圖片img = cv2.imread("opencvlogo.png",1)# 將圖片轉換為格式 hsvhsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)# 定義藍色的上下限lower_blue = np.array([100,50,50])higher_blue = np.array([140,255,255])#在圖片中提取藍色的部分mask = cv2.inRange(hsv,lower_blue,higher_blue)#和原圖像求「與」操作,只保留藍色left_blue = cv2.bitwise_and(img,img,mask=mask)# 顯示hsvcv2.imshow("P3-OpenCV logo",img)# 顯示Bluecv2.imshow("P3-Blue",left_blue)cv2.waitKey(0)
顯示的圖片為:(左窗口為原圖,右窗口為只提取了藍色的圖片)
推薦閱讀:
※1.27【OpenCV圖像處理】尋找輪廓
※Windows下編譯OpenCV+OpenCV-contrib
※在 MFC 框架中,有什麼方法能直接將 OpenCV 2.0 庫中 Mat 格式的圖片傳遞到 Picture Control(圖片控制項)顯示?
※1.9【OpenCV圖像處理】平滑模糊濾波
TAG:OpenCV |