Недавно я попробовал обновить свои библиотеки Emgu с 2.4.2 до 3.0.0. Таким образом, в версии произошли значительные изменения, и у меня возникли проблемы с изменением кода, чтобы он работал.EMGU 3.0.0 OpenCV Вставка и удаление контурных точек
Версия Emgu 2.4.2 была контурного Класс: http://www.emgu.com/wiki/files/2.4.2/do ... Index.html
Мой код использует это, и иногда я извлекаю точек с помощью метода RemoveAt или добавления точек с помощью метода Insert. Мой первоначальный контур может содержать точки, которые являются выбросами (из-за различных критериев, таких как кривизна, расстояние между соседними точками и т. Д.).
То, что я пытался сделать в новой версии Emgu, было использование класса VectorOfPoint. Он работает для большей части моего кода, но он по-прежнему не имеет (насколько я могу судить) никакого эквивалента метода RemoveAt. Кажется, что-то похоже на метод Insert (метод Push: http://www.emgu.com/wiki/files/3.0.0/document/html/9f6838b0-d946-adc6-e14e-8f223079f5e3.htm), хотя я не уверен, что это именно то, что я хочу.
Я смотрел этот вопрос немного дальше, и увидел, что класс Мат имеет PushBack и PopBack метод, который позволяет добавлять и удалять элементы в конце последовательности. Однако, поскольку у меня был код раньше, я удалял элементы в определенных местах (метод RemoveAt позволяет вводить индекс i элемента, который нужно удалить).
В качестве примера, это, как я использовал метод RemoveAt перед:
for (int i = nPoints - 1; i >= 0; i--)
{
if (!goodPoint[i])
{
shapeContour.RemoveAt(i);
continue;
}
}
Я не вижу прямой функции я могу использовать в новой версии Emgu. Я ошибаюсь?
Буду признателен за любую помощь. Заранее спасибо.
В чем именно вам нужна помощь? [ask] Вы должны добавить свой соответствующий код к вопросу, а также добавить теги для языка программирования и соответствующих библиотек, которые вы используете. –