繁体   English   中英

读取16位灰度TIFF文件的像素值(但仅前12位)

[英]Read pixel value of 16 bit grayscale TIFF file (but only the first 12 bits)

我正在使用12位单色相机。 它可以做8位,但是我需要额外的数据位来围绕某些像素进行一些计算。 因此,我正在使用相机生成16位灰度的TIFF文件(获取我需要的12位数据的唯一方法)。

每个像素(每个制造商)的内容是:11111111 1111XXXX-白色00000000 0000XXXX-黑色

X是随机的(同样是每个制造商)。

该文件看起来好像不是最后4位是随机的,但这是另一回事(不在主题范围内)。

我想做的是打开该文件,读取给定像素(例如X,Y)的像素值(前12位)。

我在网上看了一下,但是我所能找到的都是可以读取全部16位内容的项目...

编辑:我能够直接读取相机缓冲区,这使我可以访问整个16位。 我最终得到一个UInt16,我需要将其转换为12位数字。

无法直接从文件中读取部分字节。 您需要读取所需的每个像素,然后去除最后4位。 例如

int i; // some pixel from the image int pixel = i >> 4; // pixel > 0 for white

这使用位移来摆脱最低的4位。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM