Opencv post-it便笺的对象检测
我正在尝试使用对象检测来识别视频提要中的便笺。我正在使用emguCV进行检测。我尝试使用形状检测方法,但它无法识别post it。。。可能是因为我把它举在空中,所以我的手指挡住了顶点 我也尝试过使用冲浪检测,但我猜也没用,因为它是正方形,所以没有任何突出的特征 我尝试使用HAAR/LBP分类法,但仅仅一个阶段训练48个阳性和80个阴性就需要10个多小时,所以我放弃了Opencv post-it便笺的对象检测,opencv,detection,emgucv,feature-detection,object-detection,Opencv,Detection,Emgucv,Feature Detection,Object Detection,我正在尝试使用对象检测来识别视频提要中的便笺。我正在使用emguCV进行检测。我尝试使用形状检测方法,但它无法识别post it。。。可能是因为我把它举在空中,所以我的手指挡住了顶点 我也尝试过使用冲浪检测,但我猜也没用,因为它是正方形,所以没有任何突出的特征 我尝试使用HAAR/LBP分类法,但仅仅一个阶段训练48个阳性和80个阴性就需要10个多小时,所以我放弃了 无论如何,是否可以建议一种合适的方法来检测/识别视频提要中的便笺?非常感谢。我最近遇到了一个类似的问题,我就是这样解决的。我刚刚使
无论如何,是否可以建议一种合适的方法来检测/识别视频提要中的便笺?非常感谢。我最近遇到了一个类似的问题,我就是这样解决的。我刚刚使用了HSV光谱中的post note颜色来定位它。你只需要选择一种既容易识别又不会在角度下发生太大变化的颜色 我用这段代码控制了一架AR无人机,上面贴着2张便利贴,所以它必须可靠快速。希望能有帮助
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
def centerFromImage(图像、色调最小值、色调最大值):
image=cv2.cvt颜色(image,cv2.cv.cv_RGB2HSV)
色调=图像[:,:,0]
#过滤掉绿色的便利贴颜色
#黄色是90-100
#粉红色是137-150
#绿色是80-90
色调[色调色调最大值]=0
色调[色调>0]=255
色调=cv2。腐蚀(色调,无,迭代次数=2)
色调=cv2。放大(色调,无,迭代次数=2)
轮廓,层次=cv2.findContours(
色调,
cv2.RETR_列表,
cv2.链约为简单
)
中心=[0,0]
如果len(等高线)>0:
等高线=等高线[0]
面积=cv2。轮廓面积(轮廓)
对于等高线中的c:
如果cv2.轮廓面积(c)>面积:
面积=cv2。轮廓面积(c)
轮廓=c
m=cv2.力矩(轮廓)
中心=[0,0]
如果m['m00']!=0:
中心=[m['m10']/m['m00'],m['m01']/m['m00']]
中心=[int(中心[0]),int(中心[1])]
返回中心
啊,非常感谢。你用什么hsv最小值和最大值来定位蓝色便笺?不知道确切情况,我有一个脚本,允许我直接从cam中使用鼠标指针读取色调值,如果你愿意,我可能可以找到它。这将非常有用。我把它放在一个文件夹中。它使用freenect和Kinect作为相机,但您可以轻松地修改它,以便从图像或其他内容加载它。。顺便说一句,原来蓝色贴子的颜色是165-180