Automatisoitu viivanpoisto kuvista

Kuvankäsittelyä, mitä vain
Vastaa Viestiin
Ize_v2
Viestit: 4
Liittynyt: Elo 02, 2022 21 : 26

Automatisoitu viivanpoisto kuvista

Viesti Kirjoittaja Ize_v2 »

Tervehdys pitkästä aikaa, alkuperäisen tunnuksen salasanaa ei vanha enää muistanut eikä rekisteröitymissähköpostiosoitettakaan ole enää olemassa, joten uudistunut versio 2 meikäläisestä käyttöön. :mrgreen:

Ongelmani on seuraava, uskolliseen järkkäriini Canon 70D:hen on tullut ikävä vika. Yksi kennon pystyriveistä (kun kuvataan normaalisti vaakaan) on mykistynyt, joten kuviin tulee yhden pikselin levyinen musta viiva/raita. Monenlaista työkalua olen kokeillut, lähinnä ilmaisia tai sitten trial -versioita, joilla osalla saa kohtuullista jälkeä aikaan mutta vaiva per kuva on melkoinen. Mainosvideoita yms. olen onnistunut löytämään fiksuista sovelluksista, jotka tekevät työn automaattisesti mutta ne ovat kännyköihin (poistavat esim. puhelinlankoja kuvista automaagisesti). Millään en jaksaisi alkaa kännykän kautta kuvia kierrättämään korjaukseen, lisäksi kiinnostaisi ohjelma joka mielellään tekisi tempun "batch -moodissa" kaikille kuville. Kuvia kun oli kertynyt muistikortille reilut 600 vian ilmaantumisen jälkeen, joille korjaus pitäisi tehdä. :oops:

Kuvankorjaus voisi olla myös yksinkertaisimmillaan vain ko. mustan pikselirivin poistaminen raakakuvasta (kuvat ovat siis raw-moodilla kuvattu), koska kuvat tulevat kuitenkin käyttöön pienennettynä, niin rivin poiston myötä tullut pieni pykällys kuvassa ei todennäköisesti näkyisi pienennetyssä kuvassa. Suoraan pienentäminen ei tee haluttua vaikutusta, kaikennäköiset algoritmit yms. suodattimet pienentäessä kun oikeastaan korostavat kuvassa olevaa mustaa viivaa. Suoraan median -suodatuskaan ei toimi tuo mustan vuoksi, mistä tuli mieleen että osassa kuvankäsittelyohjelmiahan on oman suodattimen rakennusmahdollisuus. Sellainenkin toimisi, jos jotenkin sen saisi nopeasti ja tarkasti kohdistettua tuon oikean pikselirivin yli. Silloin voisi poistaa mustan pikselin suodattimella, joka muodostaisi sivuilta keskiarvoistetun värin tilalle esim. painotuksella:
[1/12 - 0 - 1/12]
[1/3 - 0 - 1/3]
[1/12 - 0 - 1/12]
, yksinkertaisempikin suodatin [1/2 - 0 - 1/2 ] toimisi todennäköisesti myös riittävän hyvin.

No nuo olivat näitä omia ehkä turhankin monimutkaisia mietelmiä, varmaan jokin kätevä ohjelma on olemassa ja joka ei toivottavasti olisi hinnankiroissakaan. Toisin sanoen, vinkkejä vastaanotetaan. :)
Cloudcity. Uuden ajan pilvipalvelu.
MattiH
Site Admin
Viestit: 6287
Liittynyt: Tammi 08, 2003 20 : 57
Paikkakunta: Helsinki
Viesti:

Re: Automatisoitu viivanpoisto kuvista

Viesti Kirjoittaja MattiH »

Ize_v2 kirjoitti: Elo 02, 2022 22 : 04 Tervehdys pitkästä aikaa, alkuperäisen tunnuksen salasanaa ei vanha enää muistanut eikä rekisteröitymissähköpostiosoitettakaan ole enää olemassa, joten uudistunut versio 2 meikäläisestä käyttöön. :mrgreen:

....
Adminille (eli minulle) viesti. Jos jompikumpi on muistissa (käyttäjätunnus tai email-osoite), niin toimimattomaksi menneen sähköpostiosoitteen voi admin päivittää. Tai jos käyttäjätunnus ei muistu mieleen, niin lähetän rekisteröityessä käytettyyn email-osoitteeseen liitetyn käyttäjätunnuksen kyselijälle.

Näitä olen hoitanut yksi viiva kaksi per kk.

--- matti ---
apertority
Viestit: 53
Liittynyt: Loka 10, 2016 22 : 06

Re: Automatisoitu viivanpoisto kuvista

Viesti Kirjoittaja apertority »

Imagemagickilla voi esim kloonata viereisen pikselirivin mustan tilalle.

Oletetaan, että musta pystyviiva on vaikkapa aina 260. pikselirivi vasemmalta.

Kloonataan kuvasta 1px leveä ja 3000px korkea alue, joka alkaa kohdasta 259px kuvan vasemmasta reunasta laskettuna ja 0 pikseliä ylhäältä. Sijoitetaan se kohtaan 260px vasemmalta ja 0px ylhäältä.

Koodi: Valitse kaikki

convert alkuperäinen_kuva.jpg \( -clone 0 -crop 1x3000+259+0 -repage +260+0 \) -flatten  viiva_poistettu.jpg
Ize_v2
Viestit: 4
Liittynyt: Elo 02, 2022 21 : 26

Re: Automatisoitu viivanpoisto kuvista

Viesti Kirjoittaja Ize_v2 »

Tuplat tuli.
Ize_v2
Viestit: 4
Liittynyt: Elo 02, 2022 21 : 26

Re: Automatisoitu viivanpoisto kuvista

Viesti Kirjoittaja Ize_v2 »

apertority kirjoitti: Elo 03, 2022 16 : 45 Imagemagickilla voi esim kloonata viereisen pikselirivin mustan tilalle.

Oletetaan, että musta pystyviiva on vaikkapa aina 260. pikselirivi vasemmalta.

Kloonataan kuvasta 1px leveä ja 3000px korkea alue, joka alkaa kohdasta 259px kuvan vasemmasta reunasta laskettuna ja 0 pikseliä ylhäältä. Sijoitetaan se kohtaan 260px vasemmalta ja 0px ylhäältä.

Koodi: Valitse kaikki

convert alkuperäinen_kuva.jpg \( -clone 0 -crop 1x3000+259+0 -repage +260+0 \) -flatten  viiva_poistettu.jpg
Työreissussa tässä, mutta kiitoksia vinkistä kokeilenpa tuota hetimmiten kun pääsen kotikoneen kimppuun! :D
Maffer
Viestit: 21574
Liittynyt: Elo 20, 2008 17 : 32
Viesti:

Re: Automatisoitu viivanpoisto kuvista

Viesti Kirjoittaja Maffer »

Se riippuu aika paljon kuvasta toimiiko koko rivin poisto tai kloonaus toisella. Lopputulos voi olla erittäin häiritsevä tai sitten ei ollenkaan (esim. jatkuvat vaakasuuntaiset linjat). Pidemmän päälle tulee halvemmaksi aika ja vaiva nähden heittää SER-konttiin ja hakea uusi samanlainen jostain torilta tms.

Jos nyt kuitenkin alkaa teippaamaan kuvia, niin tuollainen keskiarvoistus lienee paras vaihtoehto.
apertority
Viestit: 53
Liittynyt: Loka 10, 2016 22 : 06

Re: Automatisoitu viivanpoisto kuvista

Viesti Kirjoittaja apertority »

Totta, tuo rivin poisto on kevyempi ja suoraviivaisempi vaihtoehto kuin viereisen rivin kloonaaminen viivan päälle, jossa kopioidaan, liitetään ja lopuksi vielä yhdistetään tasot. Lopputulos on kuitenkin käyännössä sama.


Imagemagickin -chop valitsija poistaa määritellyn alueen ja siirtää viereisiä pixeleitä vasemmalle tai ylös riippuen millainen alue kuvasta poistetaan.

Yksittäiselle kuvalle:

Koodi: Valitse kaikki

convert alkuperäinen.JPG -chop 1x3000+259+0 korjattu.JPG
Kansiolliselle kuvia voi käyttää mogrify komentoa tuon -chop valitsimen kanssa, mutta tämän kanssa pitää olla varovainen, sillä mogrify korvaa alkuperäiset kuvat, ellei määritä hakemistoa -path, minne muokatut kuvat tallennetaan.

Koodi: Valitse kaikki

mogrify -path ../korjatut-kuvat-kansio -chop 1x3000+259+0 *
jmagic
Viestit: 261
Liittynyt: Maalis 21, 2007 17 : 43
Viesti:

Re: Automatisoitu viivanpoisto kuvista

Viesti Kirjoittaja jmagic »

Muistelisin, että Canoneissa on kuolleiden/kuumien pikseleiden poisto yhdistetty kennonpuhdistustilaan, oletko koittanut ajaa sitä? Yleensähän se poistaa yksittäisiä pikseleitä, enkä nyt muista että vaikuttaako se edes raakakuviin, mutta kokeilla voi aina.
Ize_v2
Viestit: 4
Liittynyt: Elo 02, 2022 21 : 26

Re: Automatisoitu viivanpoisto kuvista

Viesti Kirjoittaja Ize_v2 »

Heikosti on ollut kaistaa opetella ja kokeilla ImageMagickin käyttöä, valitettavasti. Ohessa tämän hetkisiä huomioita.

Kloonaus toimii "auttavasti", mutta ongelma on että jpg-formaatissa ja myös täyden tarkkuuden raakakuvissakin(!) on molemmin puolin viereisissä riveissä "artefakteja" varsinkin jpg-kuviin tulee pakkauksesta johtuen viereen esim. harmautta johtuen tieten tuosta mustasta rivistä. Paras (mutta silti hyvin kaukana hyvästä) jälki tulee, kun Canonin raw-formaatin käännän png:ksi (jota Imagemagick ymmärtää) ja kloonaan 3 pystyriviä ja konvertoin jpg:ksi, joka hiukan häivyttää "toistoa".

Chop -komento esimerkin mukaan ei tunnu tuollaisenaan toimivan, en huomaa mitään tapahtuvan vaikka koetan useamman pystyrivin poistaa. Pitää vielä koettaa opiskella noita komentoja miten ne toimii, mutta ei ole ohjeet Imagemagickin sivuilla ihan helpoimmasta päästä, heh.

Kennonpuhdistus ei tunnu auttavan kokonaisen pystyrivin katoamiseen ja tosiaan lisäksi on tuota kummallisuutta, että vika oireilee viereisiinkin riveihin raakaformaatissakin. Jos kuvassa mustalla rivillä pitäisi olla hyvin vaaleaa tai valkoista, niin vieressä on sinerrystä/violettia, vähän niinkuin väriaberraatiota. Jos kuvassa on hyvin tummaa lähes mustaa, niin tuossa mustassa rivissä saattaa tuota hyvin tummaa sävyä ollakin esillä, outoa. Jpg-pakkauksen kohdalla ymmärtäisin tuon mutta kun raakakuvassakin on moista, niin taitaa olla ettei Canonin raakaformaatti olekaan ihan aidosti raaka vaan siellä on kuitenkin jotain prosessointia mukana.

Kameran korjauttamisessa ei taida olla mitään järkeä, laskeskelin että JASsin hinnoilla taidan saada käytetyn rungon tilalle. Firmiksen päivityksen voisi tietty koettaa vielä itse tehdä, mutta eiköhän tuo vika ole ihan fyysinen että tuskin sillä ihmeitä aikaan saadaan.
Maffer
Viestit: 21574
Liittynyt: Elo 20, 2008 17 : 32
Viesti:

Re: Automatisoitu viivanpoisto kuvista

Viesti Kirjoittaja Maffer »

Ihan järkevä pohdinta. Jos ja kun pännii semisti lopputulos ni eikun uus tilalle jos ei maltaita maksa.
jaava
Viestit: 1996
Liittynyt: Joulu 27, 2004 16 : 41
Paikkakunta: Espoo

Re: Automatisoitu viivanpoisto kuvista

Viesti Kirjoittaja jaava »

Ize_v2 kirjoitti: Elo 02, 2022 22 : 04 Ongelmani on seuraava, uskolliseen järkkäriini Canon 70D:hen on tullut ikävä vika. Yksi kennon pystyriveistä (kun kuvataan normaalisti vaakaan) on mykistynyt, joten kuviin tulee yhden pikselin levyinen musta viiva/raita.
Tuon pystyrivin pikseleiden laskentaan osallistuu myös ympäristön senseleitä.
Noissahan pikselin kohdalla on vain yksi senseli, väriltään R, G tai B. Kaksi muuta on otettava naapurista. Ja paremmat raakakuvan muuntajat ottavat huomioon myös näiden naapureiden kirkkauksia.

On yllättävää, että pystyrivin jokainen pikseli on musta - siis jokaisessa senselissä on joko kirkkaus 0 tai muuntajasofta huomaa jotain ihmeellistä pikselissä ja pistää sen mustaksi.

Viereisissä riveissä olevat artefaktit johtuu tietysti mustan rivin senselien viallisista kirkkausarvoista.

Paras korjaus tuohon on tietysti tunnistaa vialliset senselit (ei pikseleitä) ja laskea niille naapureista likiarvo (esim. painotettu keskiarvo). Tuo on helppo homma, mutta vaikeampi on sitten tallentaa korjattu kuva raakatiedostoksi, jotta sen voi ajaa editorien raakakuvan muuntajasoftan läpi normaalisti.
SuperDrive
Viestit: 1463
Liittynyt: Tammi 13, 2011 0 : 00

Re: Automatisoitu viivanpoisto kuvista

Viesti Kirjoittaja SuperDrive »

jmagic kirjoitti: Elo 17, 2022 9 : 49 Muistelisin, että Canoneissa on kuolleiden/kuumien pikseleiden poisto yhdistetty kennonpuhdistustilaan, oletko koittanut ajaa sitä? Yleensähän se poistaa yksittäisiä pikseleitä, enkä nyt muista että vaikuttaako se edes raakakuviin, mutta kokeilla voi aina.
Tuo toimii kuumille pikselrlle, kun se tehdään linssinsuojus päällä, mutta en ymmärrä miten se voisi tunnistaa mustia, kun kaikki on mustaa. Canoneissa on myös pölynpoistotoiminto, joka ehkä voisi toimia. Se tosin tehdään erikseen koneella, kamera vain merkkaa tiedon kuviin.
jaava
Viestit: 1996
Liittynyt: Joulu 27, 2004 16 : 41
Paikkakunta: Espoo

Re: Automatisoitu viivanpoisto kuvista

Viesti Kirjoittaja jaava »

Ize_v2 kirjoitti: Elo 02, 2022 22 : 04 Ongelmani on seuraava, uskolliseen järkkäriini Canon 70D:hen on tullut ikävä vika. Yksi kennon pystyriveistä (kun kuvataan normaalisti vaakaan) on mykistynyt, joten kuviin tulee yhden pikselin levyinen musta viiva/raita.
Aluksi selvennykseksi:
- Canon 70D kennossa ei ole pikseleitä (pikseli sisältää kirkkausarvot R, G ja B väreille)
- Näytettävässä kuvassa (esim jpg) on vain pikseleitä, mutta kennolla ja raw "kuvassa" vain senselien kirkkauksia (sen voi näyttää mustavalkoisena, mutta kirkkausarvot on sekaisin).
- Jos kamerassa on tavallinen Bayer maski, niin senselien sarakkeissa on puoliksi punaisia/vihreitä, sekä sinisiä/vihreitä senseleitä.
- Raakakuvan muunnosohjelma (esim. raw -> jpg) muuntaa Bayer-maskin senselien kirkkausarvot kuvan pikseliarvoiksi (RGB). Muunnosohjelma voi sijaita itse kamerassa tai digipimiössä. Yksinkertaisimmillaan muunnosohjelma saa yhden pikselin (RGB) väreistä kohdalla olevasta senselistä ja kaksi muuta väriä lasketaan kahdeksasta ympäröivästä senselin arvosta. Hyvät muunnosohjelmat huomioivat senseliarvoja kauempaakin.

Bayer filter: https://en.wikipedia.org/wiki/Bayer_filter

Jäin miettimään miten värikuvan "yhden pikselin levyinen" musta viiva saataisiin aikaan:
  1. Triviaalivaihtoehto on kameran softan tekemä täysmusta viiva. Tämä toimii takuuvarmasti jokaisessa kuvassa kuvailemallasi tavalla. Edellyttää ohjelman korruptoitumista; esimerkiksi kameran ohjelmamuistin bitti on hajonnut (ohjelmavirheet voi aiheuttaa eksoottisia oireita, tosin yleensä kunnon sekoamisen).
  2. Kameran optiikassa on musta erittäin ohut viiva sopivassa kohtaa. Tämä on erittäin epäuskottava vaihtoehto.
  3. Kennossa tai sen liityntäelektronikassa on sähköinen vika, jolloin saadaan vaihtoehtoja:
    1. Yksi sarake senseleitä antaa 0 kirkkautta. Tämä ei tuota mustia pikseleitä kuin satunnaisesti, mutta viivan värit ovat yleensä pielessä. Muunnosohjelman (esim. raw -> jpg) laskentaan tulee yksinkertaisimmillaan 3 virheellistä 6 kunnollista senselin kirkkautta.
    2. Kaksi vierekkäistä saraketta senseleitä antaa 0 kirkkautta. Kuten edellisessä, mutta todennäköisyys mustille pikseleille on suurempi. Muunnosohjelman (esim. raw -> jpg) laskentaan tulee yksinkertaisimmillaan 6 virheellistä 3 kunnollista senselin kirkkautta.
    3. Kolme vierekkäistä saraketta senseleitä antaa 0 kirkkautta. Kuten edellisessä, mutta todennäköisyys mustille pikseleille on edellistäkin suurempi. Muunnosohjelman (esim. raw -> jpg) laskentaan tulee keskimmäiselle sarakkeelle yksinkertaisimmillaan 9 virheellistä 0 kunnollista senselin kirkkautta.
      Jos raakakuvan muunnosohjelma (esim. raw -> jpg) ottaa huomioon kauempaa kuin viereisten senselien arvoja (hyvät ohjelmat ottaa), niin vieläkään pikseli ei ole välttämättä täysin musta.
Kaikissa C tapauksissa tulee myös jonkinlaisia värivirheitä viereisiin pikseleihin (virheellinen senselin 0-arvo osallistuu muunnosohjelmassa kaikkiin sen läheisyydessä olevien pikseleiden laskentaan).

Voiko olla niin, ettei tuo havainto "yhden pikselin levyisestä" mustasta viivasta ole aivan tarkka (en oikein usko vaihtoehtoon A, enkä B)?
Kun näyttää tuo senselisarakkeen pimeneminen heijastuvan viereisiinkin pikseleihin, eikä sarakekaan tahdo mennä aivan mustaksi.

Korjauksen onglmana on viallis(t)en sarakkeen senseliarvojen leviäminen ympäristöön kun pikseliarvoja lasketaan.
Jos vika on yhden senselisarakkeen "pimeneminen", niin paras korjaus olisi minusta laskea sen senseleille viereisistä sarakkeista arvio ja tallentaa korjattu kuva raw-tiedostoon. Ohjelmia, jotka osaa tehdä kameran alkuperäisen raw-tiedoston formaatin mukaisen tallennuksen ei oikein julkisesti ole saatavilla, mutta Adoben DNG-tiedostoja osataan kyllä kirjoittaa (julkinen formaatti) ja niiden käsittely muunnosohjelmilla esitettäväksi kuvaksi helppoa.
Miten sitten laskea virheellisen sarakkeen senseleille arviot ... esimerkiksi ottamalla Bayer-maskin viereisten/lähimpien samanväristen senseleiden (vihreille 4 kpl, punaisille ja sinisille 2 kpl) keskiarvot (tai mediaani).

Millä ohjelmalla tuon sitten voi tehdä ... en tiedä. Ja koodarilta ostettuna saat monta uutta kameraa samalla hinnalla.

PS. Mä haluaisin mielenkiinnosta katsoa yhden selkeän tapauksen raw kuvan mun työkaluilla. Saat yksityisviestillä muhun yhteyden.
Vastaa Viestiin