无法使用库 dc1394 在视频模式 format7_4 下设置图像大小
Can't set image size under video mode format7_4 using library 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 is set: in
_dc1394_v130_handshake (format7.c, line 126): invalid image position, size, color coding or ISO speed
libdc1394 error: Format_7 Error_flag_1 is set: in
dc1394_format7_set_image_size (format7.c, line 482): F7 handshake
failure
这很有趣,因为根据相机的 technical documentation(第 8.4.6 节),它是 format7_4
下支持的尺寸。
所以我有点卡住了,有人知道握手失败的原因吗? :/
在尝试了不同的参数后,我意识到默认情况下图像位置并未锚定在 left = 0
和 top = 0
。将它们设置为零 (dc1394_format7_set_image_position(camera, DC1394_VIDEO_MODE_FORMAT7_4, 0, 0);
) 可以使用最大图像尺寸(在 format7_4
下 1040 x 776 就是这种情况)。
我需要使用提供给我的一些值来配置 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 is set: in _dc1394_v130_handshake (format7.c, line 126): invalid image position, size, color coding or ISO speed
libdc1394 error: Format_7 Error_flag_1 is set: in dc1394_format7_set_image_size (format7.c, line 482): F7 handshake failure
这很有趣,因为根据相机的 technical documentation(第 8.4.6 节),它是 format7_4
下支持的尺寸。
所以我有点卡住了,有人知道握手失败的原因吗? :/
在尝试了不同的参数后,我意识到默认情况下图像位置并未锚定在 left = 0
和 top = 0
。将它们设置为零 (dc1394_format7_set_image_position(camera, DC1394_VIDEO_MODE_FORMAT7_4, 0, 0);
) 可以使用最大图像尺寸(在 format7_4
下 1040 x 776 就是这种情况)。