Objektiivin ja kameran yhteinen piirtokyky

Objektiivit, filtterit, loitot jne.
Jovala
Viestit: 615
Liittynyt: Marras 19, 2010 13 : 26
Paikkakunta: Espoo

Viesti Kirjoittaja Jovala »

Tein ohjelmaan muutoksen, jota OlliR ehdotti: Se osaa ottaa vain yhden värikanavan solut mukaan kuvaan.
Tässä tulos, kun vain vihreät on otettu kuvatiedostoon. Alkuperäisessä kuvassahan on tasan puolet vihreitä:
Kuva
Ainakin noi tekstit kärsii rutkasti, mutta itse viuhka ei niinkään. Saattaa olla jopa helpompi arvioida missä sumentuminen on MTF50 luokkaa.

PS. Imatest hemmot kirjoittaa näistä visuaalitestauksista:
http://www.imatest.com/docs/sharpness/
Traditional “resolution” measurements involve observing an image of a bar pattern (often the USAF 1951 chart), and looking for the highest spatial frequency (in lp/mm) where the bars are visibly distinct. This measurement, also called “vanishing resolution”, corresponds to an MTF of roughly 10-20%. Because this is the spatial frequency where image information disappears— where it isn’t visible, and because it is strongly dependent on observer bias, it’s a poor indicator of image sharpness.
(Editorin huomautus: Hemmot kauppaavat omaa järjestelmäänsä)
Viimeksi muokannut Jovala, Touko 06, 2015 17 : 53. Yhteensä muokattu 2 kertaa.
Satunnainen kuvailija. Järki järkeistää käyttäytymistäni kuin lobbari.
Negatiiveista positiiveja: VMP Värillisen Maskin Poistaja.
Cloudcity. Uuden ajan pilvipalvelu.
Rockford
Viestit: 7318
Liittynyt: Loka 05, 2004 10 : 06
Paikkakunta: Oulu
Viesti:

Viesti Kirjoittaja Rockford »

Jovala kirjoitti:Siihen tämä nyt meni, että oli kirjoitettava ohjelmanpätkä, jolla pääsee käsittelemään kuvatiedoston raw-dataa suoraan. Kun jäi kaikumaan korviin tuo raw-konverttereiden tekemä demosaic ja värikanavien kaivaminen esiin, ottamalla mukaan läheisten solujen valotuksia. Tästähän seuraa myös epäterävöitymistä.

Tein ohjelman, joka säilyttää kuvat 16-bitin muodossa (mun kamerasta irtoaa 12-bittiä per solu), mutta ei tee värisävyjä. Se itse asiassa muuttaa kaikista R, G ja B-tyypin soluista tulevan tavaran saman arvoiseksi harmaasävyksi (kuvasta osoitetaan musta ja vaalea referenssi).
Mielenkiintoisia tuloksia olet saanut ohjelmallasi. Jäin kuitenkin miettimään että teetkö nyt siis tuon RAW - > harmaasävy -muunnoksen siis täysin ilman väri-interpolaatiota? Eli pyrit vain skaalaamaan R/G/B-Bayer-pikselit samalle tasolle mustan/valkoisen pisteen referensseillä? Siis käytännössä sitten annat jokaiselle harmaasävypikselille arvoksi kyseitä pikseliä vastaavan Bayer-pikselin arvon skaalattuna sen mukaan mikä osaväri on kyseessä?

Kysyinköhän nyt tarpeeksi vaikeasti... :-)

Jos teet noin kuten yllä kuvittelen, luulisin ihan mutuna, että noi mainitsemasi sahalaidat (jotka ei ehkä ole ihan sitä mitä sahalaidasta tulee ekana mieleen jos ymmärsin mitä tarkoitat) johtuu eri osa-värien vaatimista erilaisista gamma-korjauksista (tai vastaavista korjauksista, miksi niitä nyt pitäisikään oikeasti kutsua, vähän ehkä sama asia kuin valkobalanssin säätö eli eri värikanavien keskinäinen painotus joka vaikuttaa myös harmaasävykuvaan).

Tästä taas tuleekin mieleen kysymys siitä, että onko tuollainen yllä arvelemani kaltainen algoritmi oikeasti hyvä tai järkevä tapa muodostaa bayer-raw-kuvasta harmaasävykuva, edes silloin kun kohteet ovat enempi vähempi mustavalkoisia? Oikeastihan kohteetkaan eivät ole mustavalkoisia koska objektiivi helposti lisää reunoihin CA-tyyppistä värillistä suttua.
Petri Kekkonen :: Kuvia :: "Light and shade - time and space" - PSB
Jovala
Viestit: 615
Liittynyt: Marras 19, 2010 13 : 26
Paikkakunta: Espoo

Viesti Kirjoittaja Jovala »

Rockford kirjoitti: Jäin kuitenkin miettimään että teetkö nyt siis tuon RAW - > harmaasävy -muunnoksen siis täysin ilman väri-interpolaatiota?
Kyllä - viereiset kennon solut ei vaikuta mitenkään muunnoksessa.
Rockford kirjoitti: Eli pyrit vain skaalaamaan R/G/B-Bayer-pikselit samalle tasolle mustan/valkoisen pisteen referensseillä? Siis käytännössä sitten annat jokaiselle harmaasävypikselille arvoksi kyseitä pikseliä vastaavan Bayer-pikselin arvon skaalattuna sen mukaan mikä osaväri on kyseessä?
Kyllä. näin on.
Rockford kirjoitti:Jos teet noin kuten yllä kuvittelen, luulisin ihan mutuna, että noi mainitsemasi sahalaidat (jotka ei ehkä ole ihan sitä mitä sahalaidasta tulee ekana mieleen jos ymmärsin mitä tarkoitat) johtuu eri osa-värien vaatimista erilaisista gamma-korjauksista (tai vastaaviksta korjauksista, miksi niitä nyt pitäisikään oikeasti kutsua).
Kun lineaariset operation on suoritettu kennon solujen valotusarvoille, tehdään gammakorjaus, joka on epälineerinen. Se on sama kaikille riippumatta solun tyypistä (R, G tai B), eikä siihenkään vaikuta viereiset solut.

Algoritmi
Algoritmi värikanavien muuntamiseksi samanarvoisiksi harmaasävyltään (tässä muunnetaan R solut vastaamaan G soluja):

1) Vaalealle ja tummalle referenssialueelle (3x3 solua) lasketaan keskiarvo R-soluille. Saadaan keskiarvot Rrw (= keskiarvo punaisista vaaleista soluista) ja Rrb (= keskiarvo punaisista tummista soluista).

2) Vaalealle ja tummalle referenssialueelle (3x3 solua) lasketaan keskiarvo G-soluille. Saadaan keskiarvot Grw (= keskiarvo vihreistä vaaleista soluista) ja Grb (= keskiarvo vihreistä tummista soluista).

3) Vaaidtaan että punaiset R-solut ovat saman arvoisia (yhtä herkkiä) G-solujen kanssa. Lasketaan muuntosuoran parametrit (y = ax + b):
a = (Grw - Grb) / (Rrw - Rrb)
b = Grb - a*Rrb

4) Muunnetaan kennon kaikkien punaisten solujen (Rs) arvot kaavalla:
Ruusi = a*Rs + b

Siniset korjataan vastaavasti vihreät referenssinä.

Lopuksi olen laajentanut lukualueen 16-bittiseksi, jotta tallennettavat tiedostot olisivat samassa skaalassa, vaikka A/D-muunnin antaisi 12 tai 14-bittistä dataa. Myös mustan taso on siirretty tässä yhteydessä nollaan.

Vasta näille arvoille on tehty gammakorjaus.

PS. Noi välitulokset tallennetaan 16-bittiseen sanaan, vaikka itse laskut tehdään liukuluvuilla. Jonkinlaista pyöristysvirhettä voi seurata.
Satunnainen kuvailija. Järki järkeistää käyttäytymistäni kuin lobbari.
Negatiiveista positiiveja: VMP Värillisen Maskin Poistaja.
Jovala
Viestit: 615
Liittynyt: Marras 19, 2010 13 : 26
Paikkakunta: Espoo

Viesti Kirjoittaja Jovala »

Jotta tästä ei tulisi ketjua ilman sorsakuvia, niin tässä olis:
Kuva
Otsassa oleva pieni musta piste on vaalean referenssi ja kaulan alla oleva valkoinen piste sitten mustan referenssi.
Irfanview:llä avasin 16-bittisen pgm:n ja tallensin jpg-muotoon.

Jaa niin, kuvassa on mukana koko pinta-ala mitä raw-tiedostosta irtoaa. Siis reunoja myöten. Ohjelma piirtää vaalean suorakaiteen varsinaisen kuva-alan ympärille.

Oishan ton mustavalkokuvan helpomminkin saanut:) Ja ehkä poliittisesti korrektimmin.

Sama kuva vielä niin, että vain vihreät kennon solut on matkassa:
Kuva
Tällä kameran kennolla mosaiikissa vihreitä soluja on rivillä joka toinen, mutta niitä on joka rivillä. Siis kuvasuhde muuttuu, kun kuvan leveys puolittuu.

Onhan tähän liitettävä vielä pelkkä sinisen värikanavakin:
Kuva
Onko tässä jotain vikaa, kun kuvan korkeus ei puolitu. Sinisiä on vain joka toisella rivillä.
Edit: Ja niilläkin riveillä vain joka toinen. Siis kuvasuhde säilyy.
Toi thumbin koon skaalaus hämää.
Viimeksi muokannut Jovala, Touko 06, 2015 21 : 37. Yhteensä muokattu 4 kertaa.
Satunnainen kuvailija. Järki järkeistää käyttäytymistäni kuin lobbari.
Negatiiveista positiiveja: VMP Värillisen Maskin Poistaja.
Rockford
Viestit: 7318
Liittynyt: Loka 05, 2004 10 : 06
Paikkakunta: Oulu
Viesti:

Viesti Kirjoittaja Rockford »

Jovala kirjoitti:Onko tässä jotain vikaa, kun kuvan korkeus ei puolitu. Sinisiä on vain joka toisella rivillä.
Jos katsoo kuvaa http://upload.wikimedia.org/wikipedia/c ... le.svg.png niin tuostahan näkee, että jos poistat vihreästä joka riviltä joka toisen pikselin niin kuva kapenee puoleen, mutta jos poistat sinisistä nuo tyhjät sekä riveittäin että joka toisen rivin kokonaan niin kuvan muoto ei muutu.
Petri Kekkonen :: Kuvia :: "Light and shade - time and space" - PSB
Jovala
Viestit: 615
Liittynyt: Marras 19, 2010 13 : 26
Paikkakunta: Espoo

Viesti Kirjoittaja Jovala »

Rockford kirjoitti:
Jovala kirjoitti:Onko tässä jotain vikaa, kun kuvan korkeus ei puolitu. Sinisiä on vain joka toisella rivillä.
Jos katsoo kuvaa http://upload.wikimedia.org/wikipedia/c ... le.svg.png niin tuostahan näkee, että jos poistat vihreästä joka riviltä joka toisen pikselin niin kuva kapenee puoleen, mutta jos poistat sinisistä nuo tyhjät sekä riveittäin että joka toisen rivin kokonaan niin kuvan muoto ei muutu.
Joo, mun piti oikein katsoa debugissa mitä se tekee:) Oiskohan aika mennä nukkumaan.

Koodi: Valitse kaikki

          RGB      G      B
Leveys:   3596    1798   1798
Korkeus:  2360    2360   1180
Satunnainen kuvailija. Järki järkeistää käyttäytymistäni kuin lobbari.
Negatiiveista positiiveja: VMP Värillisen Maskin Poistaja.
kinnujo
Viestit: 12
Liittynyt: Helmi 14, 2005 23 : 04

Viesti Kirjoittaja kinnujo »

olli R kirjoitti:
Jovala kirjoitti: Tosin numeerisen tuloksen ......

.....

Jos haluat analysointiin ohjelman, niin tuo Imatestin tapa on aika hyvä. Se ei katso tuollaisia viivakuvioita, vaan ihan vaan yhtä kontrastirajaa: miten systeemi toistaa terävän mustan ja valkoisen muutoksen. Kun tuo näkymä kulkee optikan ja kameran läpi, se ei enää olekaan yhtäkkinen muutos vaan eräänlainen toistokäyrä. Käyrää ei mitata vain yhdestä pisteestä, vaan keskiarvoistetaan pitemmältä matkalta suuremmasta pikselijoukosta. Näin päästään tuosta "pikselöitymisestä" eroon, mitä jo manailit.

Kuva

Toistokäyrästä voidaan sitten laskea eri MTF-lukuja.
.....
Itse askartelin tuollaisen Imatest tyyppisen testitaulun mattamustasta kartongista mattopuukolla neliöitä leikkaamalla. Liimasin nämä A1 kartongille shakkilaudaksi 15 asteen kulmaan. Kirjoitin Matlabilla ohjelman, joka laskee noita MTF-arvoja koko kuva-alalta.

Tulokset olivat lähinnä puutaheinää. Valkoinen pohja oli kiiltävä ja heijasteli. Mustien neliöiden reunat eivät olleet tarpeeksi teräviä ja tasalaatuisia. Kaikki linssit olivat teräviä tietyissä kohdassa taulua ja joissakin kohdissa huonoja.

Pitäisi keksiä joku menetelmä tehdä kunnollinen taulu, jossa olisi matta-valkoisella pohjalla partaterän tarkkoja mustia neliöitä.
(Kaveri ehdotti käytettäväksi partateriä, mutta näiden reunat eivät ole kovin suoria :)
Vastaa Viestiin