|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
получение картинки с IP камеры
Всех приветствую.проблема такая: есть ип камера. нужно получить с нее картинку,а точнее видео. подскажите как это лучше реализовать. самостоятельный поиск мало помог.
нашел несколько решений. 1. через регистрацию камеры в сис Код:
int KamIndex,c,x,y; c = lineEdit->text().toInt() ; c = indexBox->text().toInt() ; x=x_coordinate->text().toInt() ; y=y_coordinate->text().toInt() ; KamIndex=c; //#####################------------------просто доступ к камере // задаём высоту и ширину картинки // получаем любую подключённую камеру //CVAPI(CvCapture*) cvCreateCameraCapture( int index ); //CVAPI(int) cvSaveImage( const char* filename, const CvArr* image, const int* params CV_DEFAULT(0) ); //номер камеры в системе(number of cameras in the system) //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ CvCapture* capture = cvCaptureFromCAM( KamIndex ); //cvCreateCameraCapture(CV_CAP_ANY);// //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ if(capture == NULL) // Если камер не обнаружено proverka(); assert( capture ); cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH, x);//1280); cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT,y);//960); // узнаем ширину и высоту кадра // double width = cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH); // double height = cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT); //printf("[i] %.0f x %.0f\n", width, height ); IplImage* frame=0; cvNamedWindow("capture", CV_WINDOW_AUTOSIZE); printf("[i] press Enter for capture image and Esc for quit!\n\n"); int counter=0; char filename[512]; while(true){ // получаем кадр frame = cvQueryFrame( capture ); // показываем cvShowImage("capture", frame); char c = cvWaitKey(33); if (c == 27) { // нажата ESC break; } else if(c == 13) { // Enter // сохраняем кадр в файл sprintf(filename, "Image%d.jpg", counter); printf("[i] capture... %s\n", filename); cvSaveImage(filename, frame); counter++; } } // освобождаем ресурсы cvReleaseCapture( &capture ); cvDestroyWindow("capture"); не подходит т.к. для регистрации нужны админские права, что в данной ситуации не подходит 2.должен напрямую по ип подключаться Код:
{using namespace std; using namespace cv; VideoCapture vid("http://admin:admin123@192.168.0.20/video/mjpg.cgi?&.mjpg");//("http://192.168.0.20:80/videostream.cgi?user=admin&pwd=admin123&resolution=32");//; //169.254.214.34 change this URL according to your camera if (!vid.isOpened()) { cout << "could not capture"; //break; } Mat frame; // IplImage *frame=0; cvNamedWindow("IPcamera"); char key = 'a'; while(true) { vid.grab(); vid.retrieve(frame); imshow("IPcamera", frame); key = waitKey(10); } destroyAllWindows(); подскажите как можно еще получить видео с ип камеры пользую qt 4.8 b opencv |
#2
|
|||
|
|||
проблема все еще актуальна
|