+
69
-

python如何使用opencv的 aruco模块对摄像头中物体进行目标检测尺寸测量?

python如何使用opencv的 aruco模块对摄像头中物体进行目标检测尺寸测量?


网友回复

+
17
-

可直接使用视觉大模型api进行参考识别,例如我问chatgpt

800_auto

800_auto

800_auto

点击查看剩余70%

+
16
-

首先确保安装的opencv版本在3.0以上

import cv2
print(cv2.__version__)

然后生成ArUco标记:生成了一个大小为200×200像素的ArUco图并保存为aruco.jpg,打印出来放到摄像头面前作为参考

800_auto

标记检测:通过摄像头检测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%

我知道答案,我要回答