自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(89)
  • 资源 (3)
  • 收藏
  • 关注

原创 realsense RealSense error calling rs2_pipeline_start_with_config

我用的是L515和D435i相机,这两款相机,都不支持pose直接获取imu的四元数以及位移。所以设置cfg.enable_stream(RS2_STREAM_POSE, RS2_FORMAT_6DOF)就会抛异常。只能用陀螺仪以及加速计计算,这个在精度上就会有误差。...

2022-05-01 17:59:27 876

原创 如何判断二维平面中,两条线段是否相交

两条线段,1,2分别有点a,b c,d。取a点连接c点,d点形成的向量3,4分别与线段1进行叉乘,如果一正一负,继续将c点连接a点,b点,形成的向量5,6,分别与线段2进行叉乘,如果一正一负,则表示两条线段有交点...

2022-01-14 19:42:18 648

原创 关于halcon for arm

halcon for arm必须有加密狗!lisence不管用所以,作为一个开发者,arm上千万不要用halcon,除非你够富

2021-12-08 17:37:00 1071

原创 关于open3d的入门到放弃

首先,提醒大家,这真的是一片劝大家放弃open3d的文章,劝大家不要浪费时间去使用这个团队及其糟糕,说明及其匮乏的一个项目最近在做室内三维重构的项目,想到之前看过的open3d,访问github搜索open3d点进去看到他们新发布的0.13.0如下酷炫吧,以为看到了希望,开始折腾在jetson nano 2G上进行编译安装,第一此板子是arm架构,Ubuntu18.04,跟一般的amd架构的Ubuntu不一样,所有的编译需要找对应架构的才能编译通过,按照open3d提供的github上的安装步骤

2021-11-17 11:27:47 12440 15

原创 复平面上的区域

2021-07-19 22:40:28 778

原创 点集拓扑学习(二)球形邻域

定义2设(X,ρ)为一个度量空间,实数,称表示的集合,为X中的数y满足条件y和x的距离小于为度量空间X中以x为中心,以为半径的球形邻域定理1两个球形邻域的交,表示为多个球形邻域的并...

2021-07-11 07:57:12 2048

原创 点集拓扑学习(一)拓扑空间

从今天开始从基础拓扑学开始,补习一直困扰自己的问题。度量空间的定义定义1设X是一个非空集合,ρ:X*X→R是一个函数(映射)。如果对于任意的x,y,z,∈X有:成立,则称ρ为X上的一个度量,或距离,(X,ρ)(或X)为一个度量空间,或距离空间...

2021-07-11 07:29:25 499 1

原创 关于高斯定理在泊松重构上的应用

高斯定理是微积分通过面积分转化为笛卡尔坐标系下的三重积分的有效定理比如一个封闭的曲面,曲面上有向量场,可以是水流,也可以是电流。可以计算通量,例如,一个封闭的曲面S沿着S有一个向量场,可以是水流速度,如果要计算水流以F函数向量通过封闭曲面S的通量,那么对于非常小的单位曲面块乘以F即可,但是F的方向并不一定是垂直曲面小块的,因此需要对F对于小块的垂直分量进行计算,而曲面的垂直方向的分量就是曲面块的向量因此有了F*N(F投影到N上的分量)进行面积分的公式,而N在笛卡尔坐标系下,就是对于x,y,z

2021-04-15 22:07:45 348

原创 差点放弃的win10 pytorch环境搭建

写在最前面。千万不要用线上下载搭建,千万不要用线上下载搭建!千万不要用线上下载搭建!!!只要有人有一步说输入“conda install pytorch==1.6.0 torchvision==0.7.0 cudatoolkit=10.2 -c pytorch”请离开,绝对是个骗子。不知道哪里抄来的,估计pytorch是什么东西他都不知道。所谓的手把手教你搭建pytorch环境,最详细搭建环境,只要是线上下载,都是扯淡。用默认的环境搭建,下载很慢,修改清华源,还是很慢。开着翻墙,.

2021-02-02 09:21:10 189

原创 vs2019+qt5.14.2添加qcustomplot报无法解析的外部符号

因为没有添加 print support模块第一步,点击项目属性第二步,点击Qt Project Settings第三步,双击Qt Modules后面的内容,如图第四步,找到 print support,选中,点击finish第五步,点击应用,确定...

2021-01-20 14:53:26 1344

原创 ubuntu 18.04 server编译安装dcmtk3.6.5步骤

本篇文章引用自其他人的文章16.04安装dcmtk,根据自己安装遇到的问题做了修改:1,下载最新版本的DCMTKwget ftp://dicom.offis.de/pub/dicom/offis/software/dcmtk/dcmtk365/dcmtk-3.6.5.tar.gz2,解压:tar -zvxf dcmtk-3.6.5.tar.gz3,进入文件夹内cd dcmtk-3.6.54,创建构建文件夹mkdir build && cd build

2020-11-24 13:49:22 491 1

原创 学习 《Surface Mesh Reconstruction from Cardiac MRI Contours》

心脏MRI轮廓的表面网格重建Cardiac:我们介绍了一种工具,该工具可构建能够处理稀疏,异构,不平行,横截面,一致的轮廓的表面网格,并展示其在重建心脏表面中的应用。近年来,许多研究着眼于创建心脏的个性化3D解剖模型。这些模型通常结合解剖结构的几何重建,以便更好地了解心血管功能并预测不同的心脏过程。随着MRI成为心脏医学成像的标准,我们对来自标准采集的心脏MRI数据的方法进行了测试。但是,在三个维度上准确重建心脏解剖结构的能力通常会带来根本性挑战,尤其是在数据拟合和预期的视觉外观之间进行权衡。当前的

2020-09-11 13:38:30 279

原创 学习 《Local Parametric Surface Approximation With Automatic Order Selection From Position Data》

abstract:从位置数据获取解剖图对于导管与软组织相互作用的医学应用非常重要,为了在这些数据中改善自主导航,我们需要超出通常可用的非参数图的信息。我们提出了一种从位置数据中自动进行曲面顺序选择的局部曲面近似算法。传统的曲面拟合目标函数是从贝叶斯角度得出的。占用图中的后验概率作为权重合并到为曲面拟合选择的点上。我们新颖的交替最小化算法结合了使用贝叶斯信息准则的表面顺序选择。仿真证明了在存在噪声的情况下自动选择与潜在表面一致的表面顺序的能力。并且介绍了人工程序数据的结果。I. INTRODUCTION

2020-09-09 11:52:18 119

原创 共形几何2 fundamental Group and Covering Space

monius band 魔比斯环区分下面两个surface人可以很轻松的进行区分,一个包括了孔洞环面对于生活在二维曲面表面的蚂蚁是无法区分的,如果感受内应还是外应关系内应,本身的性质,还是曲面和R3之间的相对关系对于蚂蚁是无法跳到三维空间观察孔洞。在曲面上画圈,有些环线可以通过渐变变为一个点。如果是小猫,就会出现无法缩成点,这个不需要R3信息,只需要surface本身的信息。对于所有可定向的,紧凑的曲面,可以通过他们的亏格和边界数目进行分类。亏格就是有多少个环柄。对于曲面拓扑

2020-09-06 19:24:23 272

原创 共形几何1

自己的笔记,可以忽略拱形变换保圆三维曲面上的两个相交的弧线,进行angle preserve变换之后在变换后的圆盘上,两条弧线的角度依然相等这是保形变换在圆盘上绘制圆圈,将这些圆圈映射到曲面上,圆圈形状不变在surface上面依然是圆圈,大小变化但是形状不变,保形变换,preserve local shapes conformal mappingquasi-conformal mapping 拟拱形变换平面圆盘上的圆形变换到surface是椭圆,一般映射是把椭圆映射成圆,而共形映射是把圆

2020-08-22 15:52:59 1004

原创 windows python vtk实现vtkVoxelContoursToSurfaceFilter根据等值轮廓点生成surface方法(有全部代码)

vtkVoxelContoursToSurfaceFilter类是Piecewise-Linear Interpolation算法的实现,特点是,需要构建的点云需要是某一轴例如z轴一层一层数据特点的,并且是按照统一顺时针或者逆时针排列并且一个surface必须只能同一个方向,且数据是整数,必须是int型,如果是其他类型的,需要转换成int类型。如下图所示,是Piecewise-Linear Interpolation算法图解,两层数据连接三角形代码实现的效果如下所示:可以通过设置xyz的

2020-08-18 14:59:14 701

原创 文章Coarse Alignment for Model Fitting of Point Clouds Using a Curvature-Based Descriptor解读五自动生成关键点参数

自动生成关键点参数:在处理大量点云的时候,人为手动设置参数势必会严重影响处理速度。因此,分析点云,自动判断哪些点相对更有独特性,然后基于此计算出关键点的参数。用下面的公式对点云的点进行排序其中是临近点集的点数,由式(13~15)分别计算得到。参考文章Coarse Alignment for Model Fitting of Point Clouds Using a Curvature-Based Descriptor解读四选择特征点ethod。因为所以如果或者则F=0,代表一个非常特殊的点。

2020-08-09 11:05:16 124

原创 文章Coarse Alignment for Model Fitting of Point Clouds Using a Curvature-Based Descriptor解读四选择特征点ethod

本文中的方法可以按照粗配准的流程描述:第一选取模型点云Y的特征点,第二,选取观察点云X的特征点,基于每个点的临近点组成的几何特征选取。第三步,为X和Y的关键点计算一个描述,第四,利用特征点描述对X和Y进行配准。最后利用特征点的描述得到位姿估计。一、特征点选取:协方差矩阵:解决配准问题,关键是从两个点云找到相同或者对等的特征点。这样做有两个影响:一个是降低了需要计算的点。提高运算速度。第二是减小搜索空间反而更有可能找到正确匹配的结果。对于每一个点pi,一定半径r内,包含的对应的点集,都有对应的近邻

2020-08-08 19:07:27 200

原创 文章Coarse Alignment for Model Fitting of Point Clouds Using a Curvature-Based Descriptor解读三共形几何基础

接上上一节粗配准文章Coarse Alignment for Model Fitting of Point Clouds Using a Curvature-Based Descriptor解读二粗配准,下面看预处理小节

2020-08-03 10:11:39 172

原创 文章Coarse Alignment for Model Fitting of Point Clouds Using a Curvature-Based Descriptor解读二粗配准

接第一篇,文章Coarse Alignment for Model Fitting of Point Clouds Using a Curvature-Based Descriptor解读一。开始讲解粗配准简介粗配准通常只解决配准两个子问题中的一个。找到使两者对齐的姿势。这意味着粗配准方法不考虑点云对应。粗配准分为两类:全局和局部方法。全局方法利用全局的要素,例如质心,找到translation以及利用主成分分析找到方向。局部方法,为点云创建特征或者签名集合,通过对比两个点云的特征计算correspon

2020-07-28 23:13:53 212

原创 文章Coarse Alignment for Model Fitting of Point Clouds Using a Curvature-Based Descriptor解读一

为了能更深入的理解文章内容,所以进行记录基于曲率描述的模型点云粗配准本文应用在自动化生产场景,在此场景中,物体的模型是已知的,都是通过cad设计的模型,但是在自动化产线上,实际产线上的物体是通过工业相机获取的点云数据,因此对于机器来说,如果要从获取到的产线上物体所在的位置以及方位,就需要通过配准获取的点云数据以及已知的cad的模型来求得运动矩阵,从而规划出对应的路径。本文提出了一种基于局部曲率的新的描述,从依据表面的协方差矩阵计算出的形状描述中选择关键点,利用《共形几何代数》理论计算形状描述球体

2020-07-27 22:49:03 166

原创 windows 学python 如何将一维list转换为2d numpy array,只知道其中一维的维数

list = [1,2,3,4,5,6]array = np.array(list)array = np.reshape(array,[-1,3])得到2,3的shape的np array重点就是,不知道的那一维,设置为-1.

2020-07-21 09:18:21 896

原创 vs+qt char* 与qstring互转

因为char*转string没有更好的方法,还要内存拷贝之类的,所以放弃了,还是qt好,封装好的apiqstring转char*QString filePath = "C:\\head";char * filepath =filePath.toStdString().c_str();char*转qstringchar * filepath ="C:\\head";QString filePath =QString(filepath);相当简单...

2020-07-16 09:28:30 285

原创 windows下python调用C++ dll(C++没有实现,通过C语言调用C++实现调用C++dll,大部分博客都是骗人的,而且有错误,有坑没有写)

第一,强调一下,或许调用C++的dll函是可以实现的,但是我没有查到,很多都是包了一层而且不注明,第二,调用的时候,传递参数的时候会出现windows erro或者无访问权限的问题,需要通过c_int,c_char,c_char_p等进行转换并且调用encode函数,才能把函数传递到C语言包着的api里面,下面是具体流程dll可以通过vs新建的时候选择动态链接库,vs+qt也要选择动态链接库,在接口api最前面加上__declspec(dllexport)如Test.hclas

2020-07-15 22:11:00 163

原创 windows 学python **kwargs

偶尔看到一段代码里面居然有**kwargs,难道这是指针的指针(C++概念)?查了才知道,python中*这是可变参数的意思,*代表可变list参数,**代表可变dict参数,如果*和**一起用,*必须在**前面

2020-07-15 10:12:19 93

原创 window pytorch unet代码学习之random_split

先看看调用train, val = random_split(dataset, [n_train, n_val])def random_split(dataset, lengths): r""" Randomly split a dataset into non-overlapping new datasets of given lengths. Arguments: dataset (Dataset): Dataset to be split .

2020-07-14 17:47:00 2391

原创 windows pytorch unet网络学习之BasicDataset

dataset = BasicDataset(dir_img, dir_mask, img_scale)上面是调用语句class BasicDataset(Dataset): def __init__(self, imgs_dir, masks_dir, scale=1): self.imgs_dir = imgs_dir self.masks_dir = masks_dir self.scale = scale asser.

2020-07-13 22:39:01 1813

原创 windows pytoch 学习Unet代码解读之UNET类文件解读

首先看外部初始化调用代码# Change here to adapt to your data # n_channels=3 for RGB images # n_classes is the number of probabilities you want to get per pixel # - For 1 class and background, use n_classes=1 # - For 2 classes, use n_classes=1

2020-07-12 22:44:48 2130 1

原创 window 学习pytorch unet代码之self.inc = DoubleConv(n_channels, 64)

self.inc = DoubleConv(n_channels, 64)可以猜测,channels是输入channel,64是要输出的channel看看DoubleConv函数的具体实现class DoubleConv(nn.Module): """(convolution => [BN] => ReLU) * 2""" def __init__(self, in_channels, out_channels, mid_channels=None): .

2020-07-12 20:25:37 4424

原创 windows下安装pcl python版本pclpy

pip install pclpy -i https://pypi.douban.com/simple很简单,这个是指定在国内镜像源下载安装语句目前python是3.6版本的,3.8的没有实验,可以实验一下

2020-07-10 10:51:28 1410 7

原创 windows pytorch Unet网络实现二,网络学习

学习代码之前先查看网络,有很多已有的图,都是标准的首先看输入是572x572的图片,所以,处理ct的时候需要先读取image这样的信息第一次卷积,输出570*570并且输出是64channel的数据。这里用的padding是valid,所以在3*3的核,stride1*1的时候,都需要valid的数据,因此,3*3只能移动到最后一列有效数据停下,刚刚好少2列2行,因此是570*570的。接着进行第二次卷积,将特征进一步提高。也是输出64channel数据,大小是568*568接着这是第一次.

2020-07-09 20:26:46 985

原创 pip install 指定 国内镜像源

pip install pclpy -i https://pypi.douban.com/simple

2020-07-09 20:18:34 698

原创 windows 下 conda激活虚拟环境

首先conda info -e显示自己有多少个虚拟环境然后输入 conda activate ev_name其中ev_name是你要激活的环境名字

2020-07-09 09:48:00 4655

原创 Qt multimap 文件名中包含索引index,获取索引值并与文件名对应,同一个索引可能对应多个文件名,且文件名不一样

QMultiMap,可以放key值相同的项#include <QMultiMap>QMultiMap,我这里用到了insert插入,values,获取key值相同的所有的values的list。clear清除。find,返回对应的key以及value的指针,iterator,官方例子如下insertQMultiMap<QString, int> map1, map2, map3;map1.insert("plenty", 100);map1.insert(

2020-07-07 15:40:08 628

原创 open3d numpy array 转换为point cloud

在三维点云处理过程中经常会自己造点点云数据进行展示,但是一般情况下都是用numpy array甚至是list把数据先存起来,但是open3d里面的visualization.draw_geometries([pcd])里面pcd是pointcloud的格式,所以需要把numpy array转换为point cloud官方给出了解决方法numpy转point cloudpcd = o3d.geometry.PointCloud()pcd.points = o3d.utility.Vect

2020-07-07 10:28:51 7595

原创 qstringlist 过滤包含某子字符串的项

qstringlist有filter的函数,可以过滤包含子字符串的所有的项目QStringlist b;假设b中包含了很多,“app”相关的子字符串那么就可以通过fliter函数将所有包含“app”的字符串过滤出来QStringlist filterResult=b.filter("app")接着,利用removeone移除这些过滤项,则可达到过滤的效果for(int index=0;index<filterResult.size();index++){ ...

2020-07-06 15:11:15 3816 1

原创 dicom数据学习 一,pixel spacing里面的tag以及内容解释

tag标签,用来标注dicom中的数据类型例如pixcel spacing的tag是(0028,0030),里面存的数据是x,y向的像素之间的距离,这样就能根据像素得到当前切片在xy平面的坐标值。

2020-07-06 13:39:49 3800

原创 python的继承

不同于C++的继承,用:python中的继承,在构造函数的括号中代表,并带有public或者protected private等。class a:public b,public cclass a(b)则a继承b,如果是多重继承,则用逗号隔开,class a(b,c)

2020-07-05 20:29:51 116

原创 python str加法

在c++里面可以这样操作string a=“hello ”a = a+"world"但是在python里面这样操作string a=“hello ”a = a+"world"却显示错误最后只能重新申请string b=“world”a = a+b

2020-07-05 16:39:13 1404

原创 python numpy 新手初始化坑 memory error

np.zeros(539,1024*1024,9)运行出现memoryerror因为初始化的数组空间太大了,目前没有解决办法,只能把初始化这条思路换一个。直接读取存储就没有这个问题了

2020-07-03 14:51:29 872

modelnet40_ply_hdf5_2048.zip

pointnet数据集modelnet40_ply_hdf5_2048,为了学习最原始的pointnet的网络,一般初学者最头疼的就是运行作者的源码(%99.999运行不出来,尤其是windows),下载的半个月才下载好。

2020-06-09

lame linux安装

lame linux安装,mp3的编码库文件,对于在linux下开发mp3播放器有很大的帮助

2015-08-31

DSP入门资料(精华)

学习dsp的很好的入门资料,包括芯片的选型,芯片所需的代码如何获取,可以说是很全面的学习dsp的资料。

2012-11-24

空空如也

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

TA关注的人

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