代码编织梦想

一、目的

        OpenCV是最常用的开源视觉库,Qt是当前最常用的GUI开发框架,用他们做出的软件如果要在其他终端运行就需要提前打包,将依赖的环境连同程序一起打包成可执行文件,这里是使用添加DLL文件的方式,做出绿色版可执行文件,通过U盘直接将生成程序拷到其他电脑上可以直接使用。

 

二、解决方法

2.1 生成exe文件

        实际上只需要运行程序(Debug或者Realse模式),就会在相应程序的目录中出现exe文件,比如我要生成的文件为 Detection.exe

                         

        然后我将Detection.exe复制到一个新建的文件夹test-debug里,这个文件夹的名字随意命名,并不重要,如下:

                     

        到这里,第一步就完成了

2.2 Qt DLL文件整理

        打开Qt 5.12.9 对应编译器的cmd,这个根据自己的版本以及使用的编译器选择,一般从开始菜单里的Qt文件夹下边找到,如下:

                 

        然后进入上一步骤新建的文件夹目录下,输入windeployqt Detection.exe 然后敲回车,等待程序运行:

               

              

        然后查看文件夹内,发现多了很多DLL文件

           

        此时的Qt的依赖已经全部被整理到当前文件夹内了

2.3 OpenCV DLL文件整理

        进入OpenCV中x64/vc16/bin文件夹下,将所有的DLL文件复制到第一步新建的文件夹中,就完成了,只需要双击exe文件便可以正常运行了,到此发布结束

注意:

1、如果只有一个opencv_world450.dll或者opencv_world450d.dll,如果拷进去还是提示缺少OpenCV的dll,那么建议自己编译一下OpenCV,然后将所有dll复制进去

2、编译器的使用、debug和release模式的使用以及dll文件的选取都要对应才行

 

 

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/qq_41685265/article/details/111064066

记录一次使用opencv压缩图片的过程-爱代码爱编程

最近有人问能不能做一个批量能压缩图片大小的工具,于是搜索一番,发现使用python的相关的函数很容易就能简单实现。首先导入需要的包;以及支持的格式,这次使用tkinter来试试。 # -*- coding: utf-8 -*- # @Date : 2020-12-07 15:13:48 # @Author : autohe (${email}

opencv--新手必看-爱代码爱编程

Opencv安装及必了解的小技巧 目录1.openv的下载a.官网及下载版本的选择b.下载方法2.opencv的配置a.环境变量的配置(dll目录的配置)b.vs平台中包含目录、库目录的配置c.附加依赖项的配置3. opencv的可视化总结 你好! 这里是我的博文分享,本系列博文将针对opencv库、图像处理的基础原理、图像工程的相关项目经验与大

opencv_4.5.0/OpenCvSharp_已知目标物边界求重心-爱代码爱编程

opencv的步骤: ……… //在findContours之前一般先需要对图像做预处理,例如形态学操作、阈值分割等等以保证findContours找到的边界准确 std::vector<std::vector<cv::Point>> mContoursPanel;     cv::findContours(index_im

利用opencv计算两个轮廓相交(交集)区域的面积-爱代码爱编程

1.将轮廓分别画在两个图层中,ImSrc1,ImSrc2; 2.合成两个图层到Imsrc = ImSrc1 + ImSrc2; 3.二值化(threshold )Imsrc图层; 4.findContours得到相交轮廓; 5.contourArea计算相交区域面积。 具体上代码: cv::Mat Imsrc1,Imsrc2,Imsrc,Imdest;

Opencv求轮廓的中心点坐标-爱代码爱编程

Opencv求轮廓的中心点坐标 思路: 1.通过findContours找出图片中的轮廓; 2.minAreaRect找到最小外接矩形; 3.得到最小外接矩形的中心点坐标作为轮廓的中心坐标; cv::Mat Imsrc,Imdest; std::vector<std::vector<cv::Point>> contoursDes

opencv实现图像旋转(不被裁剪)-爱代码爱编程

当用opencv读取照片时,很多时候图像都是经过旋转90度后的,而opencv又没有直接给出旋转图像的函数 函数1是用来旋转图像的函数(由于图像长与宽不相等,图像会被裁剪) 函数2在旋转90度后,图像不被裁剪(首先先将图像扩充为正方形,然后再旋转) 函数1 void rotate(cv::Mat src, cv::Mat& dst, doubl

PyQt常用控件的组合使用-爱代码爱编程

写作思路 这次使用到的空间有以下几种: 1、QPushButton 是我们之前用的按钮,也可以当作Toggle用 2、QCheckBox 3、QSlider 4、QCalendarWidget 5、QProgressBar 效果如下,可以改变QFrame的颜色,只有选中了对应Toggle才能改变对应的颜色通道,CheckBox可以控制Slider是否显示

Qt实现一个支持QSS的Switch Button(开关按钮)-爱代码爱编程

目录 Qt实现一个支持QSS的Switch Button(开关按钮)问题解决思路实现方式其他不同的 Switch Button总结 Qt实现一个支持QSS的Switch Button(开关按钮) 本文会比较长,目的是为了提供一种实现自定义复杂控件的方式,对于使用 QSS 应用样式的项目可能会有帮助。 实现的过程会相对比较复杂和难理解,仅作为

Qt进阶-事件过滤器eventFilter的使用-爱代码爱编程

事件过滤器eventFilter的使用 如果不提升控件,可以在控件的父对象中为控件安装事件过滤器,从而在父对象中处理子控件的事件; 在父对象源文件中: //为控件安装事件过滤器 ui.pushButton->installEventFilter(this); ui.pushButton_2->installEventFilter

QT自定义继承控件类添加信号和槽-爱代码爱编程

QT自定义继承控件类添加信号和槽 原因:在使用QT comboBox控件时发现没有点击事件(clicked()),翻阅博客查找到此类解决办法,本文介绍使用QTcreator中ui设计直接生成信号对应槽的方法,不用在程序内使用connect函数联系信号和槽的方式,前一种在参考博客评论区有大神提到,后一种方法在参考博客中有具体介绍,特以为记。 方法总结

使用QSharedMemory进行程序内存管理-爱代码爱编程

QSharedMemory 共享内存处理类 这个类的功能是挺强大的,本次只记录这个类的另一种用法。 通过创建共享内存,用共享内存的方式,防止程序多次启动。 在main.cpp中加入以下代码,可防止程序多次启动:   QSharedMemory *shareMem = new QSharedMemory(QString("xxxName")); 

Qt开发C++,比较实用的函数(持续记录中)-爱代码爱编程

1. std::string 和 QString 的转换 // std::string 转换为 QString QString MainWindow::string_to_QString(const std::string str) { return QString::fromLocal8Bit(str.data()); } // QStrin