Ask Your Question

Morgan Jeong's profile - activity

2016-10-31 03:37:37 -0600 commented answer Memory deallocation in android.

I thought that as you said above. However, i was confused. Because, it was okay without any calling release() on Jellybean, the sample code made me more confused and testing devices showed me different resulting.

Thank you break for helping hand.

2016-10-31 03:12:24 -0600 commented answer Memory deallocation in android.

yes, right you are. how wonderful i can do that. my app needs new mat objects to represent dynamic state. and aslo here is talking about release mechanism.

2016-10-31 02:43:29 -0600 answered a question Memory deallocation in android.

Around Jellybean version, it has been okay with just calling System.gc(). However, above versions showed me a lot of memory leak. Especially, marshmallow.

I realized that 'release()' must be called to prevent memory leak.

Ironically, if you try to release that the mat object generated automatically by onCameraFrame.

   public Mat process(CameraBridgeViewBase.CvCameraViewFrame inputFrame)
    {
        Mat rgba = inputFrame.rgba();
        Mat gray = inputFrame.gray();
        ...

Your app will be crashed on some devices. even though, there is not any other calling release() of the mat objects on java source code.

I guess. the mat objects might be deleted on native code automatically.

2016-10-26 05:24:25 -0600 received badge  Scholar (source)
2016-10-26 05:24:20 -0600 commented answer frame image transmitted is upside down in android

if you are using older Camera API, you can get the information of Camera mounting by querying Camera.getCameraInfo. the values is normally 90 degree. but, Nexus 5X has 270 degree. so, i just checked the value and flip the frame buffer by using opencv.

2016-10-18 13:19:41 -0600 commented question frame image transmitted is upside down in android

i found an article on google.

https://9to5google.com/2015/11/07/why...

OpenCV for Android is using older Camera API :/

2016-10-18 09:24:18 -0600 received badge  Editor (source)
2016-10-18 09:23:07 -0600 asked a question frame image transmitted is upside down in android

image description

My client sent this picture. the picture is showing that objects are upside down.

He is using Nexus 5X and android 7.0 (Nuget) OS.

i just locked OpenCV Activity orientation to landscape.

It is my manifest

 <uses-permission android:name="android.permission.CAMERA" />
    <uses-feature android:name="android.hardware.camera.autofocus"  />   

    ...

    <activity
                    android:screenOrientation="landscape"
                    android:name=".opencv.OpenCVCameraActivity"
                    android:theme="@style/AppTheme.Fullscreen" />

I have tested it on my testing devices and a lot of emulators with cam.

Galaxy Note 2, Galaxy 3, LG G3, AVD API 24, AVD API 23, AVD etcs..

All of those devices showed me working correctly except my client owns.

I can not be able to debug the phone. Because, My client lived far away.

Does anyone have any idea? Please, give me piece of advice to resolve it.

2016-10-13 10:56:42 -0600 received badge  Student (source)
2016-10-13 10:55:34 -0600 asked a question Memory deallocation in android.

Hello. I am a newbie at OpenCV Framework. I made an android app with OpenCV. Unfortunately, My app was crashed when i used openCV.

Main reason of crash was 'Out of Memory'.

So i called 'System.gc()' on every onCameraFrame calling. Result in, i could prevent memory usage increasing.

But, i am confused. Whether i should call release() after using mat object or not. Yes, i agree. that's way might be better. but, sample source codes do not do it.

in the sample code, mat objects is released when onCameraViewStopped() is called. but also, the mat objects is changed on every onCameraFrame() without release() calling.

so, i really wonder. should i call release function in android?