Vedený filtr - Guided filter
![]() | Tento článek má několik problémů. Prosím pomozte vylepši to nebo diskutovat o těchto problémech na internetu diskusní stránka. (Zjistěte, jak a kdy tyto zprávy ze šablony odebrat) (Zjistěte, jak a kdy odstranit tuto zprávu šablony)
|
Vedený filtr je druh vyhlazování zachovávající hrany filtr. Stejný jako oboustranný filtr, tento filtr obrazu může také odfiltrovat šum nebo texturu při zachování ostrých hran.[1]
Na rozdíl od bilaterálního filtru má filtr obrazu s průvodcem dvě výhody: zaprvé, bilaterální filtry mají velmi vysokou hodnotu výpočetní složitost, ale filtr s průvodcem nepoužívá příliš složité matematické výpočty, které má lineární výpočetní složitost. Kromě toho mají dvoustranné filtry kvůli matematickému modelu někdy nežádoucí obrácení gradientu artefakty a způsobit zkreslení obrazu. Zatímco filtr s řízeným obrazem, protože filtr je matematicky založen na lineární kombinaci, musí být výstupní obraz v souladu se směrem přechodu naváděcího obrazu a problém s obrácením přechodu nenastane.
Definice
Jedním z klíčových předpokladů řízeného filtru je vztah mezi vedením a výstup filtrování je lineární. Předpokládejme to je lineární transformace v okně na střed pixelu .
Za účelem stanovení lineárního koeficientu , omezení ze vstupu filtrování jsou potřeba. Modelovat výstup jako vstup odečíst některé nežádoucí součásti , jako je šum / textury.
Následuje základní model filtru s průvodcem :
(1)
(2)
Ve výše uvedeném vzorci:
- je výstupní pixel;
- je vstupní pixel;
- je pixel šumových komponent;
- je obrazový bod naváděcího obrazu;
- jsou některé lineární koeficienty považované za konstantní v .
Důvod definovat jako lineární kombinace je, že hranice objektu souvisí s jeho spád. To zajišťuje místní lineární model má výhodu, pouze pokud má výhodu, protože .
Odečtěte (1) a (2) a získejte vzorec (3) ; Současně definujte a nákladová funkce (4):
(3)
(4)
Ve výše uvedeném vzorci:
- je regularizační parametr, který penalizuje velký ;
- je okno vycentrované na pixel .
A řešení nákladové funkce je dáno :
(5)
(6)
Ve výše uvedeném vzorci:
- a jsou průměr a rozptyl v ;
- je počet pixelů v ;
- je průměr z v .
Po získání lineárních koeficientů , můžeme vypočítat výstup filtrování podle (1)
Algoritmus
Podle definice lze algoritmus zapsat jako:
Algoritmus 1. Řízený filtr
vstup: filtrování vstupního obrazu , Naváděcí obrázek Rad poloměr okna ,regulace
výstup: filtrační výstup
1.
= = = =
2.
= =
3.
= =
4.
= =
5.
=
je střední filtr s širokou paletou O (N) časových metod.
Vlastnosti
- Filtrování na ochranu hran
Když naváděcí obraz je stejný jako filtrační vstup . Naváděný filtr odfiltruje šum ve vstupním obrazu při zachování čistých hran.
Konkrétně lze parametrem definovat, co je „plochý patch“ nebo „high variance patch“ naváděného filtru. Tyto opravy s odchylkou mnohem nižší než parametr budou vyhlazeny a ti s odchylkami mnohem vyššími než bude zachována. Role rozptylu rozsahu v bilaterálním filtru je podobný ve vedeném filtru. Oba definují „kde jsou hranové / vysoce variační patche, které by měly být uchovány. co je to šum / plochá záplata, která by měla být vyhlazena. “
- Filtrování zachovávající přechod
Při použití bilaterálního filtru k filtrování obrazu se na okrajích mohou objevit některé artefakty. Je to proto, že hodnota pixelu se na okraji prudce mění. Tyto artefakty jsou inherentní a je těžké se jim vyhnout, protože hrany se obvykle objevují na všech druzích obrázků.
Naváděný filtr funguje lépe, když se vyhne obrácení gradientu. Navíc v některých případech lze zajistit, že nedojde k obrácení gradientu.
- Filtrování přenosu struktury
Vzhledem k místnímu lineárnímu modelu , je možné převést konstrukci z vedení na výstup . Tato vlastnost umožňuje některé speciální aplikace založené na filtrování, jako je praporování, matování a dehazing.
Implementace
- Filtr s průvodcem je součástí oficiální verze MATLAB[2]
- Filtr s průvodcem je součástí oficiální verze OpenCV[3]