特定の色をセグメント化する最も簡単な方法は 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 色空間で立ち往生しており、どこから始めればよいのかよくわかりません。人間の色の上下の範囲で同様のことを試みましたが、明らかにそれは正しい方法ではありません。