向前辈们取经
- 算法方向设计模式,并发编程,数学。
写论文
- 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('运动轨迹')
结果图如下: