cmake链接opencv库

main.cpp

#include 
#include 
#include 

int main()
{
    const std::string name = "image";
    cv::namedWindow(name, cv::WINDOW_AUTOSIZE);
    int w = 300, h = 100, y = 50;

    // 黑图白线
    cv::Mat img1(h, w, CV_8UC1, cv::Scalar(0)); // cv::Mat img = cv::Mat::zeros(w, h, CV_8UC1);
    cv::line(img1, cv::Point(0, y), cv::Point(img1.cols, y), cv::Scalar(255), 2);

    // 白图黑线
    cv::Mat img2(h, w, CV_8UC1, cv::Scalar(255)); // cv::Mat img = cv::Mat::ones(w, h, CV_8UC1) * 255;
    cv::line(img2, cv::Point(0, y), cv::Point(img2.cols, y), cv::Scalar(0), 2);

    // 蓝图绿线
    cv::Mat img3(h, w, CV_8UC3, cv::Scalar(255, 0, 0));
    cv::line(img3, cv::Point(0, y), cv::Point(img3.cols, y), cv::Scalar(0, 255, 0), 2);

    // 三张图片合并到一张图片上显示
    cv::Mat img(3 * h, w, CV_8UC3);
    cv::cvtColor(img1, img(cv::Rect(0, 0, w, h)), cv::COLOR_GRAY2BGR);
    cv::cvtColor(img2, img(cv::Rect(0, h, w, h)), cv::COLOR_GRAY2BGR);
    img3.copyTo(img(cv::Rect(0, 2 * h, w, h)));

    cv::imshow(name, img2);
    cv::waitKey();
    return 0;
}

cmakelists.txt

cmake_minimum_required(VERSION 3.18)
project(place)

set(CMAKE_CXX_STANDARD 11)
set(OpenCV_DIR opencv) # xxxx目录包含OpenCVConfig.cmake
# 寻找OpenCV库
find_package( OpenCV REQUIRED )
 
# 添加头文件
include_directories(  ${OpenCV_INCLUDE_DIRS}  )

# 链接OpenCV库
add_executable(place
        main.cpp
)

target_link_libraries( place ${OpenCV_LIBS}  )

在windows上,把opencv的文件夹放到当前目录,并把opencv的dll动态链接库放到生成exe的文件夹中,exe才能正常运行

你可能感兴趣的:(opencv,计算机视觉,c++)