Bootstrap

Opencv——BGR2HSV, pycharm配置

pycharm 配置opencv

在pycharm程序的terminal输入

pip install opencv-python  

安装不同版本的opencv 在后面添加版本号,
在这个网站上找到想要的版本

https://pypi.org/project/opencv-python/3.4.8.29/

pip install opencv-python==3.4.8.29

BGR2HSV

import cv2
import numpy as np
#将BGR转换成HSV
img = np.zeros((100, 100, 3), np.uint8)
img[:, :, 0] = 255
cv2.imshow("blue", img)
print(img)
changed = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
print(changed)
cv2.imshow("changed", changed)
cv2.waitKey()
cv2.destroyAllWindows()

inRange

import cv2
import numpy as np

img = np.random.randint(0, 256, size=[5, 5], dtype=np.uint8)
min = 100
max = 200

mask = cv2.inRange(img, min, max)
print "img=\n", img
print "mask=\n", mask

只有在100 和 200 范围内的数值变成255,其他为0, 这个可以变成mask

img=
[[236  18 210  99 218]
 [146  84 115  53 227]
 [139 122  67 245  82]
 [106 220  55  18  16]
 [217 194 155 217 122]]
mask=
[[  0   0   0   0   0]
 [255   0 255   0   0]
 [255 255   0   0   0]
 [255   0   0   0   0]
 [  0 255 255   0 255]]

这个只显示红色

import cv2
import numpy as np

cap = cv2.VideoCapture(0)

img = np.random.randint(0, 256, size=[100, 100], dtype=np.uint8)
min = 100
max = 200
cv2.imshow("ori", img)
mask = cv2.inRange(img, min, max)
print "img=\n", img
print "mask=\n", mask

while True:
    __, frame = cap.read()
    cv2.imshow("video", frame)
    #frame = cv2.imread("u.jpg")
    hsv_img = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)

    min_blue = np.array([0, 50, 50])
    max_blue = np.array([30, 255, 255])
    cv2.imshow("hsv_img", hsv_img)

    blue_mask = cv2.inRange(hsv_img, min_blue, max_blue)
    blue_img = cv2.bitwise_and(frame, frame, mask=blue_mask)
    cv2.imshow("blue_img", blue_img)


    k = cv2.waitKey(1)
    if k == 27 & 0xff:
        break

cap.release()
cv2.destroyAllWindows()
;