自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(141)
  • 收藏
  • 关注

原创 前端学习相关

Vue学习ECHARTS

2025-12-04 09:44:21 108

原创 圆卡尺,建坐标系,拟合圆,高斯滤波,双边滤波

对采样的灰度值序列计算相邻点的灰度差,当差值超过 grayDiffThreshold 且符合 transition 定义的边缘类型(如暗→亮),且连续 minConsecutive 个点满足条件时,判定为有效边缘,记录该位置的坐标。有了x轴的方向向量(x,y)后,顺时针旋转x轴变负,即(-x,y),逆时针即(x,-y)有了x,y轴的方向后,就可以求我们要检测的点在新坐标系的坐标,即算该点在新坐标系上的投影。有了2个圆的圆心后,以2点连线为x轴,中点为原点,2点的方向向量为x轴的方向。

2025-11-19 14:26:49 991

原创 将OpenCV的Mat转换为Qt的QPixmap

简单来说:QImage 负责 “图像处理和数据转换”,QPixmap 负责 “UI 显示和渲染优化”。因此,不是不用QImage,而是最终需要QPixmap来完成界面显示的任务~cvMatToQPixmap 的最终目的是在 Qt 的 UI 控件(如QLabel)中显示图像。

2025-11-11 10:21:40 389

原创 Lambda 表达式(匿名函数)

【代码】Lambda 表达式(匿名函数)

2025-11-11 10:16:14 114

原创 isnan(x) 和 isinf(x)

【代码】isnan(x) 和 isinf(x)

2025-11-08 11:55:15 177

原创 size_t 是什么?

size_t 是 C++ 标准库中定义的无符号整数类型,核心作用是描述 “对象的大小” 或 “数组的索引范围”。

2025-11-08 10:54:29 154

原创 确认roi范围

【代码】确认roi范围。

2025-11-08 10:04:22 156

原创 static_cast<int>(x) 是什么?

C++ 的「显式类型转换」,作用是把 double 类型的变量,安全地转换成 int 类型(直接截断小数部分,保留整数)。例:x=2.3 → x0=2;

2025-11-08 08:54:07 72

原创 C++ opencv拟合直线

核心功能:根据输入的点集 points,计算出一条 “最优直线”,使得所有点到该直线的 “距离和” 最小,并将直线参数存入 line 中。cv::DIST_HUBER:Huber 距离(结合 L1 和 L2 的优点,平衡鲁棒性和精度)。作用:仅对部分距离度量(如 DIST_L1、DIST_HUBER)有效,用于调整距离计算的权重。函数会最小化所有点到直线的欧氏距离的平方和(即最小二乘法拟合),适用于点集无明显离群点的场景。对于 cv::DIST_L2(欧氏距离),此参数无效,固定填 0 即可。

2025-11-05 13:57:14 441

原创 static_cast是什么作用?

static_cast 是 C++ 提供的显式类型转换运算符,用于在编译时进行 “合理且安全的类型转换”,明确告诉编译器 “我要主动转换类型”,替代了 C 语言中 “(类型) 表达式” 的旧式转换,同时提供更严格的编译检查。C++ 中不同类型(如 int 和 float、void* 和 int*)之间的转换需要明确的规则,static_cast 的核心是在 ** 编译器认可的 “兼容类型”** 之间进行转换,避免隐式转换可能带来的歧义或错误。// void* → 具体类型指针(必须显式转换)

2025-11-05 13:54:39 284

原创 static_cast是什么作用?

static_cast 是 C++ 提供的显式类型转换运算符,用于在编译时进行 “合理且安全的类型转换”,明确告诉编译器 “我要主动转换类型”,替代了 C 语言中 “(类型) 表达式” 的旧式转换,同时提供更严格的编译检查。C++ 中不同类型(如 int 和 float、void* 和 int*)之间的转换需要明确的规则,static_cast 的核心是在 ** 编译器认可的 “兼容类型”** 之间进行转换,避免隐式转换可能带来的歧义或错误。// void* → 具体类型指针(必须显式转换)

2025-11-05 13:50:33 328

原创 C++ opencv简化轮廓

冗余点会增加后续处理(如拟合最小外接圆、计算面积、旋转矩形)的计算量,甚至可能因噪声点导致拟合结果偏差。简化后,轮廓点数量减少(可能从几千个降到几十个),既保留了核心形状特征,又提升了后续算法的效率和稳定性。例如,一个近似圆形的轮廓可能由几千个点组成,但实际上用几十个点就能大致表示其形状;

2025-11-05 13:36:00 409

原创 opencv 计算面积、周长

【代码】opencv 计算面积、周长。

2025-11-05 13:34:02 249

原创 C++随机颜色

避免生成 “太暗的颜色”:如果范围是 0~255,可能会生成 0~50 的暗色系(比如接近黑色的颜色),绘制在图像上(尤其是背景较暗时)会看不清(比如外接圆和背景融在一起);保证颜色 “足够亮”:50~255 的范围能确保生成的颜色亮度足够,无论图像背景是亮是暗,都能清晰看到绘制的图形(比如外接圆)。rng 直接获取 50~255 的值,dist 负责把 rng 生成的 “原始随机数” 转换成 50~255 范围的数。

2025-11-05 12:04:42 391 1

原创 #include <cassert> 断言(Assertion)头文件

8U:8 表示像素每个通道的位数是 8 位,U 表示无符号整数(unsigned),因此像素值范围是 0~255(最常见的图像格式);assert 是 C++ 标准库提供的一个 调试宏(从 头文件引入),作用是 在程序运行时强制检查一个条件是否成立。C1:C 表示通道(Channel),1 表示单通道(灰度图)。CV:表示这是 OpenCV 的类型定义;

2025-11-01 15:34:47 219

原创 const的三种用法

const的三种用法

2025-11-01 11:24:03 131

原创 C++区分成员变量和外部参数

C++区分成员变量和外部参数

2025-11-01 11:18:01 97

原创 C++“强制 6 位小数” 输出

【代码】C++“强制 6 位小数” 输出。

2025-11-01 09:50:19 198

原创 C++相关(实习01

C++相关(实习01

2025-10-31 16:04:10 343

原创 麒麟系统Kylin Qt配置OpenCV

麒麟系统Kylin Qt配置OpenCV

2025-10-11 11:22:43 428

转载 Qt配置OpenCV【cmake】

Qt配置OpenCV【cmake】

2025-10-09 09:26:56 70

原创 getline() 读取整行文本【有空格】

getline() 读取整行文本【有空格】

2025-05-20 21:24:15 327

原创 二叉树的最近公共祖先

【代码】二叉树的最近公共祖先。

2025-04-10 08:54:03 149

原创 栈【从入门到实战】

看顶部盘子(Top):你可以看一眼最上面的盘子,但不会拿走它。这就是栈的特性:最后放进去的盘子(数据)会最先被拿走。push(value):将数据压入栈顶(放盘子)。top():查看栈顶数据(看一眼最上面的盘子)。放盘子(Push):你总是把新盘子放在最上面。pop():移除栈顶数据(拿走最上面的盘子)。拿盘子(Pop):你只能从最上面拿走盘子。遇到右括号时,检查栈顶是否为对应的左括号。遇到左括号((, {, [)时压栈。

2025-04-09 15:26:11 265

原创 反转链表【力扣】

结构体是什么?作用:结构体是一种自定义的数据类型,可以把多个变量打包成一个整体。类比:想象一个「快递包裹」,里面包含:物品内容(对应val,存储值)下一个包裹的地址(对应next,指向下一个节点)构造函数 ListNode(int x)作用:创建节点时,快速初始化节点值val和指针next。分解解释:ListNode(int x):构造函数,接收一个整数x作为参数。val(x):将参数x赋值给当前节点的val。

2025-04-08 15:36:10 463

原创 KMP——总结

【代码】KMP——总结。

2025-03-23 13:10:42 660

原创 蓝桥杯2024B组

二分查找:通常用于在有序集合中快速查找到目标值。但当问题满足以下条件时,也可以使用二分查找来解决最优化问题:解的范围明确且有序:需要确定解的可能范围,且该范围具有单调性。例如,当某个候选值满足条件时,更大(或更小)的值也一定满足条件。存在高效的验证方法:能够快速判断某个候选值是否满足问题的条件。

2025-03-22 17:09:50 364

原创 1201:菲波那契数列&1202:Pell数列&1204:爬楼梯--记忆优化

因为该题为多组输入,所以我将save【用于记忆】定为了全局遍历。

2025-03-18 10:08:36 184

原创 1313:【例3.5】位数问题--细节递推

N 表示位数,o[i] 表示到第 i 位包含偶数个 3 的数字数量,j[i] 表示到第 i 位包含奇数个 3 的数字数量。当 i==N 的时候,由于首位不能为零(1,2,4……偶数个3时,只要下一位不再是3就仍然为偶数。(注意当N>1时,最高位不能为0)

2025-03-17 11:45:49 358

原创 1196:踩方格--递推优化(二维数组的拆解)

本质:通过将二维坐标隐含在方向选择中,避免了显式坐标跟踪,使一维优化成为可能。并非所有的二维动态规划问题都能直接改为一维数组优化,是否可行取决于。是不是所有的二维数组移动的题目,都能优化为一维的呢?状态分解:将移动方向(左、右、上)作为独立状态。(如l[i]依赖u[i-1]和l[i-1])。递推问题,我们都需要先从最简单的入手。:初始化(得先有才能推)转移规则:每个方向的状态。将二维数组优化为一维。

2025-03-17 11:11:36 252

原创 1194:移动路线--简单DP(递推)【初始化边界!!】

递推公式也十分明显 ^ ^

2025-03-17 10:39:09 264

原创 1314:【例3.6】过河卒(Noip2002)--DP>DFS【超时DFS】

中等规模数据(如n+m≤30):需结合记忆化搜索(Memoization)。本题数据范围(n,m≤20):必须使用DP或记忆化搜索。小规模数据(如n+m≤15):DFS可以接受。

2025-03-15 19:29:38 274

原创 1191:流感传染--BFS

在同一天对一个病原体进行处理时,如果直接更改数组,将直接影响到后续的遍历。,遍历完所有坐标后,在统一更改感染。那么我们可以定义一个数组用来。

2025-03-15 18:48:50 320

原创 【递推】1188:菲波那契数列(2)&【进阶】1189:Pell数列&【进进阶】1190:上台阶--优化斐波那契【不开long long JZZ】

n%m,所有我们可以在计算的过程中对其存储的值进行取模。由题可知最后需要输出的是对1000取模的结果,优化1:记忆化存储,可以避免重复计算。

2025-03-15 17:25:45 188

原创 1187:统计字符数--哈希

做下每日任务,拿点流量卷。

2025-03-15 14:44:38 204

原创 1177:奇数单增序列--^^

应该在输出的逗号那吧 😃 最后一个值后边没逗号,需要单独输出。那就再定义一个数组单独存储奇数。

2025-03-15 10:35:09 164

原创 1176:谁考了第k名&1180:分数线划定--sort()与结构体的配合(精准排序)

妙手:定义结构体-sort()自定义比较函数【使其根据学生成绩降序排列】,实现进准排序。

2025-03-15 10:27:00 269

原创 1140:验证子串--next.data()、KMP和find

KMP中需要注意的是:应该从下标1开始遍历,因为下标0前面无值,不能匹配next。next.data()是std::vector容器的一个成员函数,它的作用是。对于字符串的匹配常见的KMP算法【面试常考】固在循环外应初始next[0]=0;便于使用的find代码也在下面了。交不了了,明天再试试。

2025-03-14 18:43:56 346

原创 1839:【05NOIP提高组】谁拿了最多奖学金--输入用空格隔开

这代码没什么好说的注意输入吧,别想成用字符串数组就行【还得单独拆开】

2025-03-14 16:30:45 209

原创 2050:【例5.20】字串包含--巧解循环移位【自我拼接】

假设原字符串是 “ABCD”,将其拼接两次得到 “ABCDABCD”。此时所有可能的循环移位结果都会作为子串出现在其中因此,只需要检查 s2 是否是拼接后的字符串的子串,就能判断是否存在某种移位使得 s2 包含在其中。如果没找到:返回 string::npos(一个特殊常量,表示“未找到”)例如,big_str 中 “CDA” 起始于位置 2(索引从0开始)。如果找到:返回子串第一次出现的起始位置(索引值)find():用于在一个字符串中。,实现所有可能的移位结果。

2025-03-14 16:07:11 281

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除