我尝试过很多使用C++版本的东西,opencv、libtorch、qt,不得不说真的快,所以这篇文章来谈谈,在Clion 上折腾的一些东西。

Clion 上使用 OpenCV

了解我的人都知道我非常喜欢使用 JetBrains 公司的软件,所以使用C++的时候选择了 Clion ,但这款软件使用 OpenCV 的时候有些麻烦,我也是好不容易克服了这些。

因为 Clion 使用的是 CMake 来管理编译环境,所以我先写一下我使用的时候怎么配置的CMakeLists.txt文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
cmake_minimum_required(VERSION 3.16)

# 修改这个地方,用来直接设置项目名称
set(MY_PROJECT_NAME OpenCV)
# 修改这个地方,可以直接设置 OpenCV 的路径
set(OpenCV_DIR "D:\\Software\\Languages\\C++\\opencv\\mingw-build\\install")

set(CMAKE_CXX_STANDARD 14)
set(OpenCV_LIBS opencv_core opencv_imgproc opencv_highgui opencv_imgcodecs)

project(MY_PROJECT_NAME)

find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})

add_executable(MY_PROJECT_NAME main.cpp)

target_link_libraries(MY_PROJECT_NAME ${OpenCV_LIBS})

我标出了两个地方,针对不同的项目修改不同的名字,不建议去详细了解它。

配置完CMake,那么就可以使用这个头文件了:

1
#include <opencv2/opencv.hpp>

这是一个涵盖了所有头文件的头文件,直接使用其实会影响编译速度,根据自己需求去调用吧。

首先写几个程序尝尝鲜。

显示图片

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <opencv2/highgui/highgui.hpp>

int main() {
cv::Mat image = cv::imread("D:\\Desktop\\image.jpg");

// 没载入图片的话就停止
if(image.empty())
return -1;

// 新建窗口,窗口尺寸设置成自动
cv::namedWindow("image", cv::WINDOW_AUTOSIZE);

// 显示图片
cv::imshow("image", image);

// 如果是0,就会持续显示
cv::waitKey(0);

// 清除内存,清除所有窗口
cv::destroyAllWindows();

return 0;
}

显示视频

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <opencv2/highgui/highgui.hpp>

int main() {

// 新建一个视频对象
cv::VideoCapture cap;

// 打开一个视频
cap.open("D:\\Desktop\\test.avi");

// 创建一个 Mat 对象,用来暂存一帧图像
cv::Mat frame;

// 新建窗口,窗口尺寸设置成自动
cv::namedWindow("video", cv::WINDOW_AUTOSIZE);

while(true){
// 获取一帧图片
cap >> frame;

// 没有图片了就停下来
if(frame.empty())
break;

// 显示图片
cv::imshow("video", frame);

// 显示一帧图像等待 33 毫秒
// 按到键盘就退出
if(cv::waitKey(33) >= 0)
break;
}
return 0;
}

Clion上使用Libtorch

Pytorch有C++版本的!!!

这就很开心了,我终于可以这样使用C++了。

配置教程

去官网下载,其实就是一个压缩文件,解压就可以用了。

地址:PyTorch

往常一样,选择C++那个选项,并选择使用了CPU版本。

2021-05-31_12-57-45

其实是有两个的上面的是release版本,下面的是debug版本,我选的是release,毕竟下面debug的还是不小。

点击就可以下载,等几分钟就行了。