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);