0

我正在尝试为 MC023CG-SY-UB Ximea 相机配置下采样。当我在 python API 中调用以下设置器时:

cam.set_imgdataformat('XI_RGB24');
cam.set_gain(20);
cam.disable_aeag();
cam.enable_auto_wb();
cam.set_exposure(7000);
cam.set_downsampling('XI_DWN_2x2');

我收到此错误:

xiAPI: XiApiToGentlParamModel::SetDownsampling ERROR setting value 2
xiAPI: xiAPI error: Expected XI_OK in:../API/xiFAPI/interfaces/02_mid/xifapi_Handlers_Setters.gen.h SetParam/Line:55
xiAPI: xiSetParam - error: setting parameter downsampling
Traceback (most recent call last):
File "show_ximea_position.py", line 21, in <module>
    cam.set_downsampling('XI_DWN_2x2');

File "/usr/local/lib/python2.7/site-packages/ximea/xiapi.py", line 611, in set_downsampling
self.set_param('downsampling', downsampling)
File "/usr/local/lib/python2.7/site-packages/ximea/xiapi.py", line 389, in set_param
raise Xi_error(stat)
ximea.xiapi.Xi_error: ERROR 12: Not supported

我尝试了文档中提到的 2x2->16x16 中的每种 XI_DWN_NxN 采样方法,并且都产生了相同的错误(不支持)。如果我使用 XI_DWN_1x1,配置可以正常工作,但图像分辨率太高。

我应该调用哪些函数来降低相机的分辨率?我知道我可以做类似的事情:

cam.set_width 
cam.set_height

但这会裁剪图像,并且不会改变分辨率。

4

1 回答 1

0

事实证明,仅当您使用的相机不支持下采样时才会返回此消息。您唯一的其他选择是减少您取回的像素数量。换言之,上述相机支持以 1936x1216 的分辨率进行拍摄,但您不必全部拍摄。在下面的示例中,我正在获取 944x1200。

width = 944;
height = 1200;
cam.set_imgdataformat('XI_RGB24');
cam.set_width(width);
cam.set_height(height);
# this value needs to be in increments of 16
# math to get this number : 1936 - 944 = 992 / 2 = 496
cam.set_offsetX(496);
# 496 / 16 = 31.0 yields valid offset for x for center of image
于 2019-10-10T19:14:33.310 回答