python+opencv 获取图片中指定颜色的部分

获取图片中指定颜色的部分

  • 将图片的色彩空间转为HSV色彩空间
  • 通过比照HSV的参考表,进行获取要提取颜色的相应范围
  • 使用inRange函数进行提取
  • 使用imShow显示
import cv2
import numpy as np
src = cv2.imread("D:\\myCode\\picture\\cards.png")
cv2.namedWindow("input", cv2.WINDOW_AUTOSIZE)
cv2.imshow("input", src)
"""
提取图中的红色部分
"""
hsv = cv2.cvtColor(src, cv2.COLOR_BGR2HSV)
low_hsv = np.array([0,43,46])
high_hsv = np.array([10,255,255])
mask = cv2.inRange(hsv,lowerb=low_hsv,upperb=high_hsv)
cv2.imshow("test",mask)
cv2.waitKey(0)
cv2.destroyAllWindows()
这个例子为提取红色部分。通过观察下表,可以看到红色的hmin,smin,vmin分别为0,43,46;
hmax,smax,vmax分别为10,255,255.

python+opencv 获取图片中指定颜色的部分_第1张图片
注意到这里红色的hmin和hmax有两个值,但是我这里使用156和180时,并没有得到想要的结果。
结果如下图,可以发现正确识别了图中的红色部分。
python+opencv 获取图片中指定颜色的部分_第2张图片
HSV色彩空间的相关内容可以参考:HSV色彩空间

你可能感兴趣的:(python,opencv)