PDA

Zobacz pełną wersję : NEF -> JPG w nietypowy sposób



vid3
11-08-2016, 15:16
Wątek dla programistów (amatorów) i osób zainteresowanych.

Wiem, napiszecie, że są sprawdzone (darmowe) narzędzia
które w profesjonalny sposób wykonują to co trzeba.
I czego więcej , po co wyważać otwarte drzw
lub też odbierać chleb programistom prof.

Ale jakby poszukać to program do rozwiązywania krzyżówki też się znajdzie.
Więc po co je rozwiązywać ?

Ale do brzegu.

Tytułowe przekształcenie Nefa w oczekiwany plik JPG
za pomocą darmowych narzędzi programistycznych
i własnych procedur na mieszanie w RGB, Lab, HSV, HDR, itd.
nie wymaga dużych środków finansowych - jedynie własnego czasu i sprzętu.


Co udało mi się zrobić :
Za pomocą języka C# (ups.. dlaczego nie C++ ?)
połączyłem bibliotekę Nikona ( wczytywanie NEF)
z bibliotekami CUDA i obliczeniami równoległymi (tu wymagana jest karta graficzna NVidii).

W efekcie otrzymujemy własny program
który szybko reaguje na suwaczki i krzywe
oraz wiemy dokładnie co się z obrazem dzieje.

Wszystko w kategoriach zabawy i odkrywania nieodkrytego.

Jeżeli kogoś temat zainteresował i chciałby
poznać szczegóły to zapraszam do wątku.

Ps.
Dlaczego C# a nie C++ ?
Nie mam nic przeciwko C++.
Ale w momencie gdy przesiadłem się na C#
pewne sprawy okazały się szybsze i przyjemniejsze.
Coś jak przesiadka na lepszy samochód.
I tak już zostało.
Pewne fragmenty kodu typowe dla karty graficznej pisze się w C++.

Dlaczego na tym forum ?
Liczę na wsparcie ( wtrącanie się) wykształconych teoretyków (i praktyków) światła i cienia.
:)

Zapraszam.

conio
12-08-2016, 10:35
Super.
To ja się dopytam, czy:
1. Nikonowskie biblioteki od razu udostępniają (zdemozaikowany) obraz. Tzn. czy da się z nich wyciągnąć to co robi np. dcraw, czy to samemu trzeba ogarnąć?
2. Planujesz OpenCL? (ja niestety mam tylko Radka, więc nie pocuduję)

vid3
12-08-2016, 12:13
Odpowiadam :)
1. Obraz zapisywany jest do przygotowanego obszaru pamięci w postaci 6 lub 3 (2,1) bajtów na piksel,
zależnie od źródła (NEF, JPEG) i wybranego profilu koloru. Może to być RGB, HLS, Gray, ...
Czyli całkowicie rozkodowany.
Jest to obraz po obróbce przez bibliotekę.
Tzn, można zadać wstępne parametry obróbki.
Oczywiście można też odczytać parametry z Exif-a.


2. Co do OpenCL to chyba już mi nie starczy czasu. Może kiedyś ...

conio
12-08-2016, 14:45
No to jak rozumiem, intencją jest stworzenie darmowego nef2Jjpg, opartego na tym co najlepsze - czyli dającej "najwięcej danych" nikonowskiej bibliotece dekodującej NEF i jednocześnie wydajniejszego i z możliwością "własnej" parametryzacji (mieszania w RGB, Lav, etc.)?
Idea bardzo mi się podoba, bo wg mojej opinii nie ma takiego rozwiązania (mylę się?). Z jednej strony są kompletne narzędzia nikonowskie typy View-NX, Capture NX-D, które mimo, że za free i wykorzystujące (zakładam) potencjał NEF, to, szczególnie Capture NX-D działający tragicznie wolno.
Z drugiej strony są całkowicie niezależne narzędzia, przy czym w całości bazujące na niezależnych bibliotekach (np. dcraw), czego skutkiem są czasem całkowicie nieprzewidywalne wyniki konwersji z RAW.
Jeżeli tak, to koncepcja stworzenia alternatywy jest jak najbardziej *słuszna*
Kwestia zasadniczo jedna, co dalej? Czy będzie jakiś .exe? Czy src?

Zelber
12-08-2016, 16:01
Sam planuję stworzyć coś bardzo podobnego, z tym że w cpp i prawdopodobnie na opencv(o ile będzie sensownie czytał Wb z nefow)

vid3
12-08-2016, 16:54
No to już coś. Jest nas więcej.

Co do samej biblioteki Nikona - to jest ona wolna.
Na tyle wolna, że nie ma co liczyć na przetwarzanie w locie grafiki.
Ale ważne, że rozkodowuje każdego Nef-a do postaci z którą można już się pobawić,
z taką głębią bitową jaką oferuje aparat.

A co do intencji to każdy może mieć inną.
W moim przypadku - chcę się pobawić z obrazem który ma większą zawartość informacji niż JPG.

Może pora przejść do szczegółów.
Bibliotekę pobieramy ze strony Nikona (https://sdk.nikonimaging.com/apply/).
Po mozolnej rejestracji, w końcu na pocztę dostajemy linka do zasobów które sobie życzymy.

Pobrać należy NEF(RAW)SDK w pliku S-SDKNEF-000BF-ALLIN.ZIP
Tam jest podstawowa biblioteka, dokumentacja, profile i kilka przykładów.

Zelber
12-08-2016, 18:46
Ja tworzę kombajn do pół automatycznej selekcji(odrzucanie zdjęć nieostrych)/opisu/ wysyłania zdjęć.

Z racji tego, że JPG'i z D4 pod względem szumu/detalu wyglądają jak gówno w przyszłości będę chciał dodać "demozaiker" z podstawowymi możliwościami obróbki, aczkolwiek na chwilę obecną ma to najniższy priorytet.