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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Удалить из двунаправленного списка элемент после элемента с заданным номером http://www.cyberforum.ru/cpp-beginners/thread1571881.html
Записи в линейном списке содержат ключевое поле типа int. Сформировать двунаправленный список. Удалить из него элемент после элемента с заданным номером, добавить К элементов в начало списка.
C++ Определить, является ли заданное натуральное число совершенным Помогите пожалуйста с задачей Вот условие: Определить, является ли заданное натуральное число совершенным, т.е. равным сумме всех своих (положительных) делителей, кроме самого этого числа (например, число 6 совершенно: 6=1+2+3) Заранее спасибо. http://www.cyberforum.ru/cpp-beginners/thread1571873.html
Написать программу, которая выводит на экран пример на вычитание двух чисел C++
Помогите пожалуйста с задачей Вот условие: Написать программу, которая выводит на экран пример на вычитание двух чисел, запрашивает ответ пользователя, проверяет его и выводит сообщение "Правильно" или "Вы ошиблись" и правильный ответ. Использовать визуальную среду. Заранее спасибо
Explicit в конструкторе C++
Ключевое слово explicit перед конструктором служит лишь для того чтобы не запутаться и передавать аргумент в конструктор явно? Например: class cla { int a; public: cla(int g) { a=g; }
C++ Реализация стека/очереди для выдачи номеров пар скобок в тексте http://www.cyberforum.ru/cpp-beginners/thread1571829.html
Используя очередь или стек, решить задачу: в файле записан текст, сбалансированный по круглым скобкам. Требуется для каждой пары соответствующих открывающей и закрывающей скобок напечатать номера их позиций в тексте, упорядочив пары номеров по возрастанию номеров позиций: а) закрывающих скобок; (например, для текста a+(45-f(x)*(b-c)) надо напечатать: 8 10; 12 16; 3 17) б) открывающих...
C++ Шифрование и дешифрование методом Цезаря Здравствуйте. Не работает шифрование и дешифрование. Если выводить в шифровке расположение букв числами, то они отрицательные. Соответственно уже дешифрование не работает. Должно работать через массив с алфавитом. #include <iostream> #include <string> #include <conio.h> #include <fstream> #include <cstring> using namespace std; подробнее

Показать сообщение отдельно
denistrannik
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 27

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

05.11.2015, 10:21. Просмотров 146. Ответов 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;
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru