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
Python 如何使用OpenCV在范围内只读一次对象_Python_Opencv - Fatal编程技术网

Python 如何使用OpenCV在范围内只读一次对象

Python 如何使用OpenCV在范围内只读一次对象,python,opencv,Python,Opencv,我想知道,如果对象在范围内显示多次,如何在范围内仅读取一次对象。在这个对象上,我检测到blob,如果所有blob都在范围内,我会对它们进行计数。我无法确定物体显示的确切位置,因为物体处于不同的位置 while (True): ret, frame = cap.read() pictureWithRectangle = cv2.rectangle(frame, (250, 70), (500, 300), (255, 0, 0),

我想知道,如果对象在范围内显示多次,如何在范围内仅读取一次对象。在这个对象上,我检测到blob,如果所有blob都在范围内,我会对它们进行计数。我无法确定物体显示的确切位置,因为物体处于不同的位置

while (True):
    ret, frame = cap.read()

    pictureWithRectangle = cv2.rectangle(frame, (250, 70), (500, 300), (255, 0, 0),
                                         1)  # obszar z którego odczytywac bede

    finder = cv2.SimpleBlobDetector_create()

    keypoints = finder.detect(pictureWithRectangle)

    picture = cv2.drawKeypoints(img_out, keypoints, np.array([]), (0, 0, 255),
                                cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)

    cv2.imshow('frame', picture)

    kropeczki = 0
    for dotes in keypoints:
        if (dotes.pt[0] > 250 and dotes.pt[0] < 500):  # oś x odczytanych kropek na zdjęciu
            kropeczki += 1
            if (kropeczki == len(keypoints)):
        # zrob cos
while(True):
ret,frame=cap.read()
pictureWithRectangle=cv2.矩形(帧,(250,70),(500,300),(255,0,0),
1) obszar z którego odczytywac bede
finder=cv2.SimpleBlobDetector_create()
keypoints=finder.detect(图为矩形)
picture=cv2.drawKeypoints(img_out,keypoints,np.array([]),(0,0,255),
cv2.DRAW_匹配_标志_DRAW_丰富_关键点)
cv2.imshow(“帧”,图片)
kropeczki=0
对于关键点中的dotes:
如果(dotes.pt[0]>250且dotes.pt[0]<500):#ośx odczytanych kropek na zdjęciu
kropeczki+=1
如果(kropeczki==len(关键点)):
#zrob公司

找到两个矩形之间的相交区域,如果它大于某个阈值,则忽略其中任何一个,可能更小,但在每个循环中,我得到一帧,在下一个循环中,我没有上一个循环的值。我怎么能记住这个值?我想我误解了。如果要在不同的帧中识别相同的对象,则需要检测对象的区域,然后使用特征(例如,SIFT或任何其他)进行匹配。如果是视频,我猜是用均值漂移算法跟踪的。我能帮上忙。是的,我能识别出物体的区域,然后我就能看到斑点。为了更好地阅读,我还使用了阈值,一切正常:)