QT5 MSVC2017 64bit配置OpenCV4.5无需编译与示范程序

环境:Windows 10 64位
Opencv版本:4.5
QT:5.14
QT5 MSVC2017配置OpenCV
版本参考:
opencv msvc c++对应版本
1.安装MSVC2017(vs2017)
打开Visual Studio Installer,点击修改

选择vs2017生成工具:

2.下载OpenCV4.5并解压
opencv4.5版本
3.解压opencv-4.5.4-vc14_vc15.exe

vc15 = Visual Studio 2017
OpenCV4.5 支持 VS2017,VS2019(x64)
OpenCV4.6 支持 VS2017,VS2019(x64)
3.QT安装与配置:
Qt 下载
国内镜像网站
这里给大家推荐几个国内著名的 Qt 镜像网站,主要是各个高校的:
中国科学技术大学:http://mirrors.ustc.edu.cn/qtproject/
清华大学:https://mirrors.tuna.tsinghua.edu.cn/qt/
北京理工大学:http://mirror.bit.edu.cn/qtproject/
中国互联网络信息中心:https://mirrors.cnnic.cn/qt/
Qt6 官网QtCreator 下载与安装方法win10_qt6下载-CSDN博客
4.环境变量配置
一、配置QT安装的路径
二、配置Opencv的解压的位置

5.打开QT Creator新建项目


选择qmake


选择MSVC2017 64bit

点击完成
5.双击打开pro文件

编辑区域右键选择添加库


添加库文件路径后:

pro文件已添加路径:

示范代码:
这个函数是显示原图,值得注意的是,在转化8位3通道的图像时,OpenCV和QImage使用的红蓝通道是相反的,需要使用rgbSwapped方法互换一下void MainWindow::on_pushButton_read_clicked()
{std::string str3 = file_read(i);cv::Mat srcimage = cv::imread(str3);/* -------------------------------------------------------- */// cv::Mat srcimage=cv::imread("../MainWindow/2.jpg");//cv::imshow("原始图片",src);R//Mat转QImage 像素 oldlabel放置原图QImage disimage = QImage(srcimage.data,srcimage.cols,srcimage.rows,srcimage.cols*srcimage.channels(),QImage::Format_RGB888);QImage imag =disimage.rgbSwapped();//将红蓝通道对换// disimage = imag.scaled(ui->label->width(),ui->label->height(),Qt::KeepAspectRatioByExpanding);disimage = imag.scaled(ui->label->width(),ui->label->height(),Qt::KeepAspectRatio);ui->label->setPixmap(QPixmap::fromImage(disimage));
}
/** ---------------------------
opencv_t1.exe - 系统错误
---------------------------
由于找不到 opencv_world454d.dll,无法继续执行代码。重新安装程序可能会解决此问题。
---------------------------
确定
---------------------------
https://www.cnblogs.com/txwtech/p/17844109.html ,解决方法** */std::string MainWindow::file_read(int &i)
{/* 可以读取绝对路径下的第一张图片 *///获取应用程序可执行文件的文件路径://QDir::currentPath();//获取当前工程目录QDir dir(path);QStringList filename ;filename << "*.png" << "*.jpg";//可叠加,可使用通配符筛选QStringList results;results = dir.entryList(filename,QDir::Files | QDir::Readable,QDir::Name);//增加一个判定int a=results.size();//qDebug()<<a;打印出来有几张图片qDebug()<<"i"<<i;if(i+1>a){QWidget *parent=new QWidget;// QMessageBox::information(parent,tr("aa"),tr("aa"),tr("aa"),tr("aa"));// QMessageBox::information(this,tr("提示"),tr("最后一张,将返回第一张"),tr("确定"),tr("取消"));QMessageBox::information(parent,tr("提示"),tr(" 最后一将返回第一张 "),tr("确定"),tr("取消"));// QMessageBox::information(parent,tr("aa"),tr(" 最后一将返回第一张 "));qDebug()<<i;i--;//回到上一张i=0;}//qDebug()<<results;//results里就是获取的所有文件名了,这里的qdebug是将运行的路径进行输出QString st=results.at(i);QString rt=path;qDebug()<<rt+st;std::string str1=rt.toStdString();std::string str2 = st.toStdString();std::string str3=str1+str2;return str3;
}void MainWindow::on_pushButton_next_pic_clicked()
{i++;file_read(i);on_pushButton_read_clicked();on_pushButton_to_gray_clicked();
}void MainWindow::on_pushButton_previous_pic_clicked()
{i--;if(i<=0){i=0;}file_read(i);on_pushButton_read_clicked();on_pushButton_to_gray_clicked();
}
增加一个警告框用来提示是否存在文件夹,如果没有就创建void MainWindow::on_pushButton_create_folder_clicked()
{QDir *temp = new QDir;bool exist = temp->exists(path);if(exist){// QMessageBox::warning(this,"创建文件夹","文件夹已经存在!");//会显示中文乱码QMessageBox::information(this,tr("提示"),tr("创建成功"),tr("确定"),tr("取消"));}else{bool ok = temp->mkdir(path);if(ok){;// QMessageBox::information(this,u8"提示",u8"创建失败!",u8"确定",u8"取消");}// QMessageBox::warning(this,"创建文件夹","文件夹创建成功!");}
}void MainWindow::on_pushButton_to_gray_clicked()
{std::string str3=file_read(i);cv::Mat srcimage=cv::imread(str3);//cv::imshow("原始图片",src);cv::Mat img_resize,img_Gray,img_blur;//cv::resize(srcimage, img_resize,cv::Size(), 0.5, 0.5);cvtColor(srcimage, img_Gray, cv::COLOR_BGR2GRAY);GaussianBlur(img_Gray, img_blur, cv::Size(3, 3), -1, -1);//高斯模糊化//Mat转QImage 像素 oldlabel放置原图// QImage disimage = QImage(img_blur.data,img_blur.cols,img_blur.rows,img_blur.cols*img_blur.channels(),QImage::Format_Grayscale8);//Mat转QImage 像素 oldlabel放置灰度图QImage disimage = QImage(img_blur.data,img_blur.cols,img_blur.rows,img_blur.cols*img_blur.channels(),QImage::Format_Grayscale8);ui->label_2->setPixmap(QPixmap::fromImage(disimage.scaled(ui->label_2->width(),ui->label_2->height(),Qt::KeepAspectRatio)));//,Qt::KeepAspectRatio在后面加上这个就可以保证图片不变形
}

工程源代码:
待更新。。。
相关文章:
QT5 MSVC2017 64bit配置OpenCV4.5无需编译与示范程序
环境:Windows 10 64位 Opencv版本:4.5 QT:5.14 QT5 MSVC2017配置OpenCV 版本参考: opencv msvc c对应版本 1.安装MSVC2017(vs2017) 打开Visual Studio Installer,点击修改 选择vs2017生成工…...
windows如何查看自己的ip地址
windows如何查看自己的ip地址 1.打开控制面板 2.进入网络和internet 3.进入网络共享中心 4.点击以太网进入网络详情页,或邮件已连接的网络,点击属性 5.查看ipv4地址就是当前机器ip...
Camera2的使用【详细】
目录 1.获取权限 2. 获取指定相机ID (1)获取相机管理者CameraManager (2)获取相机ID列表 (3)获取相机特征CameraCharacteristics (4)获取相机朝向 3.获取相机输出尺寸 (1)根据相机ID获取相机特征 (2)获取输出流配置StreamConfigurationMap (3)获取输出尺寸数组(参数为…...
Playcanvas后处理-辉光bloom
(一)Bloom介绍 Bloom(辉光、光晕、泛光)是一种常见的摄像机后处理(PostProcessing)效果,用于再现真实世界相机的成像伪影。这种效果会产生从图像中明亮区域边界延伸的光条纹(或羽毛…...
GCC 学习
GCC Resource Center for GCC Internalshttps://www.cse.iitb.ac.in/grc/这是个不错资料网站,有兴趣的可以了解下...
2023数维杯数学建模C题完整版本
已经完成全部版本,获取请查看文末下方名片 摘要 随着人工智能在多个领域的快速发展,其在文本生成上的应用引起了广泛关注。本研究聚焦于辨识人工智能(AI)生成文本的基本规则,并探究AI文本的检测及其与人类文本的区分…...
快速解密PPT幻灯片密码,让PPT重见天日
最简单的办法解密、找回和去除PPT幻灯片密码,具体步骤如下:1.百度搜索【密码帝官网】,2.点击“立即开始”在用户中心上传要解密的文件稍等片刻,就能找回密码。不用下载软件,手机电脑都可用。而且还支持Word、Excel、PD…...
十六、RabbitMQ快速入门
目录 一、在centos上下载MQ镜像 二、安装运行容器 三、登录进入MQ 1、添加一个新的用户 2、新建虚拟机 3、 为用户分配权限 四、RabbitMQ的基本概念 RabbitMQ中的几个概念: 五、常见消息模型 六、简单的消息生产与消费 1、消费者类 2、生产者类 3、基本消息队列的消…...
C#WPF用户控件及自定义控件实例
本文演示C#WPF自定义控件实例 用户控件(UserControl)和自定义控件(CustomControl)都是对UI控件的一种封装方式,目的都是实现封装后控件的重用。 只不过各自封装的实现方式和使用的场景上存在差异。 1 基于UserControl 创建 创建控件最简单一个方法就是基于UserControl …...
大模型的语言能力
NLP作为一个领域为基础模型开辟了道路。虽然这些模型在标准基准测试中占据主导地位,但这些模型目前获得的能力与那些将语言描述为人类交流和思维的复杂系统的能力之间存在明显的差距。针对这一点,我们强调语言变异的全部范围(例如,…...
直播岗位认知篇
一、直播岗位概述 直播岗位,也称为直播主播或直播运营,是指在互联网直播平台上进行直播活动的工作岗位。该岗位的主要职责是通过直播形式,向观众展示自己的才艺、分享生活、销售产品或服务,并引导观众互动和参与。直播主播需要具…...
后端技术知识点内容-全部内容-面试宝典-后端面试知识点
文章目录 -2 flink-1 linux of viewlinux查看占用cup最高的10个进程的命令; 〇、分布式锁 & 分布式事务0-1分布式锁--包含CAP理论模型概述分布式锁:分布式锁应该具备哪些条件:分布式锁的业务场景: 分布式锁的实现方式有&#…...
3.ubuntu20.04环境的ros搭建
ros搭建比较简单,主要步骤如下: 1.配置ros软件源: sudo sh -c echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list 2.配置密钥 sudo apt-key adv --keyser…...
米诺地尔行业分析:预计2029年将达到14亿美元
米诺地尔市场规模庞大,不仅包括消费品市场和服务行业,还涵盖了创新科技领域。随着经济的发展和市场需求的不断增长,米诺地尔市场的规模将继续扩大,各行各业都将面临更多机遇和挑战。 随着社会经济发展和城市化进程的推进ÿ…...
在Spring Boot中使用Thymeleaf开发Web页面
引言: 为啥写这篇文章呢?我明明就没怎么用过这个Thymeleaf进行web开发,用JSP也行,三剑客也行,或者Vue,React,PHP等等,不好吗? 那我为啥写这篇博客呢?这个写了…...
2023年亚太杯数学建模思路 - 案例:感知机原理剖析及实现
文章目录 1 感知机的直观理解2 感知机的数学角度3 代码实现 4 建模资料 # 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 感知机的直观理解 感知机应该属于机器学习算法中最简单的一种算法,其…...
linux高级篇基础理论五(用户安全,口令设置,JR暴力破解用户密码,NMAP端口扫描)
♥️作者:小刘在C站 ♥️个人主页: 小刘主页 ♥️不能因为人生的道路坎坷,就使自己的身躯变得弯曲;不能因为生活的历程漫长,就使求索的 脚步迟缓。 ♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏:云计算技…...
鸿蒙原生应用/元服务开发-AGC分发如何配置版本信息(上)
1.配置HarmonyOS应用的“发布国家或地区”。 2.设置是否为开放式测试版本。 注意:HarmonyOS应用开放式测试当前仅支持手机、平板、智能手表。如开发者想发布为开放式测试版本,选择“是”。正式发布的版本请选择“否”。 3.在“软件版本”下点击“软件包…...
探索Scrapy中间件:自定义Selenium中间件实例解析
简介 Scrapy是一个强大的Python爬虫框架,可用于从网站上抓取数据。本教程将指导你创建自己的Scrapy爬虫。其中,中间件是其重要特性之一,允许开发者在爬取过程中拦截和处理请求与响应,实现个性化的爬虫行为。 本篇博客将深入探讨…...
渗透测试--3.中间人攻击
渗透测试--3.中间人攻击 一 .中间人攻击arp欺骗DNS欺骗无线局域网漏洞利用使用 Ettercap 执行欺骗攻击arp欺骗实例1、首先查看欺骗之前靶机ip以及默认网关,2、查看kali的IP地址(192.168.76.134),MAC:000c294079903、使用Ettercap,将A主机和B主机加入到target中4、点击右上…...
AI与地缘政治双重冲击下,内存市场产能大迁移与供应链危机
1. 风暴之眼:当AI狂潮撞上地缘断供如果你最近想给电脑加条内存或者换个固态硬盘,大概率会被价格吓一跳。这不仅仅是简单的“涨价”,而是整个存储市场的底层逻辑正在被两股巨力彻底重塑。一边是AI数据中心对高性能内存近乎贪婪的吞噬ÿ…...
Midjourney 8x10高保真输出崩溃诊断:内存溢出日志解析、--sref跨模型参考失效、以及GPU显存碎片化导致的upscale中断(附实时监控脚本)
更多请点击: https://intelliparadigm.com 第一章:Midjourney 8x10高保真输出崩溃现象全景概览 近期,大量 Midjourney 用户在使用 --s 1000 --q 2 --v 6.3 配合 --ar 8:10 参数生成高分辨率人像/建筑类图像时,遭遇高频次任务中…...
诺云定制APP:赋能社区团购商家私域长效盈利
如今社区团购行业早已告别野蛮烧钱补贴的粗放发展阶段,迈入精细化私域运营、低成本稳复购的深耕时代。不管是深耕社区多年的本地团购实体店家、社区团长创业者,还是手握生鲜、日用刚需货源的供应链商家,都面临着共同经营难题:依赖…...
氢燃料电池混合动力能量管理与动力控制【附仿真】
✨ 长期致力于氢燃料电池、能量管理、等效氢耗、变换器、协同控制、永磁同步电机、滑模自抗扰研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)等效氢耗…...
Poppins几何无衬线字体:跨语言设计的现代主义杰作与技术实现指南
Poppins几何无衬线字体:跨语言设计的现代主义杰作与技术实现指南 【免费下载链接】Poppins Poppins, a Devanagari Latin family for Google Fonts. 项目地址: https://gitcode.com/gh_mirrors/po/Poppins Poppins是一款融合现代主义几何美学与跨语言排版功…...
ChromaControl:如何用智能技术终结RGB设备控制混乱局面
ChromaControl:如何用智能技术终结RGB设备控制混乱局面 【免费下载链接】ChromaControl 3rd party device lighting support for Razer Synapse. 项目地址: https://gitcode.com/gh_mirrors/ch/ChromaControl 想象一下这样的场景:你的桌面上摆放着…...
【Twitter算法适配型Prompt库】:2024Q2官方推荐权重结构解析+ChatGPT生成内容通过率提升67%的12个黄金句式
更多请点击: https://intelliparadigm.com 第一章:Twitter算法适配型Prompt库的演进逻辑与2024Q2权重变革本质 算法信号层重构驱动Prompt范式迁移 2024年第二季度,X(原Twitter)平台正式将Engagement Velocity Ratio&…...
智慧校园平台建设要多少钱?这份预算规划指南帮你理清思路
✅作者简介:合肥自友科技 📌核心产品:智慧校园平台(包括教工管理、学工管理、教务管理、考务管理、后勤管理、德育管理、资产管理、公寓管理、实习管理、就业管理、离校管理、科研平台、档案管理、学生平台等26个子平台) 。公司所有人员均有多…...
从零到一:手把手教你用LabelImg高效构建VOC与YOLO数据集
1. 为什么你需要掌握LabelImg标注工具 刚接触计算机视觉时,我最头疼的就是数据准备环节。记得第一次尝试训练目标检测模型,花了两周时间收集了上千张图片,却在标注环节卡住了——手动画框太慢,格式转换出错,反复返工差…...
基于SendBird SDK的iOS即时通讯应用架构与最佳实践详解
1. 项目概述:一个iOS即时通讯的“样板间”如果你正在为你的iOS应用寻找一个功能完整、架构清晰的即时通讯(IM)功能实现参考,那么sendbird/sendbird-chat-sample-ios这个GitHub仓库绝对值得你花上半天时间好好研究。它不是一个简单…...
