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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.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
Opencv post-it便笺的对象检测_Opencv_Detection_Emgucv_Feature Detection_Object Detection - Fatal编程技术网

Opencv post-it便笺的对象检测

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个多小时,所以我放弃了 无论如何,是否可以建议一种合适的方法来检测/识别视频提要中的便笺?非常感谢。我最近遇到了一个类似的问题,我就是这样解决的。我刚刚使

我正在尝试使用对象检测来识别视频提要中的便笺。我正在使用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