簡體   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