Pokud mám naskenovaný či vyfocený dokument, velmi nerad plácám tiskárnu na zbytečné pozadí. Proto jsem hledal jednoduchý nástroj, který by pozadí co nejefektivněji odstranil.
Chceme tedy odstranit pozadí a ponechat popředí (text). Vezměme si ukázkový obrázek a ukažme si na něm, jak se dá postupovat.
Fine Threshold - stažení - po stažení stačí nakopírovat do adresáře Plugins v adresáři Irfan View a poté zvolit v Irfan View Ctrl + K (Adobe Filtry 8BF) a Přidat 8BF filtr.
Odstranění pozadí prahováním je v Irfanu na čtyři kliknutí (což je fajn, když máte pár obrázků, ale dost nepříjemné, pokud jich máte třeba už 10 - práh se musí u každého vybírat ručně): Ctrl + K (otevře filtry Adobe) - Spustit vybraný filtr, posunout práh (šoupátkem) a OK
Všiměte si zejména tmavých okrajů, zde to není moc patrné, ale je to jev, který vznikne nerovnoměrných rozložením jasu při focení textu - a tento práh si s ním neporadí, takže pokud by byl jev výraznější, okraje budou po segmentaci černé. V takovém okamžiku je vhodnější použít ImageMagick.
ImageMagick je soubor nástrojů pro práci s obrázky v command line. Takovýto kód (pro neznalé - Práce s příkazovým řádkem ve Windows pro úplné začátečníky):
convert.exe input.jpg -colorspace Gray -lat 30x30-3% -median 1x1 output.jpg
který udělá adaptivní prahování (a poté projede ještě obrázek mediánem pro odstranění drobného šumu), má tento výsledek:
Asi jste si všimli, že výsledek se od toho z Irfan View v tomto případě moc neliší. Ale hlavní výhodu má v tom, že lze udělat dávkově, prakticky na jedno kliknutí. Jak na to? Vytvořte si v textovém souboru následující *.bat soubor, zkopírujte do adresáře ImageMagick spolu s jpg obrázky, které chcete upravit adaptivním prahováním a spusťte. Výstup se uloží do adresáře out, který se vytvoří ve složce ImageMagick:
:: Soubor: remove_background_from_text_image :: Popis: spusti ImageMagick v adresari, kde se nachazi tento skript a prozene vsechny jpg obrazky adaptivni filtraci pro odstraneni pozadi z textovych obrazku :: Author: JanKoWeb, 2011 :: pripravime vystupni adresar MD out :: smycka - vezmi vsechny jpg v adreari, preved na grayscale, aplikuj adaptivni prahovani (-lat) s velikosti okna 30x30 a offsetem -3%, aplikuj medianovy filtr pro vycisteni drobnych sumu a uloz do adresare out se stejnym nazvem jako vstupni soubor :: pozor! predpokladam, ze program convert.exe je v aktualni slozce! FOR %%a in (*.jpg) DO convert.exe %%a -colorspace Gray -lat 30x30-3%% -median 1x1 out\\%%a pause :: konec skriptu exit
Pokud se chcete dozvědět o dalších možnostech, čtěte ImageMagick v6 Examples Usage under Windows (anglicky) a Použití v command line - dokumentace (anglicky), heslo -lat.
Více v Thread: Adaptive Threshold.
Tento web jsem zakládal na střední, v roce 2008. Je zde hlavně archiv mé tvorby.
Aktuální věci publikuji kvůli úspoře času na Twitter.
Honza
"Čas je materiál, ze kterého se vyrábí život."