В шаге про захват видео с камеры я упомянул о том, что штатный захват не всегда срабатывает как нужно.
Например, он не хочет устанавливать частоту кадров.
Но под Windows есть замечательная библиотека videoInput, которая уже идёт в составе OpenCV, просто в OpenCV реализованы не все возможности этой библиотеки ;)
При попытке слинковать программу вероятна ошибка, что не найдена библиотека atlthunk.lib
Это решается указанием в свойствах проекта не линковать эту библиотеку.
Для этого нужно перейти
Project–>Properties–>Linker->Command Line
и вставить строчку:
/NODEFAULTLIB:"atlthunk"
Пример получения видео с помощью videoInput.
//
// пример использования библиотеки видеозахвата videoInput
// http://muonics.net/school/spring05/videoInput/
//
// robocraft.ru
//
#include <cv.h>
#include <highgui.h>
#include <videoInput.h>
#ifdef _MSC_VER
// подключение библиотек под MS VC
# pragma comment(lib, "cxcore200.lib")
# pragma comment(lib, "cv200.lib")
# pragma comment(lib, "highgui200.lib")
# pragma comment(lib, "videoInput.lib")
#endif //#ifdef _MSC_VER
IplImage* image = 0;
int main(int argc, char* argv[])
{
// создание объекта videoInput
videoInput VI;
// получение списка доступных видеоустройств, возвращается число устройств
int numDevices = VI.listDevices();
int device1=0; // первое найденое видеоустройсво из списка
// частота кадров
VI.setIdealFramerate(device1, 15);
// указываем разрешение
VI.setupDevice(device1, 1280, 960, VI_COMPOSITE);
//VI.showSettingsWindow(device1); // показать окошко настроек камеры
// создаём картинку нужного размера
image = cvCreateImage(cvSize(VI.getWidth(device1),VI.getHeight(device1)), IPL_DEPTH_8U, 3);
cvNamedWindow("capture", CV_WINDOW_AUTOSIZE);
while(1){
if (VI.isFrameNew(device1)){
// первый параметр - индекс видеоустройсва
// второй - указатель на буфер для сохранения данных
// третий - флаг, определяющий менять ли местами B и R -составляющий
// четвёртый - флаг, определяющий поворачивать картинку или нет
VI.getPixels(device1, (unsigned char *)image->imageData, false, true); // получение пикселей в BGR
//
// здесь уже можно работать с картинкой
// с помощью функций OpenCV
//
// показываем картинку
cvShowImage("capture", image);
}
char c = cvWaitKey(33);
if (c == 27) { // ESC
break;
}
}
// освобождаем ресурсы
cvReleaseImage(& image);
cvDestroyWindow("capture");
// останавливаем видеозахват
VI.stopDevice(device1);
return 0;
}
Zdrustviute otlichnaya rabota o4en pomogla, u menya zada4a sdelat` iskajonnoe video(v real`noe vremya), to est` s effect krivogo zerkala v Opencv naprimer vot takoe:
www.myvido1.com/QTIpEVatWOmF2RNpXTw0UP_-
P.S. eto doljno bit v real`nom vremeni, pomogite pojaluisto kto 4e znaet, rada budu luboi informasii i ssilki
Друзья, подскажите, а можно с помощью этой библиотеке эмулировать веб-камеру (необходим функционал захвата изображения рабочего стола, типа ManyCam, VCam)?
Или каким средствами это сделать? Возможно, есть решение получше, чем писать драйвер.
Всем привет!
подскажите плиз заинклудил библиотеку, скачал уже для VS2010 но при компиляции пишет ошибку
1>d:\project\opencv_helloworld\opencv_helloworld\opencv_helloworld\opencv_helloworld.cpp(1): warning C4627: '#include <cv.h>': skipped when looking for precompiled header use
1> Add directive to 'StdAfx.h' or rebuild precompiled header
1>d:\project\opencv_helloworld\opencv_helloworld\opencv_helloworld\opencv_helloworld.cpp(2): warning C4627: '#include <highgui.h>': skipped when looking for precompiled header use
1> Add directive to 'StdAfx.h' or rebuild precompiled header
1>d:\project\opencv_helloworld\opencv_helloworld\opencv_helloworld\opencv_helloworld.cpp(3): warning C4627: '#include <videoInput.h>': skipped when looking for precompiled header use
1> Add directive to 'StdAfx.h' or rebuild precompiled header
1>d:\project\opencv_helloworld\opencv_helloworld\opencv_helloworld\opencv_helloworld.cpp(69): fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include «StdAfx.h»' to your source?
1>
1>Build FAILED.
подскажите куда копать, VC советует инклудить stdafx, после чего ошибок.
Здравствуйте! А не подскажете как настроить выбор каналов видео? У меня 4-х канальный оцифровщик, и OpenCV и VideoInput видят только первый канал, а мне нужно чтобы все 4?
Спасибо большое, очень внимаетльно просммотрел содержимое этого файла, но как Я понял это только класс для работы с этой библиотекой… примера так и не нашел.
Попробовал своими силами его одолеть, но пока без результатно… может найдется у вас пример для работы с этой библиотекой?
Ниже кидаю свой код(он не работает… такое чувство, что вылетает на инициализации т.к. ничего кроме консольного окна не наблюдаю):
Комментарии (16)
RSS свернуть / развернутьtipabot
www.myvido1.com/QTIpEVatWOmF2RNpXTw0UP_-
P.S. eto doljno bit v real`nom vremeni, pomogite pojaluisto kto 4e znaet, rada budu luboi informasii i ssilki
Dinara
Вот нашел
dkuznets
Или каким средствами это сделать? Возможно, есть решение получше, чем писать драйвер.
duke
duke
подскажите плиз заинклудил библиотеку, скачал уже для VS2010 но при компиляции пишет ошибку
1>d:\project\opencv_helloworld\opencv_helloworld\opencv_helloworld\opencv_helloworld.cpp(1): warning C4627: '#include <cv.h>': skipped when looking for precompiled header use
1> Add directive to 'StdAfx.h' or rebuild precompiled header
1>d:\project\opencv_helloworld\opencv_helloworld\opencv_helloworld\opencv_helloworld.cpp(2): warning C4627: '#include <highgui.h>': skipped when looking for precompiled header use
1> Add directive to 'StdAfx.h' or rebuild precompiled header
1>d:\project\opencv_helloworld\opencv_helloworld\opencv_helloworld\opencv_helloworld.cpp(3): warning C4627: '#include <videoInput.h>': skipped when looking for precompiled header use
1> Add directive to 'StdAfx.h' or rebuild precompiled header
1>d:\project\opencv_helloworld\opencv_helloworld\opencv_helloworld\opencv_helloworld.cpp(69): fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include «StdAfx.h»' to your source?
1>
1>Build FAILED.
подскажите куда копать, VC советует инклудить stdafx, после чего ошибок.
Taku
в общем удалось мне подгрузить библиотеку, но экран все равно серый :(
Taku
Danila24
Trouyan
noonv
Попробовал своими силами его одолеть, но пока без результатно… может найдется у вас пример для работы с этой библиотекой?
Ниже кидаю свой код(он не работает… такое чувство, что вылетает на инициализации т.к. ничего кроме консольного окна не наблюдаю):
Trouyan
Batradz
admin
Batradz
setra2014
Ошибка LNK1112 тип компьютера модуля «X86» противоречит типу целевого компьютера «x64».
Файл:
c:\Users\User\documents\visual studio 2015\Projects\ConsoleApplication4\ConsoleApplication4\videoInput.lib(videoInput.obj) 1
Погуглил, попробовал исправить, но все никак не уходит ошибка. Что делать?
setra2014
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.