0

我需要使用给我的一些值配置点灰色相机 (FL3-U3-32S2C)。出于某种原因,除了图像大小之外,一切都很完美。

例如,以下(非常简化的)代码完美运行:

#include <dc1394/dc1394.h>

int main(int argc, char *argv[])
{
    dc1394_t * d;
    dc1394camera_t * camera;
    dc1394camera_list_t * list;

    // Get the camera
    d = dc1394_new ();
    if (!d) return 1;
    dc1394_camera_enumerate (d, &list);
    camera = dc1394_camera_new (d, list->ids[0].guid);
    dc1394_camera_free_list (list);

    // Configure
    dc1394_video_set_mode(camera, DC1394_VIDEO_MODE_FORMAT7_4);
    dc1394_format7_set_image_size(camera, DC1394_VIDEO_MODE_FORMAT7_4, 640, 480);
    dc1394_camera_free(camera);
    dc1394_free (d);
    return 0;
}

但是,如果我dc1394_format7_set_image_size(camera, DC1394_VIDEO_MODE_FORMAT7_4, 1040, 776);改为 make,程序会引发以下错误

libdc1394 错误:Format_7 Error_flag_1 已设置:在 _dc1394_v130_handshake(format7.c,第 126 行)中:无效的图像位置、大小、颜色编码或 ISO 速度

libdc1394 错误:Format_7 Error_flag_1 已设置:在 dc1394_format7_set_image_size(format7.c,第 482 行)中:F7 握手失败

这很有趣,因为format7_4根据相机的技术文档(第 8.4.6 节),它是受支持的尺寸。

所以我有点卡住了,有人知道握手失败的原因吗?:/

4

1 回答 1

0

在玩弄了不同的参数后,我意识到图像位置并没有锚定在left = 0默认top = 0情况下。将它们设置为零 ( dc1394_format7_set_image_position(camera, DC1394_VIDEO_MODE_FORMAT7_4, 0, 0);) 可以使用最大图像尺寸(在 1040 x 776 下就是这种情况format7_4)。

于 2017-05-16T20:34:05.797 回答