小熊猫C++中配置OpenCV

要准备的东西有:

OpenCV源码,

小熊猫C++,

小熊猫C++下载链接:小熊猫C++ (gitee.io)icon-default.png?t=M276https://royqh1979.gitee.io/redpandacpp/

Cmake工具,

GCC编译器(下载带编译器的小熊猫C++即可);

1.在OpenCV官网下载最新的OpenCV源码

小熊猫C++中配置OpenCV_第1张图片

下载Windows版即可

小熊猫C++中配置OpenCV_第2张图片

2.接下来下载CMake

在CMake官网

小熊猫C++中配置OpenCV_第3张图片

小熊猫C++中配置OpenCV_第4张图片

下载最新的CMake

3.接下来需要编译OpenCV源码,编译过程非常简单,不必担心.

将OpenCV解压到你想解压的目录

小熊猫C++中配置OpenCV_第5张图片

打开cmake-gui程序

小熊猫C++中配置OpenCV_第6张图片

 小熊猫C++中配置OpenCV_第7张图片

小熊猫C++中配置OpenCV_第8张图片

小熊猫C++中配置OpenCV_第9张图片

小熊猫C++中配置OpenCV_第10张图片

点击确认后会进行自动配置, 稍微等待一段时间

小熊猫C++中配置OpenCV_第11张图片

小熊猫C++中配置OpenCV_第12张图片

接下来输入mingw32-make 来进行编译, 编译时间漫长 可以加 -j8 来提高编译速度, 这个8和你的cpu线程有关, 可以打开任务管理器 看看cpu那里数一下有几个框, 那就是你的线程数, 你的框有几个就输入几.

小熊猫C++中配置OpenCV_第13张图片

小熊猫C++中配置OpenCV_第14张图片

编译成功截图

小熊猫C++中配置OpenCV_第15张图片

编译成功后 再输入 mingw32-make install 将二进制文件整合到 install文件夹里

小熊猫C++中配置OpenCV_第16张图片

最终这个目录就是我们要用到的, 可以把这个文件夹改名

4.接下来开始将OpenCV配置到小熊猫C++中

先新建一个空项目

小熊猫C++中配置OpenCV_第17张图片

点击项目属性

 小熊猫C++中配置OpenCV_第18张图片

在头文件夹里添加 刚刚 install文件夹里面的那个 include文件夹

小熊猫C++中配置OpenCV_第19张图片

在库文件夹里 添加 刚刚 install文件夹里x64/mingw/lib 的这个文件夹

小熊猫C++中配置OpenCV_第20张图片

接下来在 自定义编译器选项中 选择链接器

小熊猫C++中配置OpenCV_第21张图片

实际上 链接的参数和头文件有关

小熊猫C++中配置OpenCV_第22张图片

这个有规律可循 比如这个

core.hpp 他的库就对应libopencv_core455.dll.a 这个文件

Imgcodecs.hpp他的库对应libopencv_imgcodecs455.dll.a这个文件

Highgui.hpp 他的库对应libopencv_highgui455.dll.a 这个文件

是不是很简单

小熊猫C++中配置OpenCV_第23张图片

最终我们把完整路径写入到连接器选项中即可 注意不能有回车换行, 用空格来隔开就行.

PS:用多少库就填多少,全部都填上去挺累的

对了 那个OpenCV 的bin文件夹要加入到系统环境变量中, 不然生成的文件不能直接执行

此代码程序运行效果如下

小熊猫C++中配置OpenCV_第24张图片

代码:

#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main( int argc, char** argv )
{
    if( argc != 2)
    {
        cout <<" Usage: " << argv[0] << " ImageToLoadAndDisplay" << endl;
        return -1;
    }
    Mat image;
    image = imread(argv[1], IMREAD_COLOR); // Read the file
    if( image.empty() ) // Check for invalid input
    {
        cout << "Could not open or find the image" << std::endl ;
        return -1;
    }
    namedWindow( "Display window", WINDOW_AUTOSIZE ); // Create a window for display.
    imshow( "Display window", image ); // Show our image inside it.
    waitKey(0); // Wait for a keystroke in the window
    return 0;
}

你可能感兴趣的:(配置教程,opencv)