PixelShift2DNG: поддержка камер пентакс

Наконец дошли руки приделать поддержку камер Pentax (K3-II, K1, K1-II) к SonyPixelShift2DNG. Программу пришлось, понятно, переименовать.

Доступно тут: PixelShift2DNG (beta): Convert Pentax K1/K3-II and Sony A7R-III Pixel Shift Files to DNG

На текущий момент программа делает то же что и в случае Sony: 4 отдельных кадра, содержащихся в PEF/DNG файле из камеры - объединяются в один 3-канальный DNG.  Каковой DNG должны полноценно жрать любые программы (но из попробованных, DXO Photolab не жрет, поскольку вообще конвертированные DNG отвергает. С остальными проблем не обнаружено).

В принципе, Адобовские программы (и, насколько удалось понять, C1), объединяют 4 фрейма из этих камер и сами, т.е. поддержка нужна для всяких конверторов "второго плана", но тем не менее.

Motion correction не поддерживается, поскольку эти теги не документированы и как ими пользоваться - пока неясно.

В планах еще добавить режим split, когда 4 фрейма из PEF/DNG будут сохраняться как 4 отдельных (байеровских) DNG-файла. Но это только если будет спрос на это (у нас самих камер таких нет и делать потому что можем ну тоже времени жалко)

 

Comments

Я вчера обнаружил, что K-3 II 9 месяцев как снят с производства, а замены так и нет, и понял, что с Pentax надо уходить :-(

Сдается мне, что фотовендорам сейчас вообще очень плохо всем.

Ну плохо-не-плохо, но у Canon с Nikon такой безнадёги не видно, не говоря уже о Sony с Fuji.
Panasonic за счёт видео живёт, видимо. Но на µ4/3 я даже не смотрю.

У меня просто сгнил мой K-5, и я понял, что мой поставщик аддиктивных веществ вообще ничего не ожет предложить на замену. K-P это не тот уровень, а K-1 II это FullFrame, это оптику тоже менять.

Привет.

Оптику под К-1 менять не надо. Да, ты будешь носить грамм 200, которые мог бы не носить -- но кропнутая линза не будет же работать хуже на ФФ. А лучше будет -- поле часто поширше на самом деле, кроп в квадрат будет самое то.

36/2.5 = 15Mpix. Ну в квадрат, да, будет 20, если квадрат ок.

Дык у той камеры, что пришла в негодность, 16 и есть. Собственно плотность пикселей на этих матрицах одинакова.

зато качество лучше (у FF) = http://www.photonstophotos.net/Charts/PDR.htm#Pentax%20K-1%20II,Pentax%2...(APS-C),Pentax%20K-5%20IIs

Z / V

А по поводу адобы... Она ужасно объединяет, даже не пытаясь как-то обработать зоны с движением. И это объединение не отключить, т.е. функция становится совершенно бессмысленной потому что даже ручное маскирование этих зон потом в фотошопе не сделать, не говоря уже об автоматическом.

И именно в этом могла бы быть крутость вашего софта... Ну, да мы это уже обсуждали однажды а, учитывая, что я так и не куплю себе больше K-3 II, то что тут разговаривать :-(

Ну про пентакс нас просило больше одного человека.
А работы там было примерно на 2 дня (и заодно багу нашли одну в LibRaw). Это именно про объединение, без movement detection.

А вот автоматика - дело такое, непростое. И заняться ей - ну вот в планах у меня есть в Монголии поснимать пиксель-шифтом, а дальше глядишь и жизнь заставит.

А ты опять едешь!? Я думал ты только пиаришь :-)

Мне безумно там нравится.

А я в этом году после твоего анонса думал-думал-думал и решил что не хотим мы 20 дней в машине сидеть. Даже по пол-дня. Очень устаём от этого, отдых так себе выйдет.

Вот если бы следом можно было на мотоцикле ехать — я бы вот один (без жены) может и рванул (права и подготовка у меня есть). На мотоцикле весело.

Ну это надо таких же буйных выводок (+ машина поддержки). Их (буйных) там в принципе много катается.

Но вот есть особенность: брод, который для крузака просто брод, для мотоцикла - серьезное препятствие.

Ну, можно к машинным добавить пару буйных. Машина поддержки же с машинами идёт :-)

Про броды понятно, но тут как раз может сролять L200 поддержки :-)

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

Т.е. нам там заочно тоже безумно нравится (особенно после последнего The Grand Tour), но вот то, что это автомобильный маршрут всё же отвратило, увы.

А там по сути два варианта
- либо местные перелеты, а дальше на монгольских уазиках-буханках
- либо на нормальных машинах, но без перелетов.

Но с перелетами - ну две локации ты посетишь (считая Хонгорын-Элс и Баян-Заг за одну), ну три. Перелеты ж тоже все через центр.

Ну, можно меньше но лучше, на лошадях например. По Алтаю мы на лошадях ходили — отлично было.

Понятно что это другие приоритеты и форматы всякие важны и нужны, ну вот не подходит нашим задницам и вестибулярным аппаратам формат 23 дня из которых 20 есть с переездами. И как я понимаю, из этих 20 переездов дофига длинных, по 6-8 часов, да?

Плюс совсем уж наша индивидуальная особенность — мы очень не любим групповые тайминги. Ну то есть, однажды утром может захотеться собирать лагерь не час а четыре часа потому что ЛЕНЬ. Или сесть в буддистском монастыре и просидеть часов 5 просто так (это вот у меня сплошь и рядом, я вообще в шаге от того что бы признать себя буддистом и начать выполнять обеты). Ну да, придётся где-то что-то срезать потом потому что тут мы затупили. Нормально, динамическое планирование. В группе это невозможно и часто (для нас) является источником глухого раздражения — умом-то всё понимаешь, а эмоцию давить приходится.

Эх.

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

Но просто для понимания - весь Алтай, от Горно-Алтайска до границы - в этой Монгольской Одиссее проезжается за один день (но это, конечно, самый большой дневной пробег и вообще 10% всего пробега).

Да, я это понимаю, и это-то и ужасает. Трансфер из Новосиба в верховья Катуни — одно из худших моих путевых воспоминаний, в Top-3 точно. А я, надо сказать, уже много где, как и сколько наездил самыми разными способами и средствами.

"Верховья Катуни" - это в Усть-Коксу что ли? Это не верховья, это уже среднее течение.

Трансфер из Горно-Алтайска в (действительно) верховья Катуни - один из лучших (в смысле видов) на моей памяти, но трансферился я туда вертолетом.

А Новосиб-Усть-Кокса, одним днем, это где-то 500 нормального асфальта и еще наверное 200 хреновой дороги, так да, можно устать.

Поднял трек — Малый Яломан. Нам анонсировали как граница между верхней и средней Катунью.

Ну стандартный комфортный, никуда не торопясь, переезд - это Барнаул - Яломан.
А тут еще +250км, ну да.

Ну там ещё качество автобуса, конечно, сыграло. Наверное на Крузаке или Делике было бы полегче :-)

Не, ну Новосиб-Яломан - это далеко, конечно. Плюс автобус, который, поди, фуру может обогнать только под горку....

Меж тем, я заглянул в схему полетов внутри Монголии и вижу там следующее:
Хермен-Цав, жемчужина маршрута и вообще ландшафт мирового класса - находится в трех днях пути от ближайшего аэропорта, хоть Гоби-Алтай, хоть Даланзадгад.
И чтобы туда попасть (а оно того стоит) - ну можно из Даланзадгада заложить колечко по всем намоленным местам юго-запада Монголии, это будет дней на 10-12. Или съездить строго в Хермен-Цав, это будет неделя. В обоих случаях это будет тот самый формат, которого ты так не хочешь.

А другого способа нет, в Гурван-Тэс (день пути до Хермен-Цав) - ничего не летает, похоже, может только если чартер.

«ну можно из Даланзадгада заложить колечко по всем намоленным местам юго-запада Монголии, это будет дней на 10-12.»
А какого формата я так не хочу? Мне видится, что если в формате еждневных переездов это 10-12 дней, то надо расширить до 20-24 дней, с днёвками через день и дорогой через день, и это будет тот формат, которого я хочу, видимо :-)

На самом деле — ну вот есть Мьянма. Она гораздо меньше (678500км² vs 1564116 км² —хм, всего-то в два раза, не ожидал, Меркаторовская проекция — зло) Монголии. Так вот, мы там были 2 раза по 25 дней и, при учёте приличных дорог, автобусов из любой деревни в любую и массы местных перелётов, мы видели далеко не всё (собираемся ехать в третий раз). При этом это были для нас нормальные поездки, мы, кажется, нигде не ночевали больше 3-х ночей подряд, но и мало в какие два дня имели переезды в оба, т.е. типично было как раз приехать — полный день — уехать, и только иногда два полных дня. Это вот нормальный для нас темп. Я понимаю, что сравнение очень условное — плотность Монголии гораздо ниже плотности Мьянмы, и вообще сравнивать страну с 74 чел/км² со страной с 2 чел/км² некорректно, но я к тому, что мы любим медленно и маленькими кусочками :-)

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

Т.е. вот дневка в Хермен-Цав. Да, там надо делать дневку, потому что место такое. Но реально дневка выглядит так, что вот утром погуляли, ну до 11 утра скажем. И после 17-ти. А еще 6 часов надо как-то провести, что непросто (да, тенты, тень, но тем не менее). От погоды, конечно, предполагаем что песчаной бури нет. Посевернее оно конечно попроще.

И вариант что ты днем едешь, конечно с остановками, кадр снять, пообедать, просто ноги размять и т.п. - он хороший.
Средний пробег в 2017-м у нас был 150км/день за 7 часов с начала до окончания движения. Средняя скорость в движении - ну лень смотреть графики в очередной раз, но по памяти - 40-50.
Т.е. реально ты в движении - 3-4 часа едешь, а еще 4-3 часа щелкаешь лицом. То в монастырь буддийский, то такыр поснимать, то шалман придорожный и т.п. (у нас еще было два выкапывания машин из песка, один большой ремонт, два малых и одна установка лендровера на ровный киль).

Средние пробеги - это только по Монголии, от границы до границы. Ну и с той поправкой, что вдоль Хубсугула, по тамошним болотам, особо не разгонишься. По степной части наверное среднее все-таки ближе к 170-180 (лень считать опять)

Жарко — это сколько? 35? 40? :-)

Я не как термометр, поэтому не знаю, просто не готов ответить. На солнце я думаю +600 где-то, местами 6000.
там жарко и сухо, это не так как в питере жарко и сыро :)

Я, скорее, сравниваю с ЮВА, где мы по горам лазаем в +30 в тени :-) Но там тоже сыро, конечно.

С тенью проблема: https://scontent.fhel6-1.fna.fbcdn.net/v/t31.0-8/19983487_10212138477290...

(меня от таких мест безумно прет, простор же)

UPD: фейсбук конечно пожал, ужас как.

Вот эта не такая помятая фейсбуком: https://scontent.fhel6-1.fna.fbcdn.net/v/t31.0-8/20045363_10212138522492...

красота, конечно, адовая.

Но глобально ты прав в том смысле, что если скажем на 7-10 дней не ездили в авто-формате, то 23 дня могут оказаться невыносимыми и что тогда?

(Хермен-Цав должен быть в Израиле, конечно)

Возникла потребность сделать дебайер для массиву данных. Он получен с камеры и представляет из себя просто двумерный массив в памяти. Какую функцию можно из libraw можно для этого использовать? Судя по описанию она работает с файлами, полученных с разных камер. А, мне нужно просто с массивом, который расположен в паяти. Используемый компилятор Delphi-7.

В свежих LibRaw есть вызов open_bayer() и пример openbayer_sample.cpp, ровно под эту потребность.

То есть достаточно из DLL импортировать вот такую ф-цию и её вызывать?
open_bayer(unsigned char *data, unsigned datalen, ushort _raw_width, ushort _raw_height,
ushort _left_margin, ushort _top_margin, ushort _right_margin, ushort _bottom_margin,
unsigned char procflags, unsigned char bayer_pattern, unsigned unused_bits,
unsigned otherflags, unsigned black_level);
Этот вызов получается, нужно портировать в Delphi. unsigned - это я так понял 32-х разрядное беззнаковое? Обычно это unsigned int.
В примере openbayer_sample.cpp эта ф-ция правда является методом некоего объекта rp, который имеет тип LibRaw. Не очень понятно, что это за объект.

да, rp - это объект LibRaw, C++

Как из дельфи работать с C++ я не знаю.

Ну так можно из С++ вызвать open_bayer не используя её в качестве метода объекта rp? Если да, то данную функцию можно вызывать из любого языка, не только из Delphi. Нужно лишь портировать вызов с С++ на Delphi. Мне много где так удавалось сделать.

open_bayer - это метод объекта LibRaw.

Уже это выяснил. Точка доступа в libraw.dll к функции open_bayer не найдена. Это плохо. DLL получается не универсальная и языковозависимая. Это чтобы выкрутиться придётся писать ещё одну DLL уже на мрачном С++, чтобы она экспортироала правильно функцию open_bayer, которую можно вызывать из любого языка. Я так понял результат open_bayer возвращает в том же входном массиве?

Я так понял результат open_bayer возвращает в том же входном массиве?

Нет, вы поняли неверно.  LibRaw вообще работает на объекте LibRaw, каких-то отдельных вызовов "не в этом контексте" там и нет (из существенных).  LibRaw::open_bayer() - это аналог LibRaw::open_file, но открывает не файл, а массив в памяти.

То, что на объекте я понял. Так куда возвращается результат дебайеринга? Судя по списку входных параметров open_bayer возвращается во входной массив. А, иначе куда?

Результат дебайеризации (после open_.../unpack()/dcraw_process()) будет у объекта LibRaw внутри (что, IMHO, достаточно ясно написано в документации/примерах).

В поддиректории doc лежит несколько html файлов, к которых нет ничего про open_bayer. В общем, я понял, что libraw крайне неудобная библиотека.

Ну да, для вашей задачи она и не предназначена, open_bayer прикручен сбоку изолентой.

Да просто поток несжатого сырого видео идёт с камеры и огромный проект не в одну сотню тысяч строк кода написан на Delphi. Да и всё написано на Delphi за долгие годы. Debayer сейчас делаю ф-цией из SDK pvAPI для камер от Allied Vision Technologies. Но, он довольно скудный и не имеет настроек. Даёт вполне сносный результат для индустриальных применений.

Тогда для вашей задачи оно еще более не предназначено.

Да вот уже несколько дней в поисках. Можно конечно самому написать, но это потом оптимизировать его и делать более быстрым. Возня. Не знаю, думаю, может попробовать OpenCV.