我想突出显示实时手势识别的手。我观察到使用 cv2.imsplit 函数,对于不同的颜色通道,手的图像会以不同的方式突出显示。但是这种拆分功能在时间方面是非常昂贵的。我无法使用 Numpy 索引执行相同的功能(如官方页面所示)
问问题
7773 次
2 回答
6
您可以使用 numpy 的切片:
import cv2
import numpy as np
## read image as np.ndarray in BGR order
img = cv2.imread("test.png")
## use OpenCV function to split channels
b, g, r = cv2.split(img)
## use numpy slice to extract special channel
b = img[...,0]
g = img[...,1]
r = img[...,2]
于 2018-01-13T04:40:05.527 回答
3
import cv2
import numpy as np
from PIL import Image
img_file = "sample.jpg"
image = cv2.imread(img_file)
# USING NUMPY SLICE
red = image[:,:,2]
green = image[:,:,1]
blue = image[:,:,0]
# USING OPENCV SPLIT FUNCTION
b,g,r=cv2.split(image)
# USING NUMPY dsplit
[b,g,r]=np.dsplit(image,image.shape[-1])
# USING PIL
image = Image.open("image.jpg")
r,g,b = image.split()
于 2018-01-16T15:38:38.863 回答