Russian Qt Forum
Ноябрь 22, 2024, 23:30 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: получение картинки с IP камеры  (Прочитано 3073 раз)
brutalis
Гость
« : Октябрь 11, 2013, 09:43 »

Всех приветствую.проблема такая: есть ип камера. нужно получить с нее картинку,а точнее видео. подскажите как это лучше реализовать. самостоятельный поиск мало помог.
нашел несколько решений.
1. через регистрацию камеры в сис
Код Code

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(" %.0f x %.0f\n", width, height );
 
             IplImage* frame=0;
             cvNamedWindow("capture", CV_WINDOW_AUTOSIZE);
             printf(" 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(" capture... %s\n", filename);
                             cvSaveImage(filename, frame);
                             counter++;
                     }
             }
             // освобождаем ресурсы
             cvReleaseCapture( &capture );
             cvDestroyWindow("capture");
не подходит т.к. для регистрации нужны админские права, что в данной ситуации не подходит
2.должен напрямую по ип подключаться
Код Code

{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
Записан
brutalis
Гость
« Ответ #1 : Ноябрь 02, 2013, 16:13 »

gjlybvf.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.05 секунд. Запросов: 20.