1

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

4

1 に答える 1