购物网站建设行情,百度app旧版本下载,九九电视剧免费观看完整版,上网导航下载文章目录 概要代码运行结果 概要 一些理论知识
OpenCV形态学操作理论1 OpenCV形态学操作理论2 OpenCV轮廓操作|轮廓类似详解
代码 代码如下#xff0c;可以直接运行
import cv2 as cv# 定义结构元素
kernel cv.getStructuringElement(cv.MORPH_RECT, (3, 3))
# print kern… 文章目录 概要代码运行结果 概要 一些理论知识
OpenCV形态学操作理论1 OpenCV形态学操作理论2 OpenCV轮廓操作|轮廓类似详解
代码 代码如下可以直接运行
import cv2 as cv# 定义结构元素
kernel cv.getStructuringElement(cv.MORPH_RECT, (3, 3))
# print kernelcapture cv.VideoCapture(0)
print (capture.isOpened())
ok, frame capture.read()
lower_b (65, 43, 46)
upper_b (110, 255, 255)height, width frame.shape[0:2]
screen_center width / 2
offset 50while ok:# 将图像转成HSV颜色空间hsv_frame cv.cvtColor(frame, cv.COLOR_BGR2HSV)# 基于颜色的物体提取mask cv.inRange(hsv_frame, lower_b, upper_b)mask2 cv.morphologyEx(mask, cv.MORPH_OPEN, kernel)mask3 cv.morphologyEx(mask2, cv.MORPH_CLOSE, kernel)# 找出面积最大的区域contours,_ cv.findContours(mask3, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)maxArea 0maxIndex 0for i, c in enumerate(contours):area cv.contourArea(c)if area maxArea:maxArea areamaxIndex i# 绘制cv.drawContours(frame, contours, maxIndex, (255, 255, 0), 2)# 获取外切矩形x, y, w, h cv.boundingRect(contours[maxIndex])cv.rectangle(frame, (x, y), (x w, y h), (255, 0, 0), 2)# 获取中心像素点center_x int(x w / 2)center_y int(y h / 2)cv.circle(frame, (center_x, center_y), 5, (0, 0, 255), -1)# 简单的打印反馈数据之后补充运动控制if center_x screen_center - offset:print (turn left)elif screen_center - offset center_x screen_center offset:print (keep)elif center_x screen_center offset:print (turn right)cv.imshow(mask4, mask3)cv.imshow(frame, frame)cv.waitKey(1)ok, frame capture.read()
运行结果