2015-03-17 1 views
1

Я хочу украсить видео с помощью OpenCV и C++. Я нашел на сайте док OpenCV это:OpenCV: Denoising image/video frame

fastNlMeansDenoising(contourImage,contourImage2); 

Каждый раз, когда новый кадр загружен, моя программа должна Denoise текущий кадр (contourImage) и записать его на contourImage2.

Но если я запустил код, он вернет 0 и выйдет. Что я делаю неправильно или есть альтернативный способ уменьшить изображение? (Он должен быть быстрым, потому что я обрабатываю видео)

+0

Показать код, который вы пробовали. Невозможно диагностировать, где именно это происходит, не видя, что вы на самом деле пытались. – rayryeng

ответ

1

пока вы используете C++, вы не предоставляете полный аргумент, попробуйте это.

cv::fastNlMeansDenoisingColored(contourImage, contourImage2, 10, 10,7, 21); 

// This is Original Function to be used. 
cv::fastNlMeansDenoising(src[, dst[, h[, templateWindowSize[,  searchWindowSize]]]]) → dst 

Параметры:
SRC - вход 8-бит 1-канальный, 2-канальный или 3-канальный изображения.
dst - Выходное изображение того же размера и типа, что и src.
templateWindowSize - Размер в пикселях патча шаблона, который используется для вычисления весов. Должно быть странно. Рекомендуемое значение 7 пикселей.
searchWindowSize - Размер в пикселях окна, который используется для вычисления средневзвешенного значения для заданного пикселя. Должно быть странно. Влиять на производительность линейно: больше.
поискWindowsSize - большее время шумоподавления. Рекомендуемое значение 21 пиксель.
h - Параметр, регулирующий прочность фильтра. Большое значение h отлично удаляет шум, но также удаляет детали изображения, меньшее значение h сохраняет детали, но также сохраняет некоторый шум.