#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