向前辈们取经
- 算法方向设计模式,并发编程,数学。
写论文
- word制表符、公式等等(Word 2016 撰写论文(1): 公式居中、编号右对齐)
- word中的字和公式看上去不在同一行,怎么解决。
- 解决word正文首行缩进2字符影响标题缩进的问题。
- 怎样解决在Word中插入公式后行距变宽了。
- 排版秘籍:Word不同页面不同页眉、页脚、页码设置。
基本技能类
- word编辑公式,可使用MathType。
- word编辑流程图,投影图等使用Visio。
- 编辑论文格式比较好的专业软件有LaTeX。
- 比较好用的文档编辑器notepad++(它可以进行列操作,清除空白行,等等骚操作)。
- windows cmd中,切换磁盘,直接输入E: 即可。
功能型软件
- 一款3D修饰软件,sculptris。非常好用,可以用于调整细节,超级方便。
算法
空间变换问题
数学
优化问题
kalman
逆向工程
- 三角化的几份blog:泊松重构,国外直接泊松重构的exe(其使用可参考链接 PoissonRecon.x64.exe --in monkey_2.ply --out body_new.ply --depth 10 --pointWeight 0),
- 逆向工程的一个专业软件GeoMagic Studio,处理点云拼接等等。
cv
- 抗光方式可参考手机厂商的逆光拍摄的算法,专门一个摄像头或传感器测光。
- 如果自备光源滤镜系统,距离比较远的物体的检测,适合使用红外光。距离比较比较近且观察物体较小时,适合使用波长较短的紫外光,避免衍射产生光晕。
- robocon一位日本学生的github代码链接。
- kinect库:libfreenect,openni,sdk
- 用iai_kinect2这个ros工具包标定kinect时,由于该工具包使用的是基于opencv2写的,如果使用时用的是opencv3,那么编译时会报错,比较容易的一个解决方法是,把iai_kinect2/kinect2_registration/CMakeLists.txt文件的第66行删掉。
- Kinect的各个版本介绍介绍(其实总共3个版本,v1停产了)。
- opencv伪彩色函数applyColorMap()。
- 用opencv给图像加水印(螺旋丸示例,水印示例)
- 使用matlab画hsv的直方图,分离通道。
编程语言类
- c++ boost库。
- c++ string赋值问题:将字符串a完全赋值给新字符串s
s.assign(a);更详细全面的使用可参考此链接。 - 送格式化输出到字符串中,用 法: sprintf(char *string, char *farmat [,argument,…]);
- 编译器:LLVM、MinGW32、MinGW64、Tdm-gc。
- gcc/g++编译器指定库路径的选项为-l(有此论述)。用gcc可以这样编译c++文件:gcc main.cpp -lstdc++ -o main
- c语言中内存分配函数malloc()等等,可见此网页。
- strlen()函数与sizeof()函数,前者返回字符串长度,后者则是返回类型以及静态分配的对象、结构或数组的空间大小(字节为单位),参考此网页。
- gcc中文手册。
学术类
- 文献,期刊–谷歌学术
blender
- blender细化网格,参考此链接。
pcl
- 学习图像配准时,联系到了pcl,以及pcl的icp算法,在Windows下进行了pcl的安装(大佬论述)目测这位是个大佬,正好和我的方向比较相像,也用了blender。然后配置pcl库参考的是此文章,根据此文章,成功的完成了该库的配置。此外配置还得参考此链接。(即预处理得忽略_SCL_SECURE_NO_WARNINGS,
_CRT_SECURE_NO_WARNINGS) - 关于微软的的kinfu项目各种筛选后的几份blog(1,2,3_中国pcl站,4_国外专业网站,5_国外大佬论文)
- pcl方向指导性,重大提升的几份链接:PCL库学习资源的一些心得,PCL/OpenNI tutorial 4: 3D object recognition (descriptors)。
各种综合的环境配置
- win10下面开发kinect2的环境配置,使用上vs2015,openni2,libfreenect2,pcl1.8。先配置libfreenect2,按照GitHub上的安装教程,加上此博主安装教程(此博主还提到了一个比较新的框架InfiniTAM),操作了数次均为成功,最后编译出来的libfreenect库均不能正常运行Protonect.exe程序,运行结果是Protonect.exe已停止工作。最后没办法,算是摸到了他们已经release的版本,而且和我的工作环境非常匹配,就直接用了。(不要用他们release的库文件跑自己编译出来的那个Protonect.exe,因为自己编译出来的Protonect.exe是有问题的,直接在自己下载下来的release的文件中运行它自带的那个Protonect.exe程序,如果成功运行,那就没问题了)。然后想在pcl库中用它,就得用上openni了,将自己下下来的release文件中的bin目录下的5个.dll文件copy到openni安装目录的\Redist\OpenNI2\Drivers目录下。然后就可以跑pcl官网的那个示例了。此外标记几个用KinectSDK开发的几个blog以便不时之需(1,2,)
平时的小收获
Matlab
小note
- 画完三维图后,想要专门从某个平面观察,如xoy面的投影,那么加一句view(0,90);即可。参考此文
- 关于坐标轴显示比例不一致的问题,可直接使用axis equal;来操作。可了解一下此论述。
- 同样是一个与坐标轴显示相关的函数,set(gca,‘XTick’,a : b : c)。相关的介绍参考链接。
- matlab的数据拟合,有polyfit,polyval,然后再厉害一点的是cftool拟合工具箱 ,详细参考此链接。然后官方文档的拟合链接。
- matlab绘图的骚操作,参考此链接。
- 显示三维图时,往往需要一手box on 操作来个盒子框框,这样看起来才比较直观。
小text
- 2019/1/10
从text文件中导入三维离散点的坐标信息,然后进行绘图显示。
原数据如下图情况是比较混乱的,想法是使用python脚本处理成如下图的初步形式
每一行第一第二第三个数据分别为一个离散点的x,y,z坐标值,然后分解为三个文本文件,如下图
其中localx文件存储的是每一行的第一个数值,即x值,localy,localz同理,其类容大致如下图:
这样就完成了对文本数据的预处理,接下来在matlab中利用load函数进行数据读取,其代码如下:
a(:,1)=load('E:\procedure\cv\binocular_cv\experimental_data\localx.txt');
a(:,2)=load('E:\procedure\cv\binocular_cv\experimental_data\localy.txt');
a(:,3)=load('E:\procedure\cv\binocular_cv\experimental_data\localz.txt');
plot3(a(:,1),a(:,2),a(:,3))
xlabel('x/mm')
ylabel('y/mm')
zlabel('z/mm')
title('运动轨迹')
结果图如下: