我是靠谱客的博主 傻傻芒果,最近开发中收集的这篇文章主要介绍Windows编译 opencv 4.5.2Windows编译 opencv 4.5.2这里特别感谢下面两位:,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Windows编译 opencv 4.5.2

1 文件准备

1.1 下载

  • github下载opencv-4.5.2.zip和opencv_contrib-4.5.2.zip

1.2 解压

  • 分别解压opencv-4.5.2.zipopencv_contrib-4.5.2.zip
  • 进入opencv-4.5.2文件夹,创建rebuild文件夹
    在这里插入图片描述

2 构建

2.1 打开cmake-gui,选择文件夹

在这里插入图片描述

2.2 点击Configure,选择自己的VS版本(因为已经编译完成,这里借用一张图)

在这里插入图片描述

编译的时候出现红色的选项自己根据需要选择,我这里选择加入opencv-contribQT

  • opencv-contrib
    在这里插入图片描述

  • QT

注意:

  • 勾选OPENCV_ENABLE_NONFREE
    在这里插入图片描述

  • 不勾选OPENCV_GENERATE_SETUPVARS
    在这里插入图片描述

  • search输入TESTS,都不勾选
    在这里插入图片描述

  • search输入java,前两行不勾选
    在这里插入图片描述

  • search输入python,前两行不勾选
    在这里插入图片描述

  • 不勾选BUILD_opencv_world,勾选可能会出错
    在这里插入图片描述

之后,继续configure,直到没有error…

contrib附加库会需要下载一些文件,一般会下载失败,找到rebuild文件下的CMakeDownloadLog.txt,查找cmake_download关键字,手动下载需要的文件到源文件下的 .cache文件夹中,如下:
在这里插入图片描述

3 生成

点击Generate,生成Project

4 打开工程

点击Open Project,进入opencv/rebuild文件夹,双击OpenCV.sln文件打开工程。
在这里插入图片描述

选中CMakeTargets中的ALL_BUILD,右击重新生成,在Debug和Release两个版本都生成好以后,右击INSTALL->仅用于项目->仅生成INSTALL。


编译4.5.2过程中的问题:

初次编译的时候,在highgui模块的window.cpp相关部分会报错:undefined reference to cvSetPropVsync_W32(char const*, bool) 和 undefined reference to cvGetPropVsync_W32(char const*, bool)。这个是OpenCV 4.5.2版本的一个BUG,已经在4.5.3版本中修复。如果不想更新到4.5.3,则可以手动修改如下:

// 修改cvSetWindowProperty函数的cv::WND_PROP_VYSNC分支
CV_IMPL void cvSetWindowProperty(const char* name, int prop_id, double prop_value)
{
	// ......
    case cv::WND_PROP_VSYNC:
       #if defined (HAVE_QT)
           // nothing
       #elif defined (HAVE_WIN32UI)
           cvSetPropVsync_W32(name, (prop_value != 0));
       #else
           // not implemented yet for other toolkits
       #endif
	// ......
}
// 修改cvGetWindowProperty函数的cv::WND_PROP_VYSNC分支
CV_IMPL double cvGetWindowProperty(const char* name, int prop_id)
{
	// ......
    case cv::WND_PROP_VSYNC:
       #if defined (HAVE_QT)
           return -1;
       #elif defined (HAVE_WIN32UI)
           return cvGetPropVsync_W32(name);
       #else
           return -1;
       #endif
   break;
	// ......
}

同样在OpenCV4.5.2中的wechat_qrcode模块中,也存在着一些问题,在编译过程中会出现“undefined reference to __imp_getACP Scanning dependencies of target opencv datasets” 的错误。可以通过修改wechat_qrcode的zxing.hpp文件的定义来解决,具体解决方案如下:

第30行修改为:#if defined(ANDROID_API) || defined(_MSC_VER) || defined(MINGW32) || defined(MINGW64)
删除第54~62行。
该BUG也在4.5.3之后版本中修复了。

这里特别感谢下面两位:

https://blog.csdn.net/weixin_42063746/article/details/115727789

https://blog.csdn.net/cchmsn/article/details/118642433

最后

以上就是傻傻芒果为你收集整理的Windows编译 opencv 4.5.2Windows编译 opencv 4.5.2这里特别感谢下面两位:的全部内容,希望文章能够帮你解决Windows编译 opencv 4.5.2Windows编译 opencv 4.5.2这里特别感谢下面两位:所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部