昨天写了一些关于相机的东西:
OpenNi2 USB协议命令解码+Python读取码流
Windows下配置OpenNi2(obbrec)
剩下的就自己看吧,这里想说一些关于相机的自带出流的格式问题。
这个最后的点云图哇,其实不是机内生成的,是电脑算出来的(应该?)
深度的质量上面,应该是分辨率+帧率+精度的选择
这里也敲黑板 100um的精度
这个单位太少见了,我也不知道能不能到达这样的精度
三个图
使用截图的功能的话,就似乎bmp和ply的点云格式
这里的截图是保留的raw格式,所谓的方便大家转换
一次5张
也可以录制,5s
是oni的格式
机内好像也可以打开三种点云的格式
快捷键
显示,到那时功能太少了,就能看看而已
可以使用MeshLab看看
打开
点云就先看到这里,我们看看别的东西
还记得我们的Raw格式吗?听闻老哥说,为了方便大家做各种转换emmmmm,但是我学的都是png的深度图,给哥们整个措手不及,真有你的。
没得说。。。下面使用imageJ打开,可以选择一些自定义
格式raw
选择参数
8 位无符号整数
16 位有符号整数(通过添加 32,768 转换为无符号整数)
16 位无符号整数
32 位有符号整数(转换为浮点数)
32 位浮点数
24 位 RGB 颜色(交错)
24 位 RGB 颜色(平面)
32 位 ARGB 颜色
1 位位图(转换为 8 位)
图像宽度是每行图像数据中的像素数,图像高度是图像中的行数。Offset to First Image是文件中图像数据第一个字节之前的字节数。
Number of images是存储在文件中的图像数量。如果此值大于图像的实际数量,则生成的堆栈将被截断为实际大小。
Gap between images是从一个图像的结尾到下一个图像的开头的字节数。将此值设置为width x height x bytes-per-pixel xn以跳过每个图像读取的n 个图像。
如果黑色像素使用的数字小于用于白色像素的数字, 请检查黑色为零。如果您的图像看起来像负片,更改此字段应该可以解决问题。
从基于 Intel 的 PC 等小端机器导入 16 位或 32 位灰度图像时,可能需要检查小端字节顺序。
这里就选小段字节顺序了
突然出现
这不就出来了,我们还知道好多,东西。比如是小端储存的
大端字节序:高位字节在前,低位字节在后,这是人类读写数值的方法。
小端字节序:低位字节在前,高位字节在后,即以 0x1122 形式储存。
Little-Endian 优点:提取一个,两个,四个或者更长字节数据的汇编指令以与其他所有格式相同的方式进行:首先在偏移地址为0的地方提取最低位的字节,因为地址偏移和字节数是一对一的关系,多重精度的数学函数就相对地容易写了。
如果你增加数字的值,你可能在左边增加数字(高位非指数函数需要更多的数字)。因此,经常需要增加两位数字并移动存储器里所有Big-endian顺序的数字,把所有数向右移,这会增加计算机的工作量。不过,使用Little- Endian的存储器中不重要的字节可以存在它原来的位置,新的数可以存在它的右边的高位地址里。这就意味着计算机中的某些计算可以变得更加简单和快速。
bmp相对的就简单很多
https://imagej.nih.gov/ij/docs/menus/file.html#raw
https://www.cnblogs.com/onepixel/p/7468343.html
https://www.convertworld.com/zh-hant/length/micrometre.html
参考资料为以上。