Page 1 of 2

PictView: Image orientation vs náhledy

Posted: 10 Oct 2006, 08:56
by ino
Zdravím,

všiml jsem si jedné dobné nesrovnalosti: ve fotoaparátu mám zapnutou funkci "Image rotation", která zaznamenává polohu fotoaparátu vzhledem k ose pohledu - v EXIF je to položka Orientation.

Při zobrazení v panelu v módu ALT+5 (Thumnails) jsou tyto údajě použity pro natočení snímku, ale pouze u snímků ve formátu NEF (RAW od Nikonu), kdežto snímky ve formátu JPEG otáčeny nejsou, ačkoliv oba snímky obsahují náhledy (jak jpeg tak i jpg), ale otáčen je pouze jeden znich.

viz screeshot:
Image
snímky: jpg nef

Posted: 10 Oct 2006, 16:11
by zarevak
Dobrý den,
náhledy fotek z Lumix LX2 jsou otáčeny v pořádku (jak interní náhled, tak upřesněný náhled později). Váš JPEG snímek je však při zobrazení interního (rychlého) náhledu zobrazen špatně a až později, kdy je načten celý snímek a zobrazen upřesněný náhled, je váš snímek zobrazen správně. Tipuju, že zde bude nějaký problém s uložením interního náhledu v JPEG souboru.
(upřesněný náhled PictView generuje z vlastních obrazových dat po načtení rychlých náhledů všech souborů a pokud je požadovaná velikost náhledů větší než uložený rychlý náhled)

Posted: 11 Oct 2006, 08:22
by ino
zarevak wrote:Dobrý den,
náhledy fotek z Lumix LX2 jsou otáčeny v pořádku (jak interní náhled, tak upřesněný náhled později). Váš JPEG snímek je však při zobrazení interního (rychlého) náhledu zobrazen špatně a až později, kdy je načten celý snímek a zobrazen upřesněný náhled, je váš snímek zobrazen správně. Tipuju, že zde bude nějaký problém s uložením interního náhledu v JPEG souboru.
(upřesněný náhled PictView generuje z vlastních obrazových dat po načtení rychlých náhledů všech souborů a pokud je požadovaná velikost náhledů větší než uložený rychlý náhled)
fain, tak jsem trochu laboroval.
fakta:
- oba obrázky DSC_6753.JPG DSC_6753.NEF jsou naprosto totožné (jsou vytvořeny ve stejný čas fotoaparátem v módu RAW+JPG) a bez žádných pozdějších úprav.
- oba obrázky obsahují thumbnail
- oba obrázky obsahují info že focená scéna je zachycena left-bottom (nahoře je skutečná levá strana a napravo horní strana)
- v módu zobrazení Thumbnail Alt+5 je do velikosti 160 px zobrazen náhled extrahovaný ze snímku a je zobrazen tak, jak je uložen, tzn. bez natočení které je definováno v EXIF - Orientation.
- při zvětšení velikosti na 161 px a více, je zobrazen zřejmě vygenerovaný náhled z celkového snímku, který již je natočen dle info z EXIFu.
- v daném adresáři nemám žádný thumbs.db (který by mohl nějak ovlivňovat cachování náhledů)
- ze souboru NEF se vždy zobrazí náhled extrahovaný ze snímku a je pootočen dle informací vEXIFu.

Očekával bych natočení všech snímků dle informací z EXIFu pokud to lze (a dle otoční .nef náhledu to lze).

V prohlížeči PictView očekával to stejné chování, s možností toto natáčení potlačit umožnit tak zobrazení snímků tak jak jsou.

Posted: 11 Oct 2006, 08:27
by ino
ino wrote: tak jsem trochu laboroval.
Ještě doplním screenshoty:

velikost náhledu 160 pixelů:
Image

velikost náhledu 161 pixelů:
Image

Posted: 11 Oct 2006, 16:16
by zarevak
Osobně si myslím, že bude rozdíl v uložení náhledů, kde jeden z našich fotoaparátů je ukládá otočené a druhý neotočené (jak to má podle specifikace být, netuším). Konkrétní náhled z JPEGu na ověření extrahovat neumím, takže jen tipuji....

Můj testovací obrázek je ke stažení:
http://temp.zarevak.net/P1000005.JPG (pozor: 3,81MB!)

Posted: 11 Oct 2006, 16:59
by ino
zarevak wrote:Osobně si myslím, že bude rozdíl v uložení náhledů, kde jeden z našich fotoaparátů je ukládá otočené a druhý neotočené (jak to má podle specifikace být, netuším). Konkrétní náhled z JPEGu na ověření extrahovat neumím, takže jen tipuji....

Můj testovací obrázek je ke stažení:
http://temp.zarevak.net/P1000005.JPG (pozor: 3,81MB!)
Velice zajímavé...
Náhled v JPEG z Nikonu se neotáčí a z Panasonicu ano.
Co se týče uložení náhledu, zdá se, že jsou uloženy stejně, tj. tak jak jsou snímky zachyceny, viz screenshot:
Image

Posted: 11 Oct 2006, 17:37
by Datalog
Trochu off-topic, ale prosím, jakým programem extrahujete ty exif-ovské náhledy. Nejlépe freeware. Chvíli jsem googlil (jyxoval) ale nenalezl vhodný vyhledávací string co by mne navedl k cíli.

Posted: 11 Oct 2006, 23:35
by jis
Např. starý dobrý japonský freeware Exif Reader:
http://www.takenet.or.jp/~ryuuji/miniso ... d/english/

Posted: 11 Oct 2006, 23:42
by ino
Datalog wrote:Trochu off-topic, ale prosím, jakým programem extrahujete ty exif-ovské náhledy. Nejlépe freeware. Chvíli jsem googlil (jyxoval) ale nenalezl vhodný vyhledávací string co by mne navedl k cíli.
Apache+PHP konkretne zde: http://cz.php.net/manual/en/function.exif-thumbnail.php

Posted: 12 Oct 2006, 01:08
by Datalog
Tisíceré díky.

ino: Ten apache+php, to mne mohlo napadnout :lol: , to je skvělý (z mého pohledu nouzový, ale skvělý) nápad.

jis: To vypadá moc pěkně, přesně to jsem chtěl. Díky

Chyba objevena!

Posted: 12 Oct 2006, 03:18
by zarevak
Našel jsem zdroj probému!! 8)

pokud si vypíšete obsah všech EXIF informací pomocí příkladu uvedeného na stránce: http://cz.php.net/manual/en/function.exif-read-data.php
Konkrétně:

Code: Select all

$exif = exif_read_data('DSC_6753.JPG', 0, true);
foreach ($exif as $key => $section) {
   foreach ($section as $name => $val) {
       echo "$key.$name: $val<br />\n";
   }
}
Pak zjistíte, že Váš obrázek narozdíl mého neobsahuje THUMBNAIL.Orientation: 8
(ve Vámi doporučeném Exif Readeru je tato položka u mého souboru k nalezení v části Thumbnail Information - Orientation : bottom)

Z toho vyplývá otázka: Co s takovým (chybným) souborem? Odhadnout otočení náhledu podle otočení celého obrázku? (co když fotoaparát již náhled otočil sám? (zda je to vůbec možné)) Udělat vyjímku a odhadovat otočení jen u některých (chybných) fotoaparátů?

Re: Chyba objevena!

Posted: 12 Oct 2006, 04:03
by ino
zarevak wrote:Našel jsem zdroj probému!! 8)
Bravo!
zarevak wrote: Pak zjistíte, že Váš obrázek narozdíl mého neobsahuje THUMBNAIL.Orientation: 8
(ve Vámi doporučeném Exif Readeru je tato položka u mého souboru k nalezení v části Thumbnail Information - Orientation : bottom)
Vida, to jsem vůbec netušil, že lze nastavit orientaci jak pro snímek, tak i pro náhled zvlášť.
zarevak wrote: Z toho vyplývá otázka: Co s takovým (chybným) souborem? Odhadnout otočení náhledu podle otočení celého obrázku? (co když fotoaparát již náhled otočil sám? (zda je to vůbec možné)) Udělat vyjímku a odhadovat otočení jen u některých (chybných) fotoaparátů?
Salamander tedy otáčí náhledy správně. Vždy si přečte informaci o otočení přesně té části snímku, se kterou právě pracuje náhled/celý snímek (tady je vidět preciznost s jakou je Slamander vyvíjen!).

Otázkou je, kolik typů fotoaparátu uvádí respektive neuvádí tuto hodnotu jako onen Nikon. (možná by to mohli skouknout pánové v altapu, tuším že teď mají peknou sbírku RAW snímků i s exify...)

Každopádně ráno píšu na Nikon, chtělo by to zaktualizovat firmware...

Re: Chyba objevena!

Posted: 12 Oct 2006, 10:33
by ino
ino wrote:Každopádně ráno píšu na Nikon, chtělo by to zaktualizovat firmware...
Takže na Nikon jsem napsal a čekám na odpověď.

Nicméně, nehledě k faktu zda bude moje žádost u Nikonu vyřízena kladně či nikoliv, mám tu hromadu snímků, kde v EXIFu chybí položka Orientation a tyto snímky nebudu mít nikdy natočeny :cry:

Proto si dovoluji navrhnout řešení:
- umožnit hledání direktivy Orientation v EXIFu tak, aby po nenalezení této položky v sekci Thumbnail ji zkusil hledat o úroveň výše, tedy v Main Information.

Re: Chyba objevena!

Posted: 12 Oct 2006, 12:59
by Jan Patera
zarevak wrote:Pak zjistíte, že Váš obrázek narozdíl mého neobsahuje THUMBNAIL.Orientation: 8
(ve Vámi doporučeném Exif Readeru je tato položka u mého souboru k nalezení v části Thumbnail Information - Orientation : bottom)
Z toho vyplývá otázka: Co s takovým (chybným) souborem? Odhadnout otočení náhledu podle otočení celého obrázku? (co když fotoaparát již náhled otočil sám? (zda je to vůbec možné)) Udělat vyjímku a odhadovat otočení jen u některých (chybných) fotoaparátů?
Zdravim! Situace v PictView je mene prozaicka.
1) JPEGy se ctou ruznymi zpusoby v zavislosti na tom, zda se hleda nahled nebo cte cely obrazek
2) EXIF v JPEGu se nikdy necte jako takovy, pouze se tam hrubou silou hledaji nektere zajimave sekvence bajtu. Tudiz je jedno, zda orientace patri k hlavnimu obrazku, nahledu nebo necemu jinemu. Duvodem byla hlavne rychlost.
3) EXIF data (napr. uvnitr JPEG markeru APP1) je de facto TIFF
4) NEF je TIFF + dalsi data. Soucasti TIFFu je orientace. Pri cteni TIFFu jako takoveho se orientace pri thumbnailovani vzdy pouzije
5) jeden JPEG muze obsahovat klidne 3 (i ruzne) nahledy (napr. po editaci ve Photoshopu)
6) heuristika, ktera detekuje natoceni nahledu uvnitr JPEGu vuci vlastnimu obrazku, je pri thumbnalovani pouzivana jiz nekolik let
7) Rada programu (typickou ukazkou je IrfanView) obsahuje (nejen tzv. bezeztratovou) rotaci. Kdyz ji uzivatel pouzije, tyto programy nejenze neaktualizuji EXIF info, ale ani nahled. Podobne situace nastavaji napriklad pri orezavani
8 ) Diky predchozim dvema bodum jsem uz dostal radu bug reportu, ze ukazujeme nahled vzhuru nohama, protoze fakt neumim odhadnout, zda uzivatel tocil doleva nebo doprava
9) Rada programu nerozumi EXIF infu, a pri editaci EXIF data castecne modifikuji, ale spoustu dat poskodi. Takze my diky bodu 2) dokazeme najit informace, ktere jine programy uz nedohledaji...
10) A samozrejme existuji fotaky (vesmes ty starsi nez 2-3 roky), ktere tvrdosijne ukladaji orientaci bottom-left, bez ohledu na skutecnost


Ano, chci to cele predelat. Ale bohuzel nestiham :-(

Re: PictView: Image orientation vs náhledy

Posted: 06 Jan 2012, 13:24
by Jan Rysavy
Obdobný problém na anglické části fóra: http://forum.altap.cz/viewtopic.php?f=2&t=5277