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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
denistrannik
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 27
#1

Выделение контуров объекта, который задержался в кадре на 10 секунд - C++

05.11.2015, 10:21. Просмотров 141. Ответов 0
Метки нет (Все метки)

здравствуйте!я устал шарить по интернету, посмотрел, тут вроде всем помогают очень хорошо! вообщем есть код! запускаем, жмём на энтер для того чтобы запомнился фон! потом инородные объекты программа выделяет синим цветом! вообщем любые изменения по сравнению с фоном программа показывает синим цветом!и вот мне нужно чтобы предмет который задержался в кадре на 10 секунд к примеру выделять контуром(прямоугольником). ну и дальше думаю сделать чтобы сохранялся кадр в папку с подписью.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include <iostream>
#include <opencv\cv.h>
#include <opencv\highgui.h>
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char** argv)
{
    //Необходимо подключить камеру
CvCapture* capture = 0;
capture = cvCaptureFromCAM(0);
if (!capture) return 1;
cvNamedWindow( "Motion", 1 );
IplImage* image;
CvScalar color;
CvPoint cv1;
CvFont font;
cvInitFont( &font, CV_FONT_HERSHEY_SIMPLEX, 1.3f,1.3f,0,1, 8 );
cv1.x=70; cv1.y=120;
color = CV_RGB(24,0,24);
int i,j;
for(;;)
{
IplImage* image1;
if( !cvGrabFrame( capture ))
break;
image1 = cvRetrieveFrame( capture );
 
cvPutText( image1, "Press, when you ready", cv1, &font, color );
 
cvShowImage( "Motion", image1);
if( cvWaitKey(10) >= 0 ) break;
}
 
//обучаем фон
image = cvRetrieveFrame( capture );
cvShowImage( "Motion", image);
 
 
//Теперь надо посчитать m для каждых
float *m=new float[image->height*image->width*3];
int j1;
uchar* ptr;
for(i=0;i<image->height;i++)
{
    for(j=0;j<image->width;j++)
    {
        for(j1=0;j1<3;j1++)
        {
            m[(i*image->width+j)*3+j1]=0;                
            ptr = (uchar*) (image->imageData);
            m[(i*image->width+j)*3+j1]+=ptr[j*3+i*image->widthStep+j1];                
            m[(i*image->width+j)*3+j1]=m[(i*image->width+j)*3+j1]/1;
        }
    }
}
//Раз запомнили - можно входить в цикл обработки изображений
float porog=60.0;
float k=0;
for(;;)
 {
    IplImage* image1;
    if( !cvGrabFrame( capture ))
    break;
    image1 = cvRetrieveFrame( capture );
    ptr = (uchar*) (image1->imageData);
    for(i=0;i<image->height;i++)
    {
        for(j=0;j<image->width;j++)
        {
            k=0;
                for(j1=0;j1<3;j1++)
                k+=abs(m[(i*image1->width+j)*3+j1]-ptr[j*3+i*image1->widthStep+j1]);
            if (k>=porog)
            {
                for(j1=0;j1<3;j1++)
                {
                    if (j1==0) ptr[j*3+i*image1->widthStep+j1]=255;
                    else ptr[j*3+i*image1->widthStep+j1]=100;
                }
            }
        }
    }
    cvShowImage( "Motion", image1);
    if( cvWaitKey(10) >= 0 ) break;
 }
//Удаляем все
cvReleaseCapture( &capture );
cvDestroyWindow( "Motion" );
delete m;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.11.2015, 10:21     Выделение контуров объекта, который задержался в кадре на 10 секунд
Посмотрите здесь:

Динамическое выделение памяти для объекта класса - C++
Скажите в чем отличие между A *ptr=new A() и A *ptr=new A;

Как выглядит изнутри динамическое выделение объекта через new? - C++
То есть на Си будет выглядеть так : struct T { int x, y; }; /* Эта процедура является отображением конструктора...

Определение объекта, который вызвает конструктор. - C++
Привет! Подскажите пожалуйста, как определить, какой из объектов в программе (программа очень большая и писал ее не я) вызывает...

В какой момент вызывается конструктор для глобального объекта, использующего статическое выделение памяти? - C++
В какой момент вызывается конструктор для глобального объекта, использующего статическое выделение памяти?

Как изменить тип объекта, на который указывает указатель? - C++
Есть абстрактный базовый класс и два производных: class Base { protected: int A; }; class Child1 : public Base {

как создать копию объекта, на который ссылается итератор? - C++
Есть шаблонная фукнция, в которую передается итератор с произвольным доступом (IT). Необходимо внутри функци создать копию элемента...

Как создать копию объекта на который указывает указатель - C++
У меня есть указатель класс Student, который хранит информацию о студентах(имя, фамилию, телефон) в строках в стиле Си, то есть private...

Как напрямую обратиться к элементу объекта, который находится в векторе? - C++
Только один вопрос. Как напрямую обратится к элементу объекта, который находится в векторе. Например у нас есть вектор. он хранит...

Нахождение лиц в кадре - C++
Добрый вечер, суть проблемы такова,недавно заинтересовался алгоритмом Виолы-Джонса для распознавания лиц на фото ,прочитал статьи на...

Зачем нужен конструктор объекта ostringstream (строковый поток который) с двумя аргументами? - C++
От него всё равно толку как от быка молока. А вроде как предназначен для записи чего-то там в строку... #include &lt;string&gt; #include...

В этой программе создается "матрица" из секунд.Как мне первый ряд чисел (секунд) присвоить масиву? - C++
//--------------------------------------------------------------------------- #include &lt;vcl.h&gt; #pragma hdrstop #include...

Конвертировать строку с датой и временем в число секунд и наоборот - число секунд в дату и время - C++
Здравствуйте. Подскажите пожалуйста есть строки типа char/string: 2015.04.30 06:30 как перевести данное время в число секунд. И...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru