Альтернатива OpenCV fastNlMeansDenoising для приложения в реальном времени?

В настоящее время я использую функцию ниже, чтобы удалить шум из двух изображений размером (240×720). В настоящее время я вычисляю это на своем компьютере, но хотел бы реализовать это в режиме реального времени. Однако на моем компьютере эта функция приводит к значительным задержкам программы. Есть ли альтернатива удалению шума с изображения, которое может работать в режиме реального времени? Гауссово размытие возможно?

  fastNlMeansDenoising(ipmOfLeftLaneRobust, ipmOfLeftLaneRobust,10,7,21);

0

Решение

Учитывая функцию

fastNlMeansDenoising(InputArray src, OutputArray dst, float h=3,
int templateWindowSize=7, int searchWindowSize=21 );

Когда templateWindowSize Подходит к 1, фильтр становится коробчатым двусторонним фильтром.

Когда h термин приближается к бесконечному, фильтр становится фильтром размытия окна.

Для обоих двух реализация является исчерпывающей.

Простая альтернатива — сначала попробовать два оптимизированных особых случая: cv::boxFilter а также cv::bilateralBlur,

0

Другие решения

Одним из вариантов для рассмотрения может быть использование версии CUDA fastNIMeansDenoising, поскольку он предлагает значительное ускорение при условии, что у вас приличный графический процессор (верно для большинства функций OpenCV в целом). Однако, за исключением этого, это зависит от того, с каким шумом вы имеете дело, но если это, скажем, шум от соли и перца, использование функции медианного размытия обычно дает хорошие результаты. Гауссово размытие — еще один хороший вариант, если ваш шум носит более общий характер.

0

По вопросам рекламы [email protected]