首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对象检测后的便笺

问对象检测后的便笺
EN

Stack Overflow用户
提问于 2014-02-13 12:55:37
回答 1查看 1.2K关注 0票数 0

我正在尝试使用对象检测来识别视频提要中的便笺。我正在使用emguCV进行检测。我试过用形状检测的方法,但它认不出那个贴子.也许是因为我把它举在空中所以我的手指挡住了顶点。

我也尝试使用冲浪检测,但这也不起作用,我想,因为它是一个广场,所以没有任何突出的特点。

我试图使用HAAR/LBP分类,但训练一个阶段的48次正面和80次负片需要10多个小时,所以我放弃了。

无论如何,是否可以建议一种合适的方法来检测/识别视频提要中的便笺?会很感激的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-13 13:14:35

我最近也遇到了一个类似的问题,我就是这样解决的。我刚刚用HSV光谱中的便条颜色来定位它。你只需要选择一种既容易识别,又不会在角度下改变多少的颜色。

我用这个代码来控制一个带有两个贴子的AR无人机,所以它必须是可靠和快速的。在这里,它在行动中。希望能帮上忙。

代码语言:javascript
复制
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
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21754866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档