GithubHelp home page GithubHelp logo

capture image about blinkinput-android HOT 6 CLOSED

blinkinput avatar blinkinput commented on July 19, 2024
capture image

from blinkinput-android.

Comments (6)

i1E avatar i1E commented on July 19, 2024

Hi @Aman91Goyal,

I suppose that you use FullScreenOcr activity from BlinkOcrFullScreen demo app, but if you are creating your own custom UI, procedure is the same.

When you are preparing RecognizerView instance for your activity in onCreate() method, you have to subscribe to current video frame through MetadataSettings:

MetadataSettings mdSett = new MetadataSettings();
...
MetadataSettings.ImageMetadataSettings ims = new MetadataSettings.ImageMetadataSettings();
// obtain current video frames
ims.setCurrentVideoFrameEnabled(true);
mdSett.setImageMetadataSettings(ims);
...
// set metadata listener on recognizer view, with prepared metadata settings
mRecognizerView.setMetadataListener(this, mdSett);

In onMetadataAvailable() method of your MetadataListener, you should obtain images and store the last Image reference, do not convert Image to bitmap here (it is expensive), you should convert it when you actually need bitmap.

public void onMetadataAvailable(Metadata metadata) {
    ...
    } else if (metadata instanceof ImageMetadata) {
        mLastImage = ((ImageMetadata) metadata).getImage().clone();
    }
    ...
}

When capture image button is clicked, use last obtained Image (if you need bitmap, convert Image here).

from blinkinput-android.

Aman91Goyal avatar Aman91Goyal commented on July 19, 2024

Thank you i1E

I have add this code and its working now.

But i am getting issue, when i run this demo after 2-3 sec camera is getting closed and i am getting following error at console

Cannot start preview. CameraDevice: null, CameraSurface: com.microblink.secured.IllIIlIIII@6dce347, PreviewSize: 1280x720

And if i will remove following code, then its working fine.

MetadataSettings mdSett = new MetadataSettings();
...
MetadataSettings.ImageMetadataSettings ims = new MetadataSettings.ImageMetadataSettings();
// obtain current video frames
ims.setCurrentVideoFrameEnabled(true);
mdSett.setImageMetadataSettings(ims);
...
// set metadata listener on recognizer view, with prepared metadata settings
mRecognizerView.setMetadataListener(this, mdSett);

Please do let me know where i am wrong,

from blinkinput-android.

i1E avatar i1E commented on July 19, 2024

Hi @Aman91Goyal,

can you please paste the full stack trace? We need more information to figure out why you are getting the error.

from blinkinput-android.

Aman91Goyal avatar Aman91Goyal commented on July 19, 2024

Hi i1E,

Please check the following log track.

05-27 15:08:24.062 19070-19070/? D/NativeRecognizer.cpp:436: Unlocking BlinkOCR native library version 2.5.0
05-27 15:08:24.081 19070-19070/? I/RecognizerView.java:554@main: Camera view create. Context = ocr.groove.competent.ocr.MainActivity@1c3a20a3
05-27 15:08:24.088 19070-19070/? I/CameraManagerGlobal: getCameraService: Reconnecting to camera service
05-27 15:08:24.138 19070-19070/? I/IlIIIlIIIl.java:68@main: Camera2 API not supported natively. Will use video camera1 manager!
05-27 15:08:24.141 19070-19070/? I/lllIIlIlII.java:30@main: Creating CameraSurfaceView
05-27 15:08:24.151 19070-19070/? I/RecognizerView.java:734@main: Camera view start. Context = ocr.groove.competent.ocr.MainActivity@1c3a20a3
05-27 15:08:24.152 19070-19070/? I/RecognizerView.java:303@main: Loading Native Library!
05-27 15:08:24.152 19070-19070/? D/NativeRecognizer.cpp:436: Unlocking BlinkOCR native library version 2.5.0
05-27 15:08:24.157 19070-19090/? D/DeviceInfo.hpp:181: OS name: Android
05-27 15:08:24.157 19070-19090/? D/DeviceInfo.hpp:182: OS version: 5.1.1
05-27 15:08:24.157 19070-19090/? D/DeviceInfo.hpp:183: Device name: mako
05-27 15:08:24.157 19070-19090/? D/DeviceInfo.hpp:184: Model: Nexus 4
05-27 15:08:24.157 19070-19090/? D/DeviceInfo.hpp:185: Manufacturer: LGE
05-27 15:08:24.157 19070-19090/? D/DeviceInfo.hpp:186: High quality: 1
05-27 15:08:24.157 19070-19090/? D/DeviceInfo.hpp:187: Number of processors: 4
05-27 15:08:24.157 19070-19090/? D/DeviceInfo.hpp:188: Max CPU frequency: 1512 MHz
05-27 15:08:24.158 19070-19090/? D/DeviceInfo.hpp:189: NEON supported: 1
05-27 15:08:24.158 19070-19090/? D/DeviceInfo.hpp:191: Data: 
05-27 15:08:24.158 19070-19090/? D/StringMap.hpp:70: String map:
05-27 15:08:24.158 19070-19090/? D/StringMap.hpp:72: android.eglpbuffer.unsupported => false
05-27 15:08:24.158 19070-19090/? D/StringMap.hpp:72: android.hwbuffer.allowed => false
05-27 15:08:24.159 19070-19090/? I/.java:145@Recognition: Native context ptr: -1222847280
05-27 15:08:24.159 19070-19090/? D/NativeRecognizer.cpp:242: This is Microblink's BlinkOCR native library version 2.5.0
05-27 15:08:24.159 19070-19090/? D/NativeRecognizer.cpp:243: Built at Tue Apr 12 16-35-25 CEST 2016
05-27 15:08:24.161 19070-19070/? I/RecognizerView.java:361@main: Not support reason: null
05-27 15:08:24.162 19070-19070/? I/RecognizerView.java:391@main: Recognizer view resume: Context = ocr.groove.competent.ocr.MainActivity@1c3a20a3
05-27 15:08:24.163 19070-19070/? I/RecognizerView.java:751@main: Camera view resume. Context = ocr.groove.competent.ocr.MainActivity@1c3a20a3
05-27 15:08:24.167 19070-19090/? I/LOG: Log folder will be /storage/emulated/0/photopay
05-27 15:08:24.170 19070-19070/? I/IlIIlllIIl.java:349@main: Camera1Manager.startPreview
05-27 15:08:24.172 19070-19098/? I/IlIIlllIIl.java:358@Camera1: Opening camera...
05-27 15:08:24.174 19070-19098/? I/IlIIlllIIl.java:3298@Camera1: Back facing orientation: 90
05-27 15:08:24.175 19070-19098/? I/IlIIlllIIl.java:3294@Camera1: Front facing orientation: 270
05-27 15:08:24.208 19070-19101/? D/OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true
05-27 15:08:24.221 19070-19070/? D/Atlas: Validating map...
05-27 15:08:24.272 19070-19101/? I/Adreno-EGL: <qeglDrvAPI_eglInitialize:379>: QUALCOMM Build: 01/15/15, ab0075f, Id3510ff6dc
05-27 15:08:24.273 19070-19101/? I/OpenGLRenderer: Initialized EGL, version 1.4
05-27 15:08:24.305 19070-19101/? D/OpenGLRenderer: Enabling debug mode 0
05-27 15:08:24.339 19070-19070/? I/RecognizerView.java:959@main: Layouting camera surface view: Left: 0, Top: 0, Right: 768, Bottom: 1022
05-27 15:08:24.340 19070-19070/? I/RecognizerView.java:974@main: Layouting child 1: Left: 0, Top: 0, Right: 768, Bottom: 1022
05-27 15:08:24.342 19070-19070/? I/RecognizerView.java:974@main: Layouting child 2: Left: 0, Top: 0, Right: 768, Bottom: 1022
05-27 15:08:24.456 19070-19098/? I/lIIIlIIllI.java:25@Camera1: Using VideoPreset strategy with preset: VIDEO_RESOLUTION_720p
05-27 15:08:24.456 19070-19098/? I/IlIIlllIIl.java:361@Camera1: Camera strategy: com.microblink.secured.lIIIlIIllI@16c05bce
05-27 15:08:24.457 19070-19098/? I/IlIIlllIIl.java:363@Camera1: Camera sensor orientation is 90
05-27 15:08:24.457 19070-19098/? I/IlIIlllIIl.java:375@Camera1: Rotating camera preview by 90 degrees!
05-27 15:08:24.459 19070-19070/? I/IlIIlllIIl.java:894@main: Surface has been created!
05-27 15:08:24.464 19070-19098/? I/lIIIlIIllI.java:65@Camera1: Ideal camera resolution is 1280x720
05-27 15:08:24.466 19070-19098/? I/IlIIlllIIl.java:6584@Camera1: For surface size 768x1184 and preset VIDEO_RESOLUTION_720p, selected preview size is 1280x720
05-27 15:08:24.468 19070-19098/? I/IlIIlllIIl.java:93@Camera1: Optimizing camera parameters for default scanning
05-27 15:08:24.471 19070-19098/? I/IlIIlllIIl.java:124@Camera1: Setting flash mode to OFF!
05-27 15:08:24.473 19070-19098/? I/IllIIIIllI.java:273@Camera1: Adjusting zoom level from 0.0 to 0.0
05-27 15:08:24.574 19070-19090/? D/common.cpp:77: Create settings vector
05-27 15:08:24.581 19070-19070/? W/Resources: Converting to string: TypedValue{t=0x5/d=0x2401 a=1 r=0x10500da}
05-27 15:08:24.581 19070-19070/? W/Resources: Converting to string: TypedValue{t=0x5/d=0x3001 a=1 r=0x10500dc}
05-27 15:08:24.582 19070-19070/? W/Resources: Converting to string: TypedValue{t=0x5/d=0x601 a=1 r=0x10500d7}
05-27 15:08:24.582 19070-19070/? W/Resources: Converting to string: TypedValue{t=0x5/d=0xa01 a=1 r=0x10500d8}
05-27 15:08:24.594 19070-19070/? I/RecognizerView.java:959@main: Layouting camera surface view: Left: 0, Top: -171, Right: 768, Bottom: 1193
05-27 15:08:24.606 19070-19070/? I/RecognizerView.java:974@main: Layouting child 1: Left: 0, Top: 0, Right: 768, Bottom: 1022
05-27 15:08:24.608 19070-19070/? I/RecognizerView.java:974@main: Layouting child 2: Left: 0, Top: 0, Right: 768, Bottom: 1022
05-27 15:08:24.774 19070-19098/? I/IlIIlllIIl.java:8741@Camera1: Camera supports torch!
05-27 15:08:24.777 19070-19098/? I/RecognizerView.java:416@Camera1: resumeScanning: pause count is 0
05-27 15:08:25.149 19070-19070/? I/RecognizerView.java:1811@main: Orientation changed to Portrait
05-27 15:08:25.169 19070-19070/? I/RecognizerView.java:959@main: Layouting camera surface view: Left: 0, Top: -171, Right: 768, Bottom: 1193
05-27 15:08:25.170 19070-19070/? I/RecognizerView.java:974@main: Layouting child 1: Left: 0, Top: 0, Right: 768, Bottom: 1022
05-27 15:08:25.171 19070-19070/? I/RecognizerView.java:974@main: Layouting child 2: Left: 0, Top: 0, Right: 768, Bottom: 1022
05-27 15:08:25.344 19070-19090/ocr.groove.competent.ocr I/System.out: onMetadataAvailable---
05-27 15:08:27.427 19070-19090/ocr.groove.competent.ocr I/System.out: onMetadataAvailable---
05-27 15:08:27.434 19070-19090/ocr.groove.competent.ocr I/System.out: onMetadataAvailable---
05-27 15:08:27.434 19070-19090/ocr.groove.competent.ocr I/System.out: ImageMetadata---
05-27 15:08:27.446 19070-19070/ocr.groove.competent.ocr I/RecognizerView.java:461@main: pauseScanning: pause count is 1
05-27 15:08:27.447 19070-19070/ocr.groove.competent.ocr I/NativeRecognizerWrapper.java:6354@main: Waiting for recognition...
05-27 15:08:27.451 19070-19070/ocr.groove.competent.ocr I/RecognizerView.java:786@main: Camera view pause. Context = ocr.groove.competent.ocr.MainActivity@1c3a20a3
05-27 15:08:27.456 19070-19070/ocr.groove.competent.ocr I/IlIIlllIIl.java:549@main: Camera1Manager.stopPreview
05-27 15:08:27.457 19070-19098/ocr.groove.competent.ocr I/IlIIlllIIl.java:556@Camera1: Pausing focus manager
05-27 15:08:27.457 19070-19070/ocr.groove.competent.ocr I/IlIIlllIIl.java:571@main: Waiting for camera preview to stop...
05-27 15:08:27.458 19070-19098/ocr.groove.competent.ocr I/IlIIlllIIl.java:561@Camera1: Pausing accelerometer
05-27 15:08:27.463 19070-19098/ocr.groove.competent.ocr I/IlIIlllIIl.java:9521@Camera1: Stopping camera preview
05-27 15:08:27.478 19070-19098/ocr.groove.competent.ocr I/IlIIlllIIl.java:9527@Camera1: Releasing camera
05-27 15:08:27.593 19070-19098/ocr.groove.competent.ocr I/IlIIlllIIl.java:9529@Camera1: Camera released
05-27 15:08:27.595 19070-19070/ocr.groove.competent.ocr I/IlIIlllIIl.java:573@main: Camera preview has stopped.
05-27 15:08:27.609 19070-19070/ocr.groove.competent.ocr W/Resources: Converting to string: TypedValue{t=0x12/d=0x0 a=2 r=0x7f0c005a}
05-27 15:08:27.610 19070-19070/ocr.groove.competent.ocr W/Resources: Converting to string: TypedValue{t=0x12/d=0x0 a=2 r=0x7f0c005b}
05-27 15:08:27.612 19070-19070/ocr.groove.competent.ocr W/Resources: Converting to string: TypedValue{t=0x1d/d=0xff0b65aa a=2 r=0x7f0b0006}
05-27 15:08:27.613 19070-19070/ocr.groove.competent.ocr W/Resources: Converting to string: TypedValue{t=0x12/d=0x0 a=2 r=0x7f0c0073}
05-27 15:08:27.613 19070-19070/ocr.groove.competent.ocr W/Resources: Converting to string: TypedValue{t=0x1d/d=0xff1197fe a=2 r=0x7f0b0065}
05-27 15:08:27.613 19070-19070/ocr.groove.competent.ocr W/Resources: Converting to string: TypedValue{t=0x5/d=0x1 a=2 r=0x7f08000f}
05-27 15:08:27.613 19070-19070/ocr.groove.competent.ocr W/Resources: Converting to string: TypedValue{t=0x5/d=0x1 a=2 r=0x7f08000e}
05-27 15:08:27.613 19070-19070/ocr.groove.competent.ocr W/Resources: Converting to string: TypedValue{t=0x5/d=0x3801 a=1 r=0x10500cf}
05-27 15:08:27.628 19070-19070/ocr.groove.competent.ocr W/Resources: Converting to string: TypedValue{t=0x12/d=0x0 a=2 r=0x7f0c0094}
05-27 15:08:27.634 19070-19070/ocr.groove.competent.ocr W/Resources: Converting to string: TypedValue{t=0x12/d=0x0 a=2 r=0x7f0c0095}
05-27 15:08:27.636 19070-19070/ocr.groove.competent.ocr W/Resources: Converting to string: TypedValue{t=0x12/d=0x0 a=2 r=0x7f0c0093}
05-27 15:08:27.636 19070-19070/ocr.groove.competent.ocr W/Resources: Converting to string: TypedValue{t=0x1c/d=0xffffffff a=2 r=0x7f0b0063}
05-27 15:08:27.640 19070-19070/ocr.groove.competent.ocr W/Resources: Converting to string: TypedValue{t=0x12/d=0x0 a=2 r=0x7f0c0096}
05-27 15:08:27.641 19070-19070/ocr.groove.competent.ocr W/Resources: Converting to string: TypedValue{t=0x1d/d=0xff0b65aa a=2 r=0x7f0b0006}
05-27 15:08:27.641 19070-19070/ocr.groove.competent.ocr W/Resources: Converting to string: TypedValue{t=0x12/d=0x0 a=2 r=0x7f0c0097}
05-27 15:08:27.641 19070-19070/ocr.groove.competent.ocr W/Resources: Converting to string: TypedValue{t=0x1c/d=0xffffffff a=2 r=0x7f0b0063}
05-27 15:08:27.646 19070-19070/ocr.groove.competent.ocr I/System.out: null
05-27 15:08:27.647 19070-19070/ocr.groove.competent.ocr W/Resources: Converting to string: TypedValue{t=0x5/d=0x1 a=1 r=0x10500d6}
05-27 15:08:27.650 19070-19070/ocr.groove.competent.ocr D/AndroidRuntime: Shutting down VM
05-27 15:08:27.651 19070-19070/ocr.groove.competent.ocr E/AndroidRuntime: FATAL EXCEPTION: main
                                                                          Process: ocr.groove.competent.ocr, PID: 19070
                                                                          java.lang.RuntimeException: Unable to start activity ComponentInfo{ocr.groove.competent.ocr/groove.competent.detail.DetailData}: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.util.ArrayList.size()' on a null object reference
                                                                              at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
                                                                              at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
                                                                              at android.app.ActivityThread.access$800(ActivityThread.java:151)
                                                                              at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
                                                                              at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                              at android.os.Looper.loop(Looper.java:135)
                                                                              at android.app.ActivityThread.main(ActivityThread.java:5254)
                                                                              at java.lang.reflect.Method.invoke(Native Method)
                                                                              at java.lang.reflect.Method.invoke(Method.java:372)
                                                                              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
                                                                              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
                                                                           Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.util.ArrayList.size()' on a null object reference
                                                                              at groove.competent.detail.DetailData.onCreate(DetailData.java:91)
                                                                              at android.app.Activity.performCreate(Activity.java:5990)
                                                                              at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
                                                                              at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
                                                                              at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
                                                                              at android.app.ActivityThread.access$800(ActivityThread.java:151) 
                                                                              at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
                                                                              at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                              at android.os.Looper.loop(Looper.java:135) 
                                                                              at android.app.ActivityThread.main(ActivityThread.java:5254) 
                                                                              at java.lang.reflect.Method.invoke(Native Method) 
                                                                              at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
                                                                              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 

When i am running this app it crash after 4-5 sec.

TIA.

from blinkinput-android.

i1E avatar i1E commented on July 19, 2024

Hi @Aman91Goyal,

from the stack trace you can see that your app crashes because of null pointer exception in your activity, you are trying to use reference to array list, which is null.

from blinkinput-android.

i1E avatar i1E commented on July 19, 2024

Hi @Aman91Goyal,

can we close this if you no longer have issues?

from blinkinput-android.

Related Issues (15)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.