od A.S. Pergill » 06 lis 2011 13:49
Dobrý den,
na fóru jsem nový, takže odpovídám až teď. Řešil jsem kdysi trochu podobný problém, šlo o oskenované fotky a na skle scanneru byl zřejmě prach, takže tam byly bílé body a drobné puntíky (a nebyla možnost to oskenovat znovu). Řešil jsem to převedením do formátu .ppm (umí např. IrfanWiew) a následně zpracováním skriptem napsaným v Perlu (protože jiné programovací jazyky, které alespoň trochu zvládám, se na tuhle práci moc nehodí). Nejprve jsem to projel skriptem, který mi vyrobil bílý obrázek stejné velikosti a ty bílé body a skvrny na něm vyznačil černě. Ručně jsem v editoru obrázků vymazal "legitimní" černé body na tomto obrázku. Poté jsem to projel skriptem, který načítal oba obrázky současně a když našel na tom černobílém obrázku černé body, tak interpoloval barvy před a po této značce na tom obrázku pokaženém. Opravy byly vidět, pochopitelně, hlavně u větších kazů, ale "nepíchaly do očí".
Tady bych postupoval podobně, výhodou je, že jsou to, alespoň vizuálně, jeden - dva pixely široké svislé čáry, a protože je obrázek ve formátu .ppm uložen po řádcích, tak by se takový opravný skript psal docela snadno. Obávám se ale, že ty poruchy nemají tolik společného, aby se daly nějakým jednoduchým algoritmem vychytat, jak jsem to dělal já s těmi zcela bílými kazy, ale že se bude muset udělat kopie obrázku, zvýšit plošně její jas (aby na obrázku nikde nebyly body rgb(0,0,0) a tou černou poruchy překreslit ručně ve vhodném editoru, umožňujícím dělat čáry o síle jeden pixel. Potom z toho vytáhnout jen tu černou a postupovat buď jako výše, nebo použít ImageMagick.
S tím ImageMagickem bych vytvořil od obrázku dvě kopie, jednu jednu posunutou o pixel vlevo, druhou o pixel vpravo (= na jedné straně by se sloupec pixelů ztratil a na druhé by se doplnil sloupec třeba bílý). Potom bych tu masku s čarami ale s černou oslabenou na 50 procent (=rgb(127,127,127)) použil k vytvoření pomocného obrázku (na bílém obrázku stejných rozměrů) a ten teď s maskou na hodnotě černé (0,0,0) překopíroval přes ten zkažený obrázek, takže na těch liniích by byla vždy směs pixelu napravo a nalevo od poruchy v poměru 1:1. Asi by se to projevilo zneostřením (protože ztráta informace tam je), ale určitě by to bylo mnohem lepší než ruční retuš.
Já pracuji na linuxu, tak jsem zvyklý spíš na tyhle techniky a soft, který je k dispozici tam (ale IM je i pro windows).