ros opencv camera_driver

本文介绍了在Linux环境下,使用ROS和OpenCV处理USB摄像头时,如何将摄像头采集的YUYV帧格式转换为MJPEG格式。作者通过实践发现,摄像头可能仅支持YUYV格式输出,而网络传输更适宜MJPEG。文章引用了相关博客资源,提供了YUV与RGB之间的转换公式,并探讨了不同摄像头格式的支持情况。

临近下班,在hydro版本上使用usb_cam成功实现人脸识别。

usb_cam是另一种usb camera driver,区别与uvc_cam和uvc_camera。

http://embed.chinaitlab.com/qtx/942004.html

遇到一个问题,就是将摄像头的格式选择为mjpeg时,无正常输出。后在小安提醒下改为yuyv格式,就可以正常显示图像了。

很奇怪,网上别人用的是mjpeg格式就是正常的,这个是为什么呢?

谷歌了一下,答案便清楚了:

摄像头有的仅支持yuyv输出,有的也支持mjpeg输出。这个根据摄像头的能力来选择。

比如:V4L2_PIX_FMT_MJPEG,摄像头是罗技C270。

在做网络视频监控系统时,摄像头有的不支持v4l2_pix_fmt_mjpeg格式,只能支持v4l2_pix_fmt_yuyv格式,这样的话,不适合于在网络上的传输。为了将YUYV转换成MJPEG,需要借助于jpeg库。http://blog.youkuaiyun.com/yu254675752/article/details/8509147

Linux下摄像头采集图像的帧格式从YUYV转换成MJPEG

http://blog.youkuaiyun.com/clc4210408/article/details/6943777


ht

1761011957.746089596 Node Startup 1761011958.953740512 INFO /vision_nodelet_manager [/home/d455/flir_ws/src/spinnaker_camera_driver/src/capture.cpp:144(Capture::init_variables_register_to_ros)] [topics: /rosout] Spinnaker library version: 2.2.0.48 1761011958.953813637 INFO /vision_nodelet_manager [/home/d455/flir_ws/src/spinnaker_camera_driver/src/capture.cpp:179(Capture::load_cameras)] [topics: /rosout] Retreiving list of cameras... 1761011959.067328721 INFO /vision_nodelet_manager [/home/d455/flir_ws/src/spinnaker_camera_driver/src/capture.cpp:184(Capture::load_cameras)] [topics: /rosout] Numer of cameras found: 1 1761011959.067367653 INFO /vision_nodelet_manager [/home/d455/flir_ws/src/spinnaker_camera_driver/src/capture.cpp:185(Capture::load_cameras)] [topics: /rosout] Cameras connected: 1 1761011959.068381098 INFO /vision_nodelet_manager [/home/d455/flir_ws/src/spinnaker_camera_driver/src/capture.cpp:189(Capture::load_cameras)] [topics: /rosout] -21137010 Blackfly S BFS-U3-31S4C 1803.0.250.0 1761011959.120182540 INFO /vision_nodelet_manager [/home/d455/flir_ws/src/spinnaker_camera_driver/src/capture.cpp:1375(Capture::dynamicReconfigureCallback)] [topics: /rosout, /camera_array/cam0/image_raw/compressedDepth, /camera_array/cam0/image_raw/compressedDepth/parameter_descriptions, /camera_array/cam0/image_raw/compressedDepth/parameter_updates, /camera_array/cam0/image_raw/compressed, /camera_array/cam0/image_raw/compressed/parameter_descriptions, /camera_array/cam0/image_raw/compressed/parameter_updates, /camera_array/cam0/image_raw, /camera_array/cam0/image_raw/theora, /camera_array/cam0/image_raw/theora/parameter_descriptions, /camera_array/cam0/image_raw/theora/parameter_updates, /camera_array/cam0/camera_info, /camera, /acquisition_node/parameter_descriptions, /acquisition_node/parameter_updates] Dynamic Reconfigure: Level : 4294967295 1761011959.121648641 INFO /vision_nodelet_manager [/home/d455/flir_ws/src/spinnaker_camera_driver/src/capture.cpp:640(Capture::init_array)] [topics: /rosout, /camera_array/cam0/image_raw/compressedDepth, /camera_array/cam0/image_raw/compressedDepth/parameter_descriptions, /camera_array/cam0/image_raw/compressedDepth/parameter_updates, /camera_array/cam0/image_raw/compressed, /camera_array/cam0/image_raw/compressed/parameter_descriptions, /camera_array/cam0/image_raw/compressed/parameter_updates, /camera_array/cam0/image_raw, /camera_array/cam0/image_raw/theora, /camera_array/cam0/image_raw/theora/parameter_descriptions, /camera_array/cam0/image_raw/theora/parameter_updates, /camera_array/cam0/camera_info, /camera, /acquisition_node/parameter_descriptions, /acquisition_node/parameter_updates] *** FLUSH SEQUENCE *** 1761011959.121688125 INFO /vision_nodelet_manager [/home/d455/flir_ws/src/spinnaker_camera_driver/src/capture.cpp:661(Capture::init_cameras)] [topics: /rosout, /camera_array/cam0/image_raw/compressedDepth, /camera_array/cam0/image_raw/compressedDepth/parameter_descriptions, /camera_array/cam0/image_raw/compressedDepth/parameter_updates, /camera_array/cam0/image_raw/compressed, /camera_array/cam0/image_raw/compressed/parameter_descriptions, /camera_array/cam0/image_raw/compressed/parameter_updates, /camera_array/cam0/image_raw, /camera_array/cam0/image_raw/theora, /camera_array/cam0/image_raw/theora/parameter_descriptions, /camera_array/cam0/image_raw/theora/parameter_updates, /camera_array/cam0/camera_info, /camera, /acquisition_node/parameter_descriptions, /acquisition_node/parameter_updates] Initializing cameras... 1761011959.576059167 INFO /vision_nodelet_manager [/home/d455/flir_ws/src/spinnaker_camera_driver/src/capture.cpp:791(Capture::deinit_cameras)] [topics: /rosout, /camera_array/cam0/image_raw/compressedDepth, /camera_array/cam0/image_raw/compressedDepth/parameter_descriptions, /camera_array/cam0/image_raw/compressedDepth/parameter_updates, /camera_array/cam0/image_raw/compressed, /camera_array/cam0/image_raw/compressed/parameter_descriptions, /camera_array/cam0/image_raw/compressed/parameter_updates, /camera_array/cam0/image_raw, /camera_array/cam0/image_raw/theora, /camera_array/cam0/image_raw/theora/parameter_descriptions, /camera_array/cam0/image_raw/theora/parameter_updates, /camera_array/cam0/camera_info, /camera, /acquisition_node/parameter_descriptions, /acquisition_node/parameter_updates] Deinitializing cameras... 1761011959.597863698 INFO /vision_nodelet_manager [/home/d455/flir_ws/src/spinnaker_camera_driver/src/capture.cpp:801(Capture::deinit_cameras)] [topics: /rosout, /camera_array/cam0/image_raw/compressedDepth, /camera_array/cam0/image_raw/compressedDepth/parameter_descriptions, /camera_array/cam0/image_raw/compressedDepth/parameter_updates, /camera_array/cam0/image_raw/compressed, /camera_array/cam0/image_raw/compressed/parameter_descriptions, /camera_array/cam0/image_raw/compressed/parameter_updates, /camera_array/cam0/image_raw, /camera_array/cam0/image_raw/theora, /camera_array/cam0/image_raw/theora/parameter_descriptions, /camera_array/cam0/image_raw/theora/parameter_updates, /camera_array/cam0/camera_info, /camera, /acquisition_node/parameter_descriptions, /acquisition_node/parameter_updates] All cameras deinitialized. 1761011961.600089474 INFO /vision_nodelet_manager [/home/d455/flir_ws/src/spinnaker_camera_driver/src/capture.cpp:661(Capture::init_cameras)] [topics: /rosout, /camera_array/cam0/image_raw/compressedDepth, /camera_array/cam0/image_raw/compressedDepth/parameter_descriptions, /camera_array/cam0/image_raw/compressedDepth/parameter_updates, /camera_array/cam0/image_raw/compressed, /camera_array/cam0/image_raw/compressed/parameter_descriptions, /camera_array/cam0/image_raw/compressed/parameter_updates, /camera_array/cam0/image_raw, /camera_array/cam0/image_raw/theora, /camera_array/cam0/image_raw/theora/parameter_descriptions, /camera_array/cam0/image_raw/theora/parameter_updates, /camera_array/cam0/camera_info, /camera, /acquisition_node/parameter_descriptions, /acquisition_node/parameter_updates] Initializing cameras... 1761011962.066748079 INFO /vision_nodelet_manager [/home/d455/flir_ws/src/spinnaker_camera_driver/src/capture.cpp:58(Capture::onInit)] [topics: /rosout, /camera_array/cam0/image_raw/compressedDepth, /camera_array/cam0/image_raw/compressedDepth/parameter_descriptions, /camera_array/cam0/image_raw/compressedDepth/parameter_updates, /camera_array/cam0/image_raw/compressed, /camera_array/cam0/image_raw/compressed/parameter_descriptions, /camera_array/cam0/image_raw/compressed/parameter_updates, /camera_array/cam0/image_raw, /camera_array/cam0/image_raw/theora, /camera_array/cam0/image_raw/theora/parameter_descriptions, /camera_array/cam0/image_raw/theora/parameter_updates, /camera_array/cam0/camera_info, /camera, /acquisition_node/parameter_descriptions, /acquisition_node/parameter_updates] onInit Initialized 1761011962.066988578 INFO /vision_nodelet_manager [/home/d455/flir_ws/src/spinnaker_camera_driver/src/capture.cpp:994(Capture::run_soft_trig)] [topics: /rosout, /camera_array/cam0/image_raw/compressedDepth, /camera_array/cam0/image_raw/compressedDepth/parameter_descriptions, /camera_array/cam0/image_raw/compressedDepth/parameter_updates, /camera_array/cam0/image_raw/compressed, /camera_array/cam0/image_raw/compressed/parameter_descriptions, /camera_array/cam0/image_raw/compressed/parameter_updates, /camera_array/cam0/image_raw, /camera_array/cam0/image_raw/theora, /camera_array/cam0/image_raw/theora/parameter_descriptions, /camera_array/cam0/image_raw/theora/parameter_updates, /camera_array/cam0/camera_info, /camera, /acquisition_node/parameter_descriptions, /acquisition_node/parameter_updates, /vision_nodelet_manager/bond] *** ACQUISITION *** 1761011962.120284443 WARN /vision_nodelet_manager [/home/d455/flir_ws/src/spinnaker_camera_driver/src/camera.cpp:370(Camera::calibrationParamsTest)] [topics: /rosout, /camera_array/cam0/image_raw/compressedDepth, /camera_array/cam0/image_raw/compressedDepth/parameter_descriptions, /camera_array/cam0/image_raw/compressedDepth/parameter_updates, /camera_array/cam0/image_raw/compressed, /camera_array/cam0/image_raw/compressed/parameter_descriptions, /camera_array/cam0/image_raw/compressed/parameter_updates, /camera_array/cam0/image_raw, /camera_array/cam0/image_raw/theora, /camera_array/cam0/image_raw/theora/parameter_descriptions, /camera_array/cam0/image_raw/theora/parameter_updates, /camera_array/cam0/camera_info, /camera, /acquisition_node/parameter_descriptions, /acquisition_node/parameter_updates, /vision_nodelet_manager/bond] Looks like your calibration is not done at full Sensor Resolution for cam_id = 21137010 , Sensor_Width = 2064 given cameraInfo params:width = 1440 1761011962.120371905 WARN /vision_nodelet_manager [/home/d455/flir_ws/src/spinnaker_camera_driver/src/camera.cpp:372(Camera::calibrationParamsTest)] [topics: /rosout, /camera_array/cam0/image_raw/compressedDepth, /camera_array/cam0/image_raw/compressedDepth/parameter_descriptions, /camera_array/cam0/image_raw/compressedDepth/parameter_updates, /camera_array/cam0/image_raw/compressed, /camera_array/cam0/image_raw/compressed/parameter_descriptions, /camera_array/cam0/image_raw/compressed/parameter_updates, /camera_array/cam0/image_raw, /camera_array/cam0/image_raw/theora, /camera_array/cam0/image_raw/theora/parameter_descriptions, /camera_array/cam0/image_raw/theora/parameter_updates, /camera_array/cam0/camera_info, /camera, /acquisition_node/parameter_descriptions, /acquisition_node/parameter_updates, /vision_nodelet_manager/bond] Looks like your calibration is not done at full Sensor Resolution for cam_id = 21137010 , Sensor_Height= 1544 given cameraInfo params:height = 1080 1761011964.123860424 FATAL /vision_nodelet_manager [/home/d455/flir_ws/src/spinnaker_camera_driver/src/camera.cpp:68(ImagePtr acquisition::Camera::grab_frame)] [topics: /rosout, /camera_array/cam0/image_raw/compressedDepth, /camera_array/cam0/image_raw/compressedDepth/parameter_descriptions, /camera_array/cam0/image_raw/compressedDepth/parameter_updates, /camera_array/cam0/image_raw/compressed, /camera_array/cam0/image_raw/compressed/parameter_descriptions, /camera_array/cam0/image_raw/compressed/parameter_updates, /camera_array/cam0/image_raw, /camera_array/cam0/image_raw/theora, /camera_array/cam0/image_raw/theora/parameter_descriptions, /camera_array/cam0/image_raw/theora/parameter_updates, /camera_array/cam0/camera_info, /camera, /acquisition_node/parameter_descriptions, /acquisition_node/parameter_updates, /vision_nodelet_manager/bond] Spinnaker: Failed waiting for EventData on NEW_BUFFER_DATA event. [-1011] Likely reason is that slaves are not triggered. Check GPIO cables 1761011968.136592113 INFO /acquisition_node [/tmp/binarydeb/ros-noetic-nodelet-1.11.2/src/nodelet.cpp:367(main)] [topics: /rosout, /vision_nodelet_manager/bond] Bond broken, exiting
10-22
/usr/bin/ld:CMakeFiles/cyrobot_rviz_tree.dir/src/ipcamera_driver.cpp.o: in function `'IpCameraDriver::IpCameraDriver(std::string const&, std:string consta)·: (home(zny/hs/Ros Ot Rviz GUL-Branchel/Ros Qt Rviz GuI-Branchel/src/iocamera driver.cpe:38; undefined reference to "rclcpp::Node:Node(std::string consta,ttelcpp::Nodeoptions const&)· /usr/bin/ld:/home/zny/hs/Ros_Qt_Rviz_GUI-Branchel/Ros Ot Rviz GUI-Branchel/src/ipcamera driver.cpp:38:undefined reference to `camera_info manager::CameraInfoManager::CameraInfoManager(rclcpp::Nod /usr/bin/ld:/home/zny/hs/Ros_Qt_Rviz_GUI-Branchel/Ros_Qt_Rviz_GUI-Branchel/sre/ipcamera_driver.cpp:44: undefined reference to `relcpp::Node::get_parameter(std::string constay tomge: /usr/bin/ld:/home/zny/hs/Ros_Qt_Rviz_GUI-Branchel/Ros_Qt_Rviz_GUI-Branchel/sre/ipcamera_driver.cpp:44: undefined reference to `rclcpp::Parameter::as_stringoy const' /usr/bin/ld:/home/zny/hs/Ros_Qt_Rviz_GUI-Branchel/Ros_Qt_Rviz_GUI-Branchel/src/ipcamera_driver.cpp:45: updefined reference to 'rclcpp::Node::get_parameter(std::string const&) const /usr/bin/ld:/home/zny/hs/Ros_Qt_Rviz_GUI-Branchel/Ros_Qt_Rviz_GUI-Branchel/src/ipcamera_driver.cpp:45: uhdefined reference to `rclcpp::Parameter::as_string() const' /usr/bin/ld:/home/zny/hs/Ros_Qt_Rviz_GUI-Branchel/Ros_Qt_Rviz_GUI-Branchel/sre/ipcamera_driver.cpp:67: undefined reference to `cv::VideoCapture::open(std::string const&, int)· /usr/bin/ld: CMakefiles/cyrobot rviz tree.dir/src/ipcamera_driver.cpp.o: in function `IpCameraDriver::refreshSrvCallback(std::shared ptr<std srvs::srv::Emoty Reguest <std::allocatoryoid)) etd... lhome/zny/hs/Ros Ot Rviz GUI-Branchel/Ros Qt Rviz GUI-Branchel/src/ipcamera driver.cpp:128: undefined reference to `cv::VideoCapture::open(std::string const&, int)' /usr/bin/ld: CMakefiles/cyrobot rviz tree.dir/src/ipcamera driver.cpp.o: in function `rclcpp::Q0SEventHandlerBase::set on ready_callback(std::function<void (unsigned long, int)z)-{lamhdalunejanod l lopt/ros/humble/include/rclcpp/rclcpp/qos event.hpp:166: undefined reference to `rclcpp::get_logger(std::string const&)' /usr/bin/ld: /opt/ros/humble/include/rclcpp/relcpp/qos_event.hpp:166: undefined reference to `rclcpp::get_logger(std::string const&) /usr/bin/ld: /opt/ros/humble/include/rclcpp/rclcpp/qos_event.hpp:174: undefined reference to `rclcpp::get_logger(std::string const&) /usr/bin/ld:/opt/ros/humble/include/rclcpp/rclcpp/qos_event.hpp:174: undefined reference to `rclcpp::get_logger(std::string const&) /usr/bin/ld: CMakeFiles/cyrobot_rviz_tree.dir/src/ipcamera_driver.cpp.0: in function `rclcpp::ParameterTypeException::ParameterTypeException(rclcpp::ParameterType, rclcpp::ParameterType)': lopt/ros/humble/include/rclcpp/rclcpp/parameter value.hpp:66: undefined reference to `rclcpp::to_string(rclcpp::ParameterType)' /usr/bin/ld:/opt/ros/humble/include/rclcpp/rclcpp/parameter_value.hpp:66: undefined reference to `rclcpp::to_string(rclcpp::ParameterType)' /usr/bin/ld:CMakeFiles/cyrobot_rviz_tree.dir/src/ipcamera_driver.cpp.o: in function `auto rclcpp::Node::declare_parametercstd::string>(std::string const&, std::string const&, rcl_interfaces::msg::Para lopt/ros/humble/include/rclcpp/rclcpp/node jmpl.hpp:204: undefined reference to `rclcpp::Parametervalue::Parametervalue(std::string const&) ~/usr/bin/ld:/opt/ros/humble/include/rclcpp/rclcpp/node_impl.hpp:202: undefined reference to `rclcpp::Node::declare_parameter(std::string const&, rclcpp::ParameterValue const&, rcl_interfaces::msg::Par
最新发布
10-30
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值