Supponiamo di avere 3 kernel:
-
$$ \ left [\ begin {array} {cc } a & b & c \\ d & e & f \\ g & h & i \ end {array} \ right] $$
-
$$ \ left [\ begin {array} {cc} p & q & r \\ s & t & u \\ v & w & x \ end {array} \ right] $$
-
$$ \ left [\ begin {array} {cc} \ alpha & \ beta & \ gamma \\ \ delta & \ epsilon & \ zeta \\ \ eta & \ theta & \ iota \ end {array} \ right] $$
Come posso creare un banco di filtri da essi?
Dovrei AND
o OR
o aggiungerli insieme?
Oppure, dovrei semplicemente applicarli uno per uno alla mia immagine di prova attraverso tre operazioni di convoluzione separate?
Risposta
Un banco di filtri è proprio quello che dice:
Un banco di filtri, ognuno dei quali viene applicato al segnale.
Quindi, uno segnala in (signal = immagine), 3 segnali in uscita. Applichi ciascuno dei kernel separatamente e non combinare nulla.
Commenti
- è davvero possibile combinare i kernel per raggiungere lo stesso obiettivo anche se?
- cosa? no! cose completamente diverse. Questo banco di filtri ti offre solo tre immagini di output dalla tua unica immagine di input, ciascuna filtrata da un filtro. ' non è una combinazione di nulla.
- Sì, ci sono possibilità di combinare i kernel e poi fare trucchi intelligenti per recuperare i tre output del pensiero (algebra di ordine superiore, profondità di bit …) ma questo è probabilmente oltre lambito corrente
Risposta
Poiché il termine lineare non non compaiono nella domanda e nelle risposte attuali, permettimi di offrire una prospettiva complementare.
A kernel in questa accezione (soprattutto per le immagini, che non seguono sempre regole lineari, pensa allocclusione o saturatio n) è un array applicato , in qualche modo , su qualsiasi dati di input . Si distingue spesso kernel lineare e non lineare (poiché si hanno filtri lineari e non lineari, anche se la terminologia potrebbe sembrare impropria).
Partiamo dal punto di vista lineare nel senso più specifico : la matrice del filtro viene applicata come una convoluzione. Quindi la risposta di @MarcusMuller è perfetta: un insieme, un array di filtri lineari, applicati ai dati di input come convoluzioni per produrre diversi dati di output separati. La maggior parte scalare aggiuntivo unoperazione lineare (come la somma, la media, una combinazione ponderata) sulluscita sarebbe “inutile”: mentre commutano, sommare loutput equivale a sommare i tre filtri in un unico filtro, ed eseguire una sola convoluzione sul dati.
Il che ci riporta all obiettivo nel tuo commento; tradizionalmente, un lineare ( analisi , tornerò su questo più tardi) il banco di filtri (FB) viene utilizzato per dividere o separare i dati in componenti, spesso con spettri separati o un contenuto più ristretto (frequenze basse, medie o alte per un banco di filtri a tre bande). Oppure per unire diversi flussi di dati in altri, con uno spettro più ampio. Quindi un generico FB multi-input-multi-output (MIMO) accetta uno o più input, li filtra in una o più uscite. Si distingue quindi i banchi di filtri di analisi o di sintesi.
In genere, la ricombinazione degli output di un FB di analisi si allontana dallobiettivo di separazione. Ma un singolo filtro è anche un banco di filtri (non molto interessante di per sé però). Ma a volte, questo può essere più efficiente (ad esempio dal punto di vista computazionale).
Ora, avere uscite più strette / più ampie invita a valutare le variazioni, come il downsampling e lupsampling prima o dopo i filtri. Per me, il senso più accettato di un banco di filtri è un banco di filtri lineari opzionalmente combinato con operazioni di sovracampionamento o sottocampionamento (lineare, ma non invariante a scorrimento) . Ed è in qualche modo correlato alle trasformazioni lineari, consentendo lespansione o il restringimento del numero di coefficienti (possono essere critici, sovracampionati o sottocampionati).
Quindi, le persone estendono la nozione alla non linearità: i filtri possono essere non lineari ( come la mediana) e i kernel vengono interpretati come pesi applicati a un blocco di dati.Oppure i dati possono essere combinati in modi non lineari, con $ \ min $, $ \ max $, AND o OR …
Ma nel tuo caso, come ha detto Marcus, ci scommetterei tre output filtrati standard. Ma in questo caso, non cè relazione tra i filtri (eccetto la dimensione del kernel) e ciò che è potente nella teoria del banco di filtri è il collegamento tra i filtri e come si possono ottimizzarli. Ora un paio di puntatori:
- Filter bank (wikipedia)
- Che cosè un banco di filtri?
- Banco di filtri multirate e banchi di filtri direzionali multidimensionali
Commenti
- ah! Questa dovrebbe davvero essere la risposta accettata in quanto offre una visione più ampia delle cose.
- Giusto, ma non ne sono sicuro, a seconda dellambito iniziale della domanda.
- beh, la mia risposta è davvero un po superficiale e ' non contribuisce molto, poiché " il banco di filtri " non è ' del tutto inammissibile. Il tuo, daltra parte, dà prospettiva.