Canon SDK (EDSDK) 抓取指定大小的视频流区域

Canon SDK (EDSDK) capture region of specified size for video stream

我是 EDSDK 的新手,很抱歉在某些地方出现了奇怪的问题。

是否可以使用 SDK 访问视频流并对其执行一些操作?我需要它来为流中的每个帧捕获指定大小(例如 3840x10 像素)的非常薄的区域 (ROI)。不要将此理解为帧的压缩,不需要遵循纵横比。理论上这些变化应该会增加 fps,因为该区域会非常薄(应该吗?)。

我从官方文档中找到了下面的代码片段,虽然看起来这只会导致发送开始和停止视频录制的信号,而不会访问流。

EdsUInt32 record_start = 4; // Begin movie shooting
err = EdsSetPropertyData(cameraRef, kEdsPropID_Record, 0, sizeof(record_start), &record_start);
EdsUInt32 record_stop = 0; // End movie shooting
err = EdsSetPropertyData(cameraRef, kEdsPropID_Record, 0, sizeof(record_stop), &record_stop);

如果有任何建议和帮助,我将不胜感激。请随时询问任何其他信息!

此 SDK 不允许您像工业摄像头那样直接访问高分辨率流。您可以通过 USB 以连续 JPG 格式访问 ~960x640 实时取景图像。电影录制只能对内部卡进行,并在停止传输结果后进行。在这个 SDK 之外,使用外部 HDMI 录像机可以访问最大 FullHD1080p 的近乎实时的提要,具体取决于型号,并不总是“干净”。