获取图像中制定颜色区域
获取图像中制定颜色区域
import cv2
import numpy as np
from PIL import Image
import matplotlib.pyplot as plt
from util import get_limitsdef get_limits(color):
‘’‘ 获取目标color的取值范围’‘’c = np.uint8([[color]]) hsvC = cv2.cvtColor(c, cv2.COLOR_BGR2HSV)hue = hsvC[0][0][0] if hue >= 165: lowerLimit = np.array([hue - 10, 100, 100], dtype=np.uint8)upperLimit = np.array([180, 255, 255], dtype=np.uint8)elif hue <= 15: lowerLimit = np.array([0, 100, 100], dtype=np.uint8)upperLimit = np.array([hue + 10, 255, 255], dtype=np.uint8)else:lowerLimit = np.array([hue - 10, 100, 100], dtype=np.uint8)upperLimit = np.array([hue + 10, 255, 255], dtype=np.uint8)return lowerLimit, upperLimitif "__main__"==__name__:img = cv2.imread("t.png")hsvImage = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)cc = [6,172, 247] # 目标颜色lowerLimit, upperLimit = get_limits(color=cc)mask = cv2.inRange(hsvImage, lowerLimit, upperLimit)re = cv2.bitwise_and(img,img,mask=mask)tmp = np.hstack([img,re])cv2.imshow(' ',tmp)cv2.waitKey(0)
左图为原图,右图为提取的橘色区域。

