python如何使用opencv的 aruco模块对摄像头中物体进行目标检测尺寸测量?
网友回复
首先确保安装的opencv版本在3.0以上
import cv2 print(cv2.__version__)然后生成ArUco标记:生成了一个大小为200×200像素的ArUco图并保存为aruco.jpg,打印出来放到摄像头面前作为参考

标记检测:通过摄像头检测ArUco标记,并计算像素到实际厘米的比例。
测量其他物体:结合像素到厘米的比例,测量画面中其他物体的宽度和高度。
完整代码
import cv2
import numpy as np
# 生成ArUco字典
aruco_dict = cv2.aruco.getPredefinedDictionary(cv2.aruco.DICT_5X5_100)
# 生成ArUco图
aruco_id = 50
aruco_size = 200 # 每个边的像素数
aruco_img = np.zeros((aruco_size, aruco_size), dtype=np.uint8)
aruco_img = cv2.aruco.generateImageMarker(aruco_dict, aruco_id, aruco_size)
# 保存ArUco图像
cv2.imwrite('aruco.jpg', aruco_img)
# 显示生成的ArUco图
cv2.imshow('ArUco Marker', aruco_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
# 摄像头实时检测其他物体
def measure_object_with_aruco():
# 定义ArUco标记的真实边长(单位:cm)
aruco_real_size = 5.0 # 假设真实尺寸为5 cm
# 打开摄像头
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
...点击查看剩余70%





