Skip to content
This repository has been archived by the owner on Mar 26, 2024. It is now read-only.

CvException (-215) u != 0 in function void cv::Mat::create #55

Closed
davidmigloz opened this issue Oct 23, 2016 · 3 comments
Closed

CvException (-215) u != 0 in function void cv::Mat::create #55

davidmigloz opened this issue Oct 23, 2016 · 3 comments
Assignees
Labels
Milestone

Comments

@davidmigloz
Copy link
Owner

La app corre bien durante unos minutos hasta que de repente salta la siguiente excepción:

10-23 03:11:01.383 29890-30641/com.davidmiguel.gobees E/AndroidRuntime: FATAL EXCEPTION: Thread-8061
                                                                        Process: com.davidmiguel.gobees, PID: 29890
                                                                        CvException [org.opencv.core.CvException: cv::Exception: /Volumes/Linux/builds/master_pack-android/opencv/modules/core/src/matrix.cpp:424: error: (-215) u != 0 in function void cv::Mat::create(int, const int*, int)
                                                                        ]
                                                                            at org.opencv.core.Mat.n_Mat(Native Method)
                                                                            at org.opencv.core.Mat.<init>(Mat.java:37)
                                                                            at com.davidmiguel.gobees.video.processors.ContoursFinder.process(ContoursFinder.java:68)
                                                                            at com.davidmiguel.gobees.video.ContourBeesCounter.countBees(ContourBeesCounter.java:61)
                                                                            at com.davidmiguel.gobees.MainActivity.onCameraFrame(MainActivity.java:96)
                                                                            at org.opencv.android.CameraBridgeViewBase.deliverAndDrawFrame(CameraBridgeViewBase.java:391)
                                                                            at org.opencv.android.JavaCameraView$CameraWorker.run(JavaCameraView.java:350)
                                                                            at java.lang.Thread.run(Thread.java:818)
@davidmigloz davidmigloz added this to the Sprint 6 milestone Oct 23, 2016
@davidmigloz davidmigloz self-assigned this Oct 23, 2016
@davidmigloz
Copy link
Owner Author

El error tarda en saltar unos 5-6 minutos y se produce en la siguiente línea del código nativo:

u = a->allocate(dims, size, _type, 0, step.p, 0, USAGE_DEFAULT);

Como vemos está intentando reservar memoria, por lo que lo más seguro es que se esté quedando sin memoria

@davidmigloz
Copy link
Owner Author

Efectivamente:

10-23 13:25:14.370 21560-21847/com.davidmiguel.gobees E/cv::error(): OpenCV Error: Insufficient memory (Failed to allocate 921600 bytes) in void* cv::OutOfMemoryError(size_t), file /Volumes/Linux/builds/master_pack-android/opencv/modules/core/src/alloc.cpp, line 52

@davidmigloz
Copy link
Owner Author

Resuelto. El problema residía en que OpenCV no libera correctamente la matriz devuelta en el método onCameraFrame(), y por lo tanto hay que hacerlo explícitamente.

Explico como actuar correctamente en esta respuesta en StackOverflow.

davidmigloz added a commit that referenced this issue Oct 23, 2016
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

1 participant