Попытка обработки необработанных изображений DNG в Python с rawpy
заканчивается странными результатами.DNG необработанные изображения импортированы как 16 бит глубины, но неожиданные результаты plt.show()
import rawpy
import imageio
from matplotlib import pyplot as plt
path = '/home/stefan/AIJ/RAW.DNG'
with rawpy.imread(path) as raw:
rgb = raw.postprocess()
plt.imshow(rgb)
plt.show()
В результате получается массив RGB изображения с 8-битовых значений, в то время как моя камера генерирует 14 бит необработанных изображений.
Визуализируя rgb
массив дает ожидаемый результат:
С некоторого googleing я понял, что можно импортировать один и тот же файл, но с выходом в 16-бит.
Я использовал следующие параметры в функции постобработки:
rgb = raw.postprocess(output_bps=16,demosaic_algorithm=None,output_color = rawpy.ColorSpace.Adobe)
Теперь rgb
массив содержит 16-битные значения, но визуализация результатов в следующем:
Может кто-нибудь сказать мне, как Я мог бы получить визуализацию, подобную первому результату, но обрабатывая 16-битные значения?
Первоначально я думал, что это связано с тем, что моя камера производит 14-битные изображения, а не 16 бит, но изменение параметра output_bps
на 14 дает еще худшие результаты визуализации.
Заранее благодарен!
По запросу я бы добавил здесь необработанную картинку из PENTAX K-5, но это 18MB большой, и форум имеет ограничение 2MB (может быть, еще один способ передать вам файл?).
Можете ли вы поделиться своим необработанным файлом? Кажется маловероятным, чтобы нормальная камера выдавала DNG, который не нуждался в демонстрации ... или это не нормальная камера? –
Почему ColorSpace.Adobe, если вы не применяете demosaicing? – Piglet
Это то, что я попросил сам спонтанно, нужна ли этой картине демозапись? Но поскольку для output_bps = 8 бит выход в порядке, я не рассматривал. – noste99