自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C与C++库差异

严格区分c和c++的语法是相当有必要的,可以有效的避免一些非逻辑性的bug

2022-09-17 00:09:59 214 1

原创 数组指针和指针数组的区别

在项目中遇到了指针数组,顺手把数组指针也总结下。数组指针定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。p=a; //将该二维数组的首地址赋给p,也就是a[0]或&a[0][0]p++;

2022-03-23 19:57:07 102

原创 CUDA by Example [1]

cudaMalloc()该函数传递的指针,在devices上可以被传递给函数、读写;在host上可以被传递不可以被读写选择GPUcudaDeviceProp结构用于存储显卡性质(Propertiy)cudaDeviceProp( )用于获得设备号cudaChooseDevice( )用于根据Prop 获得device设备号cudaSetDevice( )用于设定使用某个device...

2022-03-08 10:54:42 177

原创 numpy中list转array的问题,以及array中的object对象

对于一个list,可以通过numpy.array()方法转为array,根据list的不同情况,得到的array也有所不同:当list的维度一样的时候,可以解释为通常的array,即:>>> import numpy as np>>>>>> a = [[1,2,3],[4,5,6]]>>> a_array = np.array(a)>>> print(a_array)[[1 2 3] [4 5 6]]

2021-06-14 12:45:15 913

原创 巧用布尔值方法对numpy矩阵进行条件筛选

今天看到一段代码,基于此前的经验来理解,没法看懂,:sp = p[labels == label, :] # labels是一个list, label 为循环变量可能是还没从C++这些语言跳出来,看到这代码就觉得特别扭,毕竟都不是一个类型,所以一致没法理解这行代码,直到我用print()打出来:因此,labels == label即为一个真值表,然后基于这个真值表,选出p[]里的所有符合条件的项(labels和p是一一对应的,labels即为p所有项的标签)简而言之,就是把p里对应True的项全

2021-06-13 17:43:25 1278

原创 open3D的pointcloud类

前言:最近课设要做点云相关的project,试了很多的点云库,主流的当然是PCL(point cloud library)。本着人生苦短,我用Python的心态,想找python的包,可奈何PCL为C++的库,而网上可找到的编译版本的pypcl和Python-pcl因为种种原因使用起来相当不便(停止支持,官方文档不完善等等)于是又再次发挥了笔者之前用opencv最新版的“大无畏精神”(划掉),选择了网上中文资料甚少的open3D,一方面是训练自己看官方英文文档的能力,一方面也可以帮助一些看官方文档吃力

2021-06-12 14:52:17 507 2

原创 根据某些值确定对应记录&矩阵切片

场景:已有一个提取好的地面点以及非地面点数据.pcd(xyz),笔者想要从带有RGB信息的总点云PCD中提取出地面点和非地面点(从而得到带有RGB信息的地面点以及非地面点数据)实现所需:numpypandas矩阵切片:numpy的矩阵,假设a是一个矩阵,a的截取就可写成:a[起始行:终止行,起始列:终止列]数据合并:将多个矩阵合并,通过参数0,1来区分列/行合并numpy的concatenate()数据筛选:选取某列是否是某一类型的数值 用 isindf.loc[df[‘column_na

2021-06-12 14:31:15 87

原创 dictionary changed size during iteration

如果需要遍历字典的同时修改字典,在使用字典的对象函数的时候,最好转化为list,否则会报错。# rc = result_count.keys() # error!dele_keys = list(set(dele_keys).intersection(set(result_count.keys()))) # 取交集得到待删的keysfor key in dele_keys: del result_count[key] # 在结果中删除不符合要求的记录参考:https://blog.c

2021-06-01 10:35:34 68

原创 类空指针访问成员函数错误

今天好不容易调好环境准备运行一下别人的代码,运行到一半出现了类空指针错误:引发了异常: 读取访问权限冲突。this->tree 是 nullptr。查看了变量,程序初始化了一个类指针tree,其为Null。查阅相关资料了解到,此处的问题在于,空的类指针调用成员函数,如果该成员函数涉及访问this指针,则会出错(在此处表现为,使用了成员变量,因此实质上会访问this指针来获得成员变量)。值得注意的是,如果成员函数不涉及this指针的访问,则不会出错。...

2021-03-04 22:08:10 200 1

原创 缺少waitkey()导致OpenCV图像输出为灰色

笔者在写批量读取图片文件的代码时,虽然监控临时变量发现读取成功,但是使用imshow()函数输出的图却始终是灰色的,无法读取。无奈,以为是循环变量又或者指针的问题,查了好一会,最后才发现是因为imshow()函数需要waitkey()函数才能显示。以下内容摘自OpenCV官方文档:This function should be followed by cv::waitKey function which displays the image for specified milliseconds. Ot

2021-01-29 20:59:48 396

原创 从零开始做图像检索(2)——SIFT特征提取实现应当注意的问题(基于OpenCV 4.5.1)

零、引言笔者计划基于最新版OpenCV(4.5.1),来实现SIFT的特征提取。这篇文章是用于总结新版本应当注意的问题和常见的bug,由于时间和精力有限,笔者只列举了自己所遇到和搜索解决方案看到的问题,如未能解决您的问题,还望见谅~由于SIFT专利过期,OpenCV版本更新等原因,网上的相关资料大多还是2.x / 3.x 版本,如果想要省事,选择旧版本当然是最好的选择。但考虑到当前网上缺少新版本的资料,而且也不太想只做他人代码的搬运工,因此头铁选择继续使用4.5.1版本来开发,也好为后来的初学者架桥铺路

2021-01-28 16:14:06 992 1

原创 C++的一些基本特性(4)——面向对象之 重载与多态

零、引言重载与多态,OOP的又两大特性。在笔者看来,它们在功能意义上存在着一定的共性——通过重载和多态,将方法的调用简化(比如你想实现数字的加法1+1,又想实现汽车的加法car+car,严格来说二者并不相通,但人类的认识将其中加法的共性提取出来,而计算机则通过重载实现),实现方法的通用性。 这二者也存在着一定的区别,我们先分别讨论它们各自的内容,最后再进行区别的总结。一、重载在同一作用域中的某个函数和运算符指定多个定义,分别称为函数重载和运算符重载。当调用重载函数或者运算符的时候,面对多个定义,编译器

2021-01-26 20:47:25 250 1

原创 C++的一些基本特性(3)——面向对象之 继承

继承的特性就类似于我们进行分类时,大类和小类、包含与被包含的关系,比如动物界里有脊索动物门,脊索动物门有脊椎动物亚门,脊椎动物亚门又有哺乳纲……这其中也就包含了共性和特性的关系。上面也许说得比较抽象,接下来结合C++的代码来讨论。基类与派生类:基类和派生类的关系图如下:(引自菜鸟教程)继承中,派生类为“小类”,基类为“大类”。一个派生类,可以继承自一个或多个基类(就好像一个人可以被在生物学角度进行划分,也可以在社会学角度进行划分)。派生类的定义方式如下:class <派生类名>:&l

2021-01-26 17:32:50 86

原创 C++的一些基本特性(2)——面向对象之 类

C++相较于C最大的一个不同恐怕就在于面向对象的特性,这一特性的发挥可谓贯穿所有常用的C++库,这也是笔者特地花时间学习一下C++的原因。C++ 类的定义:类的基本结构如图:用类定义对象以及访问数据成员:通过以下的实例,可以演示类的一般使用:#include <iostream> using namespace std; class Box //定义名为Box的类{ public: //public是成员的访问修饰符,public的成员可以用.(点)来访问

2021-01-25 23:03:42 103

原创 C++的一些基本特性(1)

本文用来记录C++的一些基本特性,相对于笔者学过的C语言知识而言。枚举类型(enumeration)可以用于限定枚举变量的取值范围在所列举的范围之中。用法:enum 枚举名{标识符[=整型常数],标识符[=整型常数],…标识符[=整型常数]} 枚举变量;C++存储类auto(自动判断变量数据类型,C++11已经弃用)register用于定义存储在寄存器中而不是 RAM 中的局部变量,**不能使用"&"**因为没有内存位置staticstat

2021-01-19 22:00:11 140

空空如也

空空如也

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

TA关注的人

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