Sembra che tu stia chiedendo due cose. Non posso davvero parlare tecnicamente di JBU, ma posso dare una panoramica dei concetti necessari e del filtro bilaterale in generale. Probabilmente dovrai trovare più dettagli da solo, ma questo dovrebbe dare una struttura coerente da cui partire.
Correzione di "Immagine"
Molte persone che elaborano immagini vedono il filtro come qualcosa da fare come post-elaborazione o come un modo per ridimensionare le immagini. La prospettiva del matematico è più accurata, descrittiva e complessa.
Quando hai un file di immagine, non hai un'immagine reale. Hai "valori" di pixel, che sono strettamente validi solo al centro dei pixel. In parole povere, ogni pixel ha un'area che assume quel colore. Matematicamente, quello che stai facendo è usare un filtro di ricostruzione più vicino per ricostruire l'immagine vera dai valori dei pixel. Quindi una "immagine" è in realtà un insieme di campioni e un filtro di ricostruzione, in genere il più vicino vicino .
ricampionamento
Quando ingrandisci un'immagine, quello che stai veramente facendo è il ricampionamento . Come fai a fare questo? Prendi il tuo segnale e generi un nuovo set di campioni da esso. Ma per un'immagine, ho appena detto che non abbiamo l'immagine reale; dobbiamo prima ricostruirlo. Quindi una tipica procedura di ricampionamento è simile alla seguente:
- Prendi i tuoi valori di pixel.
- Ricostruisci un'immagine tra i valori, che vivono in pixel centre, usando il filtro di ricostruzione.
- Misura una nuova serie di campioni dall'immagine ricostruita, possibilmente distanziati in modo diverso.
- Butta via i vecchi campioni e usa quelli nuovi.
Il punto chiave è che il filtro di ricostruzione utilizzato è il "filtro" utilizzato per il ricampionamento. Ad esempio, un "upsub bicubico" userebbe un filtro per ricostruzione bicubica.
Si scopre che se si utilizza una funzione sinc per il filtro di ricostruzione e non si riduce l'immagine, si ottiene (teoricamente) la stessa immagine indietro. In effetti, se ingrandisci l'immagine e poi ridimensionala di nuovo, otterrai la stessa risposta. Questo non è generalmente vero per qualsiasi altro filtro.
La maggior parte dei filtri approssima un filtro sinc a più o meno gradi. Le deviazioni causano la perdita di immagine.
filtraggio
Se si utilizza la stessa frequenza di campionamento prima / dopo, si fa qualcosa chiamato "filtro". Formalmente, il filtro viene ricampionato senza una variazione della frequenza di campionamento. Il filtro è un caso speciale di ricampionamento.
L'unico scopo possibile per filtrarlo per eliminare informazioni (ad esempio un gaussiano) o eventualmente anche per distorcere o aggiungere informazioni spurie (ad esempio un Sobel).
Filtro bilaterale
È possibile utilizzare molti filtri diversi per il filtro. Il filtro bilaterale è uno di questi. Non credo che sia considerato allo stato dell'arte per qualsiasi scopo ora (anche se non so cosa sia; probabilmente qualche cosa nuova di apprendimento automatico che mi aspetto).
Un filtro bilaterale è un filtro non lineare, il che significa che non ha una bella rappresentazione di Fourier. Concettualmente, è come un gaussiano, ma i colori sorgente stessi incidono anche sulla "distanza" di un pixel dagli altri. Ciò tende a levigare le aree piane preservando i bordi.
Upscaling bilaterale
Ormai, spero che tu veda dove sto andando con questo: qualsiasi filtro che puoi usare per filtrare, puoi usare per l'upscaling o il downscaling, che sono davvero la stessa cosa (perché tutto è ricampionamento).
Se hai implementato un filtro bilaterale, dovresti essere in grado di implementare semplicemente un ricampionatore di filtri bilaterale - così come, se hai implementato un filtro gaussiano, dovresti essere in grado di implementare un ricampionatore di filtro gaussiano.
L'unica difficoltà può essere le definizioni. Sfortunatamente, la distinzione tra filtraggio e ricampionamento è sistematicamente confusa con la occasionale inesistenza nella letteratura sull'elaborazione delle immagini. Per l'implementazione di un filtro di tipo bilaterale, farei molto affidamento sulle sue somiglianze con il ricampionamento gaussiano. Il filtro bilaterale IIRC (non leggo il documento da anni) è proposto in termini di pixel, non di campioni.