- 博客(45)
- 收藏
- 关注
原创 [闲聊篇] 一年来的经历闲叙
[闲聊篇] 一年来的经历闲叙胡言乱语胡言乱语我的2021-2022赛季经历了读研以来最多的加班赶项目,所以从去年暑假的后期就没什么精力多写博客了;经历了现在回想起来还算可以的秋招(对于我这种可能还算有项目经验的双非工学硕士,可能在今年的秋招中会很难受吧,看实验室的师弟师妹们都不太顺利);从研究生学校所在的城市,回到了本科学校所在的城市,结束了异地的旅程(愿我实验室的同门们一切都好,我太想念我的球友兄弟了)幸好没有丢下那些我爱和爱我的人。现在的工作和生活我都很满意。这一年没有更新的时间里,其实自
2022-10-22 11:35:19
392
2
原创 设计模式系列(大话设计模式c++版)——建造者模式
设计模式系列(大话设计模式c++版)——建造者模式模式定义模式特点模式实现模式定义建造者模式:将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示。即将一个产品的内部表象与产品的生成过程分隔开来,用户就只需指定需要建造的类型就可以得到它们,而具体建造的过程和细节就不需知道了。其区别于外观模式的地方在于,外观模式不涉及继承和多态,更多的是对封装思想的运用,而且更精髓的地方在于对于多个接口而非具体类的封装(可能平时代码不是过于复杂的情况下更多的使用是对具体类的封装)模式特点建造者
2021-07-16 22:18:28
226
原创 设计模式系列(大话设计模式c++版)——观察者模式
设计模式系列(大话设计模式c++版)——观察者模式模式定义模式特点模式实现模式定义让我们来看看《大话设计模式》这本书中对于观察者模式的定义:其又叫发布—订阅模式,定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,当这个主题对象在状态发生变化时,会通知所有的观察者对象,是他们可以随之自动更新自己的状态。其组成大概分为至少4个部分:观察者接口、发布者接口、一般是1个发布者、不止一个的观察者模式特点将一个系统分割成一系列相互协作的类,同时又需要维护类间的一致性,观察者模式可以避免各类
2021-07-16 17:24:38
391
2
原创 LeetCode刷题篇—206.反转链表
LeetCode刷题篇—206.反转链表题目思路求解方法题目反转一个单链表。思路最近因为很多链表里的问题都涉及到了递归的方法,所以又重新深入思考了一些递归的问题,今天这道题分享迭代和递归两种思路。在链表类型的题目当中,经常用到的一个小技巧就是创建一个dummy节点,和一个记录head节点的cur节点。一、迭代法(1)原本的顺序是1->2->3,初始dummy节点为NULL,即(dummy,1->2->3)*cur = head记录头节点,指向1。当cur节点不为N
2021-03-27 22:24:04
173
原创 LeetCode刷题篇—27.移除元素
LeetCode刷题篇—27.移除元素题目思路求解方法题目给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。思路一、一次遍历法题目要求输出的是更新后的数组长度,而且可以修改输入数组,那么可以考虑将所有数值等于val的元素全部移到数组尾端,然后输出前部分的长度。(1)定义新的变量n等于数组
2021-03-21 17:13:58
128
原创 LeetCode刷题篇—20.有效的括号
LeetCode刷题篇—20.有效的括号题目思路求解方法题目给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。思路这是一道典型的用到栈这种数据结构的题目,当然除了只用栈之外还可以选择栈和哈希表结合的求解,下面将逐一介绍:一、单纯使用栈(几种思路细节略有不同)整体思路是将字符串中先遇到的括号入栈,当后面的括号与栈顶的括号匹配的时候,出栈,如果最后栈为空,说明全部
2021-03-21 16:39:09
159
原创 LeetCode刷题篇—496.下一个更大的元素(一)
LeetCode刷题篇—496.下一个更大的元素(一)题目思路求解方法题目给你两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。请你找出 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出 -1 。思路1、辅助栈根据之前一题所讲的辅助栈的思想,通常是除了所有元素所在栈之外,另开辟新的栈存储一些变量。对于本
2021-03-08 22:10:25
123
原创 LeetCode刷题篇—155.最小栈
LeetCode刷题篇—155.最小栈题目思路求解方法题目设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。思路此题意为随时找到栈中的最小元素,栈是一种先入后出的数据结构,只能访问到栈的栈顶元素,所以无法像数组或链表一样随意遍历访问到最小元素。所以此时在这到题中采用辅助栈的方法,用另外的一个栈存储记录每
2021-03-08 21:13:06
163
原创 Qt Creator添加第三方头文件和类库(经验篇)
Qt Creator添加第三方头文件和类库在Qt Creator的项目中添加头文件和库最近的项目用到工业线阵相机,需要利用沟通相机,开发出独立的成像软件,所以才有了对于qt中添加sdk中的一些类库的需求在Qt Creator的项目中添加头文件和库在Qt工程中,通过.pro文件对链接库进行管理,就像VS中的包含目录、库目录一样,对于其他第三方库的添加,本质上与调用opencv库是一致的。1、添加额外需要的头文件目录类似添加opencv中的include路径INCLUDEPATH += C:\ope
2021-03-07 10:50:36
9929
1
原创 LeetCode刷题篇—121.股票问题
LeetCode刷题篇—169.多数元素题目思路求解方法题目给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。思路将题目进行翻译即——需要找出给定数组中两个数字之间的最大差值(即,最大利润)。此外,第二个数字(卖出价格)必须大于第一个数字(买入价格)
2021-03-02 21:02:12
297
原创 LeetCode刷题篇—169.多数元素
LeetCode刷题篇—169.多数元素题目思路求解方法题目给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。思路1、投票法投票法的大致思路是,假定数组首元素为多数元素,然后和它相同,则计数count++,否则count–,若计数count-1=0,则说明之前的相同元素数量和不同元素数量相等,则认为下一个元素为数组中的多数元素举例[1,2,3,3,3,3,2](1)默认多数元素
2021-03-02 20:44:43
100
原创 LeetCode刷题篇—283.移动零
LeetCode刷题篇—283.移动零题目思路求解方法题目给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。思路1、暴力法题目要求将所有0元素移动到数组末尾,即可以理解为将非零的元素移动到数组前面,所有非零元素移动完后,将剩余元素置0即可。举例:[1,2,0,3](1)第一个元素非零,将其置于本位;(2)第二个元素非零,将其置于本位;(3)第三个元素为零,跳过;(4)第四个元素非零,将其置于第三位;[1,2,3,3](5)遍历完,将第三位之
2021-03-02 16:35:29
195
原创 LeetCode刷题篇—53.最大子序和
LeetCode刷题篇—53.最大子序和题目思路求解方法题目给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。思路本题的思路有暴力法和分治法两种,首先介绍暴力法求解。1、暴力法根据第一题的启发,我首先想到(1)先设定初始sum值为0,再新开辟一个vector数组arr用于存放和值;(2)双层循环遍历数组,外层 i 从0到数组最后一个元素,将nums[i]即这个数本身给到sum,再将sum放入arr中;(3)内层循环 j 从 i+1 开始
2021-02-22 23:19:33
258
原创 QT5 输出中文乱码+常量中有换行符(经验篇)
QT5 输出中文乱码+常量中有换行符输出中文乱码常量中有换行符输出中文乱码在文件前加入下面这条语句:#pragma execution_character_set("utf-8")如图:常量中有换行符主要是由于万恶的编码格式导致的,记得在修改完之后,构建->清理项目->执行qmake->运行,否则很可能不起作用!!!...
2021-01-13 21:43:46
672
原创 数据结构基础——链表(学习篇)
数据结构基础——链表创建链表插入原理代码实现本次总结学习的内容是链表的构造,插入,遍历,删除,反转这些操作,首先学习的是链表的构造、插入、遍历、下面是实现它们的具体函数:创建链表首先是创建一个链表,在创建链表前线创建链表的元素,也就是链表的结点data记录结点的数据,next指针用来指向下一结点;_data作为一个常量初始化data。接下来就是定义链表类定义头指针,并在构造函数里初始化让他指向空,然后是析构函数,在析构函数里我们要删除整个链表,思路就是循环遍历每个结点,然后依次删除。cur
2020-11-11 17:39:54
293
原创 opencv基础入门大总结(一)(学习篇)
opencv基础入门总结(一)(一)opencv读取显示图片(二)基础色彩空间转换(三)图像对象的创建与赋值(四)图像像素的读写操作(五)图像像素的算术操作(六)键盘响应操作(一)opencv读取显示图片这个吧,真的就算是opencv中的hello world了,基本上都知道是imread()这个函数,但是这个函数中的参数,在不同情况下的使用,还是略有讲究的,需要大家在学习的时候有所注意。如果你只需要读入一张“常规的”图片(比如3通道8位,或是3通道24位,又或是一张灰度图),其实直接在“”中写入绝对
2020-11-02 10:13:18
2233
原创 Qt QString字符串截取
Qt QString字符串截取利用Qt,结合一些图像处理,做软件的时候,做基础的首先是读一个图片进来,经常需要用字符串存一下所读图片的路径,或者名称。所以经常会利用到字符串的截取,可以从整串路径中得到图片名。以下就介绍两个截取字符串的函数:mid()函数和section()函数mid()函数接受两个参数,第一个是起始位置,第二个是取串的长度。如果省略第二个参数。fileName = QFileDialog::getOpenFileName(this,tr("Open Image"),filePat
2020-10-19 19:37:46
15460
原创 基础gdb调试(学习篇)
基础gdb调试在学习C语言的过程中,你一定多多少少遇到过一些程序写错没能及时发现的情况。如果你没有过度的依赖IDE,你可能已经自己探索出了在程序中通过输出一些中间值的方式对程序进行调试。在这里,需要重新学习一个叫gdb的工具,它可以更方便地帮助你进行调试,让你“看见”程序在做什么,从而在过程中将一些不符合你预期的部分暴露出来。通过gdb我们可以看见变量值的变化、决定程序什么时候继续执行下一步或是发现奇怪的内存访问行为。要充分的利用gdb帮助我们找到程序编写时候的问题,我们需要在编译时使用-g作为一个编
2020-10-15 11:26:46
198
原创 Qt5 opencv4 无法解析的外部符号问题(经验篇)
Qt5 opencv4 无法解析的外部符号问题这两天在做一个简单的打开本地图片的小功能的时候,在cvtColor的地方,总出现烦人的“无法解析的外部符号问题”,如下图:首先尝试了 清理项目重新构建的方式,但始终得不到解决,因为我的opencv版本从3.1换成了4.2,所以开始考虑是不是版本升级对于cvtColor函数本身使用带来了变化,再去查阅了解了函数本身之后,做如下改变:修改之后再重新清理项目,执行qmake,再次运行,得以解决问题!...
2020-10-15 10:44:21
1354
原创 0921每日一练——C++ 摩斯电码转换(学习篇)
设计一段程序,实现莫尔斯电码的转换如输入:123,打印出转换后的结果为.----…—…—答:其实逻辑上不是很复杂,但是涉及到很多字符串的细节操作问题,应用了之前讲到的memset函数,strcpy_s函数等,还学习应用了一些之前学到的c++中关于容器的知识,令我对这块的应用有了进一步的了解。具体实现代码如下://#include "stdafx.h"#include<iostream>#include<vector>#include<string>#i
2020-09-21 20:25:34
2604
1
原创 0907每日一练
0907每日一练某商店双11做活动,放出了N个特价商品,每个商品的价格为一个数字,排成一行,并制定了一条规则,相邻的特价商品只能买一个,请问,在满足这条购物规则的情况下,你购物的最大花销是多少钱某商店双11做活动,放出了N个特价商品,每个商品的价格为一个数字,排成一行,并制定了一条规则,相邻的特价商品只能买一个,请问,在满足这条购物规则的情况下,你购物的最大花销是多少钱如:输入: 4 11 13 3 1输出: 18 (4+13+1)答:看到问题的时候,我首先想到的是,把这些商品价格放入一个数组,
2020-09-09 18:49:12
728
原创 0905每日一练
0905每日一练strncpy strcpy memcpy strnprintf strlen 等字符串函数的用法和区别strncpy strcpy memcpy strnprintf strlen 等字符串函数的用法和区别答:(1) strncpy函数:strncpy 是C语言的库函数之一,来自 C语言标准库,定义于string.h,声明:char *strncpy(char *dest, const char *src, size_t n)参数:dest – 指向用于存储复制内容的目标数
2020-09-09 18:46:03
137
原创 0904每日一练
每日一练一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6 = 1 + 2 + 3。找出1000以内的所有完数?拆解问题:1、要知道一个数的因子都有哪些2、因子求和3、和与原数比较 是否相等解决问题:1、取余、循环2、循环中拿出因子叠加3、把加完的和与原数 判断遇到的问题:在双层循环中各种输出逻辑,拿到输出值之后思考为什么会这么输出,为什么没有得到想要的值,反复琢磨实现逻辑代码:#include<iostream>using namespace std;
2020-09-04 17:13:38
86
原创 VS2015 ‘localtime’ :this function or variable may be unsafe
VS2015 ‘localtime’ :this function or variable may be unsafe问题解决问题问题原因:C语言的标准函数中,一些读取或写入内存的函数存在内存越界的问题,从而使得内存数据变得不安全。如scanf、gets、strcat等函数都存在着这样的问题。为了避免这个问题,在VS2015中,另外提供了如scanf_s,get_s,strcat_s等相关的改进函数,来替代原来的标准函数的功能,并通过添加内存读取范围的限制来解决不安全的问题。在实际的应用中,也许
2020-09-01 21:08:39
888
原创 【opencv】imwrite使用小问题
【opencv】imwrite使用小问题问题描述解决办法问题描述一个很简单的程序在想要保存过程种的输出图像时出现错误解决办法出现这种错误的原因大部分是因为要保存的图片没有加后缀好吧,果然我还是粗心的,加上“.jpg”之类的图片后缀就OK了...
2020-08-27 16:47:17
210
原创 0825每日一练
0825每日一练1. main函数的参数和返回值有什么意义?2. 调用main函数之前发生了什么?1. main函数的参数和返回值有什么意义?答:main函数的返回值用于说明程序的退出状态。如果返回0,则代表程序正常退出。返回其它数字的含义则由系统决定。通常,返回非零代表程序异常退出。经常使用的void main( )其实是错误的。C/C++ 中从来没有定义过void main( ) 。C++ 之父 Bjarne Stroustrup 在他的主页上的 FAQ 中明确地写着 “The definiti
2020-08-25 21:42:03
100
原创 0824每日一练分享
typedef struct bb{int id; double weight; float height;}BB;typedef struct aa{char name[2]; int id;short score; short grade;BB b; }AA;这两个结构体 分别占用多大的内存,为什么?答:一开始单纯的以为是4+8+4,后来在查阅资料之后发现并不是这么回事,计算结构体大小时需要考虑其内存布局,结构体...
2020-08-24 22:19:52
95
原创 0822每日一练分享
0822每日一练分享1. 谈谈结构体和数组的相似点和区别2.执行下面代码后,数组里存放的值是什么1. 谈谈结构体和数组的相似点和区别答:数组是相同数据类型的元素按一定顺序排列而成的集合,是一种顺序表结构体。在C语言中,数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。数组又可分为数值数组、字符数组、指针数组、结构体数组等各种类别。结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。结构体在函数中的作用最主要的就是封装。数组和结构体相似的地方是
2020-08-23 20:40:36
144
原创 【opencv】角点检测——虚线表格
【opencv】角点检测——虚线表格处理对象——虚线表格处理方法——角点检测Harris角点检测函数解读处理结果处理对象——虚线表格把之前做研电赛的东西做一点小的分享,先给大家看一下所处理的对象。可以看到我们所面对的表格具有特殊性和复杂性,表格线为虚线,且存在错位情况。在这种情况下想要准确检测出表格区域,并不是容易的事。我们需要对这种原始图像做较多的预处理,以达到去掉文字干扰的目的,下次的博客可以再对这块进行一个细致的说明。我制作了一张预处理之后的图片来做算法测试。处理方法——角点检测角点检
2020-08-23 11:32:05
1080
1
原创 树莓派python3+opencv调用usb摄像头显示并保存
树莓派python3+opencv调用usb摄像头显示并保存直接上代码运行指令运行结果直接上代码camera.pyimport cv2import numpy as npname = 0cap = cv2.VideoCapture(0) cap.set(3,640)cap.set(4,480) ret, frame = cap.read()rows, cols, channels = frame.shapeprint(cols, rows, channels)while(1):
2020-07-15 22:37:16
2952
2
原创 python 将PDF文档转成png图片格式
python 将PDF文档转成png图片格式做个转载,亲测好用,也可以改成jpg格式做个转载,亲测好用,也可以改成jpg格式https://blog.csdn.net/qq_43145035/article/details/83270501
2020-07-15 22:29:02
645
原创 树莓派3B+ pyqt和opencv-python配置
树莓派3B+ pyqt和opencv-python配置换源!!!安装pyqt5安装opencv-python太惨了,上次opencv配置好之后,不知道为什么拷了个程序然后系统进不去了,所以只好重新装个镜像然后重新配置,太惨惨惨了,足足斗争了一天换源!!!换源虽说是第一步,但却是一个足以确定你后面所有步骤成败的关键,换源换好了,你就成功了一半!!!换源需要注意自己的系统镜像是哪个版本的!!!树莓派的镜像源Debian系统分好几种(取自https://zhuanlan.zhihu.com/p/137
2020-07-09 00:00:21
416
原创 树莓派3更新更换国内源
转载:https://blog.csdn.net/weixin_43336281/article/details/97373288亲测有效,请君跳转
2020-06-30 20:32:09
289
原创 C++调用tensorflow模型捕捉摄像头采集图像做物体检测-opencv4.2.0
C++调用tensorflow模型捕捉摄像头采集图像做物体检测-opencv4.2.0你需要拥有的基础主要操作流程遇到的问题你需要拥有的基础你需要拥有一个编译过的不低于3.3版本的opencv,一定要保证有opencv_contrib-4.2.0这个库,这是我编译好的opencv4.2.0的文件夹如果你的版本低于3.3,而你又不想重新换一个新的版本,那你就需要重新对contrib库进行编译,网上有各种不同版本的编译教程(但我觉得都挺蛮烦的,懒人一个了。。。所以还是找个高版本的吧)另外我的是win1
2020-06-23 16:57:27
781
原创 创建虚拟机并安装Ubuntu系统
创建虚拟机并安装Ubuntu系统微信公众号:软件安装管家 最近不能用了,找到以前一篇安装教程做个记录,以备后用。Ubuntu 18.0/64位下载地址:pan.baidu.com/s/11nR-Fwv22T_qP39u24TjKA提取码: fv6h1.选中【ubuntu】压缩包,鼠标右击选择【解压到ubuntu】。2.双击打开【ubuntu】文件夹。3.选中【VMware-workstation-full-14.0.0.24051】鼠标右击选择【以管理员身份运行】。4.需要等待一下。
2020-06-10 19:58:05
503
原创 SQlite数据库基础之“增删改查”
SQlite数据库基础之“增删改查”增删改查创建一个表:CRREATE TABLE stu(id Integer,name char,score Integer);系统命令:以’.'开头的命令.help 帮助.quit 退出.exit 退出.schema 查看表的结构图增命令行:insert into stu values(1001,“zhangsan”,80);insert into stu (id,name)values(1003,“lisi”);删命令行:delete f
2020-06-07 22:44:31
196
原创 Qt制作学生管理系统软件
Qt制作学生管理系统软件构建思路布局界面链接数据库(sqlite)在tableView上对数据表内容做显示可视化数据库操作(增删改查)众所周知,B站才是正经学习网站,感谢B站上的教学视频,如果想学习Qt的朋友,送上链接:https://www.bilibili.com/video/BV1XW411x7NU?p=74构建思路制作简单的学生管理软件,需要用到一个登录界面和连接数据库的相关知识,正好作为学习Qt的一个联系小题目。一些很基础的操作我就不再细说了布局界面界面1:学生登录界面,需要用到的有
2020-06-01 21:09:21
8013
5
原创 Windows 10配置tesseract—OCR
参考博文:https://blog.csdn.net/qq_43576028/article/details/102907170 亲测有效!然后附上可以识别中文和数字的包https://pan.baidu.com/s/1gWXsu9obIMK_pSFOn0hjNg提取码:papq
2020-05-30 11:18:22
578
原创 Qt制作界面添加菜单栏
Qt制作界面添加菜单栏新建一个不带ui界面的工程文件添加相应的头文件编写基础代码实现功能遇到的问题主要讲解connect()函数信号与槽函数链接的使用新建一个不带ui界面的工程文件(你也可以选择带界面,情况是类似的)只需要把这个对勾去掉就可以了,然后基类选择MainWindow,PC端软件常用MainWindow。完成之后你的工程文件夹应该是这样的添加相应的头文件之后再在.pro文件中添加 CONFIG += console编写基础代码编辑好之后可以实现的效果如下:实现功能
2020-05-25 10:48:40
2613
1
原创 使用VGG16-SSD模型训练自己的数据集做识别
使用VGG16-SSD模型训练自己的数据集做识别建立自己的数据集对网络进行调整和修改参数适应自己的需要遇到的问题:首先是感谢B站UP住对SSD的讲解,虽然听一遍确实不太懂,但是多听多看总会越来越懂。贴出UP主的博客和源码供大家学习。顺便说我也是在这个源码上修改训练的源码地址:https://github.com/bubbliiiing/ssd-keras博客地址:https://blog.csdn.net/weixin_44791964/article/details/104107271建立自己的数
2020-05-21 11:06:51
3136
9
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人