ros-drivers / flir_camera_driver

156 stars 146 forks source link

How to get color images using spinnaker driver? #70

Open LukeAI opened 3 years ago

LukeAI commented 3 years ago

I have a Blackfly BFLY-PGE-31S4C, Sensor: Sony IMX265 (1/1.8" Color CMOS), Resolution: 2048x1536, Color: true, Firmware Version: 1.61.3.0, ubuntu 16.04

This works well with: the pointgrey ros drivers. https://github.com/ros-drivers/pointgrey_camera_driver and also works in spinview

I've been advised to switch to the spinnaker SDK - I just can't get a basic color image using the spinnaker ros drivers.

If, in the launch file, I set "image_format_color_coding" to Mono8 then I can see a black and white image as expected. If I set it to BGR8 (as in the .cfg https://github.com/ros-drivers/flir_camera_driver/blob/kinetic-devel/spinnaker_camera_driver/cfg/Spinnaker.cfg ) I get:

[ WARN] [1615812241.947065644]: [SpinnakerCamera]: (18379334) Entry name RGB8 not available.

[ WARN] [1615812241.947241881]: - EnumEntry_PixelFormat_Mono8 (display Mono 8, symbolic Mono8) [ WARN] [1615812241.947287883]: - EnumEntry_PixelFormat_Mono12Packed (display Mono 12 Packed, symbol ic Mono12Packed) [ WARN] [1615812241.947359275]: - EnumEntry_PixelFormat_Mono16 (display Mono 16, symbolic Mono16) [ WARN] [1615812241.948309211]: - EnumEntry_PixelFormat_BayerRG8 (display Bayer RG 8, symbolic BayerRG8) [ WARN] [1615812241.948398358]: - EnumEntry_PixelFormat_BayerRG12Packed (display BayerRG 12 Packed, symbolic BayerRG12Packed) [ WARN] [1615812241.948454560]: - EnumEntry_PixelFormat_BayerRG16 (display BayerRG 16, symbolic Baye rRG16) [ WARN] [1615812241.948498959]: - EnumEntry_PixelFormat_YUV411Packed (display YUV 411 Packed, symbol ic YUV411Packed) [ WARN] [1615812241.948532322]: - EnumEntry_PixelFormat_YUV422Packed (display YUV 422 Packed, symbol ic YUV422Packed) [ WARN] [1615812241.948557183]: - EnumEntry_PixelFormat_YUV444Packed (display YUV 444 Packed, symbol ic YUV444Packed) [ WARN] [1615812241.948580843]: - EnumEntry_PixelFormat_RGB8Packed (display RGB 8 Packed, symbolic R GB8Packed)

how can I get an RGB image using the spinnaker drivers?

zymouse commented 2 years ago

1.0 这个问题,我回答。这个ros驱动的默认相机配置,就是以黑白显示。如果想彩色显示。需要调节配置文件

也就是设置[image_format_color_coding]颜色编码和[auto_white_balance]白色平衡

flir_camera_driver/spinnaker_camera_driver/cfg/Spinnaker.cfg
# 以下是我的设置["BayerRG8"][ "Once"]
gen.add("image_format_color_coding", str_t, SensorLevels.RECONFIGURE_STOP,  "Image Color coding", "BayerRG8", edit_method=codings)
gen.add("auto_white_balance", str_t, SensorLevels.RECONFIGURE_RUNNING, "White Balance compensates for color shifts caused by different lighting conditions.",  "Once")
# 其中[image_format_color_coding]参数的设置,配置文件里都有
# 而auto_white_balance的参数设置:[Once],[Continuous],[Off]。三种选择

注意:设置完成后,重新编译即可。因为这个配置文件,是c++里面加载的

2.0 其实使用[spinnkerview]软件打开,显示为彩色的原因也是这两个参数设置

image image

3.0 当然不推荐这个方法。修改这些参数最好是在launch文件里修改[camera.launch]

下面这位兄弟帮我们完成了

https://github.com/ros-drivers/flir_camera_driver/issues/14
https://github.com/raabuchanan/flir_camera_driver

image