opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程

文章目录

  • 前言
  • 一、先解压我上传的压缩文档?
  • 二,cmake的安装
  • 三,opencv4.5.1和contrib4.5.1的相关操作
    • 1.建立新文件夹。从All文件夹剪切三个文件复制到新建立的文件夹以及删除掉多余的文件夹
    • 2.安装opencv4.5.1以及再cmake程序选择路径
      • 1,运行opencv4.5.1程序,选择路径到刚刚建立的 **opencv** 文件夹,在这个文件夹里会生成新的**opencv**wjj,需要把这个文件夹名改成 **opencv4.5.1**
      • 2,运行**cmake-gui.exe**程序,选择路径,如图所示
    • 3,通过cmake下载到contrib_new(自己建立的文件夹)
      • 1,运行cmake看看出现那种情况。
      • 2,如出现跟下面第一张图片一样,则继续跟这个步骤做下去。若没有出现这种情况或者其他错误,则跳过这个步骤往下做
        • 1,我猜你为什么不成功,大概率是之前没有配置过opencv的环境变量,所以我们要弄这个步骤
          • 1,添加系统变量
          • 2,复制粘贴
          • 3,弄Microsoft.Cpp.x64.user
        • 2, 暂时弄opencv4.5.1的,后面要改成contrib_new
      • 3,先弄cmake的上面红色错误部分(看到名称后面打钩的区域,这个地方就是上面),直到上面没有出现红色警告,就可以搞下面出现错误的地方
        • 1,cmake 打钩区域部分
        • 2,下面部分,不用看cmake。看 **E:\opencv\contrib_new\CMakeDownloadLog.txt** 这个txt文档。一,你通过这个文档,要做做三步:1,下载文档 2,改名称 3,替换。二,我已经帮你下好了,你直接替换就行了,不用下载也不需要
        • 3 成功实例
    • 4,VS2019的生成(耗时最长)
      • 1,打开工程方法:点open Project或者打开OpenCV.sln
      • 2,生成
  • 四,删除之前的环境变量,增加新的环境变量
    • 1,删原增新
    • 2,VS2019 解决方案资源管理器 的操作
    • 3,VS2019 属性管理器 的操作
    • 4,测试代码
  • 总结


前言

你想要实现的东西,是别人在前面探路出来的,在此感谢@https://blog.csdn.net/weixin_46135347这位大佬详细的过程,我只是添加了一些步骤。其实跟这位大佬没啥区别。。。。就多了个WeChat_qrcode模块
我要实现opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019
请先大概看一遍,然后再做。


一、先解压我上传的压缩文档?

这个压缩文档还有一个 utf8’'MSBuild.zip 我做的忘了放进去,后面有作用,先不管他也可以。
opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第1张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第2张图片

二,cmake的安装

opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第3张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第4张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第5张图片
opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第6张图片
opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第7张图片
opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第8张图片

三,opencv4.5.1和contrib4.5.1的相关操作

1.建立新文件夹。从All文件夹剪切三个文件复制到新建立的文件夹以及删除掉多余的文件夹

1,(建立)先在你选择的盘。建立 opencv 文件夹,然后这个里面建立再建立一个 contrib_new 文件夹
2,(剪切)然后从All文件夹剪切三个文件夹就到这个 opencv 文件夹
3,(删)删除掉重复命名的文件夹,往前挪屋
opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第9张图片
opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第10张图片
opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第11张图片
opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第12张图片

2.安装opencv4.5.1以及再cmake程序选择路径

1,运行opencv4.5.1程序,选择路径到刚刚建立的 opencv 文件夹,在这个文件夹里会生成新的opencvwjj,需要把这个文件夹名改成 opencv4.5.1

opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第13张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第14张图片
在这里插入图片描述

opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第15张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第16张图片
opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第17张图片

2,运行cmake-gui.exe程序,选择路径,如图所示

opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第18张图片
opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第19张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第20张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第21张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第22张图片

3,通过cmake下载到contrib_new(自己建立的文件夹)

1,运行cmake看看出现那种情况。

opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第23张图片
opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第24张图片

2,如出现跟下面第一张图片一样,则继续跟这个步骤做下去。若没有出现这种情况或者其他错误,则跳过这个步骤往下做

opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第25张图片

1,我猜你为什么不成功,大概率是之前没有配置过opencv的环境变量,所以我们要弄这个步骤

1,添加系统变量

opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第26张图片
opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第27张图片

2,复制粘贴

opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第28张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第29张图片下面这个图片就把opencv-videoio_ffmpeg451_64.dll复制就行,其他两个dll文件不用!!!!!!!!
opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第30张图片

3,弄Microsoft.Cpp.x64.user

opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第31张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第32张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第33张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第34张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第35张图片在这里插入图片描述opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第36张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第37张图片C:\Users\“你的用户名”\AppData\Local\Microsoft

opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第38张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第39张图片1,关掉vs2019 ! ! ! ! ! ! !
2,重新打开刚刚的test.sln
opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第40张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第41张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第42张图片

2, 暂时弄opencv4.5.1的,后面要改成contrib_new

opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第43张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第44张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第45张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第46张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第47张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第48张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第49张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第50张图片在这里插入图片描述opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第51张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第52张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第53张图片在重现点 configure,若出现这样说明你上面弄对了。你可以跟第一次点configure不一样的错误,嘻嘻
opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第54张图片

3,先弄cmake的上面红色错误部分(看到名称后面打钩的区域,这个地方就是上面),直到上面没有出现红色警告,就可以搞下面出现错误的地方

1,cmake 打钩区域部分

opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第55张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第56张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第57张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第58张图片下面这个图片路径需要改,要不然一直出错。
把图片中的路径改成:E:/opencv/opencv_contrib-master/modules
要不然cmake识别不了,你看一下你填写的这个路径上面是不是还有一个路径也用的是这个符号 “/”

opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第59张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第60张图片若出现上面这个图片的情况,说明你已经成功搞对了。现在搞下面部分了。加油!

2,下面部分,不用看cmake。看 E:\opencv\contrib_new\CMakeDownloadLog.txt 这个txt文档。一,你通过这个文档,要做做三步:1,下载文档 2,改名称 3,替换。二,我已经帮你下好了,你直接替换就行了,不用下载也不需要

opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第61张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第62张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第63张图片每次都要关闭这个txt文档,更新日志
opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第64张图片“去这个网站下载文件”指的是前面那个网址,而不是这个路径
opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第65张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第66张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第67张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第68张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第69张图片
opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第70张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第71张图片依次类推,按照这个txt文档要求的全部替换昂,小宝贝

3 成功实例

成功的话cmake上下面也都没有警告的,全白!!!
opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第72张图片

4,VS2019的生成(耗时最长)

1,打开工程方法:点open Project或者打开OpenCV.sln

opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第73张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第74张图片

2,生成

opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第75张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第76张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第77张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第78张图片

四,删除之前的环境变量,增加新的环境变量

1,删原增新

opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第79张图片删除:··········\vc14\bin 这个之前加的环境变量
增加:··········\vc16\bin 这个新的环境变量
opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第80张图片

opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第81张图片

2,VS2019 解决方案资源管理器 的操作

!!!先调 Debug 和 X64
我下面图片全是Debug和x86是不对的

opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第82张图片

E:\opencv\contrib_new\install\include
E:\opencv\contrib_new\install\include\opencv2

opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第83张图片
opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第84张图片

E:\opencv\contrib_new\install\x64\vc16\lib

opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第85张图片

opencv_world341d.lib
opencv_world341.lib

opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第86张图片

3,VS2019 属性管理器 的操作

opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第87张图片检查一下:1,链接器-输入-附加依赖项 2,VC ++ 目录是不是跟contrib_new有关。若不是,则改到contrib_new相关目录,如图所示
opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第88张图片opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第89张图片

4,测试代码

opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第90张图片

//这个代码会把二维码(多个二维码也可以)里面的网址解析出来,并在二维码周围有绿框框着。
#include 
#include 
#include 

using namespace std;
using namespace cv;

int main()
{
    //加载图片解码
    Ptr detector;
    string detect_prototxt = "E:/opencv/model/detect.prototxt";//这个路径需要改
    string detect_caffe_model = "E:/opencv/model/detect.caffemodel";
    string sr_prototxt = "E:/opencv/model/sr.prototxt";
    string sr_caffe_model = "E:/opencv/model/sr.caffemodel";

    Mat img = imread("wechat.jpg");//你随便选个二维码图片(可以是一个图片里有多个二维码),然后再该项目路径保存二维码图片就行,这个是相对路径,你也可以是绝对路径
    try
    {
        detector = makePtr(detect_prototxt, detect_caffe_model,
            sr_prototxt, sr_caffe_model);
    }
    catch (const std::exception& e)
    {
        cout <<
            "\n---------------------------------------------------------------\n"
            "Failed to initialize WeChatQRCode.\n"
            "Please, download 'detector.*' and 'sr.*' from\n"
            "https://github.com/WeChatCV/opencv_3rdparty/tree/wechat_qrcode\n"
            "and put them into the current directory.\n"
            "---------------------------------------------------------------\n";
        cout << e.what() << endl;
        return 0;
    }

    vector vPoints;
    vector strDecoded;
    strDecoded = detector->detectAndDecode(img, vPoints);
    for (int i = 0; i < strDecoded.size(); i++)
    {
        cout << "decode-" << i + 1 << ": " << strDecoded[i] << endl;
        Point pt1 = Point((int)vPoints[i].at(0, 0), (int)vPoints[i].at(0, 1));
        Point pt2 = Point((int)vPoints[i].at(1, 0), (int)vPoints[i].at(1, 1));
        Point pt3 = Point((int)vPoints[i].at(2, 0), (int)vPoints[i].at(2, 1));
        Point pt4 = Point((int)vPoints[i].at(3, 0), (int)vPoints[i].at(3, 1));
        line(img, pt1, pt2, Scalar(0, 255, 0), 2);
        line(img, pt2, pt3, Scalar(0, 255, 0), 2);
        line(img, pt3, pt4, Scalar(0, 255, 0), 2);
        line(img, pt4, pt1, Scalar(0, 255, 0), 2);
        putText(img, strDecoded[i], pt1, 0, 0.5, Scalar(255, 0, 0), 2);
    }
    imshow("wechat_qrcode", img);
    waitKey();
    imwrite("result.png", img);
}

在这个代码行里有一个地方注释写着:“这个路径需要改”。这个路径是之前新建opencv文件夹里的model文件夹路径赋值粘贴过来就行,后面的文档不要动

E:\opencv\model

opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第91张图片

显示效果:
opencv4.5.1 + contrib4.5.1 + WeChat_QRcode(这个选作)+ 测试代码+vs2019+大量图文教程_第92张图片

总结

这个博客大量参考好多个大佬弄出来的,谢谢他们的分享,要不然也不会有这个。。。
如果对你觉得有用麻烦你点赞,谢谢
在评论区踊跃交流吧伙伴们。

下面分享参考的博客:
https://blog.csdn.net/qq_41175905/article/details/80560429
https://blog.csdn.net/weixin_46135347/article/details/114190250?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161555112016780262577681%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=161555112016780262577681&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v29-1-114190250.pc_search_result_cache&utm_term=opencv4.5.1+%E4%BF%9D%E5%A7%86

你可能感兴趣的:(wechat_qrcode,opencv,cmake,c++,qr)