【发布时间】:2019-02-21 23:07:17
【问题描述】:
我有一个破砖游戏的视频。有些砖是红色的。我必须把红色变成黑色。我试图在 numpy 数组中找到红色像素的位置并在这些像素上分配黑色。我在下面提供的代码将红色变为黑色。但是这个过程太慢了,12s 的视频花了 5 多分钟。有没有更快的方法来做到这一点?
import numpy as np
import cv2
vid = "input.mp4"
cap = cv2.VideoCapture(vid)
while(True):
ret, frame = cap.read()
if ret:
for i in zip(*np.where(frame == [0,0,255])):
frame[i[0], i[1], 0] = 0
frame[i[0], i[1], 1] = 0
frame[i[0], i[1], 2] = 0
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
cv2.destroyAllWindows()
【问题讨论】: