CMake 学习笔记

本文指导如何仅安装OpenCV部分功能并配置CMakeLists.txt,展示了在C++中使用OpenCV进行视频读取和基本属性获取的示例。通过find_package找到并链接OpenCV库,同时提及了dlib的安装和引用。
摘要由CSDN通过智能技术生成

如果只需要使用 opencv 部分功能,可以直接安装 opencv 相应的开发组件

apt install libopencv-*-dev

CMakeLists.txt:

cmake_minimum_required (VERSION 3.0)
set(CMAKE_CXX_STANDARD 17)
project(MyTest VERSION 1.0)

find_package(OpenCV 4.0 REQUIRED COMPONENTS core imgproc calib3d highgui objdetect)
if(${OpenCV_FOUND})
	include_directories(${OpenCV_INCLUDE_DIRS})
	MESSAGE("OpenCV_LIBRS: ${OpenCV_LIBS}") 
else()
    MESSAGE(FATAL_ERROR "OpenCV not found in the system.")
endif() 

#find_package(dlib 19.13)
#if(${dlib_FOUND})
#    message("dlib version: ${dlib_VERSION}")
#    if (NOT TARGET dlib)
#        add_library(dlib INTERFACE IMPORTED GLOBAL)
#    endif()
#else()
#    message(FATAL_ERROR "dlib not found in the system, please install dlib")
#endif()

add_executable(tt main.cpp)
target_link_libraries(tt ${OpenCV_LIBS}) 
#target_link_libraries(tt dlib::dlib) 

# ---=== 打印一下目录情况 ===---
get_property(dirs DIRECTORY ${CMAKE_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES)
message("Include_dirs = ${dirs}")

main.cpp:

#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv;

int main()
{
    VideoCapture capture("../default.wmv");
    if(!capture.isOpened()) return -1;
    
    cout << "Width : " << capture.get(CAP_PROP_FRAME_WIDTH) << endl;
    cout << "Height: " << capture.get(CAP_PROP_FRAME_HEIGHT) << endl;
    cout << "Count : " << capture.get(CAP_PROP_FRAME_COUNT) << endl;
    cout << "Fps   : " << capture.get(CAP_PROP_FPS) << endl;
    
    Mat frame;
    while (capture.read(frame)) cout << ".";
    cout << endl;
    return 0;
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值