Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.08.2012, 14:50   #1
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию [QT/C] Работа с веб-камерой

Наверное, есть какая-то библиотека. Но я что-то не могу додумать, подкиньте, кто что может? Вообще нужен не просто захват с камеры, нужна и обработка картинки, поэтому интересует алгоритм слежения за положением лица, например. Пока вижу только захват для Silverlight, ну вот такой невнимательный
Krasi вне форума Ответить с цитированием
Старый 28.08.2012, 14:56   #2
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию

Ап. Объясните новичку, как сделать захват хоть на чем!
Krasi вне форума Ответить с цитированием
Старый 28.08.2012, 16:22   #3
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...захват через VFW/DirectShow.

Цитата:
алгоритм слежения за положением лица
...есть фри-либа FDLIB, просто скармливаете ей картинку, она вам координаты центров фэйсов и размерности.

Добавлено





Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 28.08.2012 в 16:27.
raxp вне форума Ответить с цитированием
Старый 30.08.2012, 09:33   #4
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию

А есть интересные статьи или примеры? Я уже сколько думаю, пока не дошло, может попробовать какой-нибудь пример? Ну лучше не исходником, а с объяснениями.
Krasi вне форума Ответить с цитированием
Старый 30.08.2012, 12:29   #5
ultimatet41
Форумчанин
 
Аватар для ultimatet41
 
Регистрация: 08.04.2012
Сообщений: 104
По умолчанию

Ещё для этих целей можно использовать библиотеку OpenCV
ultimatet41 вне форума Ответить с цитированием
Старый 01.09.2012, 10:55   #6
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию

Я не очень понимаю, к сожалению, как пользоваться библиотеками. То есть я знаю, что в файл проекта можно включать header lib, но как компилить/подключать по-правильному библиотеку? А еще вопросы насчет того, как пользоваться библиотекой, но там же экзамплы, вроде.
Krasi вне форума Ответить с цитированием
Старый 07.09.2012, 06:52   #7
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию

Ок, установил opencv, с помощью cmake сделал библиотеку utility_lib.lib, остальные требуемые включения переместил в папку include. Затем с помощью cmake запустил пример optical flow, но пошли ошибки

Код:
#include <iostream>
#include <iomanip>
#include <stdexcept>

#include <opencv2/core/core.hpp>
#include <opencv2/core/opengl_interop.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/video/video.hpp>
#include <opencv2/gpu/gpu.hpp>

#include "utility_lib/utility_lib.h"

using namespace std;
using namespace cv;
using namespace cv::gpu;

#define PARAM_METHOD "--method"
#define PARAM_OFFSET "--offset"

//#define USE_OPENGL

#ifdef USE_OPENGL
    struct DrawData
    {
Пошли ошибки вот такого рода:

Предупреждение 1 warning C4244: аргумент: преобразование "float" в "int", возможна потеря данных D:\avr\optical_flow\optical_flow.cp p 242 1 demo_optical_flow

Предупреждение 2 warning C4244: аргумент: преобразование "float" в "int", возможна потеря данных D:\avr\optical_flow\optical_flow.cp p 242 1 demo_optical_flow

Ошибка 3 error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall cv::gpu::GpuMat:ownload(class cv::Mat &)const " (?download@GpuMat@gpu@cv@@QBEXAAVMa t@3@@Z) в функции "void __cdecl download(class cv::gpu::GpuMat const &,class std::vector<class cv::Point_<float>,class std::allocator<class cv::Point_<float> > > &)" (?download@@YAXABVGpuMat@gpu@cv@@AA V?$vector@V?$Point_@M@cv@@V?$alloca tor@V?$Point_@M@cv@@@std@@@std@@@Z) D:\avr\optical_flow\optical_flow.ob j demo_optical_flow

Ошибка 4 error LNK2019: ссылка на неразрешенный внешний символ "public: virtual __thiscall cv::Exception::~Exception(void)" (??1Exception@cv@@UAE@XZ) в функции "public: __thiscall cv::Mat::Mat(int,int,int,void *,unsigned int)" (??0Mat@cv@@QAE@HHHPAXI@Z) D:\avr\optical_flow\optical_flow.ob j demo_optical_flow

Ошибка 5 error LNK2001: неразрешенный внешний символ ""public: virtual __thiscall cv::Exception::~Exception(void)" (??1Exception@cv@@UAE@XZ)" D:\avr\optical_flow\utility_lib.lib (utility_lib.obj) demo_optical_flow

Всего 76+2
Krasi вне форума Ответить с цитированием
Старый 07.09.2012, 12:49   #8
ultimatet41
Форумчанин
 
Аватар для ultimatet41
 
Регистрация: 08.04.2012
Сообщений: 104
По умолчанию

Как устанавливать (для компилятора MinGW):
1)скачиваем, распаковываем
2) с помощью cmake-gui генерируем make файл для компилятора MinGW (не забываем добавить переменную среды указывающую на MinGW)
3)открываем консоль переходим в папку в которой был создан make файл
4)выполняем команду make затем make install
5) в папке install появится лишь то что нужно для кодинка

ну а далее пишем код
pro файл
Код:
QT       += core

QT       -= gui

TARGET = opencvQt
CONFIG   += console
CONFIG   -= app_bundle

TEMPLATE = app


SOURCES += main.cpp

INCLUDEPATH += "C:/opencv/result/install/include" (здесь подставляем свой путь)

LIBS += "C:/opencv/result/install/lib/*" (здесь подставляем свой путь)
main.cpp

Код:
#include <QCoreApplication>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/core/core.hpp>

using namespace cv;


IplImage* image = 0;
IplImage* src = 0;

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    // имя картинки задаётся первым параметром
    char* filename = argv[1];
            // получаем картинку
    image = cvLoadImage(filename,1);
            // клонируем картинку
    src = cvCloneImage(image);

    assert( src != 0 );

            // окно для отображения картинки
    cvNamedWindow("original",CV_WINDOW_AUTOSIZE);

            // показываем картинку
    cvShowImage("original",image);

                // ждём нажатия клавиши
    cvWaitKey(0);

            // освобождаем ресурсы
    cvReleaseImage(& image);
    cvReleaseImage(&src);
            // удаляем окно
    cvDestroyWindow("original");

    return a.exec();
}
для запуска программы не забываем копировать dll файл из папки install/bin

в общем вроде как то так

Последний раз редактировалось ultimatet41; 07.09.2012 в 15:41.
ultimatet41 вне форума Ответить с цитированием
Старый 09.09.2012, 09:18   #9
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию

У меня стоит Visual studio, можно на нем, а не на mingw? Ну вот у меня и не получилось, я сделал файл lib, а он дает сбои, видимо. Может что с директориями не то?
Krasi вне форума Ответить с цитированием
Старый 09.09.2012, 09:39   #10
ultimatet41
Форумчанин
 
Аватар для ultimatet41
 
Регистрация: 08.04.2012
Сообщений: 104
По умолчанию

ну как бы на оф. сайте openCV всё не плохо описано
http://opencv.willowgarage.com/wiki/...+_VS2010_CMake
ultimatet41 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с веб камерой manik136 Помощь студентам 1 28.02.2012 18:14
работа с веб камерой на Visual C++ Skrip Visual C++ 2 01.10.2011 18:03
Работа с веб камерой Abbath1349 Общие вопросы .NET 1 05.07.2011 17:15
Работа с веб-камерой, синдром Малевича niki2012 Общие вопросы Delphi 6 21.02.2011 16:13