Перейти к содержимому
Compvision.ru

egens

Пользователи
  • Количество публикаций

    9
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные пользователем egens


  1. разбирался с компиляцией.. использую CMake по мануалу, затем sln в VS открываю и rebuild делаю. при компилировании появляются новые либы, которых нету в стандартной установке OpenCV_VS_2008 и dll тоже, при этом они появляются в подкаталоге Debug каталогов bin и lib, релизные версии не компилятся что ли? нужно ли из этого подгаталога переносить dll и lib с перезаписью в каталоги bin и lib?

    во время плясок с бубном вспомнил, что в свойствах проекта в линкере добавил все libы и в Debug и в Release. попробовал оставить в Debug только либы с 'd' на конце имени файла, а в Release остальные. все заработало - и мавродиевские МMMM исчезли, и с векторами вроде проблемы кончились..


  2. то есть, в устанавливаемой изначально библиотеке существуют какие то конфликты? я думал она одновременно поддерживает оба API..

    можно на пальцах, как избежать ошибок? или где почитать про это?

    а про контуры в моем предыдущем сообщении можешь подсказать?


  3. еще есть такие вопросы

    функция cv::findContours возвращает контуры как vector<vector<Points>> contours

    контуры ищутся для каждого кадра видео. если переменная contours объявлена до цикла получения видео, после первой записи в нее, вторую сделать не удается. если ее задавать внутри цикла, после исполнения программы получаю stack around variable corrupted.

    и известны ли вам штатные средства преобразования vector<vector<Points>> в Mat CV_C32SC2 - столбец

    также не пойму почему функция

    namedWindow("Trulala");

    создает окошко с названием "MMMMTrulala"


  4. Nuzhny

    спасибо! да, после того, как я реализовал систему на C API, этот вопрос для меня более понятен. в доках очень мало инфы про библиотечные типы матриц и их преобразование.. возможно буду переделывать все обратно..

    кстати, как узнать тип существующей переменной Mat? Можно ли его получить в виде 'CV_32S'?


  5. Для меня C API банально привычней. А что за эксепшен? Не смотрел в отладчике кто его кидает?

    Могу вечерком глянуть, сейчас ничего под рукой нет.

    отладчик не хочет входить в функцию fitEllipse() - эксепшен вылетает на step into.

    Посмотрите стандартный пример: C:\OpenCV2.0\samples\c\minarea.c

    там все есть.

    да вроде как там нет того что мне надо, там все на C API написано. используются функции 'cv...'

    я правда смотрел везде где только можно..

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


  6. В переменной 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, может быть ошибка в этом, не могу понять как сменить тип..

×