(一)ROS2中OPENCV的使用步骤

这篇具有很好参考价值的文章主要介绍了(一)ROS2中OPENCV的使用步骤。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ROS2中OPENCV的使用步骤

1、首先看自己的ros2是否安装了opencv

打开终端运行,即可得到自己的opencv版本
pkg-config --modversion opencv4

ros安装opencv,ROS2中使用OPENCV,opencv,webpack,人工智能

2、将opencv和ros2集成

2.1、创建工作环境
mkdir -p ~/OPENCV_WS/scr
2.2、创建ros2包的时候,添加opencv依赖项
ros2 pkg create opencv_use --build-type ament_cmake --dependencies rclcpp OpenCV sensor_msgs cv_bridge image_transport --node-name my_opencv

3、编写.cpp代码读取图片,完成第一个opencv实例

#include <cstdio>
#include <opencv2/opencv.hpp>

/*
  通过使用 using namespace cv;
  你可以方便地访问 cv 命名空间中的所有函数、类、变量等,而不必在每个使用之前添加 cv:: 限定符。这可以使代码更加简洁,
*/
using namespace cv;

int main(int argc, char ** argv)
{
  (void) argc;
  (void) argv;

  Mat scr = imread("/home/dzj/桌面/Opencv/图片/Lenna.png");
  imshow("scr", scr);
  waitKey(0);   			// 这句确保窗口一直打开

  printf("hello world opencv_use package\n");
  return 0;
}

4、配置CMakeList.txt

这里在创建包的时候增加了–node-name 因此不需要自己添加依赖项
# find dependencies
find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(OpenCV REQUIRED)
find_package(sensor_msgs REQUIRED)
find_package(cv_bridge REQUIRED)
find_package(image_transport REQUIRED)

add_executable(my_opencv src/my_opencv.cpp)
target_include_directories(my_opencv PUBLIC
  $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
  $<INSTALL_INTERFACE:include>)
  
ament_target_dependencies(
  my_opencv
  "rclcpp"
  "OpenCV"
  "sensor_msgs"
  "cv_bridge"
  "image_transport"
)

install(TARGETS 
  my_opencv
  DESTINATION lib/${PROJECT_NAME})

5、代码编译和实现

colcon build
source install/setup.bash 
ros2 run opencv_use my_opencv 

6、实现结果

在这里可以看到运行结果,一个经典的图像处理领域使用的lenna的图片。

ros安装opencv,ROS2中使用OPENCV,opencv,webpack,人工智能文章来源地址https://www.toymoban.com/news/detail-752050.html

到这里说明你ros2下的opencv库已经可以正常使用了。

##############知识补充################

Mat 类是OpenCV(Open Source Computer Vision Library)中的一个核心类,它用于表示图像和图像处理中的矩阵数据。Mat 类提供了一种灵活的方式来存储和处理图像数据,可以处理各种图像格式和通道数。
存储类型 解释
图像数据储存 Mat 类用于存储图像的像素数据。它可以存储单通道或多通道的图像数据,支持不同的数据类型(如整数、浮点数等)。
多通道图像 Mat 对象可以表示多通道图像,例如彩色图像通常有三个通道:红色、绿色和蓝色。每个通道都可以是一个矩阵。
灵活的构造函数 你可以使用不同的构造函数来创建 Mat 对象,包括指定行数、列数、通道数和数据类型等参数。
数据访问 你可以通过 Mat 对象来访问和修改图像数据。例如,可以使用 Mat.at<type>(row, col) 来获取特定位置的像素值,其中 type 是数据类型(如 intfloat 等)。
图像操作 Mat 类还提供了许多图像处理和操作的方法,例如裁剪、调整大小、滤波、变换等。
内存管理 Mat 对象可以自动管理内存,因此你不必担心内存分配和释放。它使用智能指针来跟踪数据,以确保安全的内存管理。
Mat实例化构造函数
实例化形式 code
创建Mat空对象 cv::Mat emptyMat;
指定大小和数据类型的Mat对象 cv::Mat image(height, width, CV_8UC3);
// 创建一个 3 通道的图像,数据类型为 8 位无符号整数
从已有的数据创建Mat对象 int data[] = {1, 2, 3, 4, 5, 6};
cv::Mat matrix(2, 3, CV_32SC1, data); // 从数组 data 创建一个 2x3 的单通道整数型矩阵
从文件加载图像 cv::Mat image = cv::imread(“image.jpg”); // 从文件加载图像
从其他Mat对象复制数据 cv::Mat copyOfImage = image.clone(); // 从现有的 Mat 对象复制数据

到了这里,关于(一)ROS2中OPENCV的使用步骤的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ROS2入门与实践--1(ROS2的安装与环境测试)

    对于VMware虚拟机的安装教程请看这篇文章:VMware虚拟机安装 对于20.04版本的Ubuntu操作系统安装教程请看这篇文章:Ubuntu-20.04系统安装 对于22.04版本的Ubuntu操作系统安装教程请看这篇文章:Ubuntu-22.04系统安装 1.在ROS2官方的文档中,安装ROS2之前需要首先检查操作系统语言环境 官

    2024年02月15日
    浏览(47)
  • 【ROS2】为什么要使用ROS2?《ROS2系统特性介绍》

    2010年,ROS1首次发布正式版本,其研发的初衷是为设计PR2(个人服务型机器人)共用的软件架构。但随着ROS1技术的普及,ROS1开始广泛融入各领域无人系统的研发,陆续暴露了系统的诸多问题。为了适应新时代机器人研发的需要,2022年5月,ROS开发者团队推出新版本ROS2。 2007年

    2024年02月09日
    浏览(39)
  • 【ROS2 入门】虚拟机环境 ubuntu 18.04 ROS2 安装

             大家好,我是虎哥,从今天开始,我将花一段时间,开始将自己从ROS1切换到ROS2,做为有别于ROS1的版本,做了很多更新和改变,我还是很期待自己逐步去探索ROS2中的惊喜。在安装过程中我也遇到的一些坑,我自己也尝试填了一部分,未必是全部,但是相信集合大

    2024年01月17日
    浏览(59)
  • ROS篇——Ubuntu快速一键安装ROS或ROS2(通用)

    以下以Ubuntu22.04安装ROS2为例(我今天新装了一个Ubuntu22.04,从0开始教你安装ROS)。 一、下载ROS安装脚本并运行 执行后如下图所示  输入数字1,回车 如果不确定自己的系统源是否可用 ,输入数字1(建议),回车  如果自己之前设置过一些第三方源,不想清除,就输入数字

    2024年02月14日
    浏览(44)
  • ROS Neotic(Ubuntu 20.04)如何正确安装OpenCV

    鱼香ROS提供了一个全面且方便的脚本,可以直接运行来安装系统对应版本的ROS,同时也可以使用该命令来安装许多有趣的东西 本文安装的为无contrib版本的OpenCV GitHub OpenCV 项目地址 在源代码的目录下依次执行上方的命令,第四步cmake的过程中可以增加相关的参数来自定义Open

    2024年02月05日
    浏览(43)
  • ROS2学习(一):Ubuntu 22.04 安装 ROS2(Iron Irwini)

    一、ROS2(Iron Irwini)介绍 官方文档 Iron Irwini版本支持的平台如下: 二、ROS2(Iron Irwini)安装 1.设置编码 2.使能代码库 现在用apt添加带ROS 2 GPG 将存储库添加到源列表中 3.安装ROS2 Iron 三、ROS2测试 在terminal 1 运行下面的指令: 在terminal 2 运行下面的指令: 四、ROS2卸载 删除RO

    2024年02月10日
    浏览(42)
  • 木叶飞舞之【机器人ROS2】篇章_第一节、ROS2 humble及cartorgrapher安装

    假如长期使用ros2,建议是ubuntu系统或者双系统下安装操作,不要在虚拟机中进行。 ubuntu系统能用最新的大系统就用最新的,比如22.04。等明年24.04出来可以用24.04 ros版本选择humble版本,比较稳定,各公司用的多一点。 2.1、一键安装 利用鱼香ROS的安装指令一键安装即可 (1)

    2024年02月10日
    浏览(46)
  • Ubuntu20.04同时安装ROS1和ROS2

    每版的Ubuntu系统版本都有与之对应ROS版本的,每一版ROS都有其对应版本的Ubuntu版本,不可随便装,ubuntu20.04对应ROS1 noetic和ROS2 foxy版本。_ros1和ros2共存 文章目录 Ubuntu20.04同时安装ROS1和ROS2共存 一、换源 1.1 通过软件更新 1.2 通过修改源文件(建议) 二、安装ROS1(noetic) 三、安

    2024年02月09日
    浏览(65)
  • ROS2安装serial库

    今天在使用ros2读取IMU数据的时候,他需要用到一个 serial 的包,由于我使用的是Ubuntu20.04+ROS2humble,并且没有安装这个包,所以出现了以下报错 如果是在ros1中,他可以直接使用以下命令安装包 但是在ROS2中, serial 的包并没有放入到ROS2的官网当中,所以搜索包库后,找不到这

    2024年02月12日
    浏览(78)
  • 使用Matlab、Opencv、Ros三种方法完成相机标定

    1、相机标定的意义         在机器视觉领域,相机的标定是一个关键的环节,它决定了机器视觉系统能否有效的定位,能否有效的计算目标物。相机标定意义在于将现实世界中的三维物体与相机图像对应的二维物体映射起来,实际上就是透视投影。 2、相机标定原理   

    2024年04月13日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包