eddy_em: (Костерок)
[personal profile] eddy_em
Итак, поковырявшись немного с libraw, я плюнул: разобраться в недрах такого бешеного количества кода просто нереально! Поэтому пока выбираю более медленную, но все-таки работающую "Self Similarity Driven Demosaicking". В принципе, цветопередача получается вполне нормальная, я вывел на монитор эту картинку и после обработки получил:
img

Саму утилиту тоже чуть подправил: добавил простой "калькулятор экспозиций" (надо его по звездному небу проверить, в комнате он давал сходимость на 3-5 итерациях).

К сожалению, авторы вышеозвученного метода дебайеризации не разрешают выкладывать измененный вариант своего кода — только пользоваться в научных или академических целях. Саму утилиту я чуть изменил: добавил туда работу с libgd, при ее помощи собственно загружаю tiff и сохраняю цветной jpeg с отметкой времени. Чтобы не мучиться с fits-файлами, я в утилите sbig340 при сохранении файлов модифицирую mtime так, чтобы оно соответствовало времени начала экспозиции. Его и вывожу на изображение. Если будет необходимо выводить еще и длительность экспозиции, придется сохранять выхлоп в FITS (возможно, для поиска звезд tiff'а не хватит).

В принципе, получилось вполне KISS и юниксвейно: одна утилита собирает изображения, другая генерирует цветную картинку. Возможно, будет еще и третья, считающая процент облачности. Автоэкспозицию думаю возложить на самого демона, работающего с камерой. Допишу, как будет время, "демонизатор". Думаю, на первых порах пинать его снаружи нет необходимости — пусть будет "демон в себе".

UPD вытащил камеру в окно. Жаль, что с макетных мастерских светит хороший фонарь, но уже по кадрам понятно, что для звездного неба надо будет немного переиначить алгоритм вычисления оптимальной экспозиции: попытка впихнуть медиану в примерно середину диапазона приводит к конкретному пересвету. Как пример — три экспозиции:
img20
Экспозиция 20 секунд

img30
Экспозиция 30 секунд

img50
Экспозиция 50 секунд

На третьем кадре мимо проехала машина, а Венеру затянула туча. Марс с Венерой лучше всего видно на втором кадре.

В общем, нужно брать камеру, и ехать подальше от засветки. Ну или допиливать все непосредственно во время эксплуатации (этот вариант ближе к реальности, т.к. сколько же all-sky у меня в кабинете будет стоять? Народ требует зрелищ!).

Date: 2017-02-07 03:31 pm (UTC)
From: [identity profile] electrodyssey.livejournal.com
Выглядит футуристично, по крутости бьёт современное искусство только так.

Date: 2017-02-07 03:35 pm (UTC)
From: [identity profile] eddy-em.livejournal.com
Я еще картинок добавил.

Date: 2017-02-07 03:42 pm (UTC)
From: [identity profile] electrodyssey.livejournal.com
Начинаю думать, что скоро современное искусство целиком уйдёт в инженерную область. Там и смысл есть и эстетика вполне соответствует. Картинки кстати тоже красивые.

Date: 2017-02-07 03:44 pm (UTC)
From: [identity profile] eddy-em.livejournal.com
У меня "современное искусство" ассоциируется только с размазанными по стенам экскрементами и прибитым к брусчатке гениталиям.
В прошлом году у нас в поселке была "выставка". Экскрементов в чистом виде, к счастью, не было, но "говна и палок" хватало.

Date: 2017-02-07 03:52 pm (UTC)
From: [identity profile] electrodyssey.livejournal.com
Хехе, у меня почему-то больше с чешским дизайном 70х-80х и журналами Project за 80е годы, тогда гениталий на стенках не было.

Date: 2017-02-07 04:06 pm (UTC)
From: [identity profile] wayerr.livejournal.com
кстати о libraw, народ пишет (https://www.linux.org.ru/gallery/screenshots/11958691?cid=11961399) что есть такая штука как rawspeed и она вроде как лучше, хотя хз будет ли там нужный тебе формат

Date: 2017-02-07 04:59 pm (UTC)
From: [identity profile] alextutubalin.livejournal.com
rawspeed - это только декодер (файл - байты байера в памяти)
С этим проблем у топикстартера нет.

Демозаики и прочего постпроцессинга в rawspeed нет.

А как декодер - отличная библиотека (libraw умеет ее использовать в качестве декодера)

Date: 2017-02-07 05:32 pm (UTC)
From: [identity profile] eddy-em.livejournal.com
Кстати, в этой камере действительно ПЗСка от Kodak (KAI-340).

Date: 2017-02-07 05:43 pm (UTC)
From: [identity profile] alextutubalin.livejournal.com
Но нет кодаковской прошивки, которая жмет данные.

Date: 2017-02-07 05:43 pm (UTC)
From: [identity profile] alextutubalin.livejournal.com
А, не, не жмет, YUV там вроде.

Date: 2017-02-07 06:03 pm (UTC)
From: [identity profile] eddy-em.livejournal.com
Что жмет? Зачем жмет?

Date: 2017-02-07 06:10 pm (UTC)
From: [identity profile] alextutubalin.livejournal.com
На этом чипе были C330 и C603 кодаковские

Формат данных там - YCbCr. Из экономии, вероятно.

Date: 2017-02-07 06:25 pm (UTC)
From: [identity profile] eddy-em.livejournal.com
Ну, эта камера к ним отношения не имеет.

Date: 2017-02-07 06:31 pm (UTC)
From: [identity profile] alextutubalin.livejournal.com
Ну вот когда вы поменяли строчку, но оставили название камеры - вы попали в кодаковский декодер в результате.

Date: 2017-02-07 06:34 pm (UTC)
From: [identity profile] eddy-em.livejournal.com
Дык, вот и интересно: как сообщить библиотеке, что у меня сырые некодированные uint16_t в порядке BGGR. Хотя, на фоне 1-2минутных экспозиций те 4-5 секунд, что работает дебайеризатор — фигня.

Date: 2017-02-07 06:46 pm (UTC)
From: [identity profile] alextutubalin.livejournal.com
Ну вот ту строчку (или несколько), или подать ее как custom camera

И LibRaw::open_buffer()

Date: 2017-02-07 06:57 pm (UTC)
From: [identity profile] eddy-em.livejournal.com
А изображение переворачивать на 180° (чтобы был не BGGR, а RGGB), а потом обратно? Или все-таки есть интерфейс для задания порядка фильтров в квадрате?

Date: 2017-02-07 07:20 pm (UTC)
From: [identity profile] alextutubalin.livejournal.com
Я ж писал, 9-е поле в строчке поподбирать.

Можно еще ручками imgdata.idata.filters задавать (менять)

Date: 2017-02-07 07:28 pm (UTC)
From: [identity profile] eddy-em.livejournal.com
Ух, ядрен батон! Надо будет как-нибудь попробовать.

Date: 2017-02-07 07:34 pm (UTC)
From: [identity profile] alextutubalin.livejournal.com
Ну вот такую же строчку (строчки) можно
прицепить к
imgdata.params.custom_camera_strings (это char **, соответственно последняя строчка в этом массиве должна быть NULL)
И дальше оно типа само.

Но там есть бага, там срабатывает по последнему размеру, а не по первому (а custom - обрабатываются первыми), поэтому кодак все едино придется убирать.

Формат строчки описан тут: https://www.rawdigger.ru/usermanual/preferences
(последний раздел, Поддержка нестандартных камер)

Date: 2017-02-07 07:36 pm (UTC)
From: [identity profile] eddy-em.livejournal.com
Проще было бы сразу "дебайеризатору" нужные данные подсунуть, а не бодаться с фильтрами. Как-то все излишне автоматизировано.

Date: 2017-02-07 07:38 pm (UTC)
From: [identity profile] alextutubalin.livejournal.com
Потому что библиотека - для другого.

Ее основное назначение - разбирать файлики (и не только данные, но и всякие EXIF/etc) от "настоящих фотокамер"

Сама по себе дебайеризайция - не проблема. Ну возьмите OpenCV

Date: 2017-02-07 07:38 pm (UTC)
From: [identity profile] eddy-em.livejournal.com
OpenCV — ни в коем случае! Слишком жирно.

Date: 2017-02-07 07:49 pm (UTC)
From: [identity profile] alextutubalin.livejournal.com
На самом деле вот вы убедили даже.

То есть вот интерфейса вида "open_bayer" не хватает.
Всякие писатели обработки с андроидных камер - будут рады.

То есть вот надо дать возможность собственно ту же "строчку", но задавать через API. Те же ~15 параметров.

Я приделаю, но сроков не обещаю, потому что как-то вот совсем другим занимаюсь.

Date: 2017-02-07 07:50 pm (UTC)
From: [identity profile] alextutubalin.livejournal.com
Но если через недельку пнете по E-mail (или ответив на этот комментарий) - будет ОК. Я со срочным скорее всего разделаюсь, а делов то там - ну на пару часов отсилы, скорее меньше.

Date: 2017-02-07 08:13 pm (UTC)
From: [identity profile] eddy-em.livejournal.com
Спасибо!
Мне особо не горит. Если будет интерфейс в официальной ветке, так вообще будет здорово!

Date: 2017-02-07 08:30 pm (UTC)
From: [identity profile] alextutubalin.livejournal.com
В официальной, конечно. В 0.19 появится.

На самом деле - просят примерно пару раз в год.

Date: 2017-02-07 04:23 pm (UTC)
From: [identity profile] nikka lesa (from livejournal.com)
В прыдущих постах казалось, что артефакты на картинках у вас создаются на этапе дебайеризации. Но проблемы, наверное, возникают на каком-то другом этапе.

Вот эти места выглядят ненормально:
https://i.imgur.com/hVNVMOj.png

Напоминает проблемы блокого кодирования. Но у вас джипеги приличного уровня сжатия (quality = 90, YCbCr4:4:4). И если исходник был бы качественный, то такие артефакты не должны были появиться.

Date: 2017-02-07 07:04 pm (UTC)
From: [identity profile] eddy-em.livejournal.com
Простые "горячие пиксели", которые сбивают с толку алгоритм. Специально сравнил jpeg с tiff — там то же самое. Еще на матрице несколько битых пикселей есть. Но за ту цену, что ее купили (в интернете 2.5 килобакса, значит, после растаможки и накладных все 5 получилось) это нормально. Даже за 10 килобаксов чипы хреновые.

May 2025

S M T W T F S
    123
45678910
11121314151617
1819202122 2324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 23rd, 2025 02:52 pm
Powered by Dreamwidth Studios