Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Захват видео с веб-камеры (C++) Здравствуйте! Я установил Visual Studio 2015 Community и библиотеку OpenCV 3.1.0 на Windows 10. Потом я написал программу, которая открывает картинку на просмотр, работает. Но когда написал программу вывода изображения с веб-камеры на экран, у меня вышло окошко без изображения, при том на веб-камере загорелся светодиод. Мне сказали, что возможно это из-за Windows 10. Кто знает, в чем может быть... https://www.cyberforum.ru/ cpp/ thread1917556.html Программирование под VirtualDub C++
Здравствуйте. Может ли кто-нибудь подсказать как писать фильтры под такую программу для нелинейного видеомонтажа VirtualDub. Просто очень часто встречал подобную информацию, что такое возможно. Может ли кто-нибудь помочь с информацией? Просто пока искал, совершенно ничего не нашел... Может кто-нибудь работал с этой программой, писал фильтры под неё или хотя бы хоть что-то об этом знает? Если...
C++ Взаимодействие с asm-кодом из-под Си Не нашел подходящего подфорума, поэтому разместил здесь. Итак, речь не о том, как написать часть Си-кода на асме, а наоборот - о вклинивании Си-процедур в участок асм-кода. Если это играет роль - пишу под gcc, стандарт c++11. Имеется dll, которая вклинивается в процесс. Функция main ничего не знает об инъекциях в асм-код, она лишь вызывает метод класса, который это делает. Сейчас нас... https://www.cyberforum.ru/ cpp/ thread1917098.html C++ Экранировать символ решётки в define https://www.cyberforum.ru/ cpp/ thread1917051.html
Мне нужно склеить слово "bit" и число от 0 до 7. На данный момент это делается в лоб: #define INTERRUPT_FLAG bit4 Но поскольку я всё время путаюсь с числами, а их определения у меня уже есть, то хочется заменить подстановку выше на что-то вроде следующего: #include <bits.h> // #define ADIF 4 #define INTERRUPT_FLAG bit##ADIF Но при этом #define ADIF 4 #define INTERRUPT_FLAG bit##ADIF
C++ Инструментирование кода
Добрый день, коллеги! У меня задача следующая: произвести инструментирование исходного кода, т.е. в определенные участки кода вставить вызов некоторой функции. Самому писать синтаксический анализатор кода - изобретать велосипед, потратив гору времени и усилий. Насколько я уяснил, самый актуальный инструмент на сегодняшний день - это clang. Но вот засада: перелопатил документацию на...
C++ Перевод с питона на С++ a= s= f=float (input("Введите число: ")) l=1 r=8 z=0 x=int(input('Введите число: ')) print (f) while l<r: m=(l+r)//2 https://www.cyberforum.ru/ cpp/ thread1916280.html
C++ Очистить буфер функции после его обработки Добрый день. Имеется некоторое приложение написанное на Delphi Исходных кодов нет. Описаны функции которые необходимо реализовать в своих длл кратко функция имеет вид unction GetCard( Card: Int64; InpBuf: Pointer; InpLen: DWORD; InpKind: Word; var OutBuf: Pointer; var OutLen: DWORD; var OutKind: Word ): Integer; stdcall; на с++ мне ума хватило сделать только так int... https://www.cyberforum.ru/ cpp/ thread1915368.html C++ Code Style for OOP
Здравствуйте. Посоветуйте книгу по дизайну кода (в приоритете ООП на C++ можно и Java на худой конец). А то порой откроешь свой код и становиться грустно ...
C++ Получить часть текстового массива между заданными тегами Здравствуйте. Есть массив текста, из него нужно оставить только то, что находится между <keyMaterial></keyMaterial>. В С# делается вроде вот так src.IndexOf("<keyMaterial>"); int t = src.IndexOf("<keyMaterial>"); src = src.SubString(t + 13); int t = src.IndexOf("</keyMaterial>"); src = src.remove(t); А как сделать это же, но в C++? Перепишите, пожалуйста. https://www.cyberforum.ru/ cpp/ thread1913478.html C++ Wstring to string как конвертировать wstring to string как конвертировать Есть текст типа wstring s="fdgd123 2133" как его переделать в string https://www.cyberforum.ru/ cpp/ thread1913018.html
C++ Получение URL-сайта
Работаю с CURL. Как можно с помощью CURL (или чего-либо другого) записать URL-сайта в string? P.S. Вопрос немного странный :) Ситуация такая: JavaScript (где это именно происходит - не нашел) генерирует в URL рандомное число, его мне нужно получить.
C++ Вывод букв используя arduino due Доброе время суток. Попала в руки такая вещь как arduino due. Нашел ей применение, только сразу нашлась маленькая проблемка. В исходном коде написанно не то, что нужно. Добрые люди помогите изменить текст с "Hello World" на "Пятая Кафедра" Вот сам код: // // // #include "OsciCanvasInt.h" #include "GraphHallo.h" int hallo = { https://www.cyberforum.ru/ cpp/ thread1912374.html
0 / 0 / 0
Регистрация: 16.12.2014
Сообщений: 2
0

Детектирование объекта из видеопотока - C++ - Ответ 10103923

12.02.2017, 00:48. Показов 963. Ответов 0
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!
Встал перед вопросом, обнаружение нескольких объектов и пронумеровать их.
в данный момент выделяет один объект и рядом выводит надпись.
как сделать чтобы выделялись два объекта (мячики разных цветов) со своими номерами?

прикрепляю код
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
#include <opencv/cvaux.h>
#include <opencv/highgui.h>
#include <opencv/cxcore.h>
#include "opencv2/opencv.hpp"
#include <stdio.h>
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <math.h>
#include <float.h>
#include <limits.h>
#include <time.h>
#include <ctype.h>
 
 
using namespace std;
 
int main(int argc, char* argv[]){
// Default capture size - 640x480
CvSize size = cvSize(640,480);
 
// Open capture device. 0 is /dev/video0, 1 is /dev/video1, etc.
CvCapture* capture = cvCaptureFromCAM( 0 );
if( !capture ){
    fprintf( stderr, "ERROR: capture is NULL \n" );
    getchar();
    return -1;
}
 
// Create a window in which the captured images will be presented
cvNamedWindow( "Camera", CV_WINDOW_AUTOSIZE );
cvNamedWindow( "HSV", CV_WINDOW_AUTOSIZE );
cvNamedWindow( "EdgeDetection", CV_WINDOW_AUTOSIZE );
 
// Detect a red ball
CvScalar hsv_min = cvScalar(150, 84, 130, 0);
CvScalar hsv_max = cvScalar(358, 256, 255, 0);
 
// Detect yellow
//hsv_min = cvScalar(20, 41, 133);
//hsv_max = cvScalar(40, 150, 255);
 
// Detect blue
//hsv_min = cvScalar(100, 150, 0);
//hsv_max = cvScalar(150, 255, 255);
 
// Detect Pink
//hsv_min = cvScalar(100, 90, 100);
//hsv_max = cvScalar(172, 255, 255);
 
IplImage * hsv_frame = cvCreateImage(size, IPL_DEPTH_8U, 3);
IplImage* thresholded = cvCreateImage(size, IPL_DEPTH_8U, 1);
 
vector<float> previousX;
vector<float> previousY;
vector<CvPoint> previousC;
std::vector<cv::Point2f> previousPoints;
cv::Vec4f line;
 
//Used for calculating FPS
time_t start, end;
double fps;
double sec;
int counter = 0;
time(&start);
 
 
CvFont font;
cvInitFont(&font, CV_FONT_HERSHEY_SIMPLEX, 0.5, 0.5);
 
while( 1 ){
    // Get one frame
    IplImage* frame = cvQueryFrame( capture );
    if( !frame ){
        fprintf( stderr, "ERROR: frame is null...\n" );
        getchar();
        break;
    }
 
    // Covert color space to HSV as it is much easier to filter colors in the HSV color-space.
    cvCvtColor(frame, hsv_frame, CV_BGR2HSV);
    // Filter out colors which are out of range.
    cvInRangeS(hsv_frame, hsv_min, hsv_max, thresholded);
 
    // Draw the previous positions
    /*
    for (int i=0; i <previousC.size(); i++){
        cvCircle( frame, previousC.at(i), 2, CV_RGB(255,127,0), -1, 8, 0);
        if (i>0)
            cvLine( frame, previousC.at(i-1), previousC.at(i), cvScalar(255,0,0), 2, 8);
    }
    */
 
    if (previousPoints.size() > 1){
        cv::fitLine(previousPoints, line, CV_DIST_L2, 0, 0.01, 0.01); 
        //cv::line(frame, cv::Point(line[2],line[3]), cv::Point(line[2]+line[0]*5,line[3]+line[1]*5));
        cvLine(frame, cv::Point(line[2],line[3]), cv::Point(line[2]+line[0]*2000,line[3]+line[1]*2000), cvScalar(255, 0,0), 2, 8);
    }
 
 
    char text_buf[32] = { '1' };
    // Memory for hough circles
    CvMemStorage* storage = cvCreateMemStorage(0);
    // hough detector works better with some smoothing of the image
    cvSmooth( thresholded, thresholded, CV_GAUSSIAN, 9, 9 );
    CvSeq* circles = cvHoughCircles(thresholded, storage, CV_HOUGH_GRADIENT, 2,
    thresholded->height/4, 100, 50, 10, 400);
 
    for (int i = 0; i < circles->total; i++){
        float* p = (float*)cvGetSeqElem( circles, i );
        //printf("Ball! x=%f y=%f r=%f\n\r",p[0],p[1],p[2] );
        cvCircle( frame, cvPoint(cvRound(p[0]),cvRound(p[1])),3, CV_RGB(0,255,0), -1, 8, 0 );
        cvCircle( frame, cvPoint(cvRound(p[0]),cvRound(p[1])),cvRound(p[2]), CV_RGB(255,0,0), 3, 8, 0 );
        cvPutText(frame, text_buf , cvPoint((p[0] + 2),(p[1] + 2)), &font, CV_RGB(150, 150, 150));
 
        //cvLine( frame, previousC.at(circleIndex), cvPoint(p[0],p[1]), cvScalar(255,0,0), 2, 8);
        previousC.push_back(cvPoint(p[0], p[1]));        
        previousPoints.push_back(cv::Point2f(p[0], p[1]));
    }
 
 
    // Calculate FPS
    time(&end);
    counter++;
    sec = difftime(end, start);
    fps = counter / sec;
    
    char buffer[10];
    sprintf(buffer, "FPS: %.2f", fps);
 
    cvPutText(frame, buffer, cvPoint(10, 30), &font , cvScalar(255,255,255));
 
    cvShowImage( "Camera", frame ); // Original stream with detected ball overlay
    cvShowImage( "HSV", hsv_frame); // Original stream in the HSV color space
    cvShowImage( "After Color Filtering", thresholded ); // The stream after color filtering
 
    cvReleaseMemStorage(&storage);
 
    // Do not release the frame!
    if( (cvWaitKey(10) & 255) == 27 ) break;
 
}
 
// Release the capture device housekeeping
cvReleaseCapture( &capture );
cvDestroyWindow( "mywindow" );
return 0;
}


Вернуться к обсуждению:
Детектирование объекта из видеопотока C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.02.2017, 00:48
Готовые ответы и решения:

OpenCV детектирование и подсчёт людей
Уважаемые форумчане. Пожалуйста, помогите. Нужно написать программу, которая считает людей в...

Opencv, детектирование появления объекта на web странице
Всем доброго времени суток и заранее спасибо, за Ваше понимание и помощь. Суть: В цикле (задержки...

Детектирование 0
Добрые люди, подскажите новичку: Есть китайский блок питания на 5 вольт, от которого планируется...

Детектирование ASK
Здравствуйте! Подскажите пожалуйста как определить пороговое напряжение для детектирования сигнала...

0
12.02.2017, 00:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.02.2017, 00:48
Помогаю со студенческими работами здесь

Детектирование трещин на изображении
Добрый день, уважаемые господа и дамы. Я нахожусь в критической ситуации, когда сам уже ничего не...

Детектирование движущихся объектов
Здравствуйте. Прошу помощи в реализации программы для обнаружения движущихся объектов на видео,...

Детектирование прямоугольных объектов
watch.Reset(); watch.Start(); List&lt;MCvBox2D&gt; boxList = new List&lt;MCvBox2D&gt;(); //a...

Детектирование синусоид в дискретной последовательности
Добрый день! Прошу прощения за мой дилетантский язык, но проблема в следующем: Есть участок...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru