我是靠谱客的博主 悲凉花生,最近开发中收集的这篇文章主要介绍在ROS中用opencv订阅摄像头图像并显示在ROS中用openCV显示摄像头并发布图像数据在ROS中用opencv订阅摄像头图像并显示客官!如果觉得有用,给俺点赞支持下呗!,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
在ROS中用opencv订阅摄像头图像并显示
- 在ROS中用openCV显示摄像头并发布图像数据
- 在ROS中用opencv订阅摄像头图像并显示
- 使用C++实现
- CMakeLists.txt配置
- 使用Python实现
- 客官!如果觉得有用,给俺点赞支持下呗!
在ROS中用openCV显示摄像头并发布图像数据
参考本人博客:在ROS中用openCV显示摄像头并发布图像数据
在ROS中用opencv订阅摄像头图像并显示
使用C++实现
#include <ros/ros.h>
#include <image_transport/image_transport.h>
#include <opencv2/highgui/highgui.hpp>
#include <cv_bridge/cv_bridge.h>
void imageCallback(const sensor_msgs::ImageConstPtr& msg)
{
try // 如果转换失败,则提跳转到catch语句
{
cv::imshow("view", cv_bridge::toCvShare(msg, "bgr8")->image); // 将图像转换openCV的格式,并输出到窗口
cv::waitKey(1); // 一定要有wiatKey(),要不然是黑框或者无窗口
}
catch(cv_bridge::Exception& e)
{
ROS_ERROR("Could not convert for '%s' to 'bgr8'.", msg->encoding.c_str());
}
}
int main(int argc, char** argv)
{
ros::init(argc, argv, "imageSub_node"); // 注册节点名
ros::NodeHandle nh; // 注册句柄
image_transport::ImageTransport it(nh); // 注册句柄
image_transport::Subscriber imageSub = it.subscribe("/cameraImage", 1, imageCallback); // 订阅/cameraImage话题,并添加回调函数
ros::spin(); // 循环等待回调函数触发
}
CMakeLists.txt配置
添加(最后两个的imageSub是生成可执行文件的名字,根据自己来设定):
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(imageSub src/image_sub.cpp)
target_link_libraries(imageSub ${catkin_LIBRARIES} ${OpenCV_LIBS})
注:如果前两个已经添加了,可以不用再添加
使用Python实现
未完待续
客官!如果觉得有用,给俺点赞支持下呗!
欢迎留言讨论,指出不足和建议!
最后
以上就是悲凉花生为你收集整理的在ROS中用opencv订阅摄像头图像并显示在ROS中用openCV显示摄像头并发布图像数据在ROS中用opencv订阅摄像头图像并显示客官!如果觉得有用,给俺点赞支持下呗!的全部内容,希望文章能够帮你解决在ROS中用opencv订阅摄像头图像并显示在ROS中用openCV显示摄像头并发布图像数据在ROS中用opencv订阅摄像头图像并显示客官!如果觉得有用,给俺点赞支持下呗!所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复