我尝试过很多使用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);
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");
cv::Mat frame;
cv::namedWindow("video", cv::WINDOW_AUTOSIZE);
while(true){ cap >> frame;
if(frame.empty()) break;
cv::imshow("video", frame);
if(cv::waitKey(33) >= 0) break; } return 0; }
|
Clion上使用Libtorch
Pytorch有C++版本的!!!
这就很开心了,我终于可以这样使用C++了。
配置教程
去官网下载,其实就是一个压缩文件,解压就可以用了。
地址:PyTorch
往常一样,选择C++那个选项,并选择使用了CPU版本。
其实是有两个的上面的是release版本,下面的是debug版本,我选的是release,毕竟下面debug的还是不小。
点击就可以下载,等几分钟就行了。