Delay between Gray and RGBA Mat of frame in OpenCV4Android Tutorial1 (Bug #3096)


Added by Daniil Osokin over 11 years ago. Updated over 11 years ago.


Status:Done Start date:2013-06-17
Priority:Normal Due date:
Assignee:Alexander Smorkalov % Done:

0%

Category:android
Target version:2.4.7
Affected version:branch '2.4' Operating System:Android
Difficulty: HW Platform:ARM
Pull request:

Description

Hi!
It seems, that there is a delay (~1 frame) between Gray and RGBA Mat of frame in onCameraFrame method:


public Mat onCameraFrame(CvCameraViewFrame inputFrame) {
    Mat rgbaFrame = inputFrame.rgba();
    Mat grayFrame = inputFrame.gray();
    Mat renderFrame = new Mat(grayFrame.size(), grayFrame.type());
    Mat grayConverted = new Mat(grayFrame.size(), grayFrame.type());
    Imgproc.cvtColor(rgbaFrame, grayConverted, Imgproc.COLOR_RGBA2GRAY);
    Core.absdiff(grayFrame, grayConverted, renderFrame);
    return renderFrame;
}

This code should displays mostly gray image without totally white areas, but it shouldn't (just replace original onCameraFrame() from Tutorial1). To reproduce, run it and shake your device a little (on 1-3 degree). Reproduced on HTC Desire X, Android 4.1.1 (with Java camera).


History

Updated by Daniil Osokin over 11 years ago

Looks like

inputFrame.gray();

returns Mat with data pointer to memory of camera buffer, so memory buffer can be changed by camera during processing.

Updated by Kirill Kornyakov over 11 years ago

  • Target version changed from 2.4.6 to 2.4.7

Updated by Daniil Osokin over 11 years ago

This bug is fixed in current 2.4.

  • HW Platform set to ARM
  • Operating System set to Android
  • Status changed from Open to Done

Also available in: Atom PDF