当前位置: 首页 > news >正文

c++ 调用opencv或pcl流程

以下是一个基于C++和OpenCV调用PCL(Point Cloud Library)的教程,主要介绍如何在Ubuntu环境下配置和使用PCL与OpenCV:

环境准备

  1. 安装依赖库
    在Ubuntu系统中,运行以下命令安装必要的依赖库:

    sudo apt-get install build-essential
    sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
    sudo apt-get install python-dev python-numpy python3-dev python3-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev
    sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
    sudo apt update
    sudo apt install libjasper1 libjasper-dev
    
  2. 安装OpenCV

    • 下载OpenCV和OpenCV_contrib源码:
      wget https://github.com/opencv/opencv/archive/4.5.3.zip -O opencv-4.5.3.zip
      wget https://github.com/opencv/opencv_contrib/archive/4.5.3.zip -O opencv_contrib-4.5.3.zip
      unzip opencv-4.5.3.zip
      unzip opencv_contrib-4.5.3.zip
      mv opencv_contrib-4.5.3 opencv-4.5.3/opencv_contrib
      
    • 编译OpenCV:
      cd opencv-4.5.3
      mkdir build && cd build
      sudo cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv4 \-D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules/ -D OPENCV_GENERATE_PKGCONFIG=YES -D OPENCV_ENABLE_NONFREE=True ..
      sudo make -j$(nproc)
      sudo make install
      
  3. 安装PCL

    • 使用系统包管理器安装PCL:
      sudo apt-get install libpcl-dev
      

配置项目

  1. 创建项目目录结构
    创建一个C++项目目录,例如:

    cpp_project
    ├── .vscode
    │   ├── c_cpp_properties.json
    │   ├── launch.json
    │   └── tasks.json
    ├── build
    ├── CMakeLists.txt
    ├── include
    │   ├── func_common.h
    │   ├── func_opencv.h
    │   └── func_pcl.h
    └── src├── func_common.cpp├── func_opencv.cpp├── func_pcl.cpp└── main.cpp
    
  2. 配置CMakeLists.txt
    编写CMakeLists.txt文件以配置项目:

    cmake_minimum_required(VERSION 2.8)
    project(MyProject)# 添加PCL库
    find_package(PCL 1.8 REQUIRED)
    include_directories(${PCL_INCLUDE_DIRS})
    link_directories(${PCL_LIBRARY_DIRS})
    add_definitions(${PCL_DEFINITIONS})# 添加OpenCV库
    set(OpenCV_DIR "/usr/local/opencv4")
    find_package(OpenCV REQUIRED)
    include_directories(${OpenCV_INCLUDE_DIRS})
    link_directories(${OpenCV_LIB_DIR})# 添加源文件
    aux_source_directory(src DIR_SRCS)
    add_executable(MyProject ${DIR_SRCS})# 链接库
    target_link_libraries(MyProject ${PCL_LIBRARIES} ${OpenCV_LIBS})
    
  3. 编写代码
    main.cpp中编写代码,结合OpenCV和PCL的功能。例如:

    #include <opencv2/opencv.hpp>
    #include <pcl/point_cloud.h>
    #include <pcl/point_types.h>
    #include <pcl/io/pcd_io.h>int main() {// 使用OpenCV读取图像cv::Mat image = cv::imread("test.jpg");cv::imshow("Image", image);cv::waitKey(0);// 创建PCL点云pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);cloud->width = 5;cloud->height = 1;cloud->is_dense = false;cloud->points.resize(cloud->width * cloud->height);for (size_t i = 0; i < cloud->points.size(); ++i) {cloud->points[i].x = 1024.0f * rand() / (RAND_MAX + 1.0f);cloud->points[i].y = 1024.0f * rand() / (RAND_MAX + 1.0f);cloud->points[i].z = 1024.0f * rand() / (RAND_MAX + 1.0f);}// 保存点云pcl::io::savePCDFileASCII("test.pcd", *cloud);std::cout << "Saved point cloud to test.pcd" << std::endl;return 0;
    }
    
  4. 编译和运行
    在项目根目录下运行以下命令:

    cd build
    cmake ..
    make
    ./MyProject
    

注意事项

  • 确保OpenCV和PCL的路径正确配置在CMakeLists.txt中。
  • 如果使用VSCode开发,需要在.vscode/c_cpp_properties.json中添加OpenCV和PCL的头文件路径。

通过以上步骤,你可以在C++中结合使用OpenCV和PCL,实现图像处理和点云处理的功能。

相关文章:

  • 互联网大厂Java求职面试:AI大模型推理服务性能优化与向量数据库分布式检索
  • 关于git的使用流程
  • ffmpeg baidu
  • 微信小程序(uniapp)对接腾讯云IM
  • 云服务器是什么,和服务器有什么区别?
  • redis-py 在 Python 中连接与使用 Redis
  • Linux之守护进程
  • sl4j+log4j日志框架
  • 硬件服务器基础
  • uniapp 实战demo
  • Spring Boot微服务架构(八):开发之初就引入APM工具监控
  • 端口映射不通的原因有哪些?路由器设置后公网访问本地内网失败分析
  • uniapp-商城-73-shop(6-商品列表,步进器添加数据到购物车,步进器数据同步(深度监听))
  • jenkins部署slave动态节点
  • Metasploit工具使用详解(中)笔记
  • STM32 ADC工作原理与配置详解
  • 《棒球百科》NCAA棒球体系·棒球1号位
  • 使用LangChain与多模态模型实现图像中的文字和表格提取(PDF可转图片)
  • Vue 项目中 Sass 与 Less 的对比
  • docker 网络-用户定义网络
  • 专做蔬菜大棚的网站/湖南今日新闻最新头条
  • 动态网站开发的语言/台州百度快照优化公司
  • 品牌网站建设多少钱/宁波网站推广公司有哪些
  • 网站信息内容建设/seo 页面
  • 网站建设专业性的评价内容/国内新闻最新消息简短
  • 商丘公司做网站/收录优美图片崩了