使用cmake编译opencv工程
本教程默认读者已经在ubuntu中安装完成opencv
9af36f6c-b899-4f23-81b8-8a57ebc30379
1.添加C代码
在新建的任意文件夹中新建一个opencv.c
植入以下内容:
#include <opencv2/opencv.hpp>
#include <stdio.h>
int main() {
// 初始化摄像头
cv::VideoCapture cap(0); // 0 代表系统默认摄像头
if (!cap.isOpened()) {
printf("摄像头打开失败\n");
return -1;
}
// 设置捕获图像的分辨率
cap.set(cv::CAP_PROP_FRAME_WIDTH, 640);
cap.set(cv::CAP_PROP_FRAME_HEIGHT, 480);
// 读取帧
cv::Mat frame;
cap >> frame; // 或者使用 cap.read(frame);
if (frame.empty()) {
printf("捕获到空帧\n");
return -1;
}
// 显示图像
cv::imshow("摄像头", frame);
cv::waitKey(10); // 等待10毫秒
// 保存图像
cv::imwrite("snapshot.jpg", frame);
// 释放资源
cap.release();
cv::destroyAllWindows();
return 0;
}
2.新建必要文件
新建CMakeLists.txt文件以及build文件夹
3.修改cmakelist
将以下代码粘到cmakelist.txt文件
project(test)
cmake_minimum_required(VERSION 3.5)
set(CMAKE_CXX_STANDARD 11)
SET(CMAKE_C_COMPILER "g++")
SET(CMAKE_CXX_COMPILER "g++")
set(OpenCV_DIR "${CMAKE_CURRENT_SOURCE_DIR}/usr/lib/x86_64-linux-gnu/cmake/opencv4")
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(test opencv.c)
target_link_libraries(test ${OpenCV_LIBS})
说明:
SET(CMAKE_C_COMPILER “g++”)
SET(CMAKE_CXX_COMPILER “g++”)
以上两行代码用作指定编译器为g++,因为g++支持c++格式,而opencv为c++格式,所以需要进行匹配。
set(OpenCV_DIR “${CMAKE_CURRENT_SOURCE_DIR}/usr/lib/x86_64-linux-gnu/cmake/opencv4”)
以上代码是将opencv的cmake路径标识出来
find_package(OpenCV REQUIRED)
以上代码是载入opencv包(作者猜使用此命令cmake会自动查找关于opencvxxxx.cmake的文件)
include_directories(${OpenCV_INCLUDE_DIRS})
以上代码是包含opencv头文件
target_link_libraries(test ${OpenCV_LIBS})
以上代码是链接opencv库
4.编译
进入build
建立cmake
编译make
最终会生成test文件