我在一段时间前开始使用OpenCV(Python),直到现在一切都很顺利。我的摄像头坏了,现在我不能用它来测试我的代码。有没有一种方法来伪造输入与一个简单的图像?它并不完美,但在新的网络摄像头到来之前,它应该可以用于简单的事情。
让我们假设我有这样的东西:
windowWidth = 640
windowHeight = 840
brightness = 100
cap = cv2.VideoCapture(0)
cap.set(3,windowWidth)
cap.set(4,windowHeight)
cap.set(10,brightness)
while (cap.isOpened()):
success, img = cap.read()
if success== True:
img = cv2.flip(img, 1)
cv2.imshow("output", img)
if cv2.waitKey(1)& 0xFF ==ord("q"):
break
这应该工作良好,但现在与破碎的相机,我希望能够"假"使用图像输入,但仍然可以像使用网络摄像头一样进行测试。
沿着cap = cv2.imread(testImg.PNG)
的路线,显然不起作用。我正在寻找一些东西,沿着可能循环图像到网络摄像头输入,以创建某种工作设置,因为视频只不过是一系列播放的许多帧。
任何建议都很感谢:)
VideoCapture
是一个与视频流接口的类,通过调用其read()
方法返回单个图像。当您调用cap = cv2.imread()
时,您正在用cv2.imread
返回的np.ndarray
实例替换新创建的VideoCapture
实例。我认为替换
success, img = cap.read()
img = cv2.imread(testImg.PNG)
可以解决你的问题。