Я пытаюсь разобраться с изображениями RGBA TIFF с 16 битами на канал с помощью языка C, я не смог найти много информации о 16-битных изображениях в спецификациях.Изображения TIFF: как пиксели изображения 16 бит-RGBA чересстрочны?
В случае 8-битного RGBA-изображения я понимаю, что пиксель хранится как uint32 и может быть деинтерлейсирован путем группировки 32 бит в 4 группы (R, G, B, A) из 8 биты. Тогда дело с 8 битами на канал RGBA изображений, я делаю следующее (см также прилагается исходный код here):
- хранить данные изображения в качестве вкладки uint32 (с помощью TIFFReadRGBAImageOriented), что я называю
data_tiff
- I деинтерлейсинг пикселей, используя следующие команды:
(uint8) TIFFGetR(*data_tiff)
,(uint8) TIFFGetG(*data_tiff)
,(uint8) TIFFGetB(*data_tiff)
&(uint8) TIFFGetA(*data_tiff)
В случае 16 бит на канал RGBA изображения, не могли бы вы сказать мне, как могу ли я деинтерлейсировать пиксели? , если я мог бы извлечь данные изображения в качестве вкладки uint64, то я мог бы сделать следующее:
#define TIFF16GetR(abgr) ((abgr) & 0xffff)
#define TIFF16GetG(abgr) (((abgr) >> 16) & 0xffff)
#define TIFF16GetB(abgr) (((abgr) >> 32) & 0xffff)
#define TIFF16GetA(abgr) (((abgr) >> 48) & 0xffff)`
- Я прочитал данные изображения в качестве вкладки uint64
- Я DEINTERLACE пикселей с использованием
(uint16) TIFF16GetR(*data_tiff)
,(uint16) TIFF16GetG(*data_tiff)
,(uint16) TIFF16GetB(*data_tiff)
&(uint16) TIFF16GetA(*data_tiff)
но мне кажется, что данные изначально не сохраняются во вкладке uint64, так интересно, как переплетены 16 бит на канал изображения в УИН вкладка t32 пикселей.
Я также сталкиваются с трудностями дело с 16 битами изображения оттенками серого таким же образом (с помощью TIFFReadRGBAImageOriented
, чтобы получить данные изображения и пытается преобразовать каждый пиксель в uint16)
В целом, у вас есть какой-либо кусок документации по 16-битным оттенкам серого и цветным изображениям?
Спасибо, С наилучшими пожеланиями,
Rémy А.
Что вы подразумеваете под словом «tab», выше? Я не могу разобрать это ... Может быть, это «таблица», может быть? – unwind
Я имею в виду указатель: uint32 * –