egens
-
Количество публикаций
9 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные пользователем egens
-
-
почитайте тут в самом начале про частотно контрастный метод фокусировки. там картинка все объясняет. возможно удастся применить к вашей задаче
-
разбирался с компиляцией.. использую CMake по мануалу, затем sln в VS открываю и rebuild делаю. при компилировании появляются новые либы, которых нету в стандартной установке OpenCV_VS_2008 и dll тоже, при этом они появляются в подкаталоге Debug каталогов bin и lib, релизные версии не компилятся что ли? нужно ли из этого подгаталога переносить dll и lib с перезаписью в каталоги bin и lib?
во время плясок с бубном вспомнил, что в свойствах проекта в линкере добавил все libы и в Debug и в Release. попробовал оставить в Debug только либы с 'd' на конце имени файла, а в Release остальные. все заработало - и мавродиевские МMMM исчезли, и с векторами вроде проблемы кончились..
-
то есть, в устанавливаемой изначально библиотеке существуют какие то конфликты? я думал она одновременно поддерживает оба API..
можно на пальцах, как избежать ошибок? или где почитать про это?
а про контуры в моем предыдущем сообщении можешь подсказать?
-
еще есть такие вопросы
функция cv::findContours возвращает контуры как vector<vector<Points>> contours
контуры ищутся для каждого кадра видео. если переменная contours объявлена до цикла получения видео, после первой записи в нее, вторую сделать не удается. если ее задавать внутри цикла, после исполнения программы получаю stack around variable corrupted.
и известны ли вам штатные средства преобразования vector<vector<Points>> в Mat CV_C32SC2 - столбец
также не пойму почему функция
namedWindow("Trulala");
создает окошко с названием "MMMMTrulala"
-
Nuzhny
спасибо! да, после того, как я реализовал систему на C API, этот вопрос для меня более понятен. в доках очень мало инфы про библиотечные типы матриц и их преобразование.. возможно буду переделывать все обратно..
кстати, как узнать тип существующей переменной Mat? Можно ли его получить в виде 'CV_32S'?
-
Для меня C API банально привычней. А что за эксепшен? Не смотрел в отладчике кто его кидает?Могу вечерком глянуть, сейчас ничего под рукой нет.
отладчик не хочет входить в функцию fitEllipse() - эксепшен вылетает на step into.
Посмотрите стандартный пример: C:\OpenCV2.0\samples\c\minarea.cтам все есть.
да вроде как там нет того что мне надо, там все на C API написано. используются функции 'cv...'
я правда смотрел везде где только можно..
реализовал на C API все что хотел.. с C++ API так и не смог разобраться в этом моменте. так что вопрос открытый..
-
хм, видимо никто не использует C++ Api..
я правильно понимаю, что лучше пользоваться C API?
-
В переменной frame - IplImage - капча с камеры.
Преобразую тип и объявляю 2 переменные.
Mat framemat(frame), gray, bw;
Обесцвечиваю исходник.
cvtColor(framemat, gray, CV_BGR2GRAY);
Нахожу маску по уровню
threshold(gray,bw,10,255,THRESH_BINARY_INV);
Убираю шум
morphologyEx(bw, bw, MORPH_OPEN,
getStructuringElement(MORPH_ELLIPSE,Size(5,5),Point(-1,-1)),
Point(-1,-1),3,BORDER_CONSTANT,morphologyDefaultBorderValue());
И тут натыкаюсь на эксепшен:
fitEllipse(bw);
На самом деле нужно выполнить функцию minEnclosingCircle, но даже fitEllipse не хочет выполняться.
Никак не могу разобраться с этой проблемой.. В мануале написано, что аргумент fitEllipse - объект класса Mat и типа CV_32SC2 или CV_32FC2, может быть ошибка в этом, не могу понять как сменить тип..
Системные требования
в OpenCV
Опубликовано · Report reply
а не проще ли, если необходимо определять лишь координаты пятна, всего лишь найти его центр тяжести по маске?
обратите внимание на функцию cvMoments