用到的函数:
np.array()创建数组
cv.cvtColor()转换颜色空间
参数:
- 图像名字
- 格式
cv.inRange()
参数: - 原图像名字
- HSV最低值,低于此值HSV值变成0
- HSV最高值,高于此值HSV值变成0(在中间HSV值变成255)
import cv2 as cv
import numpy as np
img = cv.imread("D://opencv_test//test_a.jpg")
img_hsv = cv.cvtColor(img, cv.COLOR_BGR2HSV)#颜色空间转换成HSV
low_black = np.array([156, 43, 46])
up_black = np.array([180, 255, 255])#注意是HSV值,各颜色范围去查
mask = cv.inRange(img_hsv, low_black, up_black)
img_add = cv.add(img, 0, mask=mask)
cv.imshow("win", mask)
cv.imshow("win_1", img)
cv.imshow("win_2", img_add)
cv.waitKey(0)
cv.destroyAllWindows()
HSV颜色分量范围
一般对颜色空间的图像进行有效处理都是在HSV空间进行的,然后对于基本色中对应的HSV分量需要给定一个严格的范围,下面是通过实验计算的模糊范围(准确的范围在网上都没有给出)。
H: 0— 180
S: 0— 255
V: 0— 255
此处把部分红色归为紫色范围:
来源:CSDN
作者:辰之粥
链接:https://blog.csdn.net/chenzhoujian_/article/details/103993557