Qt+openCV学习笔记(十六)Qt6.6.0rc+openCV4.8.1+emsdk3.1.37编译静态库

前言:

有段时间没来写文章了,趁编译库的空闲,再写一篇记录文档

WebAssembly的发展逐渐成熟,即便不了解相关技术,web前端也在不经意中使用了相关技术的库,本篇文档记录下如何编译WebAssembly版本的openCV,可以给使用C++开发web前端的小伙伴使用

一、安装需要的软件

1.安装git

这方便教程很多,不再重复。笔者使用的是git2.33

2.安装cmake

这个教程也很多,但笔者没有安装,使用的是Qt安装时,下载的

3.安装emsdk3.1.37

笔者偷懒了,也是搭建qt6.6.0时使用的版本,具体教程就不放置了

若不想自己安装的,可以下载笔者使用的版本

二、下载所需要的资源

1.下载opencv4.8.1源码

https://github.com/opencv/opencv/archive/refs/tags/4.8.1.zip

2.下载opencv_contrib-4.8.1源码

https://github.com/opencv/opencv_contrib/archive/refs/tags/4.8.1.zip

3.wechat_qrcode模型

detect.caffemodel

detect.prototxt

sr.caffemodel

sr.prototxt

4.xfeatures2d

boostdesc_bgm.i

boostdesc_bgm_bi.i

boostdesc_bgm_hd.i

boostdesc_binboost_064.i

boostdesc_binboost_128.i

boostdesc_binboost_256.i

boostdesc_lbgm.i

vgg_generated_48.i

vgg_generated_64.i

vgg_generated_80.i

vgg_generated_120.i

5.face_landmark_model.dat

三、设置环境变量

环境变量设置方法很多,可以直接设置系统的环境变量,笔者使用的是在一个cmd窗口中临时设置环境变量

执行如下命令

D:\emsdk\emsdk-3.1.37\emsdk_env.bat
set path=D:\Qt\Tools\mingw1120_64\bin;D:\Program Files\Git\usr\bin;%path%

若是查看环境变量执行如下

echo %path%

注:一定要记得,激活emsdk的环境变量 

四、生成make文件

在设置好环境变量的cmd中执行(请按实际目录执行)

D:\Qt\Tools\CMake_64\bin\cmake-gui.exe

打开如下窗口

点击configure,弹出如下窗口

 以上是笔者的设置,点击Next,

设置编译器,以下是笔者的设置

 

 之后就是等待完成,此过程时间有点长​

 configure完成后,修改配置选项

笔者提示,很多库并没有做web上的兼容,建议先编译opencv官方推荐的选项,然后再根据自己的需要,增加其他模块

以下是opencv官方使用的默认选项,可供有需要的小伙伴参考

'-DPYTHON_DEFAULT_EXECUTABLE=D:\\Program\\Python310\\python.exe', 
'-DENABLE_PIC=FALSE', 
'-DCMAKE_BUILD_TYPE=Release', 
"-DCMAKE_TOOLCHAIN_FILE='emsdk-3.1.37\\cmake\\Modules\\Platform\\Emscripten.cmake'", 
"-DCPU_BASELINE=''", 
'-DCMAKE_INSTALL_PREFIX=/usr/local', 
"-DCPU_DISPATCH=''", 
'-DCV_TRACE=OFF', 
'-DBUILD_SHARED_LIBS=OFF', 
'-DWITH_1394=OFF', 
'-DWITH_ADE=OFF', 
'-DWITH_VTK=OFF', 
'-DWITH_EIGEN=OFF', 
'-DWITH_FFMPEG=OFF', 
'-DWITH_GSTREAMER=OFF', 
'-DWITH_GTK=OFF', 
'-DWITH_GTK_2_X=OFF', 
'-DWITH_IPP=OFF', 
'-DWITH_JASPER=OFF', 
'-DWITH_JPEG=OFF', 
'-DWITH_WEBP=OFF', 
'-DWITH_OPENEXR=OFF', 
'-DWITH_OPENGL=OFF', 
'-DWITH_OPENVX=OFF', 
'-DWITH_OPENNI=OFF', 
'-DWITH_OPENNI2=OFF', 
'-DWITH_PNG=OFF', 
'-DWITH_TBB=OFF', 
'-DWITH_TIFF=OFF', 
'-DWITH_V4L=OFF', 
'-DWITH_OPENCL=OFF', 
'-DWITH_OPENCL_SVM=OFF', 
'-DWITH_OPENCLAMDFFT=OFF', 
'-DWITH_OPENCLAMDBLAS=OFF', 
'-DWITH_GPHOTO2=OFF', 
'-DWITH_LAPACK=OFF', 
'-DWITH_ITT=OFF', 
'-DWITH_QUIRC=ON', 
'-DBUILD_ZLIB=ON', 
'-DBUILD_opencv_apps=OFF', 
'-DBUILD_opencv_calib3d=ON', 
'-DBUILD_opencv_dnn=ON', 
'-DBUILD_opencv_features2d=ON', 
'-DBUILD_opencv_flann=ON', 
'-DBUILD_opencv_gapi=OFF', 
'-DBUILD_opencv_ml=OFF', 
'-DBUILD_opencv_photo=ON', 
'-DBUILD_opencv_imgcodecs=OFF', 
'-DBUILD_opencv_shape=OFF', 
'-DBUILD_opencv_videoio=OFF', 
'-DBUILD_opencv_videostab=OFF', 
'-DBUILD_opencv_highgui=OFF', 
'-DBUILD_opencv_superres=OFF', 
'-DBUILD_opencv_stitching=OFF', 
'-DBUILD_opencv_java=OFF', 
'-DBUILD_opencv_js=ON', 
'-DBUILD_opencv_python2=OFF', 
'-DBUILD_opencv_python3=OFF', 
'-DBUILD_EXAMPLES=ON', 
'-DBUILD_PACKAGE=OFF', 
'-DBUILD_TESTS=ON', 
'-DBUILD_PERF_TESTS=ON', 
'-DBUILD_DOCS=OFF', 
'-DWITH_PTHREADS_PF=OFF', 
'-DCV_ENABLE_INTRINSICS=OFF', 
'-DBUILD_WASM_INTRIN_TESTS=OFF', 
"-DCMAKE_C_FLAGS='-s WASM=1 -s SINGLE_FILE=1 -s USE_PTHREADS=0 '", 
"-DCMAKE_CXX_FLAGS='-s WASM=1 -s SINGLE_FILE=1 -s USE_PTHREADS=0 '"

内容比较多,需要大家细心设置,或第一次直接使用cmake命令 

以下是笔者感兴趣的选项

安装目录(生成的动态库的目录)

 是否生成付费相关的部分

 添加扩展库,注意要具体到modules目录

 

  再次点击configure后,可能还需要还需要设置多次,配置其他选项或下载文件

继续点击configure(可以多点几次,有时多点几次就可以下载成功),

若输出中仍然存在红色的文字,打开编译目录,找到日志文件CMakeDownloadLog.txt,查看缺少或下载失败的文件,下载完成后,按日志文件的提示,放入指定目录即可

笔者已下载缺少的文件,处理方法如下

1.把downloads和testdata两个目录,直接放在编译目录(笔者已整理好内部目录)

再次点击configure,此时应该不会有红色的文字了(若存在,请自主解决)

点击generate,生成makefile文件

四、编译源码

设置好环境变量的cmd中,切换目录到编译目录(请按实际目录执行)

执行mingw32-make -j6 开始编译

(6代表同时开6个线程编译,请读者按照自己机器的配置设置,以加快编译速度)

些过程耗时较长,笔者等待了半小时左右

编译完成后,执行mingw32-make install

过会就可以在安装目录找到生成的静态库了,笔者是在编译目录下的install

因时间关系,笔者本次就不添加测试程序了

已生成的静态库(正式库+xfeatureds2d)​​​​​​​

后记:

1.WebAssembly开发,一般使用静态库,若有小伙伴执意使用动态库,可以自行编译下测试

2.部分库,即使编译成功,也不一定能使用,或出错,如imgcodecs模块,笔者使用cv::imwrite()时,会导致网页异常退出

3.笔者建议,不要使用world的库,发布程序时,库太大了,不实用

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 在Qt环境下安装OpenCV可以简单地分为以下几个步骤: 1. 下载OpenCV库文件:在OpenCV的官方网站上下载所需版本的OpenCV库文件,并解压到一个指定的目录。 2. 配置Qt项目:打开Qt Creator,新建一个Qt项目。在项目文件中,右键点击项目,选择“添加库”,然后选择“外部库”。接着选择“添加”,浏览到OpenCV库文件的安装目录,并选择lib文件夹中的opencv_world.lib文件。 3. 配置Include路径:在项目文件中,右键点击项目,选择“属性”,然后选择“C++”选项卡。在“附加包含目录”中,添加OpenCV库文件中的include目录。 4. 配置库路径:在“库目录”中,添加OpenCV库文件中的lib目录。 5. 链接OpenCV库:在“链接器”选项卡中的“输入”部分,添加opencv_world.lib。 6. 测试安装:编写一个简单的OpenCV程序,并构建运行项目。确保项目能够正确连接并调用OpenCV库。 需要注意的是,每个版本的OpenCV可能会有一些差异,所以具体的安装步骤可能会有所不同。此外,还需要根据项目的需求选择正确的OpenCV库文件(如是否需要额外的模块或功能)。 如果按照上述步骤进行操作,就可以在Qt环境下成功安装OpenCV,并开始使用它的各种功能进行图像处理和计算机视觉的开发工作了。 ### 回答2: 在QT环境下安装OpenCV需要按照以下步骤进行操作: 1. 首先,从OpenCV官方网站(https://opencv.org/releases/)下载OpenCV最新版本的源代码。选择适用于你的操作系统的版本进行下载,并将其解压到指定的文件夹中。 2. 打开QT Creator,并创建一个新的QT项目。 3. 在QT项目工程文件(.pro)中,添加OpenCV库的路径。在文件中添加如下代码: LIBS += -L/path/to/opencv/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_imgcodecs 注意将"/path/to/opencv/lib"替换为你之前解压OpenCV源代码的路径。 4. 在QT Creator中,打开"项目"菜单,选择"构建",然后选择"运行环境"。 5. 在"运行环境"设置中,选择"系统"选项卡,然后单击"添加"按钮。 6. 在"添加构建套件"对话框中,选择你的操作系统和编译器,并单击"确定"按钮。 7. 确保在"运行环境"设置中选择了正确的构建套件,并单击"应用"和"确定"按钮。 8. 在QT Creator中,重新编译并运行你的项目。 9. 现在你可以在你的QT项目中使用OpenCV库了。可以通过include相关的头文件,调用OpenCV的函数和类来完成图像处理、处理等任务。 10. 验证你的OpenCV安装是否成功。可以尝试运行一个简单的OpenCV示例程序,例如读取、显示一张图片。 幸运的是,OpenCVQT兼容性非常好,因此按照上述步骤完成安装应该不会遇到太多问题。如果你遇到了问题,可以参考OpenCVQT的官方文档,或在开发者社区中寻求帮助。 ### 回答3: 在Qt环境下安装OpenCV,可以按照以下步骤进行操作: 1. 下载OpenCV的源代码,可以从官方网站(https://opencv.org/)上获取最新版本的源代码。 2. 解压下载的源代码文件,得到一个名为"opencv"的文件夹。 3. 打开Qt Creator,创建一个新的Qt项目。 4. 将下载的OpenCV源代码文件夹中的"build"目录拷贝到新建的Qt项目文件夹下。 5. 在Qt Creator中打开自己创建的Qt项目。 6. 在Qt Creator的菜单栏中选择"文件" -> "添加新文件或项目" -> "添加已有的项目"。 7. 在弹出的对话框中,选择之前拷贝的OpenCV源代码文件夹中的"CMakeLists.txt"文件,然后点击"添加"按钮。 8. 在Qt Creator的菜单栏中选择"构建" -> "重新构建",开始构建OpenCV项目。 9. 构建完成后,在项目文件夹中的"build"目录下会生成OpenCV相关的库文件和头文件。 10. 右击Qt项目中的"头文件"文件夹,选择"添加现有文件",并将刚刚生成的OpenCV头文件添加到项目中。 11. 右击Qt项目中的"源文件"文件夹,选择"添加现有文件",并将刚刚生成的OpenCV库文件添加到项目中。 12. 在需要使用OpenCV的代码文件中,引入OpenCV的库文件和头文件,就可以使用OpenCV的功能了。 请注意,以上步骤仅适用于在Qt环境下安装OpenCV,并配置使用OpenCV库的情况。具体配置可能因开发环境和操作系统不同而有所差异,建议根据实际情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

꧁白杨树下꧂

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

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

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

打赏作者

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

抵扣说明:

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

余额充值