opencv(py) inRange 使用HSV制作掩模,获得蓝色区域

798 阅读3分钟
  •        Python : 3.8.11
  • opencv-python : 4.1.2.30
  • opencv-contrib-python : 4.1.2.30
  •          OS : Ubuntu Kylin 20.04
  •       Conda : 4.10.1
  •     Pycharm : 2021.1.3

代码示例

import cv2
import numpy as np

image = cv2.imread("opencv-image.png")
image_hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)

# 根据hsv的颜色范围表可以获得数据
blue_hmin = 100
blue_hmax = 124
blue_smin = 43
blue_smax = 255
blue_vmin = 46
blue_vmax = 255

blue_min = np.array([blue_hmin, blue_smin, blue_vmin])
blue_max = np.array([blue_hmax, blue_smax, blue_vmax])
mask = cv2.inRange(image_hsv, blue_min, blue_max)

print(image)
print(image_hsv)
print(mask)

cv2.imshow("image", image)
cv2.imshow("mask", mask)

cv2.waitKey(0)
cv2.destroyAllWindows()

运行结果

cv-inrange-hsvmask-1.png

/home/coder/anaconda3/bin/python3.8 /home/coder/PycharmProjects/pythonProject2/main.py
[[[255 255 255]
  [232 232 232]
  [232 232 232]
  ...
  [226 226 226]
  [255 255 255]
  [255 255 255]]

 [[255 255 255]
  [232 232 232]
  [232 232 232]
  ...
  [226 226 226]
  [255 255 255]
  [255 255 255]]

 [[239 239 239]
  [246 246 246]
  [246 246 246]
  ...
  [255 255 255]
  [248 248 248]
  [248 248 248]]

 ...

 [[252 252 252]
  [234 234 234]
  [234 234 234]
  ...
  [240 240 240]
  [250 250 250]
  [250 250 250]]

 [[243 243 243]
  [245 245 245]
  [245 245 245]
  ...
  [254 254 254]
  [252 252 252]
  [252 252 252]]

 [[243 243 243]
  [245 245 245]
  [245 245 245]
  ...
  [254 254 254]
  [252 252 252]
  [252 252 252]]]
[[[  0   0 255]
  [  0   0 232]
  [  0   0 232]
  ...
  [  0   0 226]
  [  0   0 255]
  [  0   0 255]]

 [[  0   0 255]
  [  0   0 232]
  [  0   0 232]
  ...
  [  0   0 226]
  [  0   0 255]
  [  0   0 255]]

 [[  0   0 239]
  [  0   0 246]
  [  0   0 246]
  ...
  [  0   0 255]
  [  0   0 248]
  [  0   0 248]]

 ...

 [[  0   0 252]
  [  0   0 234]
  [  0   0 234]
  ...
  [  0   0 240]
  [  0   0 250]
  [  0   0 250]]

 [[  0   0 243]
  [  0   0 245]
  [  0   0 245]
  ...
  [  0   0 254]
  [  0   0 252]
  [  0   0 252]]

 [[  0   0 243]
  [  0   0 245]
  [  0   0 245]
  ...
  [  0   0 254]
  [  0   0 252]
  [  0   0 252]]]
[[0 0 0 ... 0 0 0]
 [0 0 0 ... 0 0 0]
 [0 0 0 ... 0 0 0]
 ...
 [0 0 0 ... 0 0 0]
 [0 0 0 ... 0 0 0]
 [0 0 0 ... 0 0 0]]

Process finished with exit code 0

学习推荐


Python具有开源、跨平台、解释型、交互式等特性,值得学习。
Python的设计哲学:优雅,明确,简单。提倡用一种方法,最好是只有一种方法来做一件事。
代码的书写要遵守规范,这样有助于沟通和理解。
每种语言都有独特的思想,初学者需要转变思维、踏实践行、坚持积累。