我正在尝试使用对象检测来识别视频提要中的便利贴。我正在使用emguCV进行检测。我尝试使用“形状检测”方法,但无法识别它的位置……也许是因为我将它举在空中,所以我的手指阻塞了顶点。
我也尝试过使用SURF检测,但是我猜这没用,因为它是正方形的,因此没有任何突出的功能。
我尝试使用HAAR / LBP分类,但是只花了10多个小时就只训练了48个阳性和80个阴性的一个阶段,所以我放弃了。
无论如何,是否可以建议一种用于检测/识别视频供稿中的便签纸的合适方法?将不胜感激。
我最近有一个类似的问题,这就是我解决的方法。我只是使用HSV频谱中的便签颜色来定位它。您只需要选择一种易于识别且在角度下变化不大的颜色即可。
我使用此代码来控制带有2条便利贴的AR无人机,因此它必须可靠且快速。它在起作用。希望能帮助到你。
def centerFromImage(image, hue_min, hue_max):
image = cv2.cvtColor(image, cv2.cv.CV_RGB2HSV)
hue = image[:, :, 0]
# Filter out green postit note color
# yellow is 90-100
# pink is 137-150
# green is 80-90
hue[hue < hue_min] = 0
hue[hue > hue_max] = 0
hue[hue > 0] = 255
hue = cv2.erode(hue, None, iterations=2)
hue = cv2.dilate(hue, None, iterations=2)
contours, hierarchy = cv2.findContours(
hue,
cv2.RETR_LIST,
cv2.CHAIN_APPROX_SIMPLE
)
center = [0, 0]
if len(contours) > 0:
contour = contours[0]
area = cv2.contourArea(contour)
for c in contours:
if cv2.contourArea(c) > area:
area = cv2.contourArea(c)
contour = c
m = cv2.moments(contour)
center = [0, 0]
if m['m00'] != 0:
center = [m['m10'] / m['m00'], m['m01'] / m['m00']]
center = [int(center[0]), int(center[1])]
return center
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句