自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(370)
  • 资源 (5)
  • 收藏
  • 关注

原创 C++ std::future的使用

的核心价值在于 ​简化异步编程的复杂性和 ​提供类型安全的并发控制,适用于需要结果同步、异常处理或灵活任务调度的场景。其设计平衡了性能与易用性,是现代 C++ 并发编程的基石工具。

2025-04-24 14:06:48 785

原创 C++11 多线程

std::mutex,最基本的 Mutex 类。std::recursive_mutex,递归 Mutex 类。std::time_mutex,定时 Mutex 类。std::recursive_timed_mutex,定时递归 Mutex 类。下面以 std::mutex 为例介绍 C++11 中的互斥量用法。

2025-04-24 13:58:14 553

原创 线程池的使用

该线程池实现简洁高效,适合固定任务类型的场景,但需优化等待机制和扩展任务类型支持。通过结合原子变量与条件变量,平衡了性能与资源消耗,可作为轻量级并发工具的基础框架。

2025-04-24 11:47:36 282

原创 std::function的使用

是 C++11 引入的通用函数封装器,它提供了一种类型安全且灵活的方式处理各种可调用对象。

2025-04-24 11:11:17 729

原创 std::condition_variable 条件变量的使用

作用: 是 C++ 多线程编程中用于线程间同步的核心工具,其使用场景和核心价值体现在以下几个方面: ​线程需要等待特定条件成立 当某个线程必须等待共享资源的某个状态(如队列非空、任务完成、数据就绪等)时,使用条件变量可以避免忙等待(busy-waiting),从而减少 CPU 资源的浪费。​需要多线程协作完成复杂逻辑 当多个线程需要按特定顺序协作时(如线程 A 完成预处理后通知线程 B 执行),条件变量提供了一种高效的协调机制。​避免轮询和资源浪费 若用 实现等待,会导致

2025-04-24 10:53:02 240

原创 visual studio 常用的快捷键(已经熟悉的就不记录了)

【代码】visual studio 常用的快捷键(已经熟悉的就不记录了)

2025-04-14 15:56:13 1084

原创 cv::cuda::GpuMat 中的 flags、data、refcount、datastart、dataend 和 allocator 含义

在 OpenCV 的类中,成员变量flagsdatarefcountdatastartdataend和allocator。

2025-04-13 14:14:22 436

原创 git 库上面删除某一个分支

类似于你在windows中不能删除已经打开的文件,所以要切换到其他分支上面去。

2025-04-13 10:24:53 117

原创 计算每个die之间的diePitch,简易代码

只有txt,未安装wps、excel。

2025-04-12 13:37:45 88

原创 C++创建多层目录

【代码】C++创建多层目录。

2025-04-10 16:32:24 259

原创 cv::Range当键的时候怎么做

【代码】cv::Range当键的时候怎么做。

2025-04-06 13:53:48 97

原创 diff图循环利用逻辑,固定内存个数,去找空闲的内存去用

【代码】diff图循环利用逻辑,固定内存个数,去找空闲的内存去用。

2025-04-03 10:39:35 115

原创 C++ 计时的方法

​C++11标准方法<chrono>库是首选,兼顾高精度、跨平台和易用性。​传统方法<ctime>适用于简单场景,但精度和可靠性较低。​扩展方案:平台特定API或第三方库可作为补充,但需权衡兼容性。

2025-04-02 17:02:11 553

原创 git 创建分支

切换到想依据哪个分支为基础而建立新的分支;创建新的分支,给定新的分支的名字;5,修改一点东西,然后提交commit + push,这样就可以在库中看到该分支了;1,git clone下来一个;

2025-04-02 10:02:20 112

原创 C++灵活的多态行为扩展

此代码通过虚函数与模板策略模式的结合,实现了灵活的多态行为扩展。核心优势在于运行时动态切换策略类型,同时保证了资源安全和代码可维护性。

2025-03-24 15:24:59 180

原创 C++多态

以下是一个基于virtual和override关键字的 ​。

2025-03-24 14:44:01 202

原创 git 如何实现回退版本

git reset --hard commit-id a176078bdbe215a3ee30b84f8de54721c76f59b9git reset --hard HEAD~1git push -f origin lyb/lyb_develop

2025-03-20 14:54:20 109

原创 git cherry-pick将某一个commit拉到另外的分支

git cherry-pick 上面复制的那个要合并的commit id // 提交该commit到当前分支。git log //查看提交的日志,复制要合并的那个分支的commit id(简略ID-前8位数)git checkout 要合并的分支 // 切换到要合并的分支上。git push // 推送到B分支远程仓库。git pull 拉一下B分支代码。

2025-03-14 09:17:11 169

原创 git merge 将develop合并到自己的分支

git reset --hard HEAD~ 回退,不需要。git merge develop 进行检查。Terminal中选择Git Bash;

2025-03-14 06:51:26 126

原创 std::unique_lock<std::mutex> lock(_mutexSwathDone);

这种写法通常用于多线程编程中,确保某段代码(如临界区)在同一时间只能被一个线程执行。是C++中用于管理互斥锁(mutex)的常见用法。

2025-02-18 14:14:28 300

原创 在 Visual Studio 中使用 C++ 利用 dump 文件查找问题原因和崩溃点

在 Visual Studio 中使用 C++ 利用 dump 文件查找问题原因和崩溃点,可按以下步骤操作:

2025-02-18 11:17:29 646

原创 C++ Lambda表达式

5. Lambda 的深入理解本质是什么?Lambda 的底层是一个匿名类的对象。编译器会做以下事情:生成一个匿名类,类中重载了operator()(即函数调用运算符)。捕获的变量会变成这个类的成员变量。当你调用 Lambda 时,实际是调用这个对象的operator()。等价于public:private:int x_;为什么好用?简化代码:避免定义大量只用一次的小函数。灵活捕获变量:直接使用上下文变量,无需传递参数。支持函数式编程:可以像数据一样传递函数逻辑(如作为参数传给算法)

2025-02-18 10:35:53 560

原创 Hu矩的原理及应用

什么是Hu矩Hu矩是一种描述图像形状特征的数学工具,核心思想:提取图像的形状信息,并对这些信息进行归一化,使得它们对图像的平移、旋转和缩放具有不变性。简单说,Hu矩就是一串数字,这串数字可以唯一的描述图像的形状特征,而且不管图像怎么移动、旋转和缩放,这组数字都不变。Hu矩的原理1,几何矩:图像的像素值的加权和,可以用来描述图像的形状。如:零阶矩(面积):图像中所有像素值的总和;一阶矩(质心):图像的重心位置;二阶矩(方向):图像的伸展方向。

2025-02-11 11:13:12 1081

原创 c版的findcontours改写,输出为vector<vector<cPoint>>

要求:读出来的要么是0,要么是1;

2025-02-11 08:35:00 301

原创 findcontours 函数,为什么在多进程下会崩掉

经细查代码,未发现原因,怀疑CvMemStorage在多进程下不安全,但看内部详细代码,觉得无问题。若广大网友有类似的经验,请留言,感激不尽!但通过设置 cv::setNumThreads(1);

2025-02-07 14:05:49 98

原创 UV常见报错原因

2、UV轮流报错:库不对,系统问题;1、某一个UV一直报错:磁盘满了;

2025-01-21 11:49:35 172

原创 Share_ptr 与 unique_ptr的区别

特性unique_ptrshared_ptr所有权管理独占所有权共享所有权复制不支持复制,仅支持移动支持复制引用计数无有引用计数性能轻量级,性能开销小较重,引用计数的维护会增加开销适用场景资源的唯一所有者,生命周期由一个对象控制资源有多个所有者,共享资源使用unique_ptr:当你有明确的所有权控制,并且资源只会有一个所有者时。使用shared_ptr:当资源需要多个所有者,且它的生命周期由多个对象共享时。

2025-01-16 11:31:44 853

原创 代码中获取远程文件

上述代码定义了一个包含远程文件路径的字符串,注意在 C++ 中,网络路径需要使用。,以避免转义字符问题。

2025-01-15 11:01:22 370

原创 git 本地代码回退到某一版本

1、创建一个新的目录:不包含中文。

2025-01-14 22:47:04 93

原创 哈希原理及其简单应用

2、插入元素,将其放置于hash表中(按照取余操作进行存储);3、查找元素,先找到对应的hash值,然后在hash值对应的去找。

2025-01-14 11:31:09 358

原创 merge和cluster的区别,在图像中

cluster:聚类,像两个间隔2um的cluster成一类,这个称为聚类。merge:合并,如:缺陷的开闭等操作;

2025-01-13 15:40:32 86

原创 C++类的继承系列

应用的时候,可以把公共的放到Base中,独特的放在子类中;

2025-01-13 15:36:04 70

原创 多线程的基本操作

【代码】多线程的基本操作。

2025-01-13 15:09:22 118

原创 git的基本操作

1、clone和pull区别,clone是克隆,pull是拉取;clone:从远程服务器克隆一个一模一样的版本库到本地,复制整个版本库;Pull:从远程获取最新版本并merge到本地,pull = fetch + merge origin/远程分支名,fetch更安全一些;2,git checkout develop切换到develop;3、checkout:切换到其他版本;1,拉去develop代码;

2025-01-10 10:40:29 200

原创 野指针bug

但cu和UnitList[Index]都还是有值的,只是指向的地址没有数据;所以下次去判断UnitList[Index] == nullptr不会通过,会继续往下,那利用到这块堆上的时候就有问题了;解释:cu和UnitList[Index]都指向同一块地址,他们在栈上的不同位置;delete cu;:将堆上的地址给清掉;

2025-01-10 10:21:41 520

原创 读取txt中的内容,利用正则表达式抽取出其中的内容,写入到csv中

读取txt中的内容,利用正则表达式抽取出其中的内容,写入到csv中,包含_0.bmp,抽取出它的名字,后面的offset。

2025-01-07 13:17:45 226

原创 C++ 标准模板库STL--Pair

改:能,修改first和second的值;查:能,修改first和second的值;pair:用于存储两个。

2024-12-31 11:10:20 453

原创 ptr测试

【代码】ptr测试。

2024-11-22 16:36:52 154 2

原创 C++判断文件夹是否存在

C++判断文件夹是否存在

2023-03-16 16:07:28 429

原创 读取多行txt

读取txt中的内容

2023-03-08 17:32:49 254

halcon常用函数.pdf

halcon入门常用函数

2021-07-23

亚像素模板匹配—计算图像之间的亚像素偏差

计算出两幅图像之间的亚像素对位的精度,通过模板匹配得到评分Mat,计算出在Mat上最大匹配的点,再最大匹配点周围,利用评分,找出亚像素的off,实际测试精度在0.02像素。

2020-11-30

去雾算法——参考何凯明博士的论文,自己写的代码

何凯明博士的去雾算法,是一大经典,此代码复现何博士的论文,达到的优秀的去雾效果,在现实中,应用场景还挺多的。。。

2020-09-30

基于opencv的轮廓匹配算法

利用轮廓,求图像间的offset,图像库是opencv的代码,利用canny求出轮廓,然后找出两幅图的轮廓offset,即得原图的offset。

2020-09-27

基于opencv的图像旋转匹配

可以求出图像之间的旋转角,精度和图像大小成正比,利用频域做的,不是单纯的旋转0.1°,匹配一下,再转一下,再匹配一下。

2020-09-27

空空如也

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

TA关注的人

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