Шумоподавление на изображениях в OpenCV / OpenCV / Recog.ru - Распознавание образов для программистов


Шумоподавление на изображениях в OpenCV

В OpenCV существует несколько функций для шумоподавления на изображениях. Шумоподавление используется во многих алгоритмах и не только для обработки фотографий, но и для предварительной обработки в реальном времени. Хотя реализованные в OpenCV функции несколько тяжеловесны. Для тестов возьмем следующее изображение:

Функции, к сожалению, имеют только C++ интерфейс (C –отсутствует).

Функция fastNlMeansDenoising
Шумоподавление на основе алгоритма http://www.ipol.im/pub/algo/bcm_non_local_means_denoising/, с учетом, что на изображении белый гауссов шум.
void fastNlMeansDenoising(
	InputArray src, 
	OutputArray dst, 
	float h=3, 
	int templateWindowSize=7,
	int searchWindowSize=21 
);

Параметры:
src – входное изображение;
dst – выходное изображение;
h – регулирует силу шумоподавления;
templateWindowSize — размер в пикселях шаблона участка, который используется для вычисления весов. Должно быть нечетным;
searchWindowSize — размер в пикселях окна, которое используется для вычисления взвешенного среднего для данного пикселя. Должно быть нечетным. Влияет на производительность линейно.

Эта функция работает с изображениями в градациях серого.

Простейший пример:
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp" 
#include "opencv2/photo/photo.hpp" 

using namespace cv; 
int main()
{
	Mat image = imread( "cinput.jpg", 0 ); // серое
	fastNlMeansDenoising( image, image, 3.0f, 7, 21 ); 
	//fastNlMeansDenoising( image, image, 9.0f, 7, 21 ); 	
	imwrite( "cinput2.jpg", image );
	return 0;
}


Результаты шумоподавления для силы 3:

Для силы 9:


Видно, что чем больше сила, тем больше деталей стираются.

Функция fastNlMeansDenoisingColored
Аналогична предыдущей, но для цветных изображений.

Для последовательности изображений (т.е. видео) есть соответствующие функции:
fastNlMeansDenoisingMulti
fastNlMeansDenoisingColoredMulti
  • 0
  • 01 ноября 2013, 14:00
  • vidikon

Комментарии (0)

RSS свернуть / развернуть

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.