我需要在移动物体的一系列照片上跟踪四个点。
首先,我尝试了看起来像棋盘的四个正方形(2个白色和2个黑色)和ORB检测器的标记:
import numpy as np
import cv2
from matplotlib import pyplot as plt
img = cv2.imread('D:/workspace_Rita/Tag5.jpg',0)
orb = cv2.ORB_create()
# find the keypoints with ORB
kp = orb.detect(img,None)
kp, des = orb.compute(img, kp)
img2 = cv2.drawKeypoints(img,kp,None,color=(0,255,0), flags=0)
plt.imshow(img2),plt.show()
图片:http://postimg.org/image/52phl54rz/
加上所需的点(标记的中心),我受到了很大的干扰,因此我决定将棋盘标记更改为基准标记,以ARTag样式绘制。此外,如果物体旋转,这些标记将有助于识别这些点。现在,使用相同的Python代码,我得到:
图片:http://postimg.org/image/f58zzrkl5/
仍然可以检测到噪声点,但我看不到从关键点质量中提取标记中心坐标的简便方法。
我认为,我需要调整检测器的灵敏度(也许需要对图像进行一些预过滤),或者找到其他算法。
我将不胜感激一些想法和示例,我可以使用哪种检测器或算法以最简单的方式跟踪基准标记中心,而更喜欢使用Python语言和Open CV。
最佳答案
我认为您太快无法检测到标记。这是操作方法:
关于python - 查找基准标记的中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32502776/