我正在try 检测图像上的ArUco标记,但OpenCV未检测到该标记.我认为这可能是因为分辨率低,但我不确定.

我用this tool生成了一个4x4 ID.

以下是我的代码:

aruco_dict = cv2.aruco.getPredefinedDictionary(cv2.aruco.DICT_4X4_100)

def find_marker(img, x1, y1, x2, y2):
    img = img[y1:y2, x1:x2]
    img = imutils.resize(img, width=500)
    cv2.imshow('result', img)
    cv2.waitKey(0)
    corners, ids, rej = cv2.aruco.detectMarkers(img, aruco_dict)
    print(corners)
    print(ids)

When running the code, this is the image that cv.imshow is showing me: enter image description here

如你所见,有一个较低分辨率的ArUco标签,但它应该仍然是可读的.但是,代码会打印出ID为None,角点为空的().

推荐答案

您需要在标记的所有四个边缘周围都有一个白色边框.

该检测首先判断图像中的方形形状.如果标记周围没有白色边框,则无法检测标记的外部正方形形状.

Python相关问答推荐

如何匹配3D圆柱体的轴和半径?

Polars Dataframe:如何按组删除交替行?

pandas DataFrame中类型转换混乱

Pandas 填充条件是另一列

Django管理面板显示字段最大长度而不是字段名称

如何使用pandasDataFrames和scipy高度优化相关性计算

比较2 PD.数组的令人惊讶的结果

将jit与numpy linSpace函数一起使用时出错

在Python中处理大量CSV文件中的数据

图像 pyramid .难以创建所需的合成图像

Polars:用氨纶的其他部分替换氨纶的部分

如何在Polars中从列表中的所有 struct 中 Select 字段?

如何在Python中找到线性依赖mod 2

Django—cte给出:QuerySet对象没有属性with_cte''''

如何使用SentenceTransformers创建矢量嵌入?

如何使用OpenGL使球体遵循Python中的八样路径?

合并与拼接并举

以异步方式填充Pandas 数据帧

如何使用matplotlib查看并列直方图

python的文件. truncate()意外地没有截断'