雷

  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 站点地图

C++前端pytorch(libtorch)和opencv编译安装环境搭建

发表于 2019-09-26 分类于 c++ , pytorch , opencv

C++前端pytorch(libtorch)和opencv编译安装环境搭建

安装opencv:

https://www.cnblogs.com/raina/p/11365854.html

下载或编译libtorch:

https://oldpan.me/archives/pytorch-c-libtorch-inference

CMakeLists.txt

cmake_minimum_required(VERSION 3.0 FATAL_ERROR)
project(opencvCompil)

find_package(Torch REQUIRED)        # 查找libtorch
find_package(OpenCV REQUIRED)       # 查找OpenCV

if(NOT Torch_FOUND)
message(FATAL_ERROR "Pytorch Not Found!")
endif(NOT Torch_FOUND)

message(STATUS "Pytorch status:")
message(STATUS "    libraries: ${TORCH_LIBRARIES}")

message(STATUS "OpenCV library status:")
message(STATUS "    version: ${OpenCV_VERSION}")
message(STATUS "    libraries: ${OpenCV_LIBS}")
message(STATUS "    include path: ${OpenCV_INCLUDE_DIRS}")

add_executable(opencvCompil Main.cpp)
# target_link_libraries(opencvCompil ${TORCH_LIBRARIES}) 
target_link_libraries(opencvCompil "${TORCH_LIBRARIES}" ${OpenCV_LIBS})
# target_link_libraries(opencvCompil ${OpenCV_LIBS}) 
set_property(TARGET opencvCompil PROPERTY CXX_STANDARD 11)

Main.cpp

#include <torch/torch.h>
#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/core.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/videoio.hpp>

using namespace cv;
using namespace std;

void drawText(Mat & image)
{
    putText(image, "Hello OpenCV",
            Point(20, 50),
            FONT_HERSHEY_COMPLEX, 1, // font face and scale
            Scalar(255, 255, 255), // white
            1, LINE_AA); // line thickness and type
}

int main() {
    torch::Tensor tensor = torch::rand({2, 3});
    cout << tensor << endl;

    // Mat image;
    // image = imread("1.jpg");
    // if ( image.empty() )
    // {
    //     cout<<"No image data!"<< endl;
    //     return -1;
    // }
    // namedWindow("Display Image");
    // imshow("Display Image", image);
    // waitKey(0);

    cout << "Built with OpenCV " << CV_VERSION << endl;
    Mat image;
    VideoCapture capture;
    capture.open(0);
    if(capture.isOpened())
    {
        cout << "Capture is opened" << endl;
        for(;;)
        {
            capture >> image;
            if(image.empty())
                break;
            drawText(image);
            imshow("Sample", image);
            if(waitKey(10) >= 0)
                break;
        }
    }
    else
    {
        cout << "No capture" << endl;
        image = Mat::zeros(480, 640, CV_8UC1);
        drawText(image);
        imshow("Sample", image);
        waitKey(0);
    }
    return 0;
}

执行cmake和make:

mkdir build
cd build
cmake -DCMAKE_PREFIX_PATH=/home/ray/pytorch/torch/share/cmake ./
make

c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**",
                "/usr/local/include/opencv4",
                "/home/ray/pytorch/**"
            ],
            "defines": [],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "clang-x64"
        }
    ],
    "version": 4
}
# pytorch # opencv # c++
mobileNet迁移学习训练猫狗分类生成kmodel模型,k210运行
jetson nano 装机配置说明
  • 文章目录
  • 站点概览
ray

ray

17 日志
23 分类
18 标签
RSS
  1. 1. C++前端pytorch(libtorch)和opencv编译安装环境搭建
    1. 1.1. 安装opencv:
    2. 1.2. 下载或编译libtorch:
    3. 1.3. CMakeLists.txt
    4. 1.4. Main.cpp
    5. 1.5. 执行cmake和make:
    6. 1.6. c_cpp_properties.json
0%
© 2020 ray
由 Hexo 强力驱动 v3.9.0
|
主题 – NexT.Pisces v7.3.0