我知道分割某些颜色的最简单方法是使用 HSV 颜色空间,但我有一个任务要在 HSV、RGB 和 Lab 中完成……我真的很困惑如何在 Lab 中完成。我是在 HSV 中完成的,它非常简单。这是使用 HSV 颜色空间分割人类颜色的函数
import cv2
import matplotlib.pyplot as plt
import numpy as np
def HSV_Segmentation(image):
lowerRange= np.array([0, 70, 0] , dtype="uint8")
upperRange= np.array([25, 255, 255], dtype="uint8")
mask = image[:].copy()
imageHSV = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
imageRange = cv2.inRange(imageHSV,upperRange, lowerRange)
mask[:,:,0] = imageRange
mask[:,:,1] = imageRange
mask[:,:,2] = imageRange
kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (5, 5))
closing = cv2.morphologyEx(mask, cv2.MORPH_CLOSE, kernel)
faceHSV = cv2.bitwise_and(image,mask)
return faceHSV
现在我被困在 Lab 色彩空间中,我不确定从哪里开始。我尝试了类似于人类颜色上限和下限的方法,但显然这不是正确的方法。