【问题标题】:Opencv 3.2 Python Video writing issue : Text on frames gets overlappedOpencv 3.2 Python视频写入问题:帧上的文本重叠
【发布时间】:2017-11-30 08:34:12
【问题描述】:

我是 OpenCV python 以及 StackOverflow 的初学者,所以请原谅我的任何错误。我将 OpenCV 3.2 与 Python 3.6 一起用于我的图像分类任务。我的任务是对框架中的对象进行分类,并在该框架上给出其类标签。当最终输出的视频被写回时,已经放在视频上的文本会重叠。下面是我的代码。

cap = cv2.VideoCapture(r"D:\python\tank_video\All_vehicle.mp4")
length = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
currentFrame = 0

# videowriter object
codc = int(cap.get(cv2.CAP_PROP_FOURCC))
fps = int(cap.get(cv2.CAP_PROP_FPS))
w = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
h = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))

fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('classify_300_200_3.avi', fourcc, 15, (300,200))

                            "CLASSIFICATION CODE"

predictions =  [classes_names[i] for i in clf.predict(test_features)]
arr = np.array([])

j = 0
for prediction in predictions:
    pt = (0, 3 * image.shape[0] // 4)
    cv2.putText(image, prediction, pt ,cv2.FONT_HERSHEY_SIMPLEX, 2, [0, 255, 
    0], 2)
    np.append(arr,cv2.imwrite(str(j)+'.jpg',image))

out.write(image)
currentFrame += 1
cap.release()        
out.release()
cv2.destroyAllWindows()

已附上输出图像。this is the screenshot of video output. 我想只显示一个类标签。不应显示前一帧的标签,并且不应将当前帧的标签覆盖在前一帧的标签上。谁能帮我解决一下?

【问题讨论】:

    标签: python opencv video


    【解决方案1】:

    如果您只想显示一个类标签,您应该更改以下内容:

    for prediction in predictions:
        pt = (0, 3 * image.shape[0] // 4)
        cv2.putText(image, prediction, pt ,cv2.FONT_HERSHEY_SIMPLEX, 2, [0, 255, 
        0], 2)
        np.append(arr,cv2.imwrite(str(j)+'.jpg',image))
    

    因为那段代码将检测到的所有类写入图像。例如,您可以这样做:

    # check if at least one class detected
    if len(predictions)>0:
        # choose to display only the first class
        prediction = predictions[0]
    
        pt = (0, 3 * image.shape[0] // 4)
        cv2.putText(image, prediction, pt ,cv2.FONT_HERSHEY_SIMPLEX, 2, [0, 255, 
        0], 2)
        np.append(arr,cv2.imwrite(str(j)+'.jpg',image))
    

    【讨论】:

      猜你喜欢
      • 2017-07-07
      • 2019-07-03
      • 1970-01-01
      • 1970-01-01
      • 2020-06-18
      • 2012-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多