OpenCV——cv2.inRange()函数

在图像中提取目标物时可以用该函数去除背景。

有三个参数:

  • hsv_img:颜色空间为 HSV 的图像;
  • lower:下阈值,图像中低于此值的颜色值变为 0;
  • uppper:上阈值,图像中高于此值的颜色值变为 0。

颜色值在此范围内的全部设置为255,然后利用得到背景和原图片进行位操作,即可得到原图中目标。

常用方式:

img = cv2.imread(img_path, 0)
img_hsv = cv2.cvtColor(img, cv2.COLOR_RGB2HSV)
lower = [0, 100, 100]
uppper = [200, 255, 255]
# 利用上下阈值去除背景部分
mask = cv2.inRange(img_hsv, lower, upper)
# 利用位运算得到目标物体
target = cv2.bitwise_and(img, img, mask=mask)
cv2.imshow("mask", mask)
cv2.imshow("target", target)

上下阈值的获取:

import cv2
import numpy as np

color = np.array([[[xxx, xxx, xxx]]])
hsv_color = cv2.cvtColor(color, cv2.COLOR_RGB2HSV)
print(hsv_color)