Невозможно установить размер изображения в режиме видео format7_4 с помощью библиотеки dc1394

Мне нужно настроить камеру Point Grey (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); вместо этого программа выдает следующую ошибку

libdc1394 error: 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).

Так что я застрял, у кого-нибудь есть представление о том, почему рукопожатие терпит неудачу?:/

1 ответ

Решение

После игры с различными параметрами я понял, что положение изображения не было привязано к left = 0 а также top = 0 по умолчанию. Установка их на ноль (dc1394_format7_set_image_position(camera, DC1394_VIDEO_MODE_FORMAT7_4, 0, 0);) позволил использовать максимальный размер изображения (например, при разрешении 1040 x 776 format7_4).

Другие вопросы по тегам