无法使用OpenCV画线

问题描述 投票:0回答:1

我已经创建了一个每帧函数,并将其输入到ImageAI的检测器中。我想在满足距离标准的中心点之间画一条线(如果距离>= find_dist_ratio(x1, y1))。应该在所有符合标准的物体的中心点之间画线,我试着改了一下,终于无误地得到了,但在输出的视频中,线没有显示出来。谢谢你的帮助

def dist_func(counting, output_objects_array,output_objects_count):
     a =[]
     ret, frame = camera.read()
     for d in output_objects_array:
         x1 = d['box_points'][0]
         y1 = d['box_points'][1]
         x2 = d['box_points'][2]
         y2 = d['box_points'][3]
         centroid = (int((x1 + x2) / 2), int((y1 + y2) / 2))
         a.append(centroid)
     for i in range(len(a)):
         for j in range(i+1, len(a)):
            distance = euc_dist(a[i],a[j])
            if distance >= find_dist_ratio(x1, y1):
                print('close enough')
                x, y = a[i]
                X, Y = a[j]
                cv2.line(frame, (x, y), (X, Y), (255, 0, 0), 5)
python opencv object-detection video-processing imageai
1个回答
0
投票

这可能听起来很傻,但在你的一段代码中,我看不出你是否真的在显示框架。如果x和y变量是正确的(从小写到大写)。

请看文档中的这个例子。

# Create a black image
img = np.zeros((512,512,3), np.uint8)
# Draw a diagonal blue line with thickness of 5 px
cv.line(img,(0,0),(511,511),(255,0,0),5)

为了显示在这里画的线,你还应该把(在画完之后)

cv2.imshow("Line draw", img)

绘图功能 在文档中

© www.soinside.com 2019 - 2024. All rights reserved.