- 博客(59)
- 收藏
- 关注
原创 Opencv4 c++ 自用笔记 05 形态学操作
图像形态学主要获取物体的形状与位置信息。利用具有一定形态的结构元素度量和提取图像中的对应形状,达到对图像分析和识别的目的。操作主要包括腐蚀、膨胀、开运算和闭运算。
2025-06-03 10:07:14
420
原创 Opencv4 c++ 自用笔记 04 图像滤波与边缘检测
本文介绍了图像处理中的滤波与边缘检测技术。主要内容包括: 图像滤波方法:线性滤波(均值、方框、高斯滤波)和非线性滤波(中值、双边滤波),用于去除噪声和突出特征; 边缘检测算子:Sobel、Scharr、Laplacian和性能优良的Canny算法,可识别图像中的边缘信息; 卷积原理:通过卷积核滑动检测局部特征,具有参数共享和位移不变性优势; OpenCV实现:提供了各算法的函数接口及参数说明,如filter2D、blur、Sobel等。 这些技术是图像预处理和特征提取的基础,在计算机视觉中有广泛应用。
2025-06-03 05:55:40
667
原创 Opencv4 c++ 自用笔记 03 滑动条、相机与视频操作
上述代码中实现了利用滑动条调整二值化图像中的阈值,核心在于callback函数对图像的更新。只能读取静态图像,若要读取视频文件或摄像头流,需要使用。等,-1为自动采用合适的编解码器。为当前滑动位置,可用全局变量或。:输出文件路径及名称(带后缀):滑动条的当前值(整型指针):用户自定义数据指针(可选):回调函数,每次滑动时调用。:视频分辨率(宽, 高)
2025-05-30 20:06:53
812
原创 Opencv4 c++ 自用笔记 02 图像操作
threshold中只有一个全局全阈值,会受到阴影与光照的影响。在adaptiveThreshold()中提供了两种局部自适应阈值的二值化方法。这个函数会将灰度图像转化为二值图像,通过均值法或高斯法自适应计算邻域内的阈值,随后再进行二值化。OpenCV 中常见的颜色空间包括:BGR、RGB、GRAY、YUV、HSV、Lab 等。二值图像中只有两个值,即原图像中的灰度最大值与最小值。在threshold()中,原图像只能是CV_8U或CV_32F。操作数(及结果)的尺寸、通道数和数据类型必须一致。
2025-05-30 05:30:20
471
原创 Opencv4 c++ 自用笔记 01 Mat类
Scalar中的变量个数要与通道数相等,否则不会被读取或填充为0。利用已有的Mat进行构造,m为已构造好的Mat类型数据。运算中要求矩阵类型相同,并且常数与矩阵运算时保留矩阵类型。(单通道为灰度图像,3通道或4通道为彩色图像)中包含矩阵形状、存储方法、地址、引用次数等。Mat类间赋值仅复制了矩阵头和矩阵指针,uchar 和 CV_8U 虽然都表示。Mat类用来保存矩阵类型的数据,包括。利用矩阵尺寸和数据类型构造。利用Size结构构造。指向存储的矩阵数据。整个矩阵(浅拷贝)。构造已有Mat的子类。
2025-05-29 01:20:43
278
原创 LeetCode100.8 无重复字符的最长子串
对于这题,有一个朴素的思路:双指针遍历一遍原字符串,利用哈希表统计其中的字符是否出现,若右指针所指的字符与左指针相同,则删除左指针所指字符。在此过程中更新最大长度。
2025-05-29 00:59:16
225
原创 LeetCode100.7 接雨水
首先计算每一个高度的体积,相加即为总体积,减去sum(height)即为水的体积。对于这题,有一个非常直观简洁的思路:水量等于柱子围成的体积减去柱子的体积。
2025-05-14 14:29:00
253
原创 LeetCode100.6 三数之和
对于这题,要直接三层循环的话复杂度太高,可以尝试排序后找到能与最大两个数相加为0的数,随后以此为起点进行双指针。这样复杂度就降为了O(n3)
2025-05-14 13:28:47
178
原创 LeetCode100.5 盛最多水的容器
那么使用双指针,在每次移动时,只移动其中最短的那个,因为若移动最长的那个,体积不会变大。对于这题,首先明确的是:盛水的体积取决于两垂线间的距离与两垂线中最短的长度。
2025-05-14 12:59:38
268
原创 LeetCode100.3 最长连续序列
注意,需对哈希表循环,而非原数组,否则会超时。原因是unordered_set是按照一定的bucket顺序排列的,对nums遍历会破坏这样的顺序,造成访问内存不连续。同时如果nums中有重复元素,那么会造成重复判断,存入unordered_set也是一个去重的过程。将原vector转化为unordered_set,遍历这个哈希表,如果某个数-1可以在表中被找到,说明这个数不是起点,直到找到可以作为连续串起点的数,再以这个数为起点计算长度。如此循环一遍,即可得出答案。要怎样不排序定位一段连续串呢?
2025-05-14 02:23:35
160
原创 LeetCode100.2 字母异位词分组
观察题目,需要把strs中的元素按照字母进行归类,一个朴素的思路是:遍历strs,对每个元素排序后插入哈希表中,随后再遍历一遍表将其转化为vector<vector<string>>。
2025-05-14 01:55:06
245
原创 LeetCode100.1 两数之和
今天晚上看了许多关于未来计算机就业的视频,有种正被贩卖焦虑的感觉,翻来覆去下决定先做一遍leetcode100给自己降降温,打算每周做四题,尽量尝试不同的方法与不同的语言。时间复杂度为O(n²),对于算法来说还是偏高了。回顾过程,最耗时间且最可能被优化的貌似是寻找值为target-nums[i]的循环,故使用哈希表。发现对于java的Map用法还是不够熟悉,得找时间再复习一下javase了。一开始想到的是暴力解法,两层循环。数据量为1e4,所以肯定能过。
2025-05-14 01:36:30
208
原创 Day01 配置Clion与CubeMX开发环境
此时界面下方会提示“缺失配置文件”,我们回到根目录新建config文件夹,根据你使用的仿真器类型,在config下新建一个.cfg配置文件。按下板子上的复位,led就会开始闪烁,我们的代码已经在开发板上运行了。安装好Clion与CubeMX后,安装openOCD与arm-none-eabi-gcc,并录入系统变量。创建前可能会需要openOCD的目录,将openOCD安装目录下的bin/openocd填入即可。准备好我们的开发板与stlink,用杜邦线将其正确连接后,将stlink与电脑连接。
2025-04-27 15:55:29
444
原创 Ubuntu22.04下启动labelme时解决“qt.qpa.plugin: Could not load the Qt platform plugin “xcb“”错误的尝试
结果依然启动失败,此时再分析报错路径,疑似是与opencv的qt库绑定了,故卸载了opencv-python。
2025-04-21 21:22:47
178
1
原创 P3420 [POI 2005] SKA-Piggy Banks
现在已知每个钥匙所在的存钱罐,Byteazar 想要买一辆小汽车,而且需要打开所有的存钱罐。然而,他想要破坏尽量少的存钱罐,帮助 Byteazar 去决策最少要破坏多少存钱罐。第一行包括一个整数 N (1≤N≤1000000),表示 Byteazar the Dragon 拥有的存钱罐的数量。接下来有 N 行:第 i+1 行包括一个整数 x,表示第 i 个存钱罐对应的钥匙放置在了第 x 个存钱罐中。仅一行:包括一个整数,表示能打开所有存钱罐的情况下,需要破坏的存钱罐的最少数量。
2025-04-20 02:30:55
249
原创 2024 CAIP 省赛本科组 RC-u4 章鱼图的判断
对于无向图 G=(V,E),我们将有且只有一个环的、大于 2 个顶点的无向连通图称之为,因为其形状像是一个环(身体)带着若干个树(触手),故得名。给定一个无向图,请你判断是不是只有一个章鱼子图存在。
2025-04-17 02:40:43
209
原创 2024 CAIP 省赛本科组 RC-u5 工作安排
小 K 有 N 项工作等待完成,第 i 项工作需要花 ti 单位时间,必须在 di 时刻或之前完成,报酬为 pi。假设小 K 工作时刻从 0 开始,且同一时刻只能做一项工作、工作一旦开始则不可中断或切换至其他工作,请你帮小 K 规划一下如何选择合适的工作,使小 K 可以获得最多的报酬。
2025-04-17 02:21:25
254
原创 P3367 【模板】并查集
当 Zi=2 时,输出 Xi 与 Yi 是否在同一集合内,是的输出。对于每一个 Zi=2 的操作,都有一行输出,每行包含一个大写字母,为。第一行包含两个整数 N,M ,表示共有 N 个元素和 M 个操作。接下来 M 行,每行包含三个整数 Zi,Xi,Yi。当 Zi=1 时,将 Xi 与 Yi 所在的集合合并。如题,现在有一个并查集,你需要完成合并和查询操作。本题为模板题,只需要实现并查集的主要功能即可。数据范围较大,需加入路径压缩。
2025-03-22 10:06:35
220
原创 P1629 邮递员送信
有一个邮递员要送东西,邮局在节点 1。他总共要送 n−1 样东西,其目的地分别是节点 2 到节点 n。由于这个城市的交通比较繁忙,因此所有的道路都是单行的,共有 m 条道路。对于这题,由于每次运送完物品后需返回邮局,可以将其看作为求从节点1到其他节点的最短路径与从其他节点到节点1的最短路径的和。第二行到第 (m+1) 行,每行三个整数,u,v,w,表示从 u 到 v 有一条通过时间为 w 的道路。第一行包括两个整数,n 和 m,表示城市的节点数量和道路数量。输出仅一行,包含一个整数,为最少需要的时间。
2025-03-21 02:07:37
372
原创 P9242 [蓝桥杯 2023 省 B] 接龙数列
对于一个长度为 K 的整数数列:A1,A2,…,AK,我们称之为接龙数列当且仅当 Ai 的首位数字恰好等于 Ai−1 的末位数字(2≤i≤K)。例如 12,23,35,56,61,11 是接龙数列;12,23,34,56 不是接龙数列,因为 56 的首位数字不等于 34 的末位数字。所有长度为 1 的整数数列都是接龙数列。现在给定一个长度为 N 的数列 A1,A2,…,AN,请你计算最少从中删除多少 个数,可以使剩下的序列是接龙序列?
2025-03-06 15:29:33
338
2
原创 P9240 [蓝桥杯 2023 省 B] 冶炼金属
这个炉子有一个称作转换率的属性 V,V 是一个正整数,这意味着消耗 V 个普通金属 O 恰好可以冶炼出一个特殊金属 X,当普通金属 O 的数目不足 V 时,无法继续冶炼。现在给出了 N 条冶炼记录,每条记录中包含两个整数 A 和 B,这表示本次投入了 A 个普通金属 O,最终冶炼出了 B 个特殊金属 X。根据这 N 条冶炼记录,请你推测出转换率 V 的最小值和最大值分别可能是多少,题目保证评测数据不存在无解的情况。注意到,对于每一个记录中的V,最大值为O/X,而最小值为O/(X+1)
2025-03-06 15:04:13
285
原创 P6427 [COCI 2008/2009 #1] PTICE
然而,他们并不知道所有的申请者都必须通过加入俱乐部的考试。不幸的是,他们不能区分各种鸟类,所以他们试图猜测正确的答案。对于这题,通过观察每个人的答案规律,可以用0、1、2表示A、B、C,用余数表示各人的答案。从第二行开始,输出答对题目数最多的人的名字(每行一个,按照字典序输出)写一个程序,根据给出的正确答案,确定三个人中谁对的题目最多。第一行输出一个整数 m,表示三个人中做对题目最多的数量。第一行一个整数 n,表示考试的题目数量。第二行一个长度为 n 的字符串(只包含。三种字符),表示考试的正确答案。
2025-03-05 21:13:32
282
原创 P10265 [GESP样题 七级] 迷宫统计
在神秘的幻想⼤陆中,存在着 n 个古老而神奇的迷宫,迷宫编号从 1 到 n。有的迷宫之间可以直接往返,有的可以⾛到别的迷宫,但是不能⾛回来。现在,他需要你帮助他统计:有多少迷宫可以直接到达 m 号迷宫,m 号迷宫可以直接到达其他的迷宫有多少,并求出他们的和。对于第 i 行第 j 列的整数,1 表示能从 i 号迷宫直接到达 j 号迷宫,0 表示不能直接到达。一行输出空格分隔的三个整数,分别表示迷宫 m 可以直接到达其他的迷宫有多少个,有多少迷宫可以直接到达 m 号迷宫,这些迷宫的总和。
2025-03-01 22:10:08
252
原创 pytorch与深度学习随记——AlexNet
尽管AlexNet架构已经相对较久远,但其在AI教育等方面仍有重要意义。AlexNet架构的创新点。pytorch代码实现。AlexNet历史意义。
2025-03-01 22:07:39
487
原创 Pytorch构建LeNet进行MNIST识别 #自用
LeNet是一种经典的卷积神经网络(CNN)结构,由Yann LeCun等人在1998年提出,主要用于手写数字识别(如MNIST数据集)。作为最早的实用化卷积神经网络,LeNet为现代深度学习模型奠定了基础,其设计思想至今仍被广泛采用。LeNet验证了CNN在图像任务中的有效性,启发了后续模型(如AlexNet、VGG)。尽管现代网络更复杂,但其“卷积-池化-全连接”的基础架构仍源于LeNet。输入为32x32像素的灰度图像(如手写数字扫描图),经过归一化处理。
2025-03-01 18:37:06
598
原创 P8787 [蓝桥杯 2022 省 B] 砍竹子
魔法可以对连续的一段相同高度的竹子使用,假设这一段竹子的高度为 H,那么使用一次魔法可以把这一段竹子的高度都变为 ⌊\sqrt⌊2H⌋+1⌋, 其中 ⌊x⌋ 表示对 x 向下取整。小明想知道他最少使用多少次魔法可以让所有的竹子的高度都变为 1。对于这题,我们可以尝试将处理较麻烦的操作次数提前存储好,随后对于每个可能的操作次数进行遍历,寻找其中的可操作竹段。这天,小明在砍竹子,他面前有 n 棵竹子排成一排,一开始第 i 棵竹子的高度为 hi.第一行为一个正整数 n,表示竹子的棵数。
2025-03-01 18:24:42
314
原创 P1038 [NOIP 2003 提高组] 神经网络
接下来 n 行,每行 2 个整数,第 i+1 行是神经元 i 最初状态和其阈值(Ui),非输入层的神经元开始时状态必然为 0。输出文件包含若干行,每行有 2 个整数,分别对应一个神经元的编号,及其最后的状态,2 个整数间以空格分隔。现在,给定一个神经网络,及当前输入层神经元的状态(Ci),要求你的程序运算出最后网络输出层的状态。图中,X1∼X3 是信息输入渠道,Y1∼Y2 是信息输出渠道,Ci 表示神经元目前的状态,Ui 是阈值,可视为神经元的一个内在参数。神经元(编号为 i)
2025-02-24 22:21:02
441
原创 P1363 幻象迷宫
幻象迷宫可以认为是无限大的,不过它由若干个 N×M 的矩阵重复组成。有的地方是墙,用 # 表示。LHX 和 WD 所在的位置用 S 表示。也就是对于迷宫中的一个点(x,y),如果 (xmodn,ymodm) 是 . 或者 S,那么这个地方是道路;如果 (xmodn,ymodm) 是#,那么这个地方是墙。请你告诉 LHX 和 WD,它们能否走出幻象迷宫(如果它们能走到距离起点无限远处,就认为能走出去)。接下来是一个 N×M 的字符矩阵,表示迷宫里 (0,0) 到 (n−1,m−1) 这个矩阵单元。
2025-02-22 15:54:57
275
原创 P2853 [USACO06DEC] Cow Picnic S
K(1≤K≤100) 只奶牛分散在 N(1≤N≤1000) 个牧场.现在她们要集中起来进餐。牧场之间有 M(1≤M≤10000) 条有向路连接,而且不存在起点和终点相同的有向路.她们进餐的地点必须是所有奶牛都可到达的地方。那么,有多少这样的牧场可供进食呢?我们可以对每一只奶牛所在节点bfs,记录遍历到的节点。题目要求对能够联通所有奶牛节点的节点计数。
2025-02-22 15:06:31
247
原创 P1807 最长路
这题需要我们求最长路径,同时图的边权可能是负数,那么我们可以利用SPFA算法,在读取边权时取相反数,以此来达到求最长路径的目的。设 G 为有 n 个顶点的带权有向无环图,G 中各顶点的编号为 1 到 n,请设计算法,计算图 G 中 1,n 间的最长路径。第 2 到第 (m+1) 行,每行 3 个整数 u,v,w(u<v),代表存在一条从 u 到 v 边权为 w 的边。输入的第一行有两个整数,分别代表图的点数 n 和边数 m。输出一行一个整数,代表 1 到 n 的最长路。若 1 无法到达 n,请输出 −1。
2025-02-22 11:48:51
326
原创 P1113 杂务
至少有一项杂务不要求有准备工作,这个可以最早着手完成的工作,标记为杂务 1。John 的农场在给奶牛挤奶前有很多杂务要完成,每一项杂务都需要一定的时间来完成它。尽早将所有杂务完成是必要的,因为这样才有更多时间挤出更多的牛奶。当然互相没有关系的杂务可以同时工作,并且,你可以假定 John 的农场有足够多的工人来同时完成任意多项任务。John 有需要完成的 n 个杂务的清单,并且这份清单是有一定顺序的,杂务 k (k>1) 的准备工作只可能在杂务 1 至 k−1 中。一个整数,表示完成所有杂务所需的最短时间。
2025-02-21 00:27:21
414
原创 P3916 图的遍历
给出 N 个点,M 条边的有向图,对于每个点 v,求 A(v) 表示从点 v 出发,能到达的编号最大的点。接下来 M 行,每行 2 个整数 Ui,Vi,表示边 (Ui,Vi)。题目求的是每个连通分量的最大值,那我们可以考虑反向建图,随后从最大编号节点开始进行遍历。一行 N 个整数 A(1),A(2),…第 1 行 2 个整数 N,M,表示点数和边数。如果简单地dfs遍历,会导致至少一个测试点超时。
2025-02-20 23:47:50
299
原创 P5318 【深基18.例3】查找文献
目前小 K 已经打开了编号为 1 的一篇文章,请帮助小 K 设计一种方法,使小 K 可以不重复、不遗漏的看完所有他能看到的文章。小 K 求知欲旺盛,如果他看了某篇文章,那么他一定会去看这篇文章的参考文献(如果他之前已经看过这篇参考文献的话就不用再看它了)。共 m+1 行,第 1 行为 2 个数,n 和 m,分别表示一共有 n(n≤105) 篇文章(编号为 1 到 n)以及m(m≤106) 条参考文献引用关系。这边是已经整理好的参考文献关系图,其中,文献 X → Y 表示文章 X 有参考文献 Y。
2025-02-20 22:24:02
364
原创 QDU 24级2024秋季学期《高级程序设计语言》期末考试 第三部分个人题解
本文为个人题解,考试难度大概在洛谷简单——普及-之间。思路很清晰,首先读入队员,排序后输出,随后进行比赛。相对简单的题目,利用好常用库函数可以节省很多时间。题目难点在于排序后的输出,要求不能有多余空格。相对比较简单的题,考验基础操作。
2025-01-17 13:47:56
368
原创 PyTorch实现MNIST手写数字识别笔记 # 自用
softmax回归是一个多类分类模型,使用softmax操作子得到每个类的预测置信度,置信度每个值都是非负的,且和为1,利用交叉熵来衡量预测和标号的区别。以下是利用d2l库实现的代码import osnet.eval()# 正确的数量, 样本总数if(save):plt.show()plt.show()"""加载模型参数"""net.eval()else:lr = 0.1Logits = net_3(X) # 这是训练完成的模型未经过softmax的预测值。
2024-12-21 03:54:43
944
原创 PTA 7-12 树种统计
首先想到的思路是哈希表,但题目要求按照字典序打印,而我目前并未了解到能实现此的哈希方法,故采用了二叉搜索树。由于此前写过的题目中包含有二叉搜索树的操作集,故将其套用于其中。要比较两个字符串的字典序顺序,可以利用strcmp。要按照降序遍历二叉搜索树,可以利用中序遍历。
2024-12-16 04:14:37
417
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人