OpenCV 图像识别:检测红色矩形并获取坐标
要在OpenCV中识别图像中的一个红色矩形并输出该矩形的坐标,可以按照以下步骤进行:\n\n1. 导入必要的库:\npython\nimport cv2\nimport numpy as np\n\n\n2. 读取图像并转换为HSV颜色空间:\npython\nimage = cv2.imread('image.jpg')\nhsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)\n\n\n3. 定义红色的HSV范围:\npython\nlower_red = np.array([0, 100, 100])\nupper_red = np.array([10, 255, 255])\n\n\n4. 根据红色的HSV范围创建一个掩膜:\npython\nmask = cv2.inRange(hsv_image, lower_red, upper_red)\n\n\n5. 对掩膜进行形态学操作,以消除噪点:\npython\nkernel = np.ones((5, 5), np.uint8)\nmask = cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernel)\n\n\n6. 在掩膜中寻找轮廓:\npython\ncontours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)\n\n\n7. 遍历轮廓并筛选出矩形:\npython\nfor contour in contours:\n x, y, w, h = cv2.boundingRect(contour)\n if w > 50 and h > 50: # 筛选出宽高均大于50的矩形\n cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 2) # 绘制矩形\n print("矩形坐标:", (x, y, x+w, y+h))\n\n\n8. 显示输出的图像:\npython\ncv2.imshow('Output Image', image)\ncv2.waitKey(0)\ncv2.destroyAllWindows()\n\n\n注意:以上代码假设图像中只有一个红色矩形。如果图像中有多个红色矩形,可以根据需要进行修改。
原文地址: http://www.cveoy.top/t/topic/psIP 著作权归作者所有。请勿转载和采集!