eddy_em: (Костерок)
eddy_em ([personal profile] eddy_em) wrote2017-02-01 08:32 am
Entry tags:

Дебайеризация

Что-то сильно расхваливаемый авторами алгоритм дебайеризации дает довольно-таки много артефактов:
BGGR
Работает, кстати, медленно. Код мало того, что не оптимизирован, так еще и авторы зачем-то почти чистый (ну, заменить new на malloc, а delete на free — и будет совсем чистый) сишный код в cpp файлы запихали.
Ищу дальше...

[identity profile] alextutubalin.livejournal.com 2017-02-01 03:27 pm (UTC)(link)
(если меня громко упомянуть в ЖЖ - я могу и появиться)

Тут прежде чем пробовать алгоритм - хорошо бы на сами данные посмотреть.

В частности, вот эта вот регулярная хрень в светах на картинке - в исходных данных нет такой же хрени?
Если есть, то чего на байера (демозаику) пенять, ей че дали, то она и сделала.

Если вы умеете выгнать эти данные в дамп (без заголовка, ну там 16 бит на пиксель) - RawDigger сумеет их прочитать (см. раздел Support of non-standard cameras в его мануале в разделе настроек).

Ну или дайте пару файликов для опытов, гляну.

[identity profile] alextutubalin.livejournal.com 2017-02-01 03:29 pm (UTC)(link)
Вдогонку.

Мне нужны бы пара файликов с изображением и пара темновых т.е. снятых на той же выдержке (и температуре), но с объективом закрытым крышкой.

Посмотрим что там за полосатость и нет ли ее в темновых кадрах тоже.

[identity profile] eddy-em.livejournal.com 2017-02-01 03:42 pm (UTC)(link)
Темновые завтра сниму: я уже с работы ушел, а камеру из розетки выключил. Надо было включенной оставить...

[identity profile] eddy-em.livejournal.com 2017-02-01 03:39 pm (UTC)(link)
Исходную картинку я в предыдущей записи привел.
Ту (стороннюю) утилиту, вообще, на самом деле неплохо было бы на реальном снимке неба проверить. Вдруг и она сгодится? Учитывая то, что считывание данных с матрицы длится около минуты, те 5-10 секунд, что работает утилита — фигня.
Примеры:
https://drive.google.com/open?id=0B859YEB17d8vd2ktYUJMMHIyQlE
https://drive.google.com/open?id=0B859YEB17d8vbWVRZTk3cTNoa2c
https://drive.google.com/open?id=0B859YEB17d8vbWVRZTk3cTNoa2c

[identity profile] alextutubalin.livejournal.com 2017-02-01 04:24 pm (UTC)(link)
Tiff мне не пойдет - не буду возиться с ним, дамп сенсора нужен и знание размеров в пикселях.

Но судя по tiff - у вас там реально же вот сеточка в светах. То есть надо или баланс белого применять, или еще чего хорошее.

Де-байеризатор отработал как надо. Дали ему сеточку - он ее нарисовал почетче.

[identity profile] eddy-em.livejournal.com 2017-02-01 05:24 pm (UTC)(link)
Попробую завтра потолок поснимать — эдакие флэты. Посмотрю, что будет.
> дамп сенсора
Просто бинарные данные? Так их из тифа чем угодно можно вытащить - хоть той же октавой. В каком формате нужны данные?

[identity profile] alextutubalin.livejournal.com 2017-02-01 05:40 pm (UTC)(link)
Их *можно* вытащить. Но я - не буду. Опять же - гадать что там с гаммой, наложена, не наложена.
То есть я больше 5 минут на это не собираюсь тратить (примерно столько нужно для поддержки новой камеры типа "дамп сенсора")

Дамп мне нужен
- раз у вас там 16-битный АЦП, то вот прямо 2 байта на пиксель.
- порядок байт в слове - без разницы, но (чуть) лучше интеловский.
- нужно знать сколько строк-столбцов в сенсоре
- нужно знать как сделан дамп, по строкам или столбцам (удобнее - по строкам).

Если с одного раза получится - будет вам libraw с поддержкой вашей камеры.

Что касается флетов: раз у вас там байер т.е. светофильтры, то в зависимости от освещения будет (не может не быть) разбаланс по каналам (т.е. серая карта имеет разные сигналы в каналах), а значит нужен баланс белого.
Его можно накладывать до дебайера, можно после (тоже нормально выходит), но обычно делают до.

[identity profile] eddy-em.livejournal.com 2017-02-01 05:56 pm (UTC)(link)
Гаммы никакой нет; порядок - little endian; 640 столбцов на 480 строк; каков порядок считывания данных, сказать не могу: в даташите на камеру этого не нашел, по RS-232 они передаются построчно.

Про баланс белого — имеете в виду деление на флэт?

[identity profile] alextutubalin.livejournal.com 2017-02-01 06:14 pm (UTC)(link)
Ну можно и на флэт, если вы уверены что он флэт (а обеспечить равномерность освещения ну очень сложно).
Обычно просто на поканальные коэффициенты умножают.

Вот представьте хорошую серую карту (с плоским спектром).
Вы на нее посветили лампой накаливания (сильно желтая), а другой раз - голубым небом (сильно синее).

Поканальные отклики (их отношение) будут же разные? А карта - как была серой, так и осталась.