Giter Club home page Giter Club logo

opennotescanner's Introduction

OpenNoteScanner

Build Status

This little application provides a way on scanning handwritten notes and printed documents.

It automatically detect the edge of the paper over a contrastant surface.

When using the printed special page template it automatically detects the QR Code printed on the bottom right corner and scans the page immediately.

After the page is detected, it compensates any perspective from the image adjusting it to a 90 degree top view and saves it on a folder on the device.

It is also possible to launch the application from any other application that asks for a picture, just make sure that there is no default application associated with this action.

Usage

See the FAQ.

Screenshots

screenshot1 screenshot1 screenshot1 screenshot1

Requirements

Because of the version of OpenCV that is used in the project it needs to run on Android 5.0 (lollipop) or newer.

In order to capture and manipulate images Open Note Scanner depends on having the OpenCV Manager application installed. If not installed Open Note Scanner will ask to download it from https://github.com/ctodobom/OpenCV-3.1.0-Android or from Google Play Store.

How to Install

Open Note Scanner is available for simplified installation on Google Play Store, from Amazon App Store and also from F-Droid Android Open Source Repository.

Get it on Google Play Get it on F-Droid

Disclaimer: Google Play version is ad-supported.

Binary APK file is available directly from GitHub in the releases section of the project.

Instructions for building

Android Studio

Import the project from GitHub using File -> New -> Project from Version Control -> GitHub, fill the URL https://github.com/ctodobom/OpenNoteScanner.git

It will ask for a base directory, normally AndroidStudioProjects, you can change it to your preference.

After this the Open Note Scanner can be built.

Command Line

Go to your base folder and import it using git:

$ git clone https://github.com/ctodobom/OpenNoteScanner.git

This should import the Open Note Scanner repository in OpenNoteScanner folder

You need to point the environment variable ANDROID_HOME to your Android SDK folder and run gradle to build the project:

$ cd OpenNoteScanner
$ export ANDROID_HOME=~/android-sdk-linux
$ ./gradlew assembleRelease

Instructions for Contributing

If you're new to open-source, we recommend you to checkout our Contributing Guidelines and Setup Guidelines. Feel free to fork the project and send us a pull request.

History

I've started this app on a brazilian holyday "extended weekend" based on the fact that I was unable to find any open source application that does this job. I was mainly inspired on the RocketBook Wave closed source application.

I really do not know if I will extend more the application, but I am writing bellow some objectives to make it better.

Roadmap

  • enhance the image gallery of scanned documents
  • register a share action in order to obtain documents already pictured through standard camera apps
  • implement automatic action based on the RocketBook Wave marking of the page

Donations

My job is on enterprise servers administration and some development consulting. I do collect money from my customers. I am well paid for that.

For being part of open source projects and documenting my work here I really do not charge anything. I am trying to avoid any type of ads also.

If you think that any information you obtained here is worth of some money and are willing to pay for it, feel free to send any amount through paypal or bitcoin.

Paypal Bitcoin

1H5tqKZoWdqkR54PGe9w67EzBnLXHBFmt9

In order to fund the development of Open Note Scanner, since version 1.0.36 when downloaded from Google Play store the app will show ads on some screens and will also allow for donation through Google Play in-app purchase. There is no difference on the features available from Google Play version and F-Droid releases.

Contributing

If you have any idea, feel free to fork it and submit your changes back to me.

Thanks

Contributors

As an open source application, contribution are always welcome.

Most translations contributions are listed on CONTRIBUTORS.md file and code contributors are listed on the Changelog file and the commits history

Other people helped submitting Issue Reports and giving info through the Telegram Group. Their help is appreciated as well.

External code

This application wouldn't be possible without the great material produced by the community. I would like to give special thanks to the authors of essencial parts I've got on the internet and used in the code:

License

Copyright 2016 - Claudemir Todo Bom

Software licensed under the GPL version 3 available in GPLv3.TXT and online on http://www.gnu.org/licenses/gpl.txt.

Use parts from other developers, sometimes with small changes, references on autorship and specific licenses are on individual source files.

opennotescanner's People

Contributors

ahangarha avatar allgood avatar asmfreak avatar beriain avatar christianwilkie avatar claudinux avatar dellani avatar dependabot[bot] avatar emmanuelmess avatar franciscot avatar fullchee avatar gmackenzie avatar graczu0x0x0x0x0 avatar gtimothy avatar hannesss81 avatar jensli avatar naofum avatar nebulon42 avatar nicolas-raoul avatar nikoss avatar patrykmis avatar princekelly1 avatar reylak avatar santoshhiremani avatar skydragonsz avatar sturkmen72 avatar yarons avatar yeyeto2788 avatar yzqzss avatar zmni avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

opennotescanner's Issues

Bad quality?

I managed to get a couple of pictures, but only after turning on the flash (maybe you shoud lower the contrast treshold).
Anyway, the captured pictures are at very low resolution and the text is unreadable (11pt on A4, fairly standard).
Am i missing something?

http://www.imagebam.com/image/3ec443467689862

Crash after scan, when launched via intent

05-17 08:58:14.214  3627  3627 E AndroidRuntime: FATAL EXCEPTION: main
05-17 08:58:14.214  3627  3627 E AndroidRuntime: Process: com.todobom.opennotescanner, PID: 3627
05-17 08:58:14.214  3627  3627 E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.graphics.Bitmap.recycle()' on a null object reference
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at com.todobom.opennotescanner.OpenNoteScannerActivity$AnimationRunnable$1.onAnimationEnd(OpenNoteScannerActivity.java:1105)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.animation.AnimationSet.getTransformation(AnimationSet.java:400)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.animation.Animation.getTransformation(Animation.java:943)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.View.applyLegacyAnimation(View.java:15864)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.View.draw(View.java:15980)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.ViewGroup.drawChild(ViewGroup.java:3610)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3400)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.View.updateDisplayListIfDirty(View.java:15262)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.View.draw(View.java:16040)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.ViewGroup.drawChild(ViewGroup.java:3610)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3400)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.View.draw(View.java:16273)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.View.updateDisplayListIfDirty(View.java:15267)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.View.draw(View.java:16040)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.ViewGroup.drawChild(ViewGroup.java:3610)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3400)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.View.updateDisplayListIfDirty(View.java:15262)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.View.draw(View.java:16040)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.ViewGroup.drawChild(ViewGroup.java:3610)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3400)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.View.updateDisplayListIfDirty(View.java:15262)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.View.draw(View.java:16040)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.ViewGroup.drawChild(ViewGroup.java:3610)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3400)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.View.updateDisplayListIfDirty(View.java:15262)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.View.draw(View.java:16040)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.ViewGroup.drawChild(ViewGroup.java:3610)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3400)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.View.updateDisplayListIfDirty(View.java:15262)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.View.draw(View.java:16040)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.ViewGroup.drawChild(ViewGroup.java:3610)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3400)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.View.draw(View.java:16273)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at com.android.internal.policy.PhoneWindow$DecorView.draw(PhoneWindow.java:2697)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.View.updateDisplayListIfDirty(View.java:15267)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:281)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:287)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:322)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.ViewRootImpl.draw(ViewRootImpl.java:2619)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2438)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2071)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1111)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6017)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.Choreographer.doCallbacks(Choreographer.java:670)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.Choreographer.doFrame(Choreographer.java:606)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.os.Handler.handleCallback(Handler.java:739)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:95)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:234)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:5526)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
05-17 08:58:14.214  3627  3627 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

I believe it might be trying to perform an animation on an image that has been deleted.

Won't capture images

Hi. I'm a big fan of camscanner so when I saw you had a FOSS app that did something similar I was super excited.

I have a Sony Xperia Z1 compact with Android 5.11 - stock rom.

I installed v1.0.10 OpenNoteScanner from f-droid, and let the app install openCV manager from google play. When I launch the app I get the camera preview, I can toggle the buttons on the right, but I can't capture anything. I have tried tapping the blue shutter icon and the screen, and the feedback indicates it registers taps, but nothing happens.

Any ideas?

Thanks

App Status

Is the application still in development?

The idea behind the application is really brilliant but the app does not seem to evolve. I have found all the issues that have been reported one year ago.

The most important are:

  • Bad quality;
  • Document recognition failure;
  • PDF template icons unmanaged.

Thank you so much for work you've done!
Mimmo

Handle better when trying to install downloaded OpenCV apk

Based on a report received through Android Developer Console, looks like that if the user choose to download the OpenCV Manager apk from outside the PlayStore and don't have the option to install untrusted apps, an error is issued. - Need better information to the user

java.lang.RuntimeException: Error receiving broadcast Intent { act=android.intent.action.DOWNLOAD_COMPLETE flg=0x10 pkg=com.todobom.opennotescanner (has extras) } in com.todobom.opennotescanner.helpers.CustomOpenCVLoader$MyBroadcastReceiver@ee86aae
    at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:891)
    at android.os.Handler.handleCallback(Handler.java:739)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:148)
    at android.app.ActivityThread.main(ActivityThread.java:5417)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=content://downloads/my_downloads/83 typ=application/vnd.android.package-archive flg=0x4000000 }
    at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1798)
    at android.app.Instrumentation.execStartActivity(Instrumentation.java:1512)
    at android.app.Activity.startActivityForResult(Activity.java:3930)
    at android.app.Activity.startActivityForResult(Activity.java:3890)
    at android.app.Activity.startActivity(Activity.java:4213)
    at android.app.Activity.startActivity(Activity.java:4181)
    at com.todobom.opennotescanner.helpers.CustomOpenCVLoader$MyBroadcastReceiver.onReceive(CustomOpenCVLoader.java:138)
    at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:881)
    ... 7 more

Image viewer Out of Memory error

Looks like the image viewer is not optimal on the use of memory.

Received a report on Play Store with the following content:

java.lang.OutOfMemoryError: Failed to allocate a 37765132 byte allocation with 8290820 free bytes and 7MB until OOM
    at dalvik.system.VMRuntime.newNonMovableArray(Native Method)
    at android.graphics.Bitmap.nativeCreate(Native Method)
    at android.graphics.Bitmap.createBitmap(Bitmap.java:838)
    at android.graphics.Bitmap.createBitmap(Bitmap.java:815)
    at android.graphics.Bitmap.createBitmap(Bitmap.java:746)
    at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:622)
    at com.todobom.opennotescanner.FullScreenImageAdapter.instantiateItem(FullScreenImageAdapter.java:67)
    at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:870)
    at android.support.v4.view.ViewPager.populate(ViewPager.java:1054)
    at android.support.v4.view.ViewPager.populate(ViewPager.java:952)
    at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1474)
    at android.view.View.measure(View.java:17565)
    at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:727)
    at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:463)
    at android.view.View.measure(View.java:17565)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5537)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
    at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135)
    at android.view.View.measure(View.java:17565)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5537)
    at android.support.v7.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:391)
    at android.view.View.measure(View.java:17565)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5537)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
    at android.view.View.measure(View.java:17565)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5537)
    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
    at android.view.View.measure(View.java:17565)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5537)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
    at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2615)
    at android.view.View.measure(View.java:17565)
    at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2045)
    at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1196)
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1409)
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1084)
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5990)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
    at android.view.Choreographer.doCallbacks(Choreographer.java:580)
    at android.view.Choreographer.doFrame(Choreographer.java:550)
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
    at android.os.Handler.handleCallback(Handler.java:739)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:135)
    at android.app.ActivityThread.main(ActivityThread.java:5343)
    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:905)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700)

Focus problem on some devices

Reported on Sony Xperia SP by @SparkyCola on Telegram group

Looks like camera looses focus on the right moment of takePicture action.

Nexus 7 (2013) no focus (auto or manual)

When I'm trying to take photo of some document I can't capture it properly because I can't focus it properly. It is just stuck on one level and larger documents are often blurry and text is not recognised

Threema incompatibility ("is no image file")

After an crash when opened via Threema (#33) there is still an issue when opening the app via

Now I can shot the photo, but when it is returned to Threema I just see a broken image:
threemaopennotescanner

When I tap to send it, it says "The selected file is no image file". So some metadata/file type seem to missing...

Crashes when loaded from another app

I have another all which allows you to chose "camera" for sharing photos. There you chose the camera so and the camera so sends the picture back to the app for further processing.
However when I choose your app there it always crashes after I take a photo.

Logcat:

I/PackageManager(  618): Setting last chosen activity com.todobom.opennotescanner/.OpenNoteScannerActivity for user 0:
I/ActivityManager(  618): START u0 {act=android.media.action.IMAGE_CAPTURE flg=0x3000003 cmp=com.todobom.opennotescanner/.OpenNoteScannerActivity clip={text/uri-list U:file:///storage/emulated/0/Android/data/ch.*******.app/files/tmp/.camera--555360234.jpg.nomedia} (has extras)} from uid 10202 on display 0
I/ActivityManager(  618): Start proc 16955:com.todobom.opennotescanner/u0a107 for activity com.todobom.opennotescanner/.OpenNoteScannerActivity
W/System  (16955): ClassLoader referenced unknown path: /data/app/com.todobom.opennotescanner-2/lib/arm
W/XPrivacy(16955): Hooking package=com.todobom.opennotescanner
D/OpenNoteScannerActivity(16955): resuming
D/OpenNoteScannerActivity(16955): myBuild armeabi-v7a
D/OpenNoteScannerActivity(16955): myBuild armeabi
I/ActivityManager(  618): Displayed com.todobom.opennotescanner/.OpenNoteScannerActivity: +1s117ms
D/OpenNoteScannerActivity(16955): supported preview resolution: 1920x1080
D/OpenNoteScannerActivity(16955): supported picture resolution: 4128x3096 ratio: 1.3333334
D/OpenNoteScannerActivity(16955): supported picture resolution: 4128x2322 ratio: 1.7777778
D/OpenNoteScannerActivity(16955): supported picture resolution: 3264x2448 ratio: 1.3333334
D/OpenNoteScannerActivity(16955): supported picture resolution: 3264x1836 ratio: 1.7777778
D/OpenNoteScannerActivity(16955): supported picture resolution: 2048x1536 ratio: 1.3333334
D/OpenNoteScannerActivity(16955): supported picture resolution: 2048x1152 ratio: 1.7777778
D/OpenNoteScannerActivity(16955): supported picture resolution: 1280x720 ratio: 1.7777778
D/OpenNoteScannerActivity(16955): supported picture resolution: 640x480 ratio: 1.3333334
D/OpenNoteScannerActivity(16955): Max supported picture resolution with preview aspect ratio: 4128x2322
D/OpenNoteScannerActivity(16955): max supported picture resolution: 4128x2322
D/OpenNoteScannerActivity(16955): enabling autofocus
D/OpenNoteScannerActivity(16955): onPreviewFrame - received image 1920x1080 focused: true imageprocessor: available
D/OpenNoteScannerActivity(16955): sending message to ImageProcessor: previewFrame - com.todobom.opennotescanner.helpers.PreviewFrame@549fd91
D/ImageProcessor(16955): Message Received: previewFrame - com.todobom.opennotescanner.helpers.PreviewFrame@549fd91
D/OpenNoteScannerActivity(16955): onPreviewFrame - received image 1920x1080 focused: true imageprocessor: busy
D/OpenNoteScannerActivity(16955): onPreviewFrame - received image 1920x1080 focused: true imageprocessor: busy
D/OpenNoteScannerActivity(16955): onPreviewFrame - received image 1920x1080 focused: true imageprocessor: available
D/OpenNoteScannerActivity(16955): sending message to ImageProcessor: previewFrame - com.todobom.opennotescanner.helpers.PreviewFrame@ae954f6
D/ImageProcessor(16955): Message Received: previewFrame - com.todobom.opennotescanner.helpers.PreviewFrame@ae954f6
D/OpenNoteScannerActivity(16955): onPreviewFrame - received image 1920x1080 focused: true imageprocessor: busy
D/OpenNoteScannerActivity(16955): onPreviewFrame - received image 1920x1080 focused: true imageprocessor: busy
D/OpenNoteScannerActivity(16955): onPreviewFrame - received image 1920x1080 focused: true imageprocessor: available
D/OpenNoteScannerActivity(16955): sending message to ImageProcessor: previewFrame - com.todobom.opennotescanner.helpers.PreviewFrame@98050f7
D/ImageProcessor(16955): Message Received: previewFrame - com.todobom.opennotescanner.helpers.PreviewFrame@98050f7
D/OpenNoteScannerActivity(16955): onPreviewFrame - received image 1920x1080 focused: true imageprocessor: busy
D/OpenNoteScannerActivity(16955): onPreviewFrame - received image 1920x1080 focused: true imageprocessor: available
D/OpenNoteScannerActivity(16955): sending message to ImageProcessor: previewFrame - com.todobom.opennotescanner.helpers.PreviewFrame@a57eb64
D/ImageProcessor(16955): Message Received: previewFrame - com.todobom.opennotescanner.helpers.PreviewFrame@a57eb64
D/OpenNoteScannerActivity(16955): onPreviewFrame - received image 1920x1080 focused: true imageprocessor: busy
D/OpenNoteScannerActivity(16955): onPreviewFrame - received image 1920x1080 focused: true imageprocessor: available
D/OpenNoteScannerActivity(16955): sending message to ImageProcessor: previewFrame - com.todobom.opennotescanner.helpers.PreviewFrame@47fe1cd
D/ImageProcessor(16955): Message Received: previewFrame - com.todobom.opennotescanner.helpers.PreviewFrame@47fe1cd
D/OpenNoteScannerActivity(16955): onPreviewFrame - received image 1920x1080 focused: true imageprocessor: busy
D/OpenNoteScannerActivity(16955): onPreviewFrame - received image 1920x1080 focused: true imageprocessor: busy
D/OpenNoteScannerActivity(16955): onPreviewFrame - received image 1920x1080 focused: true imageprocessor: available
D/OpenNoteScannerActivity(16955): sending message to ImageProcessor: previewFrame - com.todobom.opennotescanner.helpers.PreviewFrame@2cdca82
D/ImageProcessor(16955): Message Received: previewFrame - com.todobom.opennotescanner.helpers.PreviewFrame@2cdca82
D/OpenNoteScannerActivity(16955): onPreviewFrame - received image 1920x1080 focused: true imageprocessor: busy
D/OpenNoteScannerActivity(16955): onPreviewFrame - received image 1920x1080 focused: true imageprocessor: available
D/OpenNoteScannerActivity(16955): sending message to ImageProcessor: previewFrame - com.todobom.opennotescanner.helpers.PreviewFrame@7df0593
D/ImageProcessor(16955): Message Received: previewFrame - com.todobom.opennotescanner.helpers.PreviewFrame@7df0593
D/OpenNoteScannerActivity(16955): onPreviewFrame - received image 1920x1080 focused: true imageprocessor: busy
D/OpenNoteScannerActivity(16955): onPreviewFrame - received image 1920x1080 focused: true imageprocessor: busy
D/OpenNoteScannerActivity(16955): onPreviewFrame - received image 1920x1080 focused: true imageprocessor: available
D/OpenNoteScannerActivity(16955): sending message to ImageProcessor: previewFrame - com.todobom.opennotescanner.helpers.PreviewFrame@eee7a6
D/ImageProcessor(16955): Message Received: previewFrame - com.todobom.opennotescanner.helpers.PreviewFrame@eee7a6
D/OpenNoteScannerActivity(16955): onPreviewFrame - received image 1920x1080 focused: true imageprocessor: busy
D/OpenNoteScannerActivity(16955): onPreviewFrame - received image 1920x1080 focused: true imageprocessor: busy
D/OpenNoteScannerActivity(16955): onPreviewFrame - received image 1920x1080 focused: true imageprocessor: available
D/OpenNoteScannerActivity(16955): sending message to ImageProcessor: previewFrame - com.todobom.opennotescanner.helpers.PreviewFrame@b165e7
D/ImageProcessor(16955): Message Received: previewFrame - com.todobom.opennotescanner.helpers.PreviewFrame@b165e7
D/OpenNoteScannerActivity(16955): onPreviewFrame - received image 1920x1080 focused: true imageprocessor: busy
D/OpenNoteScannerActivity(16955): onPreviewFrame - received image 1920x1080 focused: true imageprocessor: busy
D/OpenNoteScannerActivity(16955): onPreviewFrame - received image 1920x1080 focused: true imageprocessor: available
D/OpenNoteScannerActivity(16955): sending message to ImageProcessor: previewFrame - com.todobom.opennotescanner.helpers.PreviewFrame@3ef594
D/ImageProcessor(16955): Message Received: previewFrame - com.todobom.opennotescanner.helpers.PreviewFrame@3ef594
D/OpenNoteScannerActivity(16955): onPreviewFrame - received image 1920x1080 focused: true imageprocessor: busy
D/OpenNoteScannerActivity(16955): onPreviewFrame - received image 1920x1080 focused: true imageprocessor: busy
D/OpenNoteScannerActivity(16955): onPreviewFrame - received image 1920x1080 focused: true imageprocessor: busy
D/OpenNoteScannerActivity(16955): onPreviewFrame - received image 1920x1080 focused: true imageprocessor: available
D/OpenNoteScannerActivity(16955): sending message to ImageProcessor: previewFrame - com.todobom.opennotescanner.helpers.PreviewFrame@e19d83d
D/ImageProcessor(16955): Message Received: previewFrame - com.todobom.opennotescanner.helpers.PreviewFrame@e19d83d
D/OpenNoteScannerActivity(16955): onPreviewFrame - received image 1920x1080 focused: true imageprocessor: busy
D/OpenNoteScannerActivity(16955): onPreviewFrame - received image 1920x1080 focused: true imageprocessor: busy
D/OpenNoteScannerActivity(16955): onPreviewFrame - received image 1920x1080 focused: true imageprocessor: available
D/OpenNoteScannerActivity(16955): sending message to ImageProcessor: previewFrame - com.todobom.opennotescanner.helpers.PreviewFrame@1519871
D/ImageProcessor(16955): Message Received: previewFrame - com.todobom.opennotescanner.helpers.PreviewFrame@1519871
D/OpenNoteScannerActivity(16955): onPreviewFrame - received image 1920x1080 focused: true imageprocessor: busy
D/OpenNoteScannerActivity(16955): onPreviewFrame - received image 1920x1080 focused: true imageprocessor: busy
D/OpenNoteScannerActivity(16955): onPreviewFrame - received image 1920x1080 focused: true imageprocessor: available
D/OpenNoteScannerActivity(16955): sending message to ImageProcessor: previewFrame - com.todobom.opennotescanner.helpers.PreviewFrame@4968656
D/ImageProcessor(16955): Message Received: previewFrame - com.todobom.opennotescanner.helpers.PreviewFrame@4968656
D/OpenNoteScannerActivity(16955): onPreviewFrame - received image 1920x1080 focused: true imageprocessor: busy
D/OpenNoteScannerActivity(16955): onPictureTaken - received image 4128x2322
D/OpenNoteScannerActivity(16955): sending message to ImageProcessor: pictureTaken - Mat [ 2322*4128*CV_8UC1, isCont=true, isSubmat=false, nativeObj=0xffffffff9c159f50, dataAddr=0xffffffff970c0010 ]
E/AndroidRuntime(16955): Process: com.todobom.opennotescanner, PID: 16955
E/AndroidRuntime(16955):    at com.todobom.opennotescanner.OpenNoteScannerActivity.saveDocument(OpenNoteScannerActivity.java:889)
E/AndroidRuntime(16955):    at com.todobom.opennotescanner.ImageProcessor.processPicture(ImageProcessor.java:159)
E/AndroidRuntime(16955):    at com.todobom.opennotescanner.ImageProcessor.handleMessage(ImageProcessor.java:90)
W/ActivityManager(  618):   Force finishing activity com.todobom.opennotescanner/.OpenNoteScannerActivity
I/ActivityManager(  618): Process com.todobom.opennotescanner (pid 16955) has died

App Crashed when "Storage" permission is revoked.

When the "Storage" permission is revoked ("Camera" permission is granted) the app crashes. (see the gif below).

(Android 5, Nexus 5, API 23)
ezgif com-optimize

IMHO, the APIs for checking(checkSelfPermission) Storage permission should get called just before saving the picture.

The stack trace:

02-13 10:55:11.210  3301  3323 E AndroidRuntime: FATAL EXCEPTION: Worker Thread
02-13 10:55:11.210  3301  3323 E AndroidRuntime: Process: com.todobom.opennotescanner, PID: 3301
02-13 10:55:11.210  3301  3323 E AndroidRuntime: java.lang.SecurityException: Permission Denial: writing com.android.providers.media.MediaProvider uri content://media/external/images/media from pid=3301, uid=10058 requires android.permission.WRITE_EXTERNAL_STORAGE, or grantUriPermission()
02-13 10:55:11.210  3301  3323 E AndroidRuntime: 	at android.os.Parcel.readException(Parcel.java:1599)
02-13 10:55:11.210  3301  3323 E AndroidRuntime: 	at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183)
02-13 10:55:11.210  3301  3323 E AndroidRuntime: 	at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
02-13 10:55:11.210  3301  3323 E AndroidRuntime: 	at android.content.ContentProviderProxy.insert(ContentProviderNative.java:476)
02-13 10:55:11.210  3301  3323 E AndroidRuntime: 	at android.content.ContentResolver.insert(ContentResolver.java:1231)
02-13 10:55:11.210  3301  3323 E AndroidRuntime: 	at com.todobom.opennotescanner.helpers.Utils.addImageToGallery(Utils.java:215)
02-13 10:55:11.210  3301  3323 E AndroidRuntime: 	at com.todobom.opennotescanner.OpenNoteScannerActivity.saveDocument(OpenNoteScannerActivity.java:972)
02-13 10:55:11.210  3301  3323 E AndroidRuntime: 	at com.todobom.opennotescanner.ImageProcessor.processPicture(ImageProcessor.java:162)
02-13 10:55:11.210  3301  3323 E AndroidRuntime: 	at com.todobom.opennotescanner.ImageProcessor.handleMessage(ImageProcessor.java:91)
02-13 10:55:11.210  3301  3323 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:102)
02-13 10:55:11.210  3301  3323 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:148)
02-13 10:55:11.210  3301  3323 E AndroidRuntime: 	at android.os.HandlerThread.run(HandlerThread.java:61)

Create a better icon and banner

The current Icon / Logo is a mockup of three different icons. The Google Play banner is very amateur.

It is needed to create a new High Resolution logo (512 x 512) as well as the application Icon on all its versions mdpi to xxxhdpi mipmaps, and maybe a vector drawable one.

The Google Play banner would be nice to improve too. The official size is 1024 x 500 px and it would be featured on the initial page of the project too.

Obviously to say that the Green color used in the app must be the main one used on the arts (#00E676).

Possibility to update images based on same page?

Hello guys!

First of all I want to say CONGRATS on this great app.

I know that you're working on current features to be stable and fully working in order to process more features but I'd like to point out a new possible feature that will be update the image if we make changes on the page.

Eg. I draw a circle on a page and I process it with the app, once I draw a triangle on the same paper sheet it would automatically update existing and processed image(I guess it would take a reprocessing of the image) .

Regards.

should i be able to download/build dependencies w/single command?

Hi, I'm using gradle --version 2.10, and trying to figure out how to build this project and its dependencies. Do these issues sound specific to gradle version or some step I'm missing/didn't see in the README?

I get the following (regardless of arguments) when calling ./gradlew:

Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain

and when I run my own gradle (2.10):

ANDROID_HOME=/path/to/my/sdk gradle assembleDebug

I get: https://dpaste.de/juge/raw/ tl;dr "can't find java libraries" eg: FullScreenViewActivity.java:8: error: package android.support.v4.app does not exist

I seem to recall gradle does this automagically as needed. Are these dependencies just not declared in a build.gradle somewhere or am I misunderstanding?

Fail to open large image from the gallery

In some phones an out-of-memory error occurs when trying to open a large image from the gallery, or navigate sliding the fullscreen viewer to a large image.

This error occurs on phones where the OpenGL surface allows 4096x4096 images.

Icons and dimensions of page template

Is it possible to get the icons and the dimensions of the page template so I can create a bigger template?
Does it meet any specification on icon size percentage base on the paper dimension?

Or at least have another A4 page template with let's say A4 one page?

Regards.

mention location of stored files

I'm having a hard time right now finding out where the stored images are.

I expected to have a "details" view or something on each image. Or a settings dialogue where I can see the storage path.

OpenNoteScanner does not recognize the document

Hi, I'm using this app from a Nexus 6 with Android N. Everything seems to be working fine, but the app does not recognize the borders of the document I'm trying to scan (an a4 paper on a table with good contrast). I have to "scan the whole image", that of course it not optimal.

Slow Scan

Open Note Scanner it's good, but it's very slow because you're trying to dynamically recognize images, before the photograph is taken - like the human brain does, which on not high end devices tends to be tediously slow. On the other hand, apps like CamScanner work blazing fast because they recognize a still image ( after photographing ) .... I'd request the devs to add an option for static image recognition.
Thank You.

feature request. Detect book pages

It would be great to detect two book pages on contrast surface and split them up and store both of them into two separate files.

image for example:
p60322-173917

Inefficient API is used

Dear developers,

I found an inefficient API, setImageURI(), is used in OpenNoteScanner.

For setImageURI(), Google says this:
https://developer.android.com/reference/android/widget/ImageView.html#setImageURI(android.net.Uri)
" This does Bitmap reading and decoding on the UI thread, which can cause a latency hiccup. If that's a concern, consider using setImageDrawable(android.graphics.drawable.Drawable) or setImageBitmap(android.graphics.Bitmap) and BitmapFactory instead. "

I noticed that in the following code, setImageURI() is used:
com.todobom.opennotescanner.views.TouchImageView.java (line number: 181)
https://github.com/ctodobom/OpenNoteScanner/blob/master/app/src/main/java/com/todobom/opennotescanner/views/TouchImageView.java

Do you think the use of setImageURI() will affect OpenNoteScanner's performance? If so, maybe we should move Bitmap reading and decoding to a background thread.

Thanks.

Camera upside down

Hi!
This app is great! :D

But I have a small issue... I am on Nexus 5X with Android 7.1.1, and the camera is shown upside down in this app.

Do you have any idea why?

I am not a Android dev, but if you point me in the right direction I can try to work on this too :)

Feature request: manual edition

I'd like an option to manually cut the photo and adapt it to the size of my screen. This is very useful if you take a photo with an angle or you just need a paragraph from an entire page.

feature request. Merge few images into one pdf

I used ImageMagick's convert utility before for processing multipage documents with morphology and merging to pdf. That useful, but requires an regular OS, but it would be great to do all operations instantly inside your app.

Can't Build

If I import to AndroidStudio I get this message:
Error Loading Project: Cannot load 2 modules Details...
and it does not use gradle.
If I click on "Details" I get
Error
2 modules cannot be loaded. You can remove them from the project (no files will be deleted).
OpenNoteScanner: Cannot load module file: '/AndroidProjects/OpenNoteScanner/OpenNoteScaner.iml'
File '
/AndroidProjects/OpenNoteScanner/OpenNoteScaner.iml' does not exist.
app: '/AndroidProjects/OpenNoteScanner/app/app.iml'
File '
/AndroidProjects/OpenNoteScanner/app/app.iml' does not exist.
Could you please help me?

Aggressive post processing

Hi

I like this app because I can use as camera replacement for scanning documents but for that purpose I find the post processing on images to be super aggressive such that most of the images I take with it are not even readable at all, fonts are gone, images are gone etc. I even tried the color mode, but that just gave the same result as the bw mode not sure if it is buggy. I tried the auto on off without any success.

Anyways it would be great if one could levrage the level of the processing a bit.If people want super auto mode that is fine but I personally like to use this to scan documents, receipts, napkin notes etc

I use the latest Fdroid version on CM12

thanks

Gallery showing random pixels

tmp_8705-screenshot_2016-03-01-01-03-1540948421

After installing for the first time right now from f-droid. Only one picture taken.
Rooted Nexus 5, Android 5.1.1

Handle apps that passes content provider URI

Problem explainded by @mimiks at #33 (comment):

Some apps may provide an URI that refers to a content provider rather than a file. In that case, the URI scheme starts with content:// rather than file:// and fileUri.getPath()(line 870) will not return a file path.

A comprehensive example of how to get the path from file-based content providers can be found here: FileUtils.java

Permanent translation issue

This issue will receive a new comment every time I change something on the strings of the project, in order to inform translators about the pending work.

For now we have translations to:

Google Play statistics tells that there are major use on people that speaks German, Spanish and French also, and, I know that there is a lot of activity on Asia and middle east.

Any help on translating to those languages is appreciated.

[Enhancement] Detect and fix folds

When a paper has been folded in two or four, it can be hard to make it flat.
That results in non-rectangle shapes, that could maybe be detected and corrected?
Very low priority.
tmp_15036-screenshot_2016-03-01-01-46-58-1848968473

[Request] Provide apk binary

I have been looking for such an open-source application and would like to test yours. Would you please provide the apk binary in the “Releases” section or publish your app to F-Droid?

Thank you.

App crashes when opened

Here's the logcat content.
Let me know if you need more informations.

E/CameraClient(27102): Could not open camera 1: -19
E/CameraClient(27102): initialize: Camera 1: unable to initialize device: No such device (-19)
I/CameraClient(27102): Destroying camera 1
E/CameraService(27102): connectFinishUnsafe: Could not initialize client from HAL module.
W/CameraBase(15738): An error occurred while connecting to camera: 1
E/JavaCameraView(15738): Camera #1failed to open: Fail to connect to camera service
V/WindowManager(27327): Adding window Window{3653eaff u0 com.todobom.opennotescanner/com.todobom.opennotescanner.OpenNoteScannerActivity} at 5 of 14 (before Window{20a38522 u0 Starting com.todobom.opennotescanner})
E/AndroidRuntime(15738): FATAL EXCEPTION: main
E/AndroidRuntime(15738): Process: com.todobom.opennotescanner, PID: 15738
E/AndroidRuntime(15738): java.lang.NullPointerException: Attempt to invoke virtual method 'android.hardware.Camera$Parameters android.hardware.Camera.getParameters()' on a null object reference
E/AndroidRuntime(15738): at com.todobom.opennotescanner.views.OpenNoteCameraView.getResolutionList(OpenNoteCameraView.java:52)
E/AndroidRuntime(15738): at com.todobom.opennotescanner.views.OpenNoteCameraView.setMaxPreviewResolution(OpenNoteCameraView.java:85)
E/AndroidRuntime(15738): at com.todobom.opennotescanner.OpenNoteScannerActivity.onCameraViewStarted(OpenNoteScannerActivity.java:539)
E/AndroidRuntime(15738): at org.opencv.android.CameraBridgeViewBase.processEnterState(CameraBridgeViewBase.java:322)
E/AndroidRuntime(15738): at org.opencv.android.CameraBridgeViewBase.checkCurrentState(CameraBridgeViewBase.java:312)
E/AndroidRuntime(15738): at org.opencv.android.CameraBridgeViewBase.surfaceChanged(CameraBridgeViewBase.java:197)
E/AndroidRuntime(15738): at android.view.SurfaceView.updateWindow(SurfaceView.java:591)
E/AndroidRuntime(15738): at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:176)
E/AndroidRuntime(15738): at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:944)
E/AndroidRuntime(15738): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1970)
E/AndroidRuntime(15738): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1061)
E/AndroidRuntime(15738): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5891)
E/AndroidRuntime(15738): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
E/AndroidRuntime(15738): at android.view.Choreographer.doCallbacks(Choreographer.java:580)
E/AndroidRuntime(15738): at android.view.Choreographer.doFrame(Choreographer.java:550)
E/AndroidRuntime(15738): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
E/AndroidRuntime(15738): at android.os.Handler.handleCallback(Handler.java:739)
E/AndroidRuntime(15738): at android.os.Handler.dispatchMessage(Handler.java:95)
E/AndroidRuntime(15738): at android.os.Looper.loop(Looper.java:135)
E/AndroidRuntime(15738): at android.app.ActivityThread.main(ActivityThread.java:5374)
E/AndroidRuntime(15738): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(15738): at java.lang.reflect.Method.invoke(Method.java:372)
E/AndroidRuntime(15738): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
E/AndroidRuntime(15738): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
W/ActivityManager(27327): Force finishing activity 1 com.todobom.opennotescanner/.OpenNoteScannerActivity
I/WindowManager(27327): Screen frozen for +742ms due to Window{20a38522 u0 Starting com.todobom.opennotescanner}
I/WindowManager(27327): Screenshot max retries 4 of Token{247ce6ca ActivityRecord{1d942235 u0 com.todobom.opennotescanner/.OpenNoteScannerActivity t1193 f}} appWin=Window{20a38522 u0 Starting com.todobom.opennotescanner} drawState=3
W/art (27327): Long monitor contention event with owner method=void com.android.server.am.ActivityManagerService.crashApplication(com.android.server.am.ProcessRecord, android.app.ApplicationErrorReport$CrashInfo) from ActivityManagerService.java:12297 waiters=0 for 374ms
W/ActivityManager(27327): Skipping crash dialog of ProcessRecord{2a2289c 15738:com.todobom.opennotescanner/u0a121}: disabled
I/Process (15738): Sending signal. PID: 15738 SIG: 9
E/lowmemorykiller( 1973): Error writing /proc/15738/oom_score_adj; errno=22
W/ResourceType(27462): No package identifier when getting value for resource number 0x00000000
W/PackageManager(27462): Failure retrieving resources for com.todobom.opennotescanner: Resource ID #0x0
I/ActivityManager(27327): Process com.todobom.opennotescanner (pid 15738) has died
W/InputDispatcher(27327): channel '299b7ad2 com.todobom.opennotescanner/com.todobom.opennotescanner.OpenNoteScannerActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x9
E/InputDispatcher(27327): channel '299b7ad2 com.todobom.opennotescanner/com.todobom.opennotescanner.OpenNoteScannerActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
W/InputDispatcher(27327): channel '3653eaff com.todobom.opennotescanner/com.todobom.opennotescanner.OpenNoteScannerActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x9
E/InputDispatcher(27327): channel '3653eaff com.todobom.opennotescanner/com.todobom.opennotescanner.OpenNoteScannerActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
V/ActivityManager(27327): killProcessGroupAsync took 58 ms for PID 15738 on thread 17
I/WindowState(27327): WIN DEATH: Window{3653eaff u0 com.todobom.opennotescanner/com.todobom.opennotescanner.OpenNoteScannerActivity}
W/InputDispatcher(27327): Attempted to unregister already unregistered input channel '3653eaff com.todobom.opennotescanner/com.todobom.opennotescanner.OpenNoteScannerActivity (server)'
W/InputDispatcher(27327): Attempted to unregister already unregistered input channel '299b7ad2 com.todobom.opennotescanner/com.todobom.opennotescanner.OpenNoteScannerActivity (server)'
W/WindowManager(27327): Failed looking up window
W/WindowManager(27327): java.lang.IllegalArgumentException: Requested window android.os.BinderProxy@1e4fe15d does not exist
W/WindowManager(27327): at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:8885)
W/WindowManager(27327): at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:8876)
W/WindowManager(27327): at com.android.server.wm.WindowState$DeathRecipient.binderDied(WindowState.java:1140)
W/WindowManager(27327): at android.os.BinderProxy.sendDeathNotice(Binder.java:551)
I/WindowState(27327): WIN DEATH: null
W/WindowManager(27327): Failed looking up window
W/WindowManager(27327): java.lang.IllegalArgumentException: Requested window android.os.BinderProxy@270b77a3 does not exist
W/WindowManager(27327): at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:8885)
W/WindowManager(27327): at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:8876)
W/WindowManager(27327): at com.android.server.wm.WindowState$DeathRecipient.binderDied(WindowState.java:1140)
W/WindowManager(27327): at android.os.BinderProxy.sendDeathNotice(Binder.java:551)
I/WindowState(27327): WIN DEATH: null
W/WindowManager(27327): Failed looking up window
W/WindowManager(27327): java.lang.IllegalArgumentException: Requested window android.view.ViewRootImpl$W@9c362ed does not exist
W/WindowManager(27327): at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:8885)
W/WindowManager(27327): at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:8876)
W/WindowManager(27327): at com.android.server.wm.WindowManagerService.removeWindow(WindowManagerService.java:2664)
W/WindowManager(27327): at com.android.server.wm.Session.remove(Session.java:187)
W/WindowManager(27327): at android.view.ViewRootImpl.dispatchDetachedFromWindow(ViewRootImpl.java:3015)
W/WindowManager(27327): at android.view.ViewRootImpl.doDie(ViewRootImpl.java:5502)
W/WindowManager(27327): at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:3321)
W/WindowManager(27327): at android.os.Handler.dispatchMessage(Handler.java:102)
W/WindowManager(27327): at android.os.Looper.loop(Looper.java:135)
W/WindowManager(27327): at android.os.HandlerThread.run(HandlerThread.java:61)
W/WindowManager(27327): at com.android.server.ServiceThread.run(ServiceThread.java:46)
I/ActivityManager(27327): Config changes=480 {1.0 208mcc15mnc fr_FR ?layoutDir sw360dp w360dp h616dp 320dpi nrml long port finger -keyb/v/h -nav/h s.27 themeResource=null}
V/ActivityManager(27327): Display changed displayId=0
I/InputReader(27327): Reconfiguring input devices. changes=0x00000004
I/InputReader(27327): Device reconfigured: id=9, name='sec_touchscreen', size 720x1280, orientation 0, mode 1, display id 0
I/InputReader(27327): Reconfiguring input devices. changes=0x00000004

Black image on some devices

Tested only on Galaxy Nexus running CM 12.1, when the app calls mCamera.setPreviewDisplay(mSurfaceHolder); logcat issues the following lines:

03-28 09:54:21.849 560-883/com.todobom.opennotescanner W/CameraBase: Camera service died!
03-28 09:54:21.850 560-585/com.todobom.opennotescanner W/CameraBase: mediaserver's remote binder Camera object died
03-28 09:54:29.114 560-560/com.todobom.opennotescanner E/Camera: Error 100

Can't install on Android 4.2.2 phone

Hi,

I just wanted to try the latest release and copied the APK to my Android 4.2.2 phone.
When I try to open the APK it says "can't parse file". Any idea why that is?
Is it even compatible with Android 4.2.2?

Greetings

Nexus 5X Orientation

The camera orientation is incorrect on the Nexus 5X. This is caused by not using the latest camera APIs for Android.

Does not detect the note

Hi

When I focus the note and press the shutter button, noting happens. It never detects the note.
I captured some logs

App version: 1.0.19
Android version: 5.1

Screen lagging on preview and capture

Due to the fact that all the processing are done in the UI thread, screen lags when the application is searching for the document and also when processing the higher resolution image captured.

Is needed to separate this processing from the UI thread, making it more smooth.

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.