- 博客(727)
- 资源 (53)
- 收藏
- 关注

原创 【专栏介绍 C/C++/Python应用开发】
【专栏提纲 ID_01】C/C++/Python混合编程背景Table of Contents背景更新时间:2020.12.05;更新版本:第一版;写作时间:准备抽周末以及平时下班的业余时间上,将这个专栏写的质量尽可能的高一些。写作方式:先拟好提纲,然后逐步的完善。保持一周至少一篇的进度。写作范围:前期涉及的是开发相关的(python全栈开发以及图像应用算法落地),后期会逐渐添加算法相关的内容;面向人群:学生,以及方案解决的同仁等。备注:并不能做到尽善尽美,但是追求完美,愿与志同道合的诸君,
2020-12-05 11:32:59
1072
1
原创 【Windows】解决无线网卡TL-WN823N免驱版无法上网的问题
并且在设备管理器下对802.11 WLAN Adapter更新驱动程序依然没有反应。我的情况是计算机无法识别CD驱动器,按提示是删除之前已经安装的TP-Link程序!在跳出来的CD驱动器点击 运行AutoInst.exe即自动安装无线网络驱动。我观察到每次插入无线上网卡,在window设置–>设备–>其他设备下。卸载掉以前安装的TP-Link驱动后,重启电脑即可发现CD驱动器!无线网卡插入到windows10后,电脑不显示驱动光驱,出现问题,最好的解决办法看官方说明。以上经过多次插拔都是同样的问题,
2023-06-07 20:30:54
343
原创 【Windows】局域网内远程桌面控制
windows10家庭版没办法远程被别的电脑连接控制,但家庭版可以远程控制专业版、企业版。如果您是在同一个局域网内的两台window10操作系统之间做远程桌面连接,请参考本博客。windows10专业版/企业版不仅可以主动远程连接控制,还可以被远程连接控制。局域网内远程桌面控制其它windows10计算机,局域网内远程桌面控制其它windows10计算机,局域网内远程桌面控制其它windows10计算机,注意是被控计算机,而不是控制计算机的!需要被控制的计算机设置登录密码。需要被控制的计算机启用远程桌面。
2023-05-29 22:37:21
716
原创 【PyQt5】指示灯显示
假设label标签的大小为60px*60px,对应的border-radius: 30px。我们本质是用Qt5的label文本标签来实现的,即通过设置标签的样式表来实现的。利用Qt5写工业控制软件交互界面的时候,经常需要在界面上有指示灯功能。step-2、设置Label标签的geometry几何的宽度和高度,step-1、在画布上拉一个TextLabel标签。例如下面的明暗表示串行端口的连接和断开。通过Qt设计师绘制指示灯的大致步骤如下。python3的代码示例如下。step-3、编辑样式表,
2023-05-28 22:51:06
856
原创 【CPP知识】typedef数据类型重定义
3.1 、简化类型申明,比如原来的数据类型long double,可以更见简化成my_float;int x;int y;int z;} sample;// 使用typedef简化了类型 sample s1 = {// 以下是不使用typedef则显得复杂。int y;int z;} s2 = {3.2、简化函数申明,time_t time(time_t *);
2023-02-12 23:47:58
1136
原创 【Qt】QtCreator新建QtWidgetsApplication
冒号后面的两行代码,是C++的列表初始化。其中QMainWindow(parent) 是父类构造函数的初始化列表操作,即显式调用基类(父类)的构造函数。ui文件是xml格式的,Qt编译时,先用uic.exe工具将mainwindow.ui编译生成ui_mainwindow.h头文件。ui(new Ui::MainWindow) 是子类的成员初始化,即初始化ui指针,ui指针在mainwindow.h中定义的。这个头文件ui_mainwindow.h是c++类,可以通过。
2023-01-09 00:18:50
1343
原创 【Qt】QtCreator新建Application项目的6类应用程序的示例
本博客使用Qt Creator创建Application应用程序,目前一个可以创建6类Application。分别创建该6类应用程序。
2023-01-08 22:20:00
1353
原创 【Qt】通过创建ui界面类成员变量的方式显示窗体
其生成的.h头文件的显示,如果通过自定义class继承ui界面类的方式加载,编译运行,点击"开始"按钮 开始间隔1秒计数,当计数到6则归零暂停。即在创建的class种创建ui界面类成员变量的方式。本博客介绍第二种方式加载界面的.h头文件显示。
2023-01-08 13:00:56
1519
原创 【Qt】加载.h文件显示窗体并添加交互逻辑
本博客不仅显示窗体,还增加了交互逻辑。加载.ui转化的.h头文件显示窗体,编译运行,点击"开始"按钮 开始间隔1秒计数,当计数到6则归零暂停。
2023-01-08 11:51:54
747
原创 【Qt】通过继承ui界面类的方式加载.ui转化的.h头文件显示窗体
将QtDesigner生成的.ui文件转化为.h头文件,然后自定义class继承父控件类,显示窗体。step-1:创建项目配置文件Test.pro;step-2:创建自定义的头文件step-3:创建自定义的源文件step-4:创建main.cpp;
2023-01-08 00:26:02
1123
原创 【Qt】将QtDesigner生成的.ui文件转化为.h头文件
通过uic.exe将ui文件转化为h头文件:uic widget.ui -o ui_widget.cpp 和uic widget.ui -o ui_widget.h的内容都是头文件!生成的头文件,建议采用ui_名称.h,因为这种方式是Qt默认的通用方式。但.cpp的后缀会误导初学者,所以建议规范方式是文件后缀显示的表明文件内容,将其保存widget.ui文件,其中.ui文件是xml格式的内容。
2023-01-07 13:35:57
1555
原创 【Qt】自动查找Qt应用程序缺少的依赖库
由于该电脑上未安装Qt软件,而你的exe程序包的文件夹又未包含依赖的动态库,所以运行qt应用程序会报错缺少各种依赖库。本博客使用Qt自带的工具,自动查找Qt应用程序缺少的依赖库。
2023-01-07 11:37:41
1713
原创 【Qt】SetUnhandledExceptionFilter设置程序异常筛选器函数
如果是调试状态,则通知调试器发生了异常,如果不是调试状态,操作系统会查看当前线程是否安装了的异常帧链(FS[0]),如果安装了SEH(try…如果异常链中所有的SEH都没有处理此异常,而且此进程还处于调试状态,则操作系统会再次通知调试器发生异常(二次异常)。调用SetUnhandledExceptionFilter函数后,如果在未调试的进程中发生异常,并且异常会将其设置为未处理的异常筛选器,该筛选器将调用 lpTopLevelExceptionFilter 参数指定的异常筛选器函数。
2023-01-02 16:22:31
1400
原创 【Qt】通过共享内存实现应用程序的单实例检查
在开发Qt程序的时候,我们往往不希望一台计算机上同一个程序被多次打开,即一台计算机上有且只有一个应用程序实例存在。应用程序的单例化,有三种方式:分别通过共享内存、QtSingleApplication、文件锁实现。注意:Linux操作系统当在程序发生崩溃时,可能会出现未及时清除共享区数据,导致程序不能正常启动。使用共享内存,当第2个进程启动时,判断共享的内存区数据是否建立。本博客通过共享内存的方式,来实现应用程序单例化检查。
2023-01-01 22:14:12
108
原创 【python初级】10进制与2进制8进制16进制的转换
2、8、16进制的区别,是表示数值的bit最小单位不同,2进制是一个bit位,8进制是3个bit位,计算机非常常用的16进制是4个bit位。16进制是逢16进1(0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)所谓十进制就是逢10进1(0,1,2,3,4,5,6,7,8,9),8进制是逢8进1(0,1,2,3,4,5,6,7,),在做串口通信的时候发送的字符串都是16进制编码的。本博客就介绍10进制与2、8、16进制的相互转换。2进制是逢2进1(0,1),
2022-12-11 14:45:55
2023
原创 【应用开发】关于ASCII码的进制对照表
在英语中,用128个符号编码便可以表示所有,但是用来表示其他语言,128个符号是不够的。ASCII(American Standard Code for Information Interchange美国信息交换标准代码),是基于拉丁字母的一套电脑编码,作为国际通用的信息交换标准代码。如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(响铃)等;十进制32~126(共95个)是字符(32是空格),其中十进制48~57为0到9十个阿拉伯数字。如“A”
2022-12-11 08:20:42
402
原创 【应用开发】关于串口和通信协议
他们的区别就是电气标准不一样,即RS-232、RS-422与RS-485标准只对接口的电气特性做出规定,不涉及物理形态、电缆或传输的通信协议。串口是一个物理层面的电器电口,他是看得见摸得着的,但并没有固定的样式。还有其他别的串口本文不介绍,其实本文就说,RS232、RS485是工业设备通信常用的电器接口,RS232、RS485是串口中的一种。以下是9 针D 形连接器,通常是RS232、RS485的接口,但RS232、RS485串口的物理形态是不固定的。串口它规定了接口的电气标准,即它只是物理层的一个标准。
2022-12-10 18:46:25
447
原创 【python中级】强行kill杀掉进程
如果程序涉及到主进程开子进程,并在一定条件下关闭子进程。可在windows以及linux下杀掉进程。以下示例代码 “kill杀掉进程.py”大概率就是需要kill杀掉进程。
2022-11-18 16:28:43
1622
原创 【python中级】裁剪1、2寸电子照片
这个300dpi不是瞎来的,参考了人眼能分辨出的最大分辨率是300dpi,超过这个分辨率,人的眼睛是无法看出差别的,也就是说 300dpi和600dpi在人眼看来是没有差别的,异能人不再抬杠范围。DPI是分辨率的一种,即设备分辨率,也称为输出分辨率,是指各种类型的输出设备可以产生的每英寸点数,例如监视器,喷墨打印机 ,激光打印机,绘图仪的分辨率,此分辨率由DPI测量。现在的冲印设备最大的设计输出分辨率,就是300dpi,对于大尺寸比如6寸,一般来说能达到200dpi,肉眼看到就很清晰了!
2022-11-18 00:30:46
406
原创 【python中级】Pillow包在图像中绘制中文
目前使用python语言还不能在图像中高效率的绘制中文,可以对比,使用Pillow包绘制中文可能达到20ms,同等配置下使用opencv绘制英文不到0.1ms,差别还是很大的。目标检测类项目一些场景需要在界面上绘制文字信息,而中文的显示需求很大。所以后面会考虑将c++支持图像绘制中文的源码打包编译并开源贡献出来。opencv-python到目前为止,还不支持在图像中绘制中文。以下脚本使用Pillow三方包实现在图像上绘制中文。在算法绘制的直播推流业务场景。
2022-11-12 23:38:19
433
原创 【深度学习】模型过拟合的原因以及解决办法
不要过度训练,提前结束训练early-stopping:训练时间足够长,模型就会把一些噪声隐含的规律学习到,这个时候降低模型的性能是显而易见的。第3组模型过拟合:模型复杂度过高,抽象出的数学公式非常复杂,很完美的拟合训练集的每个数据,但过度强调拟合原始数据。第1组模型欠拟合:模型复杂度过低,抽象出的数学公式过于简单,有很多错分的数据,不能很好的你和我们的训练集。注意扩充后的图像要手动确认,因为可能会有脏数据,从而会引入一定的噪声,噪声也会影响模型的性能的。L2是模型各个参数的平方和的开方值。
2022-10-20 00:28:59
3950
原创 【opencv-c++】cv::bilateralFilter双边滤波
双边滤波器顾名思义比高斯滤波多了一个高斯方差sigma-d,它是基于空间分布的高斯滤波函数,所以在边缘附近,离的较远的像素不会太多影响到边缘上的像素值,这样就保证了边缘附近像素值的保存。但是由于保存了过多的高频信息,对于彩色图像里的高频噪声,双边滤波器不能够干净的滤掉,只能够对于低频信息进行较好的滤波。如果它们很小(< 10),过滤器就不会有太大的效果,而如果它们很大(> 150),它们就会有非常强的效果,使图像看起来“卡通化”。由于高斯滤波去降噪,会较明显地模糊边缘,对于高频细节的保护效果并不明显。
2022-10-16 22:56:50
1227
原创 【opencv-c++】cv::GaussianBlur高斯滤波
高斯模糊本质上是低通滤波器,根据上图高斯分布公式,和滤波器所覆盖像素距离中心的距离,就可以计算每个像素被滤波后的像素值。sigmaY:Y 方向高斯滤波器标准差(如果输入 0,则会被设置成等于 sigmaX,如果 sigmaX 和 sigmaY 都输入 0,则会根据滤波器尺寸来计算得到标准差)ksize:滤波器尺寸,可以不是正方形,但是必须为正奇数(如果设置为 0,则由输入的标准差来计算所需的尺寸)。dst:输出图像,与输入图像具有相同的尺寸,通道数,和类型。以下示例引入高斯滤波,对原图像进行高斯模糊。
2022-10-16 21:47:31
1470
原创 【opencv-c++】cv::filter2D图像卷积操作
如果您想将不同的内核应用于不同的通道,可以使用split将图像分割成单独的灰度图像,并分别处理它们。anchor:内核的锚点,表示经过过滤的点在内核中的相对位置;当卷积核部分位于图像外时,该函数根据指定的边界模式插像素值。一个窗口区域在另外一个大的图像上移动,对每个窗口覆盖的区域都进行点乘得到的值作为中心像素点的输出值。该函数在足够大的内核(~11 × 11或更大)情况下使用基于dft的算法,delta:可选值添加到过滤后的像素,然后将其存储在dst中。dst:输出与src相同大小和相同通道数的图像。
2022-10-16 19:14:25
878
原创 【opencv-c++】cv::equalizeHist直方图均衡化
cv::equalizeHist这个函数的输入图片仅仅是一副灰度图像,输出结果是直方图均衡化之后的图像。OutputArray dst:目标图像,与原图像具有同样的大小与类型;直方图均衡化是利用图像直方图对 图像的对比对进行调整的方法。该算法对图像的亮度进行了归一化处理,提高了图像的对比度;(2) 将柱状图归一化,使柱状图bin的总和为255;该算法对亮度进行归一化处理,提高了图像的对比度。InputArray src:8位单通道的图像;直方图均衡化,用于提高图像的质量;(1) 计算原图像的直方图H;
2022-10-16 12:28:31
581
原创 【opencv-c++】cv::calcHist计算直方图
直方图是数值数据分布的图形表示。构建直方图的步骤如下:第1步是将值的范围分段,即将整个值的范围一般是0-255分成一系列间隔,第2步是计算每个间隔中有多少值。 这些值通常被指定为连续的,不重叠的变量间隔。 间隔必须相邻, 通常间隔大小也是相等的。图像直方图是一个统计特征,他它具有旋转、缩放、平移不变性,直方图被应用于灰度图像的阈值分割,对比度调整,颜色匹配等等。
2022-10-16 10:04:14
486
原创 【opencv-c++】cv::warpAffine仿射变换实现图像旋转和平移
cv::warpAffine实现仿射变换。仿射变换是二维坐标间的线性变换,包括“平直性”以及“平行性”,常用于图像旋转(Rotations)、平移(Translations)等。图像旋转(Rotations)的步骤分为两步:-1、根据旋转角度和旋转中心获取旋转矩阵;-2、根据旋转矩阵进行仿射变换,即可实现任意角度和任意中心的旋转效果。图像平移(Translations)的步骤也分为两步:-1、定义好图像的平移矩阵,分别指定x方向和y方向上的平移量tx和ty;-2、根据平移矩阵进行仿射变换。
2022-10-14 07:12:45
709
原创 【opencv-c++】cv::normalize图像像素归一化
当alpha为n,则按照alpha=1,计算出结果,然后乘以n。(norm_type类型为NORM_MINMAX除外)。把beta=0,则是规范值,beta非零则为规范范围,相当于bool(beta)是规范范围的句柄。注意:norm_type类型为NORM_MINMAX时,范围归一化使用的是如下式子,cv::normalize归一化数据。设数组中原有{A1,A2,A3…该函数分为范围归一化与数据值归一化。当AK等于max(Ai)时p=1;当AK等于min(Ai)时p=0;设范围为【0,255】
2022-10-13 06:40:01
618
原创 【opencv-c++】cv::Mat::convertTo图像像素类型转换
Vec3b—表示每一个Vec3b对象中,可以存储3个char(字符型)数据,比如可以用这样的对象,去存储RGB图像中的一个像素点。double是64位,对应的cv::Mat数据结构类型是:CV_64FC1,CV_64FC3,float是32位,对应的cv::Mat数据结构类型是:CV_32FC1,CV_32FC3。同理CV_32FC3、CV_64FC3保存到cv::Vec3f、cv::Vec3d;对应的数据类型有:CV_8UC1、CV_8UC3。CV_64FC3表示64位的3通道double型。
2022-10-13 00:20:48
1734
原创 【opencv-c++】鼠标事件
鼠标事件即鼠标的触发事件:当鼠标执行了特定条件的动作,其对应的回调函数会被执行。注意,回调函数由开发者编写,这个名字不一定是MouseCallback。使用鼠标左键按下、鼠标左键拖动、 鼠标移动的鼠标事件。鼠标事件是一个注册函数告诉编译器我们的回调函数。userdata :传递给回调函数的参数,可选。这里把鼠标事件中包含了回调函数。flags : 鼠标事件的标志。event : 鼠标事件。x :鼠标事件的x坐标。y :鼠标事件的y坐标。
2022-10-12 07:12:46
675
原创 【opencv-c++】cv::flip图像翻转
cv::flip()支持图像的翻转,包括上下翻转、左右翻转,以及上下、左右同时翻转。即围绕垂直、水平或两个轴翻转2D数组,flipCode代码0、1,-1: 0 --- 垂直方向翻转; 1----- 水平方向翻转; -1:水平、垂直方向同时翻转。
2022-10-09 13:01:28
733
原创 【opencv-c++】cv::resize图像缩放
注意,不考虑初始的dst类型或大小。fy:height方向的缩放比例,如果它是0,那么它就会按照(double)dsize.height/src.rows来计算;interpolation:这个是指定插值的方式,图像缩放之后,肯定像素要进行重新计算的,这个参数来指定重新计算像素的方式,fx:width方向的缩放比例,如果它是0,那么它就会按照(double)dsize.width/src.cols来计算;其中,fx和fy就是下面要说的两个参数,是图像width方向和height方向的缩放比例。
2022-10-09 07:26:34
741
原创 【opencv-c++】cv::drawContours图像轮廓绘制
cv::drawContours()将查找到的轮廓绘制到图像上,它可以绘制轮廓或者填充轮廓。第五个参数thickness为轮廓的线宽,如果为负值或CV_FILLED表示填充轮廓内部。第三个参数contourIdx指明画第几个轮廓,如果该参数为负值,则画全部轮廓。第七个参数hierarchy为轮廓结构信息,只有当你只想绘制一些轮廓时才需要它。绘制轮廓线或填充轮廓线。
2022-10-09 00:15:40
1358
原创 【opencv-c++】cv::findContours图像轮廓查找
在二值图像中查找轮廓。该函数使用算法从二值图像中检索轮廓。轮廓是形状分析和目标检测与识别的有效工具。注意:由于opencv 3.2 源图像没有被这个函数修改。参数image:源,一个8位的单通道图像。非零像素被视为1。零像素保持为0,因此图像被视为二值。您可以使用compare、inRange、threshold、adaptiveThreshold、Canny和其他方法从灰度或彩色图像中创建二值图像。如果mode等于RETR_CCOMP或RETR_FLOODFILL,则输入也可以是标签的32
2022-10-08 23:48:11
1246
原创 【opencv-c++】cv::RNG随机数生成器
关于随机数并不随机的说法:计算机产生的随机数都是伪随机数,是根据种子seed和特定算法计算出来的。RNG::uniform(a, b ) 返回一个[a,b)范围的均匀分布的随机数,如果要产生均值为λ,标准差为σ的随机数,可以λ+ RNG::gaussian( σ)RNG::gaussian( σ) 返回一个均值为0,标准差为σ的随机数。cv::RNG::uniform( ) 产生一个均匀分布的随机数。cv::RNG::gaussian( ) 产生一个高斯分布的随机数。
2022-10-08 21:04:45
903
原创 【opencv-c++】cv::circle圆形绘制
cv::circle绘制一个圆。circle函数绘制一个具有给定圆心和半径的简单圆或填充圆。参数说明:img:画圆的输入输出图像。center:圆的中心坐标。radius:圆的半径。color:线条的颜色。thickness:正数,表示组成圆的线条的粗细程度。否则,表示圆是否被填充,如FILLED。linetype:线条的类型。shift :圆心坐标点和半径值的小数点位数。
2022-10-07 22:55:23
1017
原创 【opencv-c++】cv::rectangle矩形绘制
绘制简单的、粗的或右上填充的矩形。矩形函数cv::rectangle绘制矩形轮廓或填充矩形,其对角分别为pt1和pt2。即函数 cvRectangle 通过对角线上的两个顶点绘制矩形。参数说明:img:输入输出的图像。pt1:矩形的一个顶点。pt2:矩形对角线上的另一个顶点。color:线条颜色 (RGB) 或亮度(灰度图像 )。thickness :组成矩形的线条的粗细程度。取负值时(如 CV_FILLED)函数绘制填充了色彩的矩形。 linetype:线条的类型。shift:坐标点
2022-10-07 22:32:08
1523
原创 【opencv-c++】cv::getTextSize获取文字的宽高大小
cv::getTextSize()接口先获取待绘制文本框的大小,以方便放置文本框。如果我们希望更精细的使用文字绘制函数,往往需要配合使用cv::getTextSize函数。函数cv::getTextSize计算并返回包含指定文本的框的大小。opencv中有一个特殊的绘制函数,即文字绘制函数。下面的示例代码,会展现文本以及围绕它的紧框和基线。计算文本字符串的宽度和高度。
2022-10-07 21:43:22
703
原创 【opencv-c++】cv::putText文字绘制
绘制文本字符串。函数cv::putText在图像中呈现指定的文本字符串。不能使用指定字体呈现的符号将被问号替换。
2022-10-06 23:52:54
1105
makeGif.rar
2021-06-06
pdf页码计数工具.rar
2021-05-31
yolov3_coco.pb
2021-02-03
2021.1.17 openvino_add.rar
2021-01-17
2021.1.15 打包编译openvino.rar
2021-01-16
Test_2021-01-14.rar
2021-01-15
2020-12-20 openvino.rar
2020-12-26
openvino_demo.rar
2020-12-14
2020.12.12_pyinstaller打包资源.rar
2020-12-12
PySide2设计的GUI界面
2020-12-09
2020_09_03__opencv_dnn__darknet_yolov3.rar
2020-09-10
2020.08.25.rar
2020-08-25
opencv_dnn_tensorflow.rar
2020-08-20
opencv_videoio_ffmpeg_64.rar
2020-08-19
python_script.rar
2020-07-24
opencv_contrib_python-4.2.0.34-cp37-cp37m-win_amd64.whl
2020-06-25
python3.8.3以及setuptools_pip.rar
2020-06-13
w_openvino_toolkit_p_2019.3.379.exe
2020-06-13
E02_A1_OpenVINO.rar
2020-06-13
dlib-19.19.0-cp37-cp37m-linux_aarch64.whl
2020-04-06
pyheif_win_amd64
2022-04-04
非jpg转化为jpg工具
2022-04-04
windows10程序将gif转化为png图片
2022-04-04
csdn_article_108128717.rar
2021-09-24
研究码流类型的图像.rar
2021-09-12
NVDEC_VideoDecoder_API_ProgGuide.pdf
2021-09-03
NVDEC_Application_Note.pdf
2021-09-01
windows的msvcrt.dll文件
2021-08-20
挖掘机数据集(1).rar
2021-08-04
Tool_delete_duplicate_file.exe
2021-07-19
video_produce.rar
2021-07-01
txt_of_picDirs.rar
2021-06-27
xml2darknetYolov3txt.rar
2021-06-27
xml_classNum.rar
2021-06-27
batch_rename.rar
2021-06-22
20210620.rar
2021-06-20
video_parse.rar
2021-06-13
make_ico.rar
2021-06-13
IDE_fellow.rar
2021-06-10
test_xml.rar
2021-06-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人