首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解码密钥LJ 8000位图-高度图像

解码密钥LJ 8000位图-高度图像
EN

Stack Overflow用户
提问于 2022-06-22 11:27:33
回答 1查看 94关注 0票数 0

我有一个关键线激光系统LJ 8000,我用它来扫描不同物体的表面。

控制器将高度信息保存为位图,每个像素表示一个高度值。经过大量修改后,我发现Keyence并不是使用实际的颜色,而不是使用24位RGB三重奏作为某种形式的二进制存储。然而,这些字节的组合似乎不适合我。对于24位整数有任何常见的存储方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-22 11:27:33

为了解码这些值,我做了一次扫描,覆盖了扫描仪的整个测量范围,包括在开始和结束时的一些超出范围的值。如果你看看每个彩色平面的值的分布,你可以看到,第一个和第三个平面实际上只使用8/16的值,这意味着只有3/4位。这也是可见的图像本身,因为它主要显示绿色。

我的结论是Keyence使用绿色平面的完整字节、第一个平面的3位和最后一个平面的4位来存储高度信息。Keyence似乎选择了一些奇怪的15位整数格式来存储他们的数据。

只要稍微移动一下,并且知道扫描仪的有效范围为-2.2,2.2,我就可以构建以下简单的小脚本(Matlab-)来计算每个像素的高度信息:

代码语言:javascript
复制
HeightValBin = bitshift(scanIm(:,:,2),7, 'uint16') ...
               + bitshift(scanIm(:,:,1),4, 'uint16')...
               + bitshift(scanIm(:,:,3),0, 'uint16');
scanBinValScaled = interp1([0,2^15], [-2.2, 2.2], double(scanBinVal));

Keyence提供了一个软件,可以将这些.bmp转换为..csv文件,但不需要API来实现过程的自动化。因为我需要处理很多这些文件,所以我需要自动化这个过程。

rgb三重奏的计算值实际上比导出的csv更精确,因为csv只显示小数点之后的4位数字。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72714668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档