import numpy as np import cv2 Key_Esc = 27 cap = cv2.VideoCapture(0) lower_blue = np.array([110, 50, 50]) upper_blue = np.array([130, 255, 255]) while True: ret, frame = cap.read() # hsv变换 hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) mask = cv2.inRange(hsv, lower_blue, upper_blue) res = cv2.findContours(mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) if len(res) == 2: # python3 写法 contours, hierarchy = res elif len(res) == 3: # python2 写法 _, contours, hierarchy = res # 用黄色绘制出轮廓(BGR 0,255,255) cv2.drawContours(frame, contours, -1, (0, 255, 255), thickness=2) # 显示处理结果 cv2.imshow('detected', np.rot90(cv2.resize(frame, (320, 240)))) # cv2.imshow('mask', np.rot90(cv2.resize(mask,(320,240))) ) # 按q键退出,不加这一句可能无法正常显示图像 if cv2.waitKey(1) == Key_Esc: break cap.release() cv2.destroyAllWindows()
时间: 2023-05-15 18:06:52 浏览: 117
这段代码是使用Python语言编写的,主要是导入了numpy和cv2两个库。定义了一个常量Key_Esc等于27,表示按下Esc键退出程序。通过cv2.VideoCapture(0)打开电脑的摄像头,lower_blue和upper_blue是蓝色区间的下限和上限。在while循环中,不断读取摄像头的画面,并进行处理。
阅读全文