mrgloom 242 Жалоба Опубликовано July 20, 2015 (изменено) Какие фильтры можно применять к 1D сигналам?Только blur()(еще boxFilter, хотя это тоже самое), GaussianBlur()?Для свертки есть только filter2D(но соответсвенно он только для изображений)? Изменено July 20, 2015 пользователем mrgloom Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано July 20, 2015 Как-то применял еще морфологию, для постобработки гистограмм. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано July 21, 2015 Какие фильтры можно применять к 1D сигналам?Только blur()(еще boxFilter, хотя это тоже самое), GaussianBlur()?Для свертки есть только filter2D(но соответсвенно он только для изображений)?Да практически любые. Не вижу никаких принципиальных проблем с 1D сигналами. Лучше спроси, какие нельзя? Этот вопрос будет посложней. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано July 21, 2015 Я не про теоретически применимые, а про то как это сделать в OpenCVНе нашел ф-ии для одномерной конволюции.т.е. вопрос скорее надо поставить так не "Какие фильтры можно применять к 1D сигналам?"а какие функции для фильтрации в Opencv можно применять к 1D сигналам. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано July 21, 2015 Я правильно понимаю, что 1D сигнал - это та же cv::Mat с rows == 1? Если да, то какая функция отказывается с ней работать? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано July 22, 2015 Да, это матрица состоящая только из одной строки.хм я думал, те ф-ии которые не поддерживаются подачи кернела вручную будут выдавать ошибкут.е. допустим фильтруется 1 колонка и размер кернела и задается вручную Size(1,3)GaussianBlur(m.col(0), m.col(0), Size(1,3), 1.0); blur(m.col(0), m.col(0), Size(1,3)); например для medianBlur задается только размер кернела Mat t= gray.row(0); Mat dst; cout<<t<< endl; medianBlur(t,dst,3); // if 1 then dst same as t cout<<t-dst<< endl;в итоге ф-ия отрабатывает без ошибок и что то делает, но делает ли она то что надо по сорцам я понять не смог т.к. там очень много веток и всё низкоуровневое.https://github.com/Itseez/opencv/blob/56e637d5f44e71499178fa12fa2f6abf21558c02/modules/imgproc/src/smooth.cppкстати в какой то из веток там используется Median Filtering in Constant Timehttp://nomis80.org/ctmf.html п.с. похоже вставка ссылок не работает. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано July 22, 2015 (изменено) Вроде все хорошо: Ссылка http://www.compvision.ru Изменено July 22, 2015 пользователем Smorodov Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах