opencv入门(一)----opencv(4.5.5)编译

曾几何时也研究过opencv,不过主要还是在python在使用,最近有c++项目需要,可能用到opencv,所以先来编译一个。

在c++的世界中,最常用的编译器估计也就是三个,gcc(mingw[win])、msvc[win]、clang,其中前两个是大头(错了勿喷),最近也在mingw和msvc中两边走,但麻烦的是,mingw生成的dll和msvc生成的dll是不通用的(估计常搞c++的人都知道这回事)!所以如果想在msvc下编译程序的,还是得在msvc下编译库,同理在mingw下编译程序,也是得在minggw下编译。

题外话:最近发现vcpkg也挺不错了(据说还有很多相关的,不过很少用),不想编译的小伙伴可以直接整个vcpkg,vcpkg可以直接整合到vs c++工程里面哦,这样连环境都不用配置了,不过vcpkg中的一般不是最新版本,想要最新版的需要跟着下面做了。

cmake+msvc(2019)

cmake创建工程

我自己创建了一个build文件夹,用来放置Generate的vs工程,然后点击Configure。弹出下面窗口。

选择vs2019编译器和x64,因为我电脑中只有vs2019,我的后续工程都是64位的,所以选择x64。

Finish后,会自己Configure,在build文件夹下已经存在相关文件。Configure过程中,会出现一些下载不到的压缩包或者库(没有下载的会导致下图出现红底黑字,所以包都处理好后,会变成白底黑字。),可以根据实际情况去下载,再放到build\3rdparty,具体下载不到的可以看build文件夹中的CMakeDownloadLog.txt文件,根据里面内容将对应的东西下载下来,放到相关的文件夹中即可。

 里面有很多附带的不是必需的,可以根据实际情况进行配置,配置好后,再Configure即可。

我根据自己的需求,修改了以下两处,选中BUILD_opencv_world,可以生成单个dll(不选上会生成N个dll,不方便后期使用);我以添加了opencv-contrib,opencv-contrib需要另外下载,配置好后,点击Configure。

根据实际情况你可以需要多次"配置->Configure",以达到实际需要。

 没有了红底后,就可以Generate.(我之前试过有红底黑字的情况,即使Generate出来,编译时还是会报错,可能是有解决方法,但是对cmake不熟悉,有大神了解的请指导一下!)

 

 到此VS c++工程已经创建好了。

-----路过----路过----路过----路过----路过----路过----路过----路过----路过----路过----路过----路过------

vs2019编译工程

进入build文件夹,打开OpenCV.sln

vs默认选中ALL_BUILD,可以直接对Solution进行Build即可,但是由于一开始我选择了x64(如下图),如果不是使用64位的,最重头来过哦。x64下有Debug|Release两个选项,可以先对Debug进行编译,再对Release进行编译。

下面可以进行Build了。

....................

........................................

............................................................

................................................................................

....................................................................................................

经历了不知道多久,我build失败了,原因是硬盘空间不足,本来以为16G应该可以了,但是原来是不够的,所以建议大家起码有个20~30G才能编译!

  • 错误1:我的电脑上安装了python3.7.6版本,编译时显示 python37_d.lib没有,找了一下,确实是没有的,查了一下,需要安装Download debug binaries,通过modify 选上下图。

  • 错误2:有一个莫名其妙的错误,错误位置与实际位置不对应。简单粗暴方法就是去掉日文注释,你也可以通过修改文件编码来达到效果,将文件保存为UTF8,由于是在win上,最好选成"CR LF"(好像一定要修改成这个才行)

修改文件编码方法:

 

 

再次编译,就完成了。

不过不同人显示的错误可能不一样,这个跟电脑的原有环境有关,不同环境可能会有不同的错误信息。

 在Debug 和Release 都进行一次编码,在build文件夹下,就会出再lib和bin,由于我选择了BUILD_opencv_world,所以生成出来的lib和dll都只有一个命名opencv_world455d/opencv_world455,lib或者dll,还有Debug里有一堆pdb文件。

生成INSTALL

最后对在Debug 和Release 下对INSTALL编译一下,会生成正常使用的文件结构(与在网上下载的opencv-4.5.5-vc14_vc15.exe的文件结构相似)

好了,到这里,opencv4.5.5已经编译完成。

下一章将使用这个编译出来的库,进行入门使用讲解了。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
opencv-4.4.0-vc14_vc15.exe 版本:4.4.0 2020年7月 OpenCV 4.x的夏季更新已发布 :晴天: 此版本的亮点: SIFT(尺度不变特征变换)算法已移至主存储库(SIFT的专利已过期) DNN模块: 改进的图层/激活/支持更多模型: 最新的Yolo v4检测器:#17148。为[yolo]层(Yolo v3和Yolo v4)禁用了每层NMS,因为它们是不正确的-用于cv::dnn::NMSBoxes所有检测。 ONNX:添加对Resnet_backbone(Torchvision)的支持#16887 EfficientDet模型支持:#17384 新样本/演示: 添加文本识别示例:C ++ / Python FlowNet2光流:#16575 英特尔®推理引擎后端(OpenVINO™): 增加了对OpenVINO 2020.3 LTS / 2020.4版本的支持 计划在下一版本中删除对NN Builder API的支持 CUDA后端中的许多修复和优化(感谢@YashasSamaga):PR G-API模块: 在OpenCV后端引入了用于状态内核的新API :GAPI_OCV_KERNEL_ST。有状态内核在各个图执行(标准中更多)或流的视频帧之间(以流模式)保留其状态。 在G-API推出更多面向视频的操作:goodFeaturesToTrack,buildOpticalFlowPyramid,calcOpicalFlowPyrLK。 添加了更多的图像处理内核:Laplacian和双边过滤器。 修复了G-API的OpenCL后端中的潜在崩溃。 OpenCV社区的许多其他伟大贡献,包括但不限于: Obj-C / Swift绑定:#17165 (opencv_contrib)Julia绑定是正在进行的GSoC项目的一部分:#2547 (opencv_contrib)BIMEF:生物启发的多重曝光融合框架,用于弱光图像增强: #2448 为CV_16UC1图像启用Otsu阈值:#16640 为文本检测添加笔划宽度变换算法:#2464 计划在Apache 2许可证上进行下一版本OE-32的 迁移#17491
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鯎鯎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值