【发布时间】: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. 我想只显示一个类标签。不应显示前一帧的标签,并且不应将当前帧的标签覆盖在前一帧的标签上。谁能帮我解决一下?
【问题讨论】: