Название: получение картинки с IP камеры Отправлено: 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 Название: Re: получение картинки с IP камеры Отправлено: brutalis от Ноябрь 02, 2013, 16:13 gjlybvf.
|