LINUX.ORG.RU

Получить картинку через OpenCV, cvCaptureFromCAM (Logitech QuickCam Express)


0

1

Пробую сделать следующее:

$ lsusb
Bus 005 Device 002: ID 046d:0928 Logitech, Inc. QuickCam Express
$ lsmod | grep gspca
gspca_spca561           8512  0 
gspca_main             18727  1 gspca_spca561
videodev               29993  1 gspca_main
usbcore               122034  8 usb_storage,gspca_spca561,gspca_main,usbhid,ohci_hcd,xhci,ehci_hcd
capture.cpp :
#include <stdlib.h>
#include <stdio.h>
#include <opencv/cv.h>
#include <opencv/highgui.h>

int main (int argc, char **argv) {
  if (argc < 2) return -1;
  char *filename_o = argv[1];
  CvCapture *capture = cvCaptureFromCAM(CV_CAP_ANY);
  if(!capture) perror((char*)"No Capture");
  IplImage *img=cvQueryFrame(capture);
  cvSaveImage(filename_o, img);
}
Возвращается такая бяка: http://php.kirovnet.ru/images/opencv-bad-capture.jpg
Пробую посмотреть картинку с веб-камеры через Kopete - все нормально.
Что я не учёл?

★★★★★

Получилось. Надо было установить размер картинки и сделать небольшую предвыборку:

  CvCapture *capture = cvCreateCameraCapture(0);
  cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH, 640);
  cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT, 480);
  IplImage *img0=cvQueryFrame(capture);
  usleep(1000*200);
  ....
  IplImage *img=cvQueryFrame(capture);
  cvSaveImage(filename_o, img);

pacify ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.