Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Motion Detector (OpenCV) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Задача обедающих философов при помощи событий (events) http://www.cyberforum.ru/cpp/thread370605.html
Здравствуйте. Очень нужна помощь с сабжем. Самостоятельно ничего не вышло - не пойму как это вообще выглядеть должно. Посему, кому не трудно, поделитесь кодом. Добавлено через 23 часа 43 минуты...
C++ Получить сигнал с СОМ-порта Здравствуйте.Собсно поставлена такая задача - получить по COM-порту код,преобразовать в число и вывести на экран.Тоесть например идет набор единичек "1111" - получаем ,выводим "15".Препод усиленно... http://www.cyberforum.ru/cpp/thread369103.html
Помогите решить ошибку C++
#include <iostream.h> #include <math.h> #include <windows.h> char buf ; char *rus(char *s) {CharToOem(s,buf); return buf;} void main () { cout << ( " programma dl9 vi4esleni9 sostavnoe...
C++ помогите взломать гиппертест
вот этот гиппертест.срочно нужно.
C++ вопрос по libssh http://www.cyberforum.ru/cpp/thread367636.html
Подскажите пажалста, если кто сталкивался с библиотекой libssh. Допустим через эту либину я пересылаю архив на некое устройство линуксовое. Запускаю разархивирование. теперь вопрос: как я могу...
C++ Помогите с задачей плиз очень нужно...Дана последовательность из n целых элемнтов. Удалить из нее первое и последнее вхождение минимального элемента, затем отсортировать ее по убыванию. Вывести на экран последовательность... подробнее

Показать сообщение отдельно
Nick Alte
Эксперт С++
1639 / 1011 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
23.10.2011, 14:31
Классическая ошибка - удаление элементов "в лоб" приводит к тому, что итераторы, "выписанные" вектором до удаления элемента, портятся после удаления.
Вместо
C++
1
2
3
        for(it = targets.begin(); it != targets.end(); ++it) {
                if(cv::countNonZero(mask(*it)) < MIN_CONTOUR_AREA) 
                        targets.erase(it);
лучше воспользоваться стандартным алгоритмом
C++
1
        std::remove_if(targets.begin(), targets.end(), AreaTooSmall);
где bool AreaTooSmall (const cv::Rect& rect) - функция, проверяющая требуемое условие.
Ну или на новом стандарте, на GCC или Visual Studio 2010 можно через лямбда-функцию сразу
C++
1
        std::remove_if(targets.begin(), targets.end(), [] (const cv::Rect& r) {return cv::countNonZero(mask(r)) < MIN_CONTOUR_AREA});
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru