问题标签 [genicam]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
docker - 来自 docker(在 Windows 主机上)的广播 UDP 无法进入 LAN
我正在运行与gen<i>cam
docker 容器内的 GigE Vision / 摄像头对话的代码。真正的部署将在 Windows 主机上运行(不幸的是)。摄像机响应广播的 UDP 发现数据包到端口 3965(wireshark 将这些数据包分解为 GVCP 协议,DISCOVER_CMD):
显然,UDP 数据包不能通过网桥,尽管--network=host
在 Linux 上有所帮助:发现了摄像头。
在 Windows 主机上,--network=host
没有任何效果,并且发现数据包(从容器内发送)永远不会到达 LAN。Windows Defender 防火墙已关闭,并且没有其他防火墙/防病毒/任何活动。
我还可以在 Windows 中运行相机发现程序(而不是在托管容器中)并且它可以工作。
知道有什么问题吗?我在谷歌上搜索“docker egress UDP windows”之类的东西,但没有有用的结果。
python - 可以使用 Aravis github 项目更改相机的设备参数
下面提供了代码。
该行: device.set_string_feature_value('PixelCoding', 'Raw') 不起作用。它将pixelCoding默认为默认值(单声道)
我厌倦了把这些线: device.set_integer_feature_value('TLParamsLocked', 0) device.set_integer_feature_value('TLParamsLocked', 1) 看看这是否没有让参数更新,但这没有用。
如果您需要更多详细说明,请告诉我。
h.264 - 将原始 Genicam H.264 数据读取到 avlib
我尝试熟悉 libav,以便处理来自 GenICam 支持相机的原始 H.264 流。我想通过 GenICam 提供的接口 (API) 接收原始数据,然后将该数据转发到 libav 以生成一个容器文件,然后将其流式传输到 VLC 等播放设备或(稍后)到自己实现的展示。
到目前为止,我使用了 GenICam 示例代码,它将原始 H.264 数据传输到“sample.h264”文件中。这个文件,我已经通过命令行工具 ffmpeg,为了生成一个 mp4 容器文件,我可以在 VLC 中打开和观看
目前,我通常会深入研究每个 H.264、ffmpeg、libav 和视频处理的示例和文档。我不得不承认,作为一个初学者,这让我很困惑。我认为我已经找到了可以帮助我开展工作的相应 libav 功能:
我认为,基本上,我需要函数 avcodec_send_packet() 和 avcodec_receive_packet() (因为不推荐使用 avcodec_decode_video2() )。在此之前,我设置了一个 avCodedContext 结构并使用 H.264 编解码器 (AV_CODEC_ID_H264) 打开(或组合?!?)它。
到目前为止,我的代码如下所示(省略错误检查和其他内容):
上面代码的结果是,对 send_packet() 和 receive_frame() 的调用都返回错误代码(-22 和 -11),我无法通过 av_strerror() 解密(它只是说,这些是错误代码 22 和 11)。
编辑:也许作为那些想知道的人的附加信息
是一个有效的操作......在第一次调用这个操作之后, avPacket->data 的内容是
由于一开始的 NAL 标记和数字,这在某种程度上看起来是可以预料的?我不知道,因为我真的是一个完全的初学者......
现在的问题是,我走对了吗?缺少什么以及代码 22 和 11 是什么意思?
下一个问题是,之后要做什么才能获得可以(实时)流式传输到播放器的容器?
在此先感谢,迈克
c++ - 如何使用 SHGetFolderPathA 指定保存视频的位置?
我正在尝试将 avi 视频保存到文件中。为此,我使用了生产这些相机的公司的特殊 API,它已经具有允许我设置 avi 文件并执行所有其他相关操作的所有功能。但是,一旦我运行代码,我就无法访问保存视频的文件。
我的程序编译得很好。但是,我找不到保存 .avi 视频的文件的位置。我尝试将 CSIDL_ 更改为不同的位置,但我无法访问任何位置。
我的期望是能够告诉函数将视频文件保存到我可以访问的位置。请记住,我是 C++ 编程的新手。
c# - 如何在 C# 中使用指针来检索数据
使用 GenICam SDK 检索相机图像。SDK 有一个用于从缓冲区获取图像信息的类。图像实例有一个名为 DataPointer 的属性:
我通常理解数据指针指向实例在内存中的位置。除此之外,我知道的很少,因为我所有的经验都是在托管系统(C#、VB 和其他)中。图像应该是每像素 14 位和 512 x 640 = 327,680 像素。
我假设像素在上面的示例中从 0x000001e6e2ad2040 开始在内存中逐行按顺序排列。
对我来说没有意义的事情是,如果有效图像大小为 1310720,则采用 EffectiveImageSize/Pixes = 4。我没想到会这样。
我将如何检索上述图像的像素值?
c++ - 链接器错误:包含 .so lib 后未定义对 xxx 的引用
在我的命令中明确使用 -lmylib 和 -LmyPath 未定义的引用事件。
我正在尝试使用 genicam API 编译测试程序。这个 API 为 linux 提供了所有需要的定义的共享库。我的命令如下:
根据链接器,程序可以编译,但对应该在 .so 文件中的定义的所有引用都是未定义的,例如:
我试图查看库的内部,并保持相同的示例:
这条线不是唯一的输出线,但似乎 gcstring 在那里完全定义了......
所以,我想知道 ld 是否在取笑我,然后用 strace (-f) 再次运行我的编译命令。ld 真的是打开好的 .so 文件并找到它!
谢谢你的帮助,我不知道会发生什么。
c++ - 使用 GenTL.h 的问题:在 GenIcam 包中找不到相应的库
我正在开发一个 C++ 控制台应用程序,该应用程序允许与符合 GenICam 的工业相机进行通信。我安装了最新的 GenICam 包并将其集成到我的项目中。首先,我收到错误消息 C1083:无法打开“GenTL.h”,因此我将此标头移动到包含文件夹并意识到没有相应的二进制文件。现在我收到以下错误消息:
LNK2001 未解析的外部符号“__imp_GCInitLib”。
我不知道如何解决它。我想我需要进一步集成 *.lib,但我在包中找不到任何内容。我错过了什么吗?
谢谢你的帮助!
c++ - GeniCam 标准 XML 格式
我正在尝试在 C 中包含一些符合 GeniCam 标准的相机应用程序的配置 XML 文件。我阅读了 GeniCam 标准文档,它主要解释了 XML 文件的语法和许多细节。
我可以使用 Genicam XML 文件标准的好示例吗?
之后,主要的事情就是让相机应用程序从 XML 文件中读取相机条件,并根据它来配置相机?或者应用程序也应该写入 XML 文件?
flir - 相机崩溃后出现“节点不可写”异常
我正在使用 Spinnaker SDK 来控制 FLIR 相机。如果在任何时候应用程序在使用相机时崩溃,应用程序的每次下一次执行都会抛出一个AccessException
,例如:
Spinnaker::GenApi::CommandNode::Execute: Message = GenICam::AccessException= 节点不可写。:调用“UserSetLoad.Execute()”时在节点“UserSetLoad”中引发 AccessException
到目前为止,我发现的唯一解决方案是拔下并插入相机,但这在某些将要使用该应用程序的环境中不是可接受的解决方案。
这里有一个示例代码(不能完全编译,因为它是从更大的代码库中提取的,但可以让您了解工作流程):
如您所见,相机已正确初始化,但似乎有其他东西在握住相机。
我检查了官方论坛,寻找更通用的GenICam
相关问题,但什么也没有。
有什么方法可以在使用前重置相机吗?