Как применить известную функцию отклика со сферической геометрией y = f (r) к трехмерной матрице? - PullRequest
0 голосов
/ 26 апреля 2019

У меня есть 3D-матрица M = M (i, j, k), в основном сканирование КТ, и я хочу деконволюцию известной функции отклика, которая имеет сферическую симметрию y = f (r). Функция отклика - это, в основном, эффект размытия, который получает машина, поэтому я его параметризовал.

Я знаю, что могу деконволюцию с помощью FFT, но все пакеты запрашивают матричное ядро. Теоретически я могу получить матричное ядро ​​из функции отклика, но это совсем не хорошо, так как я теряю разрешение, и окончательное изображение становится еще более размытым, чем оригинал. Есть ли способ применить функцию ответа напрямую? ИЛИ ЖЕ Есть ли способ применить более решительное ядро ​​к матрице 3D? Имеет ли этот последний вопрос какой-либо смысл?

from astropy.convolution import convolve_fft

kernel = self.build_kernel(res=[9,9,9]) # converts the response function in a kernel for FFT convolution
new_arr = convolve_fft(array=conv_arr, kernel=kernel, normalize_kernel=False) 

Проблема в том, что для получения ядра в том же разрешении, что и исходное изображение, я теряю его основные характеристики. Полученное изображение еще более размытое, чем оригинал.

...