desolatewqwq 2023-04-08 19:39 采纳率: 14.3%
浏览 6

Qt android opencv

img


Qt+OpenCV编译android 一直卡在这里是怎么回事呢?

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-04-08 22:03
    关注
    • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7503065
    • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:qt Android中使用opencv处理视频
    • 除此之外, 这篇博客: 编译opencv for QT中的 Opencv库的编译 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 1.配置CMake编译条件

      ①打开CMake(cmake-gui)。

      ②选择OpenCV安装目录下的源码文件:D:\Qt\opencv3.40\opencv\sources

      ③选择想要编译输出目录文件路径,如统一存在统一目录下,在D:\Qt文件下新建一个opencvbuild3.40 文件夹,选择该路径: D:\Qt\opencvbuild3.40

      ④点击Configure进行配置。

      ⑤选择MinGWMakefiles,勾选Special native compilers然后点击Next

      ⑥配置编译器

      在下图1处,C编译器选择D:\Qt\Qt5.10.0\Tools\mingw530_32\bin\gcc.exe;

      在下图2处,C++编译器选择D:\Qt\Qt5.10.0\Tools\mingw530_32\bin\g++.exe

      Fortran不用填写,然后点击finish。注意:此过程保证网络畅通,因为需要下载几个文件。

      ⑦等待一会儿后,会有一堆红色出现,勾选WITH_QT和WITH_OPENGL、ENABLE_CXX11(否则报错’nullptr’ was not declared in this scope),不能勾选WITH_IPP(默认不勾选),再次点击configure。

      然后点击configure,这时会报错,我们修改qmake的路径和lib库,如图所示:

      再次点击configure,报错,修改opengl路径,:

      注意:若仍有红色出现,再次点击configure直至红色消失(有时需要多次,一般情况下两次即可)。最后,点击Generate按钮,完成后即可关闭CMake。

      最后一步,直接点击:Generate:出现Generating done,表示完成Makefile的创建

        2. 编译

      接下来,cmd切换到目标目录,比如我这是:C:\Users\11011430\Desktop\opencv\BD

      输入命令:mingw32-make进行编译。

        ①在编译之前,在源目录D:\Qt\opencv3.4.0\opencv\source\cmake\下找到OpenCVCompilerOptions.cmake文件。

          记事本打开文件,找到add_extra_compiler_option(-Werror=non-virtual-dtor)

          将它注释掉,前面加#变成:#add_extra_compiler_option(-Werror=non-virtual-dtor)

        ②然后按住快捷键win+R,运行cmd

        进入编译输出目录D:\Qt\opencvbuild3.40,然后输入”mingw32-make“命令. 备注:加速编译时间可以使用可选参指令” mingw32-make -j 8 “(处理器是i7-3770为8核),

        注意点:编译opencv,此过程时间较长,电脑编译了一个多小时。

        ③直到编译结束。然后输入命令:mingw32-make install ,大约一到两分钟就安装完成了。

         注意点:若编译期间出现如下错误:

          错误: ... windres.exe: unknown option -- W ...

          根据提示依据如下思路解决: incmake uncheck ENABLE_PRECOMPILED_HEADERS

          即:mingw32-make ENABLE_PRECOMPILED_HEADERS -j 8

          http://answers.opencv.org/question/168538/building-opencv-with-mingw-gcc-710-and-cmake-390-windresexe-unknown-option-w/

          错误:in the file opencv/sources/modules/videoio/src/cap_dshow.cpp, you have the following error : 'sprintf_instead_use_StringCbPrintfA_or_StringCchPrintfA' was not declared in this scope ...

          解决:put the following line: #define NO_DSHOW_STRSAFE, before the line : #include "DShow.h"

          即:在D:\Qt\opencv3.4.0\opencv\source\modules\videoio\src\cap_dshow.cpp中,在#include “DShow.h“上一行中插入: #define NO_DSHOW_STRSAFE

          备注:参考地址:

      https://wiki.qt.io/How_to_setup_Qt_and_openCV_on_Windows

      cap_dshow.cpp中添加下面两句解决“错误:in the file opencv/sources/modules/videoio/src/cap_dshow.cpp, you have the following error : 'sprintf_instead_use_StringCbPrintfA_or_StringCchPrintfA' was not declared in this scope ...”

      #defineNO_DSHOW_STRSAFE

      #include"DShow.h"

    • 您还可以看一下 禾路老师的实现自己的Prisma(基于QT和OpenCV实现Android平台上基于AI的图像处理APP)课程中的 相关问题说明小节, 巩固相关知识点
    评论

报告相同问题?

问题事件

  • 创建了问题 4月8日

悬赏问题

  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Linux权限管理相关操作(求解答)
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表
  • ¥15 DbVisualizer Pro 12.0.7 sql commander光标错位 显示位置与实际不符
  • ¥15 android 打包报错
  • ¥15 关于stm32的问题
  • ¥15 ncode振动疲劳分析中,noisefloor如何影响PSD函数?