#java #android #opencv #record #javacameraview
#java #Android #opencv #запись #javacameraview
Вопрос:
Я использую Android Studio, OpenCV и JavaCameraView для отображения кадра с камеры. Я хочу создать простой Mat frame recorder. Например, я хочу сохранить 100 последних кадров, а затем отобразить их в JavaCameraView.
У меня есть векторные записанные кадры камеры для хранения кадров Mat. В функции onCameraFrame у меня есть…
@Override
public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame cameraFrame) {
colorMat = cameraFrame.rgba();
if(frameCountForRecording < 100){
recordedCameraFrames.add(colorMat);
frameCountForRecording ;
}
else {
isRecordedFramesReadyToPlay = true;
recordedCameraFrames.remove(0);
recordedCameraFrames.add(colorMat);
}
И затем, когда я активирую PLAY_DETECTED_FRAMES_VIEW_MODE, я хочу воспроизвести записанные кадры…
case PLAY_DETECTED_FRAMES_VIEW_MODE:
if(isRecordedFramesReadyToPlay == true amp;amp; canPlayRecordedFrames == true) {
if (indexOfRecordedFrame == 99) {
indexOfRecordedFrame = 0;
}
indexOfRecordedFrame ;
colorMat = recordedCameraFrames.get(indexOfRecordedFrame).clone();
}
break;
Комментарии:
1. итак .. в чем проблема?
2. Проблема в том, что функция onCameraFrame по-прежнему возвращает исходную цветопередачу, цветопередача из векторных записанных кадров камеры отсутствует.
3. Где вы вернули
colorMat
из функции?4. В конце функции onCameraFrame я возвращаю colorMat.
5. Вы делаете то же самое при каждом вызове
colorMat = cameraFrame.rgba();
вonCameraFrame()
функции. А также вы переопределяете цветовую палитру в обеих функциях?