在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
{
cv
::imshow("view", cv_bridge
::toCvShare(msg
, "bgr8")->image
);
cv
::waitKey(1);
}
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
);
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实现
未完待续
客官!如果觉得有用,给俺点赞支持下呗!
欢迎留言讨论,指出不足和建议!