- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我一直在研究 python 的 opencv2 包装器。我想尝试一些想法,并使用类似于汽车“后视”摄像头的广角摄像头。我从一辆报废的撞车上得到了一个(它有 4 根电线)我从电线颜色编码中进行了有根据的猜测,将其连接起来,以便我从 A 型 USB 为电源和地线供电,并为 NTSC 复合+复合-从一个 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
>>>
在控制面板中,USB 加密狗在声音视频和游戏 Controller 中显示为“OEM 捕获”。因此它在“成像设备”中不被视为简单的即插即用网络摄像头
如果我打开 VHStoDVD 软件,我需要配置 2 个方面:
当我在 FLV 中打开设备视频 channel 时(设备捕获)。设备流只是一个黑屏,但如果我在 flv 流式传输时打开 VHStoDVD 软件,我会获取摄像机的源以在 FLV 上流式传输,并且 VHStoDVD 源上会显示黑屏。另一个重要的区别是,与在 VHStoDVD 中运行相比,当 feed 以 FLV 格式运行时,会有大约 0.5 秒的巨大延迟。
当在运行时的某个地方按照上面的示例代码运行“cam_capture.py”时,我最终会得到一个停止错误代码 0x0000008e:
细节:
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],我收到一个类型错误,说我无法打印 type None
6.如果尝试其他 cam_index 结果总是 false
在“控制面板”中,相机设备位于“声音视频和游戏 Controller ”下,而不是“成像设备”下;
cam_index==zero;
capture.isOpened()=True;
帧大小为None;
如果 VHStoDVD 以复合 NTSC 配置运行,则摄像机可以正常工作,显然您看不到附件中带有打印屏幕的图像,但请相信我! ;)
是否有任何形式的与加密狗开始通信的初始化可以解决这个问题,即模拟 VHStoDVD 设置(复合+NTSC)?我以为我可以在 VHStoDVD 和加密狗之间窃取通信的开始,但感觉我正在超越并做一些我认为是关键转向解决方案的事情。
欢迎任何建设性的见解、建议和更正!
谢谢
干杯
最佳答案
好的,所以经过更深入的调查,最初的怀疑得到证实,即因为 NTSC 加密狗没有作为成像设备处理(它被视为视频 Controller ,因此类似于电视调谐卡的模拟)这意味着虽然我们能够使用 cam_index=0 调用 cv2.VideoCapture 视频 channel 本身不传输,因为我们需要定义一堆参数
问题是因为该设备不受支持,因为调用 cv2.VideoCapture.set(parameter, value) 的成像设备似乎不会更改原始视频源上的任何内容。
我没有找到解决方案,但我找到了解决方法。网上似乎有很多选择。搜索关键字 DV to webcam 或 camcorder as a webcam。
我使用了 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/
正在尝试创建一个 python 包。似乎有效,但我收到警告。我的 setup.py 是: #! /usr/bin/env python from distutils.core import setup
我导入了一个数据类型 X ,定义为 data X a = X a 在本地,我定义了一个通用量化的数据类型,Y type Y = forall a. X a 现在我需要定义两个函数, toY 和 fro
我似乎无法让编译器让我包装 Tokio AsyncRead: use std::io::Result; use core::pin::Pin; use core::task::{Context, Po
我有两个函数“a”和“b”。当用户上传文件时,“b”被调用。 “b”重命名文件并返回新文件名。之后应该编辑该文件。像这样: def a(): edits file def b(): r
我使用 Entity Framework 作为我的 ORM,我的每个类都实现了一个接口(interface),该接口(interface)基本上表示表结构(每个字段一个只读属性)。这些接口(inter
有没有办法打开一个程序,通常会打开一个新的jframe,进入一个现有的jframe? 这里是解释,我下载了一个java游戏,其中一个是反射游戏,它在一个jframe中打开,框架内有一堆子面板,我想要做
我想要下面的布局 | AA BBBBBBB | 除非没有足够的空间,在这种情况下 | AA | | BBBBBBB | 在这种情况下,A 是复选框,B 是复选框旁边的 Text
我正在尝试以不同的方式包装我的网站,以便将背景分为 2 部分。灰色部分是主要背景,还有白色部分,它较小并包装主要内容。 基本上我想要this看起来像this . 我不太确定如何添加图像来创建阴影效果,
我正在使用 : 读取整数文件 int len = (int)(new File(file).length()); FileInputStream fis = new FileInputStream(f
我使用 maven 和 OpenJDK 1.8 打包了一个 JavaFX 应用程序我的 pom.xml 中的相关部分: maven-assembly-plugin
我正在使用两个不同的 ItemsControl 来生成一个按钮列表。
我有一个情况,有一个变量会很方便,to , 可以是 TimerOutput或 nothing .我有兴趣提供一个采用与 @timeit 相同参数的宏来自 TimerOutputs(例如 @timeit
我正在尝试包装一个名为 content 的 div与另一个具有不同背景的 div。 但是,当将“margin-top”与 content 一起使用时div,似乎包装 DIV 获得了边距顶部而不是 co
文档不清楚,它似乎允许包装 dll 和 csproj 以在 Asp.Net Core 5 应用程序中使用。它是否允许您在 .Net Core 5 网站中使用针对 .Net Framework 4.6
我被要求开发一个层,该层将充当通用总线,而不直接引用 NServiceBus。到目前为止,由于支持不引人注目的消息,这并不太难。除了现在,我被要求为 IHandleMessages 提供我们自己的定义
我正在尝试包装 getServersideProps使用身份验证处理程序函数,但不断收到此错误:TypeError: getServerSideProps is not a function我的包装看
我有一个项目,它在特定位置(不是/src/resources)包含资源(模板文件)。我希望在运行 package-bin 时将这些资源打包。 我看到了 package-options 和 packag
我正在寻找打印从一系列对象中绘制的 div。我可以通过使用下面的管道语法来实现这一点。 each i, key in faq if (key == 0) |
我在 Meteor.js“main.js - Server”中有这个方法。 Meteor.methods({ messageSent: function (message) { var a
我注意到,如果我的自定义Polymer 1.x元素的宽度比纸张输入元素上的验证错误消息的宽度窄,那么错误将超出自定义元素的右边界。参见下图: 有没有一种机制可以防止溢出,例如在到达自定义元素的边界时自
我是一名优秀的程序员,十分优秀!