Sto scrivendo un programma (widget Qt / c ++) per rimuovere il rumore dalle immagini. Come metodo di denoising, ho selezionato un metodo non locale . Questo metodo ha un'incredibile qualità delle immagini ripristinate (ecco perché è l'unico metodo di denoising in OpenCV), ma ha un costo di calcolo enorme , quindi ho fatto molte varianti modificate di questo metodo (alcune con multithreading, altre algoritmiche). Ma ho un problema con quello che coinvolge FFT
Ho seguito tutti i passaggi di questo articolo (solo una pagina, 1430) e tutto funziona perfettamente, tranne per la parte FFT, ci sono solo 2 righe su di esso nel documento e non riesco a capire, COME si dovrebbe usare fft
Questo problema mi ha infastidito per mesi, qualsiasi aiuto o intuizione sarebbe molto apprezzato.
Versione abbreviata della domanda: come posso ottenere rapidamente la differenza quadrata sommata di due array sull'immagine (uno in alto e uno al centro, i valori sono colori) rapidamente? (O (n ^ 2) ha un costo enorme, ci sono molte operazioni di questo tipo, afferma la carta sopra, che può essere fatto tramite FFT con O (n * log n) (dice che queste 2 matrici formano in qualche modo una convoluzione circolare) )