[英]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.