- 博客(10)
- 资源 (12)
- 收藏
- 关注
原创 行程编码求交集
当段1和段2有相交时,只需要取(max(x1,x'1),min(x2,x'2)))作为相交段即可。此时需要段进行移动,如果min(x2,x'2)为x2,那么index后移,否则index'进行后移。上一章提到行程编码表示的Region求差集时,可以归纳为行求差集。在求交集时,同样归纳为行求交集。本文介绍求交集的方法。求差集时情况可以概况为3中情况。指向相交段的前端,初始值为段。此时将情况转换为了情况1.
2024-06-30 11:20:34
199
1
原创 行程编码求差集
一个容易想到的方法是将Region转换为黑白图像,然后求两个图像位运算,在opencv中很容易实现。这种方法有一个问题,如果Region区域比较小,如果是将其转换为图像求,会产生较大的计算量。行程编码可以表示用来表示图像感兴趣区域,通过(y,x1,n)或者(y,x1,x2)方式,表示一行中连续的区域。在图像处理时Region是一个很常用的概念,在halcon中大量使用,通过将图像处理的范围限制在一个指定的区域(Region)内,容易求解问题和提高速度。指向待求的差段前端,即第一个减段的前端。
2024-06-29 17:56:29
448
原创 C++全局变量注意事项
一、不要将全局变量定义在头文件 如果将全局变量定义在头文件中,该头文件被其他文件包含会报“找到一个或多个多重定义的”错误。其他文件包含该头文件后相当于都定义了一个全局变量符号。假设有文件file1.h,file1.cpp,如下:// file1.h#pragma onceint aa = 0;class file1{public: file1(); ~file1();};// file1.cpp#include "file1.h"file1::file1()...
2021-10-26 10:29:01
1755
原创 placement new使用
一、new构造过程 在使用new关键词创建一个对象指针时,需要做以下工作:使用operater new分配内存; A *pa = static<A *>(operator new(sizeof(A))); 然后调用类构造函数; pa->A(); 返回内存指针。 return pa;C++提供了默认的operator new函数共用三个版本:operator new(size_t); ...
2021-07-23 17:10:48
303
原创 右值引用及其作用
什么是左值、右值?可以出现在=号左边的则为左值,否则为右值。可以出现在=左边,意味着一定能保存数据,存放在内存中,有实际的内存地址,而右值则是一个临时中间存放的数据,是存放在寄存器中的。inta = 9, b = 8;a = 8, b = 0; // a,b为左值// a + 4 = 5; // 错误 a + 4为右值,a + 4为一个临时对象// -a = 4; // 错误 -a为右值,为一个临时对象(a) = 5; ...
2021-07-20 17:54:10
17311
12
原创 std::bind使用注意事项
一、绑定对象会拷贝 使用std::bind绑定对象时,会拷贝新对象,作为内部调用成员函数的对象。那么如果类中有指针且未实现深拷贝,可能会出错。如下:class A{public: A() { pa = new int(9); } ~A() { delete pa; pa = nullptr; } int geta() { return *this->pa; }private: int *pa = nullptr;};...
2021-07-20 09:44:56
1160
原创 一步步实现C++11中的std::function和std::bind(下)
一、本文目的 前面两篇分别讲了如何封装自己的function和bind,保存了函数和参数包。还有最后一点与C++11提供的明显差异是没有提供部分参数的保存功能。本文将在前篇基础上介绍如何实现部分参数的保存功能。二、部分参数保存分析 从上一篇我们知道,参数包是可以通过tuple进行保存,在回调时通过对tuple进行展开调用。std::bind可以只绑定部分参数,其他参数可以通过占位符代替,在最后回调的时候传入,替换占位符传给函数进行调用。 显然在bin...
2021-07-19 16:39:18
510
1
原创 一步步实现C++11中的std::function和std::bind(中)
目录一、本文目的二、std::bind如何绑定参数三、参数包如何保存四、tuple展开五、构造索引系列_index_seq_六、通过_index_seq_展开tuple七、binder保存参数一、本文目的 上一篇介绍了std::function和std::bind实现方式,可以保存一般函数和成员函数,但并未实现对参数包的保存。由于参数包的保存也是一个难点,所以将该内容作为一个单独的篇幅进行介绍。通过该篇可以了解参数包的实现原理,同时也能掌握C++模板的实现...
2021-07-18 21:36:29
482
1
原创 一步步实现C++11中的std::function和std::bind(上)
std::function和std::bind是C++11新增特性,可以非常方便实现函数的回调,且非常安全。对于如何使用std::function和std::bind不是本文的重点,本文目的是在于如何自己手动实现std::function和std::bind,只有自己手动实现了才会了解其中的原理,同时实现这两个函数有助于掌握C++模板使用技巧,如模板特例化、偏特例化变参模板等。
2021-07-16 18:19:40
1997
2
LL1文法实验.rar
2021-02-20
离散Hopfiled神经网络字符识别实验
2020-07-20
自编程SOM神经网络实现聚类(Kohonen算法)
2020-07-09
RBF神经网络实现模式分类.rar
2020-06-27
各种梯度下降法实现BP神经网络.rar
2020-06-10
各种梯度下降法(SGD、Momentum、NAG、Aagrad、RMSProp、Adam)matlab实现
2020-06-07
Matlab自编程实现BP神经网络逼近函数
2020-05-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人