首页 > 其他分享 >Qt调用Opencv

Qt调用Opencv

时间:2023-10-21 19:33:32浏览次数:34  
标签:调用 Qt 套件 Opencv 编译器 添加 构建 调试器

使用Qt Creator调用opencv

一、构建套件

  在构建套件之前,需正确安装Visual Studio和WindowsSDK

  当正确安装后,一般情况下,在Qt Creator会自动识别到VS的编译器和调试器,并会自动构建好。若调试器未能自动识别,可自行找到相关的安装路径(cdb.exe文件),然后添加,自行命名好即可。

图1 自动识别的编译器 图2 自动识别的调试器及路径

  同理,若套件未能自动构建,则自己手动选择编译器和调试器。

图3

  当未构建好或构建的路径不正确时会显示红色感叹号,若没有调试器则会显示黄色感叹号(此时可以编译运行,但无法调试)。

二、创建一个项目或载入已有项目

  2.1创建项目

  为简单起见,案例将创建一个Qt的控制台应用,如图4所示:

图4 图5

  根据提示依次输入相关信息,在套件选择页面中选择自己构建的套件。本案例将选择MSVC 2015 x64的套件,其为VS2015的编译器,同时对应的opencv也应当是支持VS2015的动态库(什么编译器编译出的动态库就用什么编译器,有不少人是用MinGW,看个人喜好)。接着根据提示进行相关操作即可。

注意:选择MSVC系列编译器需要注意编码问题(针对源文件,如main.cpp等文件),网络有很多相关的解决办法,可自行查找。我认为一个很方便的做法是通过其他文本编辑器(如notepad++)将源文件转为utf-8-bom格式(如图6所示),然后在Qt Creator中重新加载。

图6

  2.2添加opencv库

  第一种方式,采用自动添加库,第二种和方式是直接在pro文件中写LIBS、INCLUDEPATH相关代码,后续复制即可。

  采用自动添加库时,右击项目->选择添加库->选择windows、动态库、为debug版本添加‘d’作为后缀->分别选择对应的库文件和include文件夹->依次操作点击完成。

图7

图8 图9 图10 图11 图12

  自此添加完成,自动在pro文件夹添加相关代码,如图13所示。

图13

  注意,如果在添加库之前已经进行了构建(或运行),生成了“build-untitled1-Desktop_Qt_5_9_1_MSVC2015_64bit-Debug”文件夹,这通常会导致找不到“opencv.hpp”文件夹等错误,此时需要删除该文件夹重新构建。

图14

  如果未在之前将源文件转为utf-8-bom格式,这将导致中文字符乱码,从而可能导致imread函数读取含中文路径的图片失败等问题。

  在一些情况下,点击运行后,界面一直显示如图13所示,往控制台中按回车会关闭并停止运行,该类问题暂不知道什么原因,而再重新创建工程又无该问题。

图15

标签:调用,Qt,套件,Opencv,编译器,添加,构建,调试器
From: https://www.cnblogs.com/2020zxc/p/17779392.html

相关文章

  • PHP SOAP调用接口获取数据
    PHPSOAP调用接口获取数据这里的地址是对方提供的,以wsdl结尾确定需要传递的数据对方的接口需要返回json数据,后端是可以实现的(不论什么语言)PHP对返回的json进行解析,得到数组这里的地址是对方提供的,以wsdl结尾$client=new\SoapClient(‘http://1.1.1.1/DomWebservice/DomWebSer......
  • QT 菜单中添加Qcheckbox复选框
    //回放autowidget=newQWidget;{autocheckbox=newQCheckBox("回放");autolayout=newQHBoxLayout;layout->addWidget(checkbox);layout->setContentsMargins(5,1,5,1);widget->setLayout(l......
  • makefile学习记录 :一个工程里有多个makefile 如何make根目录下的makefile 调用子目录
    注:本文个人学习记录目的:一个工程里有多个makefile如何make根目录下的makefile调用子目录下的makefile,编译所有.c文件如图所示目录结构,根目录server:makefile;子目录so:makefile  根目录makefile:GCC=gccAPP=server ALL_C=$(wildcard./*.c)C_OBJ=$(notdir$......
  • 函数调用 实参——形参
    函数调用 实参——形参传值,实参与形参无关,即形参变,实参一定不改变传地址(即指针变量),形参变,实参可以变(也可以不变)引用传递,形参变,实参一定改变......
  • QT cmake工程使用QXlsx源码操作execl,无需编译QXlsx,也不需要下载其他东西,windows和ubu
    一、下载地址:链接二、进入下载好的QXlsx目录下,取出QXlsx目录和README.md待用三、用qt创建一个简单的cmake工程,将QXlsx目录和README.md文件放到cmakelists.txt所在目录 四、修改cmakelists.txt文件cmake_minimum_required(VERSION3.5)project(xlsxTestLANGUAGESCXX)......
  • python3.12安装pyqt6教程
    1.开发环境:win11,Pycharm2023.2.32.python版本:Python3.12.03.Installationpackage#python.exe-mpipinstall--upgradepip#pipinstallxlrd#pipinstallxlwt#pipinstallpyserial#pipinstallturtle==0.0.1下载2个包文件然后安装https://github.com/altendky......
  • vue父组件中调用子组件中的方法 及vue父组件调用孙子组件的方法
    一:通过ref直接调用子组件的方法;子组件child.vue<template><div>我是子组件</div></template><script>exportdefault{methods:{childFun(){console.log('我是子组件的方法');},},};</script>父组件:<template>......
  • “SecurityError: Error #2060: 安全沙箱冲突:ExternalInterface 调用者xxx不能访问xx
    今天,我把我的FlashPlayer插件做了一下升级,变为了10.0.42.34的版本。然后发现之前能够在本地正常运行的DVF,今天运行起来却抛出了异常信息。提示信息如下:SecurityError:Error#2060:安全沙箱冲突:ExternalInterface调用者file://D:\study\flex\service\bin\rainbowX.swf......
  • 16、实现Client远程调用的重试机制
    由于远程程序服务健壮性和网络的波动等因素,可能造成接口调用失败,因此有必要实现Client远程调用的重试机制一、基于异常捕捉的重试机制:publicStringgetDetailFromClient(){//重试次数intretryCount=3;//重试时长(单位:ms)intretryTi......
  • 关于keil下调用sprintf配置
    1.需要在keil的Target1->target下勾选microlib2.在main函数前面ifdefGNUC/*GNUC*/definePUTCHAR_PROTOTYPEint__io_putchar(intch)elsedefinePUTCHAR_PROTOTYPEintfputc(intch,FILE*f)endif/*GNUC*/3.在main下面PUTCHAR_PROTOTYPE{/*Placeyourimple......