helloworld
Пользователи-
Количество публикаций
9 -
Зарегистрирован
-
Посещение
Репутация
0 НовичекО helloworld
-
Звание
Новичок
Profile Information
-
Пол
Мужской
-
Расположение
Fort Collins
-
Привет всем, Не могу понять как соединить несколько матриц в одну. Например, матрица 5x128 и 4x128. Хочу получить результат 9х128 с сохранением элементов из 1 и 2 матрицы. Вот код, который связан с SURF методом: // result matrix, trainRow = num of points found by SURF x num of images(trainImgNum) CvMat* points = cvCreateMat( trainRow, 128, CV_32FC1 ); for (i=0; i<trainImgNum;i++) { vector<CvPoint2D32f> pt; // fill vector int k = 0; for( k = 0; k < trainDescriptors[i]->total; k++ ) { // extract CvSURFPoint* point =((CvSURFPoint*)cvGetSeqElem(trainDescriptors[i], k)); pt.push_back(point->pt); } // creat matrix total num of points x 128 CvMat temp = cvMat(trainDescriptors[i]->total, 128, CV_32FC1, &pt[0] ); // зздесь хотелось бы заполнять points матрицу по мере возрастания. } Я пробовал добавлять cvGetRows в for-loop, но почему то элементы конечной матрицы равны нулю. cvGetRows( points, &temp, pos, pos+(trainDescriptors[i]->total)); Спасибо!
-
Небольшой вопрос связанный с Surf: после того как получаем "интересные" точки типа CvSeq, как их переобразовать в матрицу вида 1хКол-во точек ? cvExtractSURF( trainArray, 0, &trainKeypoints, &trainDescriptors, storage, params ); CvMat * temp = cvCreateMat( 1, trainDescriptors->total, CV_32FC2 ); Спасибо
-
Да, почти то что надо, но по некоторым причинам я могу использовать только OpenCV 2.1, где bow нет (появился только в 2.2) Появилась идея привязать SURF к KMeans (кластеризация) и потом уже сравнивать с тестируемым изображением (вернее сравнивать points of interest). Всё это пока еще в процессе обдумывания, если у кого есть другие идеи, вперед! Я пока начну понемногу писать код Surf+Kmeans.
-
Всем доброго дня. Появилась задача - сделать классификатор с помощью opencv. Есть 4 класса фотографий: зебры, самолеты, машины и кошки (леопарды). Все разного размера, цветные, в каждом классе по 100 фотографий, итого - 400. Вот несколько примеров: Задача проста - в программу будет подаваться изображение, нужно вывести результат: тестируемая фотография принадлежит к зебрам\самолетам\машинам\кошкам. Начал читать о SURF, достаточно интересная идея, выделяются точки и потом они сравниваются с другим изображением. Будет ли SURF работать с 4 классами в моем случае? Если у кого то есть рабочий пример использования SURF, буду очень благодарен, т.к. в поисковиках примеров использования почти нет. Другие идеи тоже приветствуются! Спасибо!
-
Да, обучение Haar'а судя по отзывам еще какая рулетка, не угадаешь будет ли работать. Некоторые товарищи тренировали темплейт по 6-7 дней и всё равно результат был с ошибками. Немного пошарив по рунету нашел интерсное решение - http://blog.vidikon.com/?p=470 У меня есть видео файл. Идея - прикрутить к Haar'у мониторинг: сначала находим лица, ставим точки на лица и ищем их передвижение. Кто пробовал подобное, есть какие впечатления (или еще примеры)?
-
Обычный поиск лиц на фотографии, с прямоугольником.
-
Добрый день. Какие есть еще варианты распознания лиц на фото? Если не сложно, опишите общую процедуру с примерами функций opencv Я немного ознакомился с Sobel mask, но не понял как вытянуть границы(скажем лица) после обработки. Haar не устраивает по одной причине, если например человек немного повернул лицо, то алгоритм не работает =( Спасибо!
-
Спасибо за наводку. Но мне нужно немного другое - расчитать координаты углов нового изображения _до_ самого поворота. А простое увеличение размера на 3 BgImage = cvCreateImage( cvSize(ImgFromFile->width*3,ImgFromFile->height*3),IPL_DEPTH_8U, ImgFromFile->nChannels ); не пойдет.
-
Добрый день, Не буду создавать еще одну тему. Моя задача - повернуть картинку на +45 градусов. Проблема в том, что после поворота "обрезаются" углы исходного изображения. Я понимаю что перед поворотом нужно вычислить размер ногово изображения. Есть можно покажите пример. Спасибо!