1. 加载预定义字典,生成aruco标记
import cv2
import numpy as np
# 生成aruco标记
# 加载预定义的字典
dictionary = cv2.aruco.Dictionary_get(cv2.aruco.DICT_4X4_250)

# 生成标记
markerImage = np.zeros((200, 200), dtype=np.uint8)
for i in range(20):
    markerImage = cv2.aruco.drawMarker(dictionary, i, 200, markerImage, 1);

    firename='路径+'.png'
    cv2.imwrite(firename, markerImage);

2.对aruco码进行识别

import numpy as np
import time
import cv2
import cv2.aruco as aruco
# 读取图片
frame = cv2.imread('待识别图像路径.png')
# frame=cv2.imread('2.png')
# 调整图片大小
frame=cv2.resize(frame, None, fx=0.2, fy=0.2, interpolation=cv2.INTER_CUBIC)
# 灰度话
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# 设置预定义的字典
aruco_dict = aruco.Dictionary_get(aruco.DICT_4X4_250)
# 使用默认值初始化检测器参数
parameters = aruco.DetectorParameters_create()
# 使用aruco.detectMarkers()函数可以检测到marker,返回ID和标志板的4个角点坐标
corners, ids, rejectedImgPoints = aruco.detectMarkers(gray, aruco_dict, parameters=parameters)
print(ids)
# 画出标志位置
aruco.drawDetectedMarkers(frame, corners,ids)


cv2.imshow("frame", frame)
cv2.waitKey(0)
cv2.destroyAllWindows()


版权声明:本文为qq_45013882原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_45013882/article/details/118861522