![]() |
|
Модераторы: bsa |
![]()
|
|
| relok |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 13.11.2010 Репутация: нет Всего: нет |
здравствуйте)
идеи по этому поводу есть, но хочется спросить, мб имеются решения побыстрее и попроще (или есть ссылки на уже готовые алгоритмы, не знаю как это назвать): есть массив, к примеру y ^ 6| 0 0 0 0 0 0 0 0 0 0 5| 0 0 0 0 0 0 0 0 0 0 4| 0 0 1 1 1 1 0 0 0 0 3| 0 0 1 1 0 1 1 0 0 0 2| 0 0 1 1 1 1 1 0 0 0 1| 0 0 0 1 0 0 0 0 0 0 0| 0 0 0 0 0 0 0 0 0 0 ------------------------> x 0 1 2 3 4 5 6 7 8 9 слева и снизу- индексы) смотрим на это не как на массив, а как будто это картинка. нолики - фон. единички составляют объект. нужно выделить объект рамкой (то есть найти наименьшее значение ИКС, наименьшее значение ИГРИК ,наибольшее значение ИКС, наибольшее значение ИГРИК - для объекта из единичек). Икс и Игрик соответственно не обязательно должны быть от одного пикселя(единички). объект не прерывается, если рядом хоть с одной единичкой есть еще одна (во всех 8- ми направлениях) для данного примера: minX=2 minY=1 maxX=6 maxY=4 моя идея: делаем обход построчно слева направо снизу вверх. находим первую единичку: 3,1 заходим в while(какая -то проверка) эту единичку заносим в массив, ищем всех ее друзей(в 8 направлениях) - 2,2 3,2 4,2 далее ищем друзей у 2,2 : 2,3 3,3 3,2(уже был) и 3,1(уже был) далее ищем друзей 3,2 , потом у 4,2 потом ищем друзей друзей , и друзей друзей друзей. пока последний друг не найдет себе пару закончить думаю можно тогда, когда очередной пиксель (единичка) не найдет себе НОВУЮ (которой раньше не было) пару это мне кажется слишком "в лоб" мб есть попроще?) ps нужно для камеры . к примеру идет в кадре человек - выделить его контуром. |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
мне кажется ты чего-то перемудрил http://liveworkspace.org/code/de243fbac019...9f6a2a4c2f77027 только индексы по Y ни "снизу", а "сверху" -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| relok |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 13.11.2010 Репутация: нет Всего: нет |
спасибо за внимание)
но объектов может быть больше, и для каждого нужно будет рассчитать это дело |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
и тут вспоминается анекдот/байка: молодому бойцу дали задание: разобрать и почистить генератор. Читает он инструкцию: "Снимите крышку генератора". Ну, сказано - сделано, снимает. А она не поддаётся. Он и пласкогубцами и монтировкой поддеть пытался... Никак. В итоге взял зубило, молоток - сбил нахрен эту крышку. Читает инструкцию дальше: ", открутив предварительно 16 болтов" -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| relok |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 13.11.2010 Репутация: нет Всего: нет |
|
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
ну... как-то так. http://liveworkspace.org/code/7e75e4fd9bb1...248407349bf75db
похоже на то, что ты писал в самом начале... -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| relok |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 13.11.2010 Репутация: нет Всего: нет |
спасибо) всё работает отлично
но не мог бы ты объяснить как?) typedef vector< Rect > Objects; //вот от сюда |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
relok, т.е. я правильно понял, что ты не знаешь, что такое вектор, но собираешься делать
IMHO стоит сначала почитать книжки, поднатаскаться с Си++, а затем уже писать распознавание контуров по видеоизображению... Не в обиду... Щаз убегаю. Приду домой - распишу что там да как -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| relok |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 13.11.2010 Репутация: нет Всего: нет |
я знаю что такое вектор и как раз через него хотел делать) не додумался правда с самого начала сделать вектор структур (хотел вести 4 отдельных вектора) мне не очень понятна чудо рекурсия, которую ты используешь и которая волшебно работает |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
как-то так -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| relok |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 13.11.2010 Репутация: нет Всего: нет |
спасибо тебе)
рамкой выделяет движение в кадре но возникает переполнение стека, когда объект примерно равен 40% кадра к слову: массив обрабатывается размером 128*96 |
|||
|
||||
| borisbn |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
а как ты переводишь изображение (цветные, чёрно-белые или оттенки серого пикселы - без разницы) в массив 0-й и 1-ц ?
ухудши разрешение в 2 раза по каждой оси. Обработай массив след.образом:
а затем работай с zoommed -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||
|
|||||
| relok |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 13.11.2010 Репутация: нет Всего: нет |
я подумаю в четверг над этим) спасибо
но не думаю что получится, так как нужно будет это всё потом опять развертывать. а хотя если развертывание не составит проблем(еще не пробывал, то что ты написал), то весь детектор будет работать побыстрее. а если свернутое еще и полирнуть наращиванием, а потом эрозией... Это сообщение отредактировал(а) relok - 24.5.2011, 17:53 |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
а что за религия, не позволяющая в среду работать ? Про субботу знаю, про воскресенье - тоже думаю умножение rect.left, rect.top etc на K_ZOOM - это не проблема как насчёт вопроса
? -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| relok |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 13.11.2010 Репутация: нет Всего: нет |
если в массив нулей и единиц, то : исходное 640*480 есть базовый кадр, по нему строю яркостный массив: обхожу окном 5х5 , высчитываю сумму в окне и делю на 25 (средняя яркость, яркость у меня это Y от YUV) составляю массив из яркостей для базового, размером 128 * 96 потом для каждого приходящего с камеры кадра строю такой же затем заполняю массив - маску (128 на 96) - если в текущем квадрате абсолютная разность между средними яркостями текущего и базового больше какого-то порога, то ставлю 1, если нет, то оставляю 0. +в твоей идее то, что мне не придется сворачивать изображение, а только бинарную маску эту, получать координаты для прямоугольника, разворачивать координаты и по ним строить в кадре прямоугольник
завтра в универ ехать нужно=) а в четверг можно продолжить мучать камеру Это сообщение отредактировал(а) relok - 24.5.2011, 18:35 |
||||
|
|||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |