语境:
我一直在玩python的opencv2包装器。
我想提出一些想法,并在汽车中使用类似于“后视”相机的广角相机。
我从一辆报废的撞车中得到了一辆(它有4条电线),我从电线的颜色编码中进行了有根据的猜测,将其连接起来,以便从USB A型为电源和接地线供电,并从RCA连接器。
我买了一个NTSC到USB转换器like this one。
它附带驱动程序和一些现成的VHStoDVD软件。
问题:
我使用了在线运行示例示例来进行如下测试:
import numpy as np
import cv2
cam_index=0
cap=cv2.VideoCapture(cam_index)
print cap.isOpened()
ret, frame=cap.read()
#print frame.shape[0]
#print frame.shape[1]
while (cap.isOpened()):
ret, frame=cap.read()
#gray=cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow('frame', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
#release and close
cap.release()
cv2.destroyAllWindows()
这是shell的输出:
True
Traceback (most recent call last):
File "C:/../cam_capture_.py", line 19, in <module>
cv2.imshow('frame', frame)
error: ..\..\..\..\opencv\modules\highgui\src\window.cpp:261: error: (-215) size.width>0 && size.height>0 in function cv::imshow
>>>
主要观察结果:
SCREENSHOTS
usb加密狗在控制面板中的
然后在VHStoDVD应用程序
细节:
stop: 0x0000008E (0xC0000005, 0xB8B5F417, 0X9DC979F4, 0X00000000 )
ks.sys - Address B8B5F417 base at B8B5900, Datestamp...
beg mem dump
phy mem dump complete
5.如果我尝试打印frame.shape [0]或frame.shape [1],我收到类型错误,说我无法打印类型无
6.如果尝试使用其他cam_index,则结果始终为false
TLDR:
在“控制面板”中,摄像头设备位于“声音视频和游戏 Controller ”下方,而不位于“成像设备”下方;
cam_index ==零;
capture.isOpened()=真;
帧大小为“无”;
如果VHStoDVD在配置了复合NTSC的情况下运行,则摄像机可以正常工作,显然您看不到带有附件的打印屏幕的图像,但是请相信我! ;)
是否可以通过某种形式的初始化与加密狗的通信开始,从而解决此问题,即模拟VHStoDVD设置(复合+ NTSC)?我以为我可以改善VHStoDVD和加密狗之间的通信开始,但是感觉就像我要超越极限,去做一些我认为是关键转弯解决方案的事情。
欢迎任何有 build 性的见解,建议,更正!
谢谢
干杯
最佳答案
好的,因此经过更深入的调查,最初的怀疑得到了证实,即由于NTSC加密狗未作为成像设备处理(它被视为视频 Controller ,因此类似于对电视调谐器卡的仿真),这意味着尽管我们能够调用cam_index = 0的cv2.VideoCapture,视频 channel 本身无法传输,因为我们需要定义一堆参数
问题是因为该设备不支持作为调用cv2.VideoCapture.set(parameter,value)的成像设备来更改原始视频供稿上的任何内容。
我没有找到解决方案,但找到了解决方法。网上似乎有很多选择。搜索将DV作为网络摄像头或便携式摄像机的关键字。
我使用了DVdriver(http://www.trackerpod.com/TCamWeb/download.htm)(我使用试用版是因为我很便宜!)。
为什么行得通?
据我所知,DVdriver从设置为视频 Controller 的设备接收数据(类似于从“Windows Movie Maker”或ffmpeg捕获的数据),然后通过“fairydust”在cam_index = 0上输出帧(假设没有其他凸轮)作为“成像设备”网络摄像头。
概括
TLDR使用DVdriver或类似的驱动程序。
我找到了一种解决方法,但我真的很想从基本原理上理解它,并且可能在没有任何其他软件依赖的情况下从python内部生成类似NTSC加密狗的初始化,但是希望在那之前,这将对那些也在努力或假设它的人有所帮助是硬件问题。
我现在将与贝克特一起离开您:
曾经尝试过。曾经失败过。不管。再试一次。再次失败。失败了。 (!)
关于python - 抓取框架NTSCtoUSB加密狗,opencv2,python包装器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22146205/