Существуют ли пакеты или функции R, которые могут определять разрядность (8 бит, 16 бит) изображения в формате TIFF?

#r #image

#r #изображение

Вопрос:

У меня есть изображения в формате TIFF, которые имеют 8 или 16 бит. Я хочу отобразить их цветовую карту или гистограмму в R. Я пробовал EBImage и imager. Оба импортируют изображение нормально, но EBImage выдает гистограмму с диапазоном 0-1, а imager более изменчив, поскольку диапазон составляет от 0 до ~ 250 (что заставляет меня задуматься, преобразует ли он 16-битные изображения в 8 бит). В двух словах, я ищу пакет или функцию, которые могут определять разрядность изображения и строить гистограмму, представляющую эти данные. Для 8-битных изображений я ожидал бы увидеть гистограмму со значениями 0-256, для 16-битных изображений — гистограмму со значениями 0-65536.

Спасибо.

Комментарии:

1. Вы получите очень хорошую идею, выполнив length(table(values)) > 256 (где values фактические значения пикселей). Если TRUE , то существует более 256 дискретных значений, что означает, что для их указания потребовалось более 8 бит.

2. @AllanCameron Это действительно здорово, спасибо. Это очень хорошее решение моей основной проблемы, но я не думаю, что оно будет работать для гистограммы (хотя это другой вопрос, и, возможно, мне следует задать его в отдельном потоке).

Ответ №1:

Формат файла TIFF IIRC содержит значение разрядности в заголовке. В CRAN есть несколько пакетов, которые читают файлы tiff с различными опциями и возможностями, поэтому я рекомендую вам попробовать их. Вот очевидные:

ijtff
readbitmap
rtiff
tiff