Существует ли какая-либо библиотека для медианной фильтрации с размером ядра больше 5 с использованием ускорения OpenCL в python? - PullRequest
0 голосов
/ 10 декабря 2018

Заранее благодарю за ответ.

Я много пробовал в поиске в Google, видел scipy.sgnal.medfilt2, skimage.filters.median, но ни один из них не поддерживает OpenCL.

Я также видел: https://wiki.tiker.net/PyOpenCL/Examples/MedianFilter?fbclid=IwAR3tnqNEnZ8oVJUWplxkz33Km3aj3uYVbnQQQBsGjLlIjyCxWIijbxaNuGQ

Но этот код жестко запрограммирован для размера ядра: 3.

OpenCV имеет UMat, прозрачный API, но он снова ограничен размером ядра 5.

Если вам известна какая-либо библиотека, которая может выполнять медианную фильтрацию с размером ядра порядка ~ 51 с использованием openCL в python, это было бы замечательно.

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

Еще раз спасибо за внимание к этому.

С уважением

HM

1 Ответ

0 голосов
/ 11 декабря 2018

Вы уже пробовали cv::medianBlur (8-битная версия процессора)?Реализация движущейся гистограммы делает его сложностью O (1) по отношению к радиусу блока, поэтому очень сложно победить на больших радиусах, независимо от того, сколько у вас ядер.Версия OpenCL, которая смущающе параллельна, использует сеть сортировки для медианы.К сожалению, такой алгоритм быстро становится непрактичным, так как количество требуемых операций сравнения очень быстро растет.

...