OpenCV Constants.CaptureProperty

Привет я использую OpenCV Java и есть некоторые проблемы.

Я открываю видео файл и пытаюсь получить свойство как FPS. И другие:

  • CV_CAP_PROP_POS_MSEC
  • CV_CAP_PROP_FRAME_COUNT

Итак, сначала я открыл видео, как это:

VideoCapture vC = new VideoCapture(url2);

и затем у меня есть проблема с функцией

vC.get(int i)

в OpenCV C++ это выглядит

vC.get(CV_CAP_PROP_FPS);

В Java, где я нахожу эти константы? В HighGui я не нашел их. Только то, что я нахожу, - это еще одна библиотека для OpenCV, где находятся эти константы http://siggiorn.com/wp-content/uploads/libraries/opencv-java/docs/sj/opencv/Constants.CaptureProperty.html. Но где я нахожу их в OpenCV Java. В любом случае, как я должен использовать функцию vC.get()? Может быть, какой-то рабочий пример?

3 ответа

Существует сообщение об ошибке по этой проблеме.

Пока это не исправлено, я предлагаю вам найти эти константы в исходном коде C++ и определить их самостоятельно.

Редактировать:

Мне было просто любопытно. Вы найдете их в файле modules/highgui/include/opencv2/highgui.hpp. Они:

   CAP_PROP_POS_MSEC       =0,
   CAP_PROP_POS_FRAMES     =1,
   CAP_PROP_POS_AVI_RATIO  =2,
   CAP_PROP_FRAME_WIDTH    =3,
   CAP_PROP_FRAME_HEIGHT   =4,
   CAP_PROP_FPS            =5,
   CAP_PROP_FOURCC         =6,
   CAP_PROP_FRAME_COUNT    =7,
   CAP_PROP_FORMAT         =8,
   CAP_PROP_MODE           =9,
   CAP_PROP_BRIGHTNESS    =10,
   CAP_PROP_CONTRAST      =11,
   CAP_PROP_SATURATION    =12,
   CAP_PROP_HUE           =13,
   CAP_PROP_GAIN          =14,
   CAP_PROP_EXPOSURE      =15,
   CAP_PROP_CONVERT_RGB   =16,
   CAP_PROP_WHITE_BALANCE_BLUE_U =17,
   CAP_PROP_RECTIFICATION =18,
   CAP_PROP_MONOCROME     =19,
   CAP_PROP_SHARPNESS     =20,
   CAP_PROP_AUTO_EXPOSURE =21, // DC1394: exposure control done by camera, user can adjust refernce level using this feature
   CAP_PROP_GAMMA         =22,
   CAP_PROP_TEMPERATURE   =23,
   CAP_PROP_TRIGGER       =24,
   CAP_PROP_TRIGGER_DELAY =25,
   CAP_PROP_WHITE_BALANCE_RED_V =26,
   CAP_PROP_ZOOM          =27,
   CAP_PROP_FOCUS         =28,
   CAP_PROP_GUID          =29,
   CAP_PROP_ISO_SPEED     =30,
   CAP_PROP_BACKLIGHT     =32,
   CAP_PROP_PAN           =33,
   CAP_PROP_TILT          =34,
   CAP_PROP_ROLL          =35,
   CAP_PROP_IRIS          =36,
   CAP_PROP_SETTINGS      =37

Использовать класс import org.opencv.videoio.Videoio;

vc.open(FD.class.getResource("1.avi").getPath());
double totalFrameNumber = vc.get(Videoio.CAP_PROP_FRAME_COUNT);  
System.out.println("\n"+totalFrameNumber);

Кажется, ошибка решена. Теперь вы сможете использовать его как:

VideoCapture vC = new VideoCapture(...);
nbFrames = vC.get(Videoio.CAP_PROP_FRAME_COUNT);
Другие вопросы по тегам