Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用opencv检测自定义标记方向_Python_Opencv - Fatal编程技术网

Python 如何使用opencv检测自定义标记方向

Python 如何使用opencv检测自定义标记方向,python,opencv,Python,Opencv,对于我的项目,我需要估计6d姿势并识别自定义标记 标记将是一个红色/绿色背景和白色边框的字母,如下所示 使用标准图像处理,如canny边缘检测、轮廓检测,我能够轻松地检测图像空间中标记的四个角,并使用相机矩阵和物理标记尺寸(20cm*20cm)而cv2 solvepnpransac我能够检测到标记相对于摄像机的xyz位置。但是如果标记没有竖直或倾斜,X-y轴会移动,方向估计完全错误。换言之,由于没有办法检测,所以仅用4个点即可检测到标记的垂直位置 如何检测标记的哪个图像点对应于标记的哪个世界点?

对于我的项目,我需要估计6d姿势并识别自定义标记

标记将是一个红色/绿色背景和白色边框的字母,如下所示

使用标准图像处理,如canny边缘检测、轮廓检测,我能够轻松地检测图像空间中标记的四个角,并使用相机矩阵和物理标记尺寸(20cm*20cm)而cv2 solvepnpransac我能够检测到标记相对于摄像机的xyz位置。但是如果标记没有竖直或倾斜,X-y轴会移动,方向估计完全错误。换言之,由于没有办法检测,所以仅用4个点即可检测到标记的垂直位置


如何检测标记的哪个图像点对应于标记的哪个世界点?

一个愚蠢的方法是使用模板匹配来查找标记的近似旋转。只需将模板图像旋转N度,并尝试将此模板与检测到的标记匹配。当你在它们之间获得高度的相似性(90%)时,你就会知道标记旋转了N度。一个愚蠢的方法是使用模板匹配来找到标记的近似旋转。只需将模板图像旋转N度,并尝试将此模板与检测到的标记匹配。当它们之间获得高度相似性(90%)时,您将知道标记旋转了N度。