Вопрос про RAW снимки.
Есть у меня Nikon D3100, снимающий в RAW. У него матрица оснащена фильтром Байера, за счет которого она цветная. Суть в следующем. Никоновский RAW формат отлично читается средствами питона. И если прочитать напрямую RAW изображение тусклых объектов и вывести его, например, с помощью matplotlib (баланса белого и цветопередачи сейчас не касаемся) то изображение будет довольно сильно зашумлено. Но в то же время просмотрщики RAW, да хоть Geeqie, как-то выводят куда более гладкую картинку.
Хочу понять, это они просто сглаживают шумы, или я что-то не понимаю
RAW я читаю с помощью rawpy, после чего учитываю что это изображение на самом деле с фильтром Байера, и чтобы расстановить 3 канала, надо раскидать пиксели в соотв с маской:
image = rawpy.imread(filename).raw_image_visible
shape = image.shape
cshape = (int(shape[0]/2), int(shape[1]/2), 4)
post = np.zeros(cshape)
for y in range(cshape[0]):
for x in range(cshape[1]):
post[y][x][0] = image[y*2 + 1][x*2]
post[y][x][1] = image[y*2][x*2+1]
post[y][x][2] = image[y*2+1][x*2+1] + image[y*2][x*2]
Изображение в geeqie
https://sun9-34.userapi.com/PmZaqUGFvW6vKNc6lNsIXpKTU5EcNkMffcsQaA/a2HvOGbQL2I.jpg
Изображение через мой код:
https://sun9-71.userapi.com/TsMOGEC-X9ylBYshoxlvJN_ulvWPUgjBNC59Uw/NaZ4P8j7bpE.jpg
и да, geeqie каким-то образом не уменьшает вдвое разрешение по сравнению с исходной черно-белой картинкой на матрице.