├── .gitattributes
├── LICENSE
├── Lnotes
├── .gitignore
├── app
│ ├── .gitignore
│ ├── build.gradle
│ ├── proguard-rules.pro
│ └── src
│ │ ├── androidTest
│ │ └── java
│ │ │ └── com
│ │ │ └── links
│ │ │ └── gaurav
│ │ │ └── lnotes
│ │ │ └── ExampleInstrumentedTest.java
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── ic_launcher-web.png
│ │ ├── java
│ │ │ ├── com
│ │ │ │ └── links
│ │ │ │ │ └── gaurav
│ │ │ │ │ └── lnotes
│ │ │ │ │ ├── Crop.java
│ │ │ │ │ ├── CropfourPoints.java
│ │ │ │ │ ├── Dbhandler.java
│ │ │ │ │ ├── FullscreenImage.java
│ │ │ │ │ ├── ImageProcessingService.java
│ │ │ │ │ ├── InsertNewEntry.java
│ │ │ │ │ ├── ItemAdapter.java
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ ├── MarkerProcessingService.java
│ │ │ │ │ ├── Matchr.java
│ │ │ │ │ ├── Modify.java
│ │ │ │ │ ├── OCRReader.java
│ │ │ │ │ ├── OpenCamera.java
│ │ │ │ │ ├── PolygonView.java
│ │ │ │ │ ├── ScanForEntries.java
│ │ │ │ │ ├── SettingsActivity.java
│ │ │ │ │ ├── SettingsFragment.java
│ │ │ │ │ ├── SlideShowDialogFragment.java
│ │ │ │ │ ├── Squares.java
│ │ │ │ │ ├── View_Entry.java
│ │ │ │ │ └── ZoomOutPageTransformer.java
│ │ │ ├── data
│ │ │ │ ├── ImageProperties.java
│ │ │ │ ├── MatKey_Serial.java
│ │ │ │ └── entry.java
│ │ │ └── utilities
│ │ │ │ ├── BitmapFunctions.java
│ │ │ │ ├── FixAppBarLayoutBehavior.java
│ │ │ │ ├── FocusIndicatorView.java
│ │ │ │ ├── ImageProcessor.java
│ │ │ │ ├── PointMapFunctions.java
│ │ │ │ ├── ShareFiles.java
│ │ │ │ └── Shredder.java
│ │ ├── jniLibs
│ │ │ ├── arm64-v8a
│ │ │ │ └── libopencv_java3.so
│ │ │ └── armeabi-v7a
│ │ │ │ └── libopencv_java3.so
│ │ └── res
│ │ │ ├── drawable-v21
│ │ │ ├── ic_menu_camera.xml
│ │ │ ├── ic_menu_gallery.xml
│ │ │ ├── ic_menu_manage.xml
│ │ │ ├── ic_menu_send.xml
│ │ │ ├── ic_menu_share.xml
│ │ │ └── ic_menu_slideshow.xml
│ │ │ ├── drawable
│ │ │ ├── border.xml
│ │ │ ├── circle.xml
│ │ │ ├── focus_indicator.xml
│ │ │ ├── ic_add_black_24dp.xml
│ │ │ ├── ic_bnw_black_24dp.xml
│ │ │ ├── ic_build_black_24dp.xml
│ │ │ ├── ic_check_black_24dp.xml
│ │ │ ├── ic_clear_black_24dp.xml
│ │ │ ├── ic_color_lens_black_24dp.xml
│ │ │ ├── ic_crop_black_24dp.xml
│ │ │ ├── ic_delete_white_24dp.xml
│ │ │ ├── ic_drag_handle_black_24dp.xml
│ │ │ ├── ic_edit_black_24dp.xml
│ │ │ ├── ic_flash_on_black_24dp.xml
│ │ │ ├── ic_gray_black_24dp.xml
│ │ │ ├── ic_info_black_24dp.xml
│ │ │ ├── ic_more_vert_black_24dp.xml
│ │ │ ├── ic_notifications_black_24dp.xml
│ │ │ ├── ic_ocr_24dp.xml
│ │ │ ├── ic_original_black_24dp.xml
│ │ │ ├── ic_pdf_white.xml
│ │ │ ├── ic_rotate_right_black_24dp.xml
│ │ │ ├── ic_scanner_black_24dp.xml
│ │ │ ├── ic_search_black_24dp.xml
│ │ │ ├── ic_share_white_24dp.xml
│ │ │ ├── ic_sync_black_24dp.xml
│ │ │ ├── ic_tag_white.xml
│ │ │ ├── ic_tune_black_24dp.xml
│ │ │ ├── item_bg_menu.xml
│ │ │ ├── line.xml
│ │ │ ├── line_drawable.xml
│ │ │ ├── multi.png
│ │ │ ├── shadow_item.xml
│ │ │ ├── shape.xml
│ │ │ ├── side_nav_bar.xml
│ │ │ ├── single.png
│ │ │ ├── thumb.xml
│ │ │ └── thumb_drawable.xml
│ │ │ ├── layout
│ │ │ ├── activity_main.xml
│ │ │ ├── app_bar_main.xml
│ │ │ ├── camera.xml
│ │ │ ├── content_main.xml
│ │ │ ├── crop_layout.xml
│ │ │ ├── fragment_image_slider.xml
│ │ │ ├── full_screen_image.xml
│ │ │ ├── gallery_item.xml
│ │ │ ├── grid_item.xml
│ │ │ ├── insert_new_entry.xml
│ │ │ ├── list_item_.xml
│ │ │ ├── list_layout.xml
│ │ │ ├── modify_image.xml
│ │ │ ├── nav_header_main.xml
│ │ │ ├── ocr_layout.xml
│ │ │ ├── scan_for_entry.xml
│ │ │ └── view_entry.xml
│ │ │ ├── menu
│ │ │ ├── activity_main_drawer.xml
│ │ │ ├── main.xml
│ │ │ ├── multi_grid.xml
│ │ │ └── multi_select.xml
│ │ │ ├── mipmap-hdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-mdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xhdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── values-v21
│ │ │ └── styles.xml
│ │ │ ├── values-w820dp
│ │ │ └── dimens.xml
│ │ │ ├── values
│ │ │ ├── colors.xml
│ │ │ ├── dimens.xml
│ │ │ ├── drawables.xml
│ │ │ ├── strings.xml
│ │ │ └── styles.xml
│ │ │ └── xml
│ │ │ ├── file_paths.xml
│ │ │ └── pref_general.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── links
│ │ └── gaurav
│ │ └── lnotes
│ │ └── ExampleUnitTest.java
├── build.gradle
├── gradle.properties
├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── import-summary.txt
├── openCVLibrary341
│ ├── build.gradle
│ ├── lint.xml
│ └── src
│ │ └── main
│ │ ├── AndroidManifest.xml
│ │ ├── aidl
│ │ └── org
│ │ │ └── opencv
│ │ │ └── engine
│ │ │ └── OpenCVEngineInterface.aidl
│ │ ├── java
│ │ └── org
│ │ │ └── opencv
│ │ │ ├── android
│ │ │ ├── AsyncServiceHelper.java
│ │ │ ├── BaseLoaderCallback.java
│ │ │ ├── Camera2Renderer.java
│ │ │ ├── CameraBridgeViewBase.java
│ │ │ ├── CameraGLRendererBase.java
│ │ │ ├── CameraGLSurfaceView.java
│ │ │ ├── CameraRenderer.java
│ │ │ ├── FpsMeter.java
│ │ │ ├── InstallCallbackInterface.java
│ │ │ ├── JavaCamera2View.java
│ │ │ ├── JavaCameraView.java
│ │ │ ├── LoaderCallbackInterface.java
│ │ │ ├── OpenCVLoader.java
│ │ │ ├── StaticHelper.java
│ │ │ └── Utils.java
│ │ │ ├── calib3d
│ │ │ ├── Calib3d.java
│ │ │ ├── StereoBM.java
│ │ │ ├── StereoMatcher.java
│ │ │ └── StereoSGBM.java
│ │ │ ├── core
│ │ │ ├── Algorithm.java
│ │ │ ├── Core.java
│ │ │ ├── CvException.java
│ │ │ ├── CvType.java
│ │ │ ├── DMatch.java
│ │ │ ├── KeyPoint.java
│ │ │ ├── Mat.java
│ │ │ ├── MatOfByte.java
│ │ │ ├── MatOfDMatch.java
│ │ │ ├── MatOfDouble.java
│ │ │ ├── MatOfFloat.java
│ │ │ ├── MatOfFloat4.java
│ │ │ ├── MatOfFloat6.java
│ │ │ ├── MatOfInt.java
│ │ │ ├── MatOfInt4.java
│ │ │ ├── MatOfKeyPoint.java
│ │ │ ├── MatOfPoint.java
│ │ │ ├── MatOfPoint2f.java
│ │ │ ├── MatOfPoint3.java
│ │ │ ├── MatOfPoint3f.java
│ │ │ ├── MatOfRect.java
│ │ │ ├── MatOfRect2d.java
│ │ │ ├── Point.java
│ │ │ ├── Point3.java
│ │ │ ├── Range.java
│ │ │ ├── Rect.java
│ │ │ ├── Rect2d.java
│ │ │ ├── RotatedRect.java
│ │ │ ├── Scalar.java
│ │ │ ├── Size.java
│ │ │ ├── TermCriteria.java
│ │ │ └── TickMeter.java
│ │ │ ├── dnn
│ │ │ ├── DictValue.java
│ │ │ ├── Dnn.java
│ │ │ ├── Layer.java
│ │ │ └── Net.java
│ │ │ ├── features2d
│ │ │ ├── AKAZE.java
│ │ │ ├── AgastFeatureDetector.java
│ │ │ ├── BFMatcher.java
│ │ │ ├── BOWImgDescriptorExtractor.java
│ │ │ ├── BOWKMeansTrainer.java
│ │ │ ├── BOWTrainer.java
│ │ │ ├── BRISK.java
│ │ │ ├── DescriptorExtractor.java
│ │ │ ├── DescriptorMatcher.java
│ │ │ ├── FastFeatureDetector.java
│ │ │ ├── Feature2D.java
│ │ │ ├── FeatureDetector.java
│ │ │ ├── Features2d.java
│ │ │ ├── FlannBasedMatcher.java
│ │ │ ├── GFTTDetector.java
│ │ │ ├── KAZE.java
│ │ │ ├── MSER.java
│ │ │ ├── ORB.java
│ │ │ └── Params.java
│ │ │ ├── imgcodecs
│ │ │ └── Imgcodecs.java
│ │ │ ├── imgproc
│ │ │ ├── CLAHE.java
│ │ │ ├── Imgproc.java
│ │ │ ├── LineSegmentDetector.java
│ │ │ ├── Moments.java
│ │ │ └── Subdiv2D.java
│ │ │ ├── ml
│ │ │ ├── ANN_MLP.java
│ │ │ ├── ANN_MLP_ANNEAL.java
│ │ │ ├── Boost.java
│ │ │ ├── DTrees.java
│ │ │ ├── EM.java
│ │ │ ├── KNearest.java
│ │ │ ├── LogisticRegression.java
│ │ │ ├── Ml.java
│ │ │ ├── NormalBayesClassifier.java
│ │ │ ├── ParamGrid.java
│ │ │ ├── RTrees.java
│ │ │ ├── SVM.java
│ │ │ ├── SVMSGD.java
│ │ │ ├── StatModel.java
│ │ │ └── TrainData.java
│ │ │ ├── objdetect
│ │ │ ├── BaseCascadeClassifier.java
│ │ │ ├── CascadeClassifier.java
│ │ │ ├── HOGDescriptor.java
│ │ │ └── Objdetect.java
│ │ │ ├── osgi
│ │ │ ├── OpenCVInterface.java
│ │ │ └── OpenCVNativeLoader.java
│ │ │ ├── photo
│ │ │ ├── AlignExposures.java
│ │ │ ├── AlignMTB.java
│ │ │ ├── CalibrateCRF.java
│ │ │ ├── CalibrateDebevec.java
│ │ │ ├── CalibrateRobertson.java
│ │ │ ├── MergeDebevec.java
│ │ │ ├── MergeExposures.java
│ │ │ ├── MergeMertens.java
│ │ │ ├── MergeRobertson.java
│ │ │ ├── Photo.java
│ │ │ ├── Tonemap.java
│ │ │ ├── TonemapDrago.java
│ │ │ ├── TonemapDurand.java
│ │ │ ├── TonemapMantiuk.java
│ │ │ └── TonemapReinhard.java
│ │ │ ├── utils
│ │ │ └── Converters.java
│ │ │ ├── video
│ │ │ ├── BackgroundSubtractor.java
│ │ │ ├── BackgroundSubtractorKNN.java
│ │ │ ├── BackgroundSubtractorMOG2.java
│ │ │ ├── DenseOpticalFlow.java
│ │ │ ├── DualTVL1OpticalFlow.java
│ │ │ ├── FarnebackOpticalFlow.java
│ │ │ ├── KalmanFilter.java
│ │ │ ├── SparseOpticalFlow.java
│ │ │ ├── SparsePyrLKOpticalFlow.java
│ │ │ └── Video.java
│ │ │ └── videoio
│ │ │ ├── VideoCapture.java
│ │ │ ├── VideoWriter.java
│ │ │ └── Videoio.java
│ │ └── res
│ │ └── values
│ │ └── attrs.xml
└── settings.gradle
├── Logo
├── horizontal.png
├── logomark.png
└── vertical.png
├── README.md
├── Sample
├── Demo.gif
├── Img1.jpg
├── Img2.jpg
├── Img3.jpg
├── Img4.jpg
├── Img5.jpg
├── Img6.jpg
├── Img7.jpg
├── Img8.jpg
└── Img9.jpg
└── apk
├── app-arm64-v8a-debug.apk
└── app-armeabi-v7a-debug.apk
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/Lnotes/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | .externalNativeBuild
10 |
--------------------------------------------------------------------------------
/Lnotes/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/Lnotes/app/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 |
3 | android {
4 |
5 | compileSdkVersion 27
6 | buildToolsVersion '27.0.3'
7 | defaultConfig {
8 | applicationId "com.links.gaurav.lnotes"
9 | minSdkVersion 21
10 | targetSdkVersion 27
11 | versionCode 1
12 | versionName "1.0"
13 |
14 | }
15 | buildTypes {
16 | release {
17 | minifyEnabled false
18 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
19 | }
20 | }
21 | splits {
22 | abi {
23 | enable true
24 | reset()
25 | include 'armeabi-v7a', 'arm64-v8a'
26 | universalApk false
27 | }
28 | }
29 | }
30 |
31 | dependencies {
32 | implementation fileTree(include: ['*.jar'], dir: 'libs')
33 | implementation 'com.android.support:appcompat-v7:27.1.0'
34 | implementation 'com.android.support:preference-v7:27.1.0'
35 | implementation 'com.android.support:exifinterface:27.1.0'
36 | implementation 'com.android.support:design:27.1.0'
37 | implementation 'com.android.support:support-v4:27.1.0'
38 | implementation 'com.github.bumptech.glide:glide:4.7.1'
39 | implementation 'com.davemorrissey.labs:subsampling-scale-image-view:3.9.0'
40 | implementation 'com.github.woxthebox:draglistview:1.6.0'
41 | implementation 'com.github.esafirm.android-image-picker:imagepicker:1.13.1'
42 | implementation 'com.github.fafaldo:fab-toolbar:1.2.0'
43 | implementation 'com.google.android.gms:play-services-vision:15.0.2'
44 | annotationProcessor 'com.github.bumptech.glide:compiler:4.7.1'
45 | implementation project(':openCVLibrary341')
46 | }
47 | allprojects {
48 | repositories {
49 | maven { url "https://jitpack.io"
50 | }
51 | }
52 | repositories {
53 | maven {
54 | url "http://dl.bintray.com/piasy/maven"
55 | }
56 | }
57 | }
58 | apply plugin: 'com.google.gms.google-services'
--------------------------------------------------------------------------------
/Lnotes/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in C:\Users\Gaurav\AppData\Local\Android\Sdk/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 | -keep class com.woxthebox.draglistview.** { *; }
19 |
--------------------------------------------------------------------------------
/Lnotes/app/src/androidTest/java/com/links/gaurav/lnotes/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.links.gaurav.lnotes;
2 |
3 | import android.content.Context;
4 | import android.support.test.InstrumentationRegistry;
5 | import android.support.test.runner.AndroidJUnit4;
6 |
7 | import org.junit.Test;
8 | import org.junit.runner.RunWith;
9 |
10 | import static org.junit.Assert.*;
11 |
12 | /**
13 | * Instrumentation test, which will execute on an Android device.
14 | *
15 | * @see Testing documentation
16 | */
17 | @RunWith(AndroidJUnit4.class)
18 | public class ExampleInstrumentedTest {
19 | @Test
20 | public void useAppContext() throws Exception {
21 | // Context of the app under test.
22 | Context appContext = InstrumentationRegistry.getTargetContext();
23 |
24 | assertEquals("com.links.gaurav.lnotes", appContext.getPackageName());
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/ic_launcher-web.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Gauravv97/LNotes-Linked-Notes/1cf987247fd4e2497d618f15214cc802955b3b35/Lnotes/app/src/main/ic_launcher-web.png
--------------------------------------------------------------------------------
/Lnotes/app/src/main/java/com/links/gaurav/lnotes/CropfourPoints.java:
--------------------------------------------------------------------------------
1 | package com.links.gaurav.lnotes;
2 |
3 | import org.opencv.core.CvType;
4 | import org.opencv.core.Mat;
5 | import org.opencv.core.MatOfPoint2f;
6 | import org.opencv.core.Point;
7 | import org.opencv.imgproc.Imgproc;
8 |
9 | /**
10 | * Created by Gaurav on 7/25/2017.
11 | */
12 |
13 | public class CropfourPoints {
14 | public static Mat fourPointTransform(Mat src , Point[] pts ) {
15 |
16 | double ratio = 1;
17 | int height = Double.valueOf(src.size().height / ratio).intValue();
18 | int width = Double.valueOf(src.size().width / ratio).intValue();
19 |
20 | Point tl = pts[0];
21 | Point tr = pts[1];
22 | Point br = pts[3];
23 | Point bl = pts[2];
24 |
25 | double widthA = Math.sqrt(Math.pow(br.x - bl.x, 2) + Math.pow(br.y - bl.y, 2));
26 | double widthB = Math.sqrt(Math.pow(tr.x - tl.x, 2) + Math.pow(tr.y - tl.y, 2));
27 |
28 | double dw = Math.max(widthA, widthB)*ratio;
29 | int maxWidth = Double.valueOf(dw).intValue();
30 |
31 |
32 | double heightA = Math.sqrt(Math.pow(tr.x - br.x, 2) + Math.pow(tr.y - br.y, 2));
33 | double heightB = Math.sqrt(Math.pow(tl.x - bl.x, 2) + Math.pow(tl.y - bl.y, 2));
34 |
35 | double dh = Math.max(heightA, heightB)*ratio;
36 | int maxHeight = Double.valueOf(dh).intValue();
37 |
38 | Mat doc = new Mat(maxHeight, maxWidth, CvType.CV_8UC4);
39 |
40 | Mat src_mat = new Mat(4, 1, CvType.CV_32FC2);
41 | Mat dst_mat = new Mat(4, 1, CvType.CV_32FC2);
42 |
43 | src_mat.put(0, 0, tl.x*ratio, tl.y*ratio, tr.x*ratio, tr.y*ratio, br.x*ratio, br.y*ratio, bl.x*ratio, bl.y*ratio);
44 | dst_mat.put(0, 0, 0.0, 0.0, dw, 0.0, dw, dh, 0.0, dh);
45 |
46 |
47 | Mat m = Imgproc.getPerspectiveTransform(src_mat, dst_mat);
48 |
49 | Imgproc.warpPerspective(src, doc, m, doc.size());
50 |
51 | return doc;/*
52 | Point tl = pts[0];
53 | Point tr = pts[1];
54 | Point br = pts[2];
55 | Point bl = pts[3];
56 | pts[3]=br;
57 | pts[2]=bl;
58 | Mat destImage = new Mat(src.height(), src.width(), src.type());
59 | Mat srca = new MatOfPoint2f(pts);
60 | Mat dsta = new MatOfPoint2f(new Point(0, 0), new Point(destImage.width(), 0), new Point(destImage.width(), destImage.height()), new Point(0, destImage.height()));
61 | Mat transform = Imgproc.getPerspectiveTransform(srca, dsta);
62 | Imgproc.warpPerspective(src, destImage, transform, destImage.size());
63 | return destImage;*/
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/java/com/links/gaurav/lnotes/FullscreenImage.java:
--------------------------------------------------------------------------------
1 | package com.links.gaurav.lnotes;
2 |
3 | import android.app.Activity;
4 | import android.graphics.Bitmap;
5 | import android.graphics.BitmapFactory;
6 | import android.net.Uri;
7 | import android.os.Bundle;
8 | import android.os.Handler;
9 | import android.os.Message;
10 | import android.support.v7.app.ActionBar;
11 | import android.support.v7.app.AppCompatActivity;
12 | import android.support.v7.widget.Toolbar;
13 | import android.view.MotionEvent;
14 | import android.view.View;
15 | import android.support.v7.widget.Toolbar.*;
16 | import android.widget.Toast;
17 |
18 | import com.bumptech.glide.Glide;
19 | import com.davemorrissey.labs.subscaleview.ImageSource;
20 | import com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView;
21 |
22 | /**
23 | * Created by Gaurav on 7/19/2017.
24 | */
25 |
26 | public class FullscreenImage extends AppCompatActivity{
27 | String path;
28 | SubsamplingScaleImageView imgDisplay;
29 | Toolbar toolbar;
30 |
31 | @Override
32 | protected void onCreate(Bundle savedInstanceState) {
33 | super.onCreate(savedInstanceState);
34 | setContentView(R.layout.full_screen_image);
35 | if (savedInstanceState == null) {
36 | Bundle extras = getIntent().getExtras();
37 | if (extras == null) {
38 | path = null;
39 | } else {
40 | path = extras.getString("path");
41 | }
42 | } else {
43 | path = (String) savedInstanceState.getSerializable("path");
44 | }
45 |
46 | toolbar = (Toolbar) findViewById(R.id.my_toolbar);
47 | setSupportActionBar(toolbar);
48 | toolbar.setVisibility(View.VISIBLE);
49 | imgDisplay = (SubsamplingScaleImageView) findViewById(R.id.imgDisplay);//else write v.find....
50 | //PhotoView photoView = (PhotoView) findViewById(R.id.photo_view);
51 | //Glide.with(this).load(path).into(imgDisplay);
52 | imgDisplay.setImage(ImageSource.uri(path));
53 | imgDisplay.setOnClickListener(new View.OnClickListener() {
54 | @Override
55 | public void onClick(View view) {
56 | toggle_bar();
57 | }
58 | });
59 |
60 | }
61 | void toggle_bar(){
62 | if(toolbar.getVisibility()==View.VISIBLE)
63 | toolbar.setVisibility(View.GONE);
64 | else toolbar.setVisibility(View.VISIBLE);
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/java/com/links/gaurav/lnotes/SettingsActivity.java:
--------------------------------------------------------------------------------
1 | package com.links.gaurav.lnotes;
2 |
3 | import android.app.Activity;
4 | import android.graphics.drawable.ColorDrawable;
5 | import android.os.Bundle;
6 | import android.support.annotation.Nullable;
7 | import android.support.v7.app.AppCompatActivity;
8 |
9 | /**
10 | * Created by Gaurav on 3/2/2018.
11 | */
12 |
13 | public class SettingsActivity extends AppCompatActivity {
14 | @Override
15 | protected void onCreate(@Nullable Bundle savedInstanceState) {
16 | super.onCreate(savedInstanceState);
17 | SettingsFragment settingsFragment=new SettingsFragment();
18 | getSupportFragmentManager().beginTransaction()
19 | .replace(android.R.id.content, settingsFragment)
20 | .commit();
21 |
22 |
23 | getSupportActionBar().setTitle(R.string.action_settings);
24 | getSupportActionBar().setBackgroundDrawable(getDrawable(android.R.color.holo_green_dark));
25 |
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/java/com/links/gaurav/lnotes/SettingsFragment.java:
--------------------------------------------------------------------------------
1 | package com.links.gaurav.lnotes;
2 |
3 | import android.content.SharedPreferences;
4 | import android.os.Bundle;
5 | import android.support.v7.preference.ListPreference;
6 | import android.preference.PreferenceFragment;
7 | import android.preference.PreferenceManager;
8 | import android.support.v7.preference.Preference;
9 | import android.support.v7.preference.PreferenceFragmentCompat;
10 | import android.support.v7.preference.SeekBarPreference;
11 |
12 | /**
13 | * Created by Gaurav on 3/2/2018.
14 | */
15 |
16 | public class SettingsFragment extends PreferenceFragmentCompat {
17 | public static final String KEY_PREF_SCANNINGMODE = "pref_scanningType";
18 | public static final String KEY_PREF_SCANQUALITY="pref_scannedQuality";
19 |
20 |
21 | @Override
22 | public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
23 |
24 | // Load the preferences from an XML resource
25 | addPreferencesFromResource(R.xml.pref_general);
26 | final SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(getActivity());
27 | ListPreference listPreference=(ListPreference)findPreference(KEY_PREF_SCANNINGMODE);
28 | listPreference.setDefaultValue(sharedPref.getString(KEY_PREF_SCANNINGMODE,"3"));
29 | final SeekBarPreference seekBarPreference=(SeekBarPreference)findPreference(KEY_PREF_SCANQUALITY);
30 | seekBarPreference.setMin(10);
31 | seekBarPreference.setMax(100);
32 | seekBarPreference.setSeekBarIncrement(10);
33 | seekBarPreference.setDefaultValue(sharedPref.getInt(KEY_PREF_SCANQUALITY,10));
34 | seekBarPreference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
35 | @Override
36 | public boolean onPreferenceChange(Preference preference, Object newValue) {
37 | seekBarPreference.setValue((int)newValue);
38 | return false;
39 | }
40 |
41 | });
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/java/com/links/gaurav/lnotes/Squares.java:
--------------------------------------------------------------------------------
1 | package com.links.gaurav.lnotes;
2 |
3 | import org.opencv.core.CvType;
4 | import org.opencv.core.Mat;
5 | import org.opencv.core.MatOfPoint;
6 | import org.opencv.core.Size;
7 | import org.opencv.imgproc.Imgproc;
8 |
9 | import java.util.ArrayList;
10 | import java.util.Collections;
11 | import java.util.Comparator;
12 |
13 | /**
14 | * Created by Gaurav on 7/25/2017.
15 | */
16 |
17 | public class Squares {
18 |
19 |
20 |
21 | private ArrayList findContours(Mat src) {
22 |
23 | Mat grayImage = null;
24 | Mat cannedImage = null;
25 | Mat resizedImage = null;
26 |
27 | double ratio = 1;//src.size().height / 500;
28 | int height = Double.valueOf(src.size().height / ratio).intValue();
29 | int width = Double.valueOf(src.size().width / ratio).intValue();
30 | Size size = new Size(width,height);
31 |
32 | resizedImage = new Mat(size, CvType.CV_8UC4);
33 | grayImage = new Mat(size, CvType.CV_8UC4);
34 | cannedImage = new Mat(size, CvType.CV_8UC1);
35 |
36 | Imgproc.resize(src,resizedImage,size);
37 | Imgproc.cvtColor(resizedImage, grayImage, Imgproc.COLOR_RGBA2GRAY, 4);
38 | Imgproc.GaussianBlur(grayImage, grayImage, new Size(5, 5), 0);
39 | Imgproc.adaptiveThreshold(grayImage,grayImage,255,1,1,11,2);//mine
40 | Imgproc.Canny(grayImage, cannedImage, 75, 200);
41 |
42 | ArrayList contours = new ArrayList();
43 | Mat hierarchy = new Mat();
44 |
45 | Imgproc.findContours(cannedImage, contours, hierarchy, Imgproc.RETR_LIST, Imgproc.CHAIN_APPROX_SIMPLE);
46 |
47 | hierarchy.release();
48 |
49 | Collections.sort(contours, new Comparator() {
50 |
51 | @Override
52 | public int compare(MatOfPoint lhs, MatOfPoint rhs) {
53 | return Double.valueOf(Imgproc.contourArea(rhs)).compareTo(Imgproc.contourArea(lhs));
54 | }
55 | });
56 |
57 | resizedImage.release();
58 | grayImage.release();
59 | cannedImage.release();
60 |
61 | return contours;
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/java/com/links/gaurav/lnotes/ZoomOutPageTransformer.java:
--------------------------------------------------------------------------------
1 | package com.links.gaurav.lnotes;
2 |
3 | import android.support.v4.view.ViewPager;
4 | import android.view.View;
5 |
6 | /**
7 | * Created by Gaurav on 10/16/2017.
8 | */
9 |
10 | public class ZoomOutPageTransformer implements ViewPager.PageTransformer {
11 | private static final float MIN_SCALE = 0.85f;
12 | private static final float MIN_ALPHA = 0.5f;
13 |
14 | public void transformPage(View view, float position) {
15 | int pageWidth = view.getWidth();
16 | int pageHeight = view.getHeight();
17 |
18 | if (position < -1) { // [-Infinity,-1)
19 | // This page is way off-screen to the left.
20 | view.setAlpha(0);
21 |
22 | } else if (position <= 1) { // [-1,1]
23 | // Modify the default slide transition to shrink the page as well
24 | float scaleFactor = Math.max(MIN_SCALE, 1 - Math.abs(position));
25 | float vertMargin = pageHeight * (1 - scaleFactor) / 2;
26 | float horzMargin = pageWidth * (1 - scaleFactor) / 2;
27 | if (position < 0) {
28 | view.setTranslationX(horzMargin - vertMargin / 2);
29 | } else {
30 | view.setTranslationX(-horzMargin + vertMargin / 2);
31 | }
32 |
33 | // Scale the page down (between MIN_SCALE and 1)
34 | view.setScaleX(scaleFactor);
35 | view.setScaleY(scaleFactor);
36 |
37 | // Fade the page relative to its size.
38 | view.setAlpha(MIN_ALPHA +
39 | (scaleFactor - MIN_SCALE) /
40 | (1 - MIN_SCALE) * (1 - MIN_ALPHA));
41 |
42 | } else { // (1,+Infinity]
43 | // This page is way off-screen to the right.
44 | view.setAlpha(0);
45 | }
46 | }
47 | }
--------------------------------------------------------------------------------
/Lnotes/app/src/main/java/data/MatKey_Serial.java:
--------------------------------------------------------------------------------
1 | package data;
2 |
3 | import org.opencv.core.KeyPoint;
4 | import org.opencv.core.MatOfKeyPoint;
5 |
6 | import java.io.Serializable;
7 |
8 | /**
9 | * Created by Gaurav on 12/15/2017.
10 | */
11 |
12 | public class MatKey_Serial implements Serializable {
13 | private float x[];
14 | private float y[];
15 | private float size[];
16 | private float angle[];
17 | private int octave[];
18 | private int length;
19 | private int class_id[];
20 | private float response[];
21 |
22 | public MatKey_Serial(KeyPoint[] keyPoints) {
23 | this.length=keyPoints.length;
24 | x=new float[length];
25 | y=new float[length];
26 | size=new float[length];
27 | angle=new float[length];
28 | response=new float[length];
29 | octave=new int[length];
30 | class_id=new int[length];
31 | int i=0;
32 | for (KeyPoint keyPoint : keyPoints) {
33 | x[i]=(float)keyPoint.pt.x;
34 | y[i]=(float)keyPoint.pt.y;
35 | size[i]=keyPoint.size;
36 | angle[i]=keyPoint.angle;
37 | octave[i]=keyPoint.octave;
38 | class_id[i]=keyPoint.class_id;
39 | response[i]=keyPoint.response;
40 | i++;
41 | }
42 |
43 | }
44 | public KeyPoint[] deserialize() {
45 | KeyPoint keyPoints[]=new KeyPoint[length];
46 | for(int i=0;i 0 && currOffset == -child.getTotalScrollRange())) {
50 | ViewCompat.stopNestedScroll(target, ViewCompat.TYPE_NON_TOUCH);
51 | }
52 | }
53 | }
54 | }
--------------------------------------------------------------------------------
/Lnotes/app/src/main/java/utilities/FocusIndicatorView.java:
--------------------------------------------------------------------------------
1 | package utilities;
2 |
3 | import android.content.Context;
4 | import android.graphics.Point;
5 | import android.util.AttributeSet;
6 | import android.view.View;
7 |
8 | import com.links.gaurav.lnotes.R;
9 |
10 | /**
11 | * Created by Gaurav on 3/3/2018.
12 | */
13 | public class FocusIndicatorView extends View {
14 |
15 | private Point mLocationPoint;
16 |
17 | public FocusIndicatorView(Context context, AttributeSet attrs) {
18 | super(context, attrs);
19 | }
20 |
21 | private void setDrawable(int resid) {
22 | this.setBackgroundResource(resid);
23 | }
24 |
25 | public void showStart() {
26 | setDrawable(R.drawable.focus_indicator);
27 | }
28 |
29 | public void clear() {
30 | setBackgroundDrawable(null);
31 | }
32 |
33 | }
--------------------------------------------------------------------------------
/Lnotes/app/src/main/java/utilities/PointMapFunctions.java:
--------------------------------------------------------------------------------
1 | package utilities;
2 |
3 | import android.graphics.PointF;
4 |
5 | import org.opencv.core.Point;
6 |
7 | import java.util.Map;
8 |
9 | /**
10 | * Created by Gaurav on 11/18/2017.
11 | */
12 |
13 | public class PointMapFunctions {
14 | public static Point[] SetPointToRatio(Point[] point, double ratio){
15 |
16 | point[0].x*=ratio;
17 | point[0].y*=ratio;
18 | point[1].x*=ratio;
19 | point[1].y*=ratio;
20 | point[2].x*=ratio;
21 | point[2].y*=ratio;
22 | point[3].x*=ratio;
23 | point[3].y*=ratio;
24 | //printpoint(point);
25 | return point;
26 | }
27 | public static Point[] MapToPoint(Map pointMap){
28 | Point[] p={new Point(pointMap.get(0).x,pointMap.get(0).y),new Point(pointMap.get(1).x,pointMap.get(1).y),
29 | new Point(pointMap.get(2).x,pointMap.get(2).y),new Point(pointMap.get(3).x,pointMap.get(3).y)
30 | };
31 |
32 | return p;
33 |
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/java/utilities/Shredder.java:
--------------------------------------------------------------------------------
1 | package utilities;
2 |
3 | import java.io.File;
4 | import java.io.FileNotFoundException;
5 |
6 | /**
7 | * Created by Gaurav on 2/27/2018.
8 | */
9 |
10 | public class Shredder {
11 | public static void Shred(String ...path){
12 | File file;
13 | for (String pth:path){
14 | try {
15 | file=new File(pth);
16 | file.delete();
17 | }catch (Exception e){
18 |
19 | }
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/jniLibs/arm64-v8a/libopencv_java3.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Gauravv97/LNotes-Linked-Notes/1cf987247fd4e2497d618f15214cc802955b3b35/Lnotes/app/src/main/jniLibs/arm64-v8a/libopencv_java3.so
--------------------------------------------------------------------------------
/Lnotes/app/src/main/jniLibs/armeabi-v7a/libopencv_java3.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Gauravv97/LNotes-Linked-Notes/1cf987247fd4e2497d618f15214cc802955b3b35/Lnotes/app/src/main/jniLibs/armeabi-v7a/libopencv_java3.so
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable-v21/ic_menu_camera.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
12 |
13 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable-v21/ic_menu_gallery.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable-v21/ic_menu_manage.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable-v21/ic_menu_send.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable-v21/ic_menu_share.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable-v21/ic_menu_slideshow.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable/border.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
7 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable/circle.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
10 |
11 |
14 |
15 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable/focus_indicator.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
7 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable/ic_add_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable/ic_bnw_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable/ic_build_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable/ic_check_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable/ic_clear_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable/ic_color_lens_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable/ic_crop_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable/ic_delete_white_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable/ic_drag_handle_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable/ic_edit_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable/ic_flash_on_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable/ic_gray_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable/ic_info_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable/ic_more_vert_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable/ic_notifications_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable/ic_ocr_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable/ic_original_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable/ic_pdf_white.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable/ic_rotate_right_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable/ic_scanner_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable/ic_search_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable/ic_share_white_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable/ic_sync_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable/ic_tag_white.xml:
--------------------------------------------------------------------------------
1 |
6 |
10 |
11 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable/ic_tune_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable/item_bg_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable/line.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
12 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable/line_drawable.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
9 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable/multi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Gauravv97/LNotes-Linked-Notes/1cf987247fd4e2497d618f15214cc802955b3b35/Lnotes/app/src/main/res/drawable/multi.png
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable/shadow_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | -
7 |
8 |
15 |
16 |
17 |
18 |
19 |
20 | -
21 |
22 |
29 |
30 |
31 |
32 |
33 |
34 | -
35 |
36 |
43 |
44 |
45 |
46 |
47 | -
48 |
49 |
56 |
57 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable/shape.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
7 |
8 |
9 |
12 |
13 |
14 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable/side_nav_bar.xml:
--------------------------------------------------------------------------------
1 |
3 |
9 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable/single.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Gauravv97/LNotes-Linked-Notes/1cf987247fd4e2497d618f15214cc802955b3b35/Lnotes/app/src/main/res/drawable/single.png
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable/thumb.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
9 |
10 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/drawable/thumb_drawable.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
9 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
13 |
17 |
25 |
33 |
34 |
35 |
36 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/layout/app_bar_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
16 |
17 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/layout/content_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/layout/crop_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
15 |
16 |
25 |
26 |
37 |
38 |
39 |
40 |
47 |
48 |
49 |
53 |
63 |
64 |
65 |
66 |
67 |
68 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/layout/fragment_image_slider.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
12 |
13 |
20 |
21 |
22 |
23 |
34 |
45 |
56 |
57 |
58 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/layout/full_screen_image.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
14 |
15 |
16 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/layout/gallery_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
15 |
16 |
23 |
24 |
32 |
33 |
42 |
43 |
44 |
45 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/layout/grid_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
14 |
20 |
21 |
31 |
32 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/layout/list_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
12 |
16 |
17 |
22 |
23 |
24 |
29 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/layout/nav_header_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
14 |
15 |
21 |
22 |
28 |
29 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/layout/ocr_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
14 |
15 |
22 |
23 |
24 |
29 |
35 |
36 |
43 |
50 |
51 |
61 |
62 |
68 |
69 |
75 |
76 |
77 |
78 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/layout/scan_for_entry.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
13 |
21 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/layout/view_entry.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
13 |
21 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/menu/activity_main_drawer.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
11 |
12 |
13 | -
14 |
15 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/menu/main.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
9 |
10 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/menu/multi_grid.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/menu/multi_select.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Gauravv97/LNotes-Linked-Notes/1cf987247fd4e2497d618f15214cc802955b3b35/Lnotes/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Gauravv97/LNotes-Linked-Notes/1cf987247fd4e2497d618f15214cc802955b3b35/Lnotes/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Gauravv97/LNotes-Linked-Notes/1cf987247fd4e2497d618f15214cc802955b3b35/Lnotes/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Gauravv97/LNotes-Linked-Notes/1cf987247fd4e2497d618f15214cc802955b3b35/Lnotes/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Gauravv97/LNotes-Linked-Notes/1cf987247fd4e2497d618f15214cc802955b3b35/Lnotes/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/values-v21/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 64dp
6 |
7 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | @android:color/holo_green_dark
4 | @android:color/holo_green_dark
5 | #FF4081
6 | #ff59a9ff
7 | #ffff900d
8 | #ffc4c2bc
9 | #000000
10 | #ffffff
11 | #ff59a9ff
12 | #90e5f8ff
13 | #AACCCCCC
14 | #82000000
15 | #82000000
16 | #00000000
17 |
18 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 16dp
4 | 160dp
5 |
6 | 16dp
7 | 16dp
8 | 16dp
9 | 4dp
10 | 16dp
11 | 32dp
12 | 2dp
13 |
14 | 15dp
15 | 96dp
16 |
17 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/values/drawables.xml:
--------------------------------------------------------------------------------
1 |
2 | - @android:drawable/ic_menu_camera
3 | - @android:drawable/ic_menu_gallery
4 | - @android:drawable/ic_menu_slideshow
5 | - @android:drawable/ic_menu_manage
6 | - @android:drawable/ic_menu_share
7 | - @android:drawable/ic_menu_send
8 |
9 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Lnotes
3 |
4 | Open navigation drawer
5 | Close navigation drawer
6 | Scan
7 | Image
8 | Marker
9 | Capture
10 | save
11 | Settings
12 | Modify
13 | View Original
14 | preference_file_key
15 | Settings
16 |
17 |
18 | Settings
19 | Default scanning mode
20 |
21 | - Original
22 | - GrayScale
23 | - Color Scan
24 | - Black and White 1
25 | - Black and White 2
26 |
27 |
28 | - 0
29 | - 1
30 | - 2
31 | - 3
32 | - 4
33 |
34 | Scanned Image quality
35 | Higher the quality higher the image size
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
18 |
23 |
27 |
30 |
31 |
32 |
35 |
36 |
42 |
47 |
48 |
52 |
57 |
58 |
59 |
60 |
61 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/xml/file_paths.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Lnotes/app/src/main/res/xml/pref_general.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
10 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/Lnotes/app/src/test/java/com/links/gaurav/lnotes/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.links.gaurav.lnotes;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() throws Exception {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/Lnotes/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 | repositories {
5 | jcenter()
6 | google()
7 | }
8 | dependencies {
9 | classpath 'com.android.tools.build:gradle:3.1.3'
10 | classpath 'com.google.gms:google-services:3.1.1'
11 |
12 | // NOTE: Do not place your application dependencies here; they belong
13 | // in the individual module build.gradle files
14 | }
15 |
16 | }
17 |
18 |
19 | allprojects {
20 | repositories {
21 | jcenter()
22 | google()
23 | }
24 | }
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Lnotes/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 |
3 | # IDE (e.g. Android Studio) users:
4 | # Gradle settings configured through the IDE *will override*
5 | # any settings specified in this file.
6 |
7 | # For more details on how to configure your build environment visit
8 | # http://www.gradle.org/docs/current/userguide/build_environment.html
9 |
10 | # Specifies the JVM arguments used for the daemon process.
11 | # The setting is particularly useful for tweaking memory settings.
12 | org.gradle.jvmargs=-Xmx1536m
13 |
14 | # When configured, Gradle will run in incubating parallel mode.
15 | # This option should only be used with decoupled projects. More details, visit
16 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
17 | # org.gradle.parallel=true
18 |
--------------------------------------------------------------------------------
/Lnotes/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Gauravv97/LNotes-Linked-Notes/1cf987247fd4e2497d618f15214cc802955b3b35/Lnotes/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Lnotes/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sun Apr 29 08:13:47 IST 2018
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
7 |
--------------------------------------------------------------------------------
/Lnotes/gradlew.bat:
--------------------------------------------------------------------------------
1 | @if "%DEBUG%" == "" @echo off
2 | @rem ##########################################################################
3 | @rem
4 | @rem Gradle startup script for Windows
5 | @rem
6 | @rem ##########################################################################
7 |
8 | @rem Set local scope for the variables with windows NT shell
9 | if "%OS%"=="Windows_NT" setlocal
10 |
11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
12 | set DEFAULT_JVM_OPTS=
13 |
14 | set DIRNAME=%~dp0
15 | if "%DIRNAME%" == "" set DIRNAME=.
16 | set APP_BASE_NAME=%~n0
17 | set APP_HOME=%DIRNAME%
18 |
19 | @rem Find java.exe
20 | if defined JAVA_HOME goto findJavaFromJavaHome
21 |
22 | set JAVA_EXE=java.exe
23 | %JAVA_EXE% -version >NUL 2>&1
24 | if "%ERRORLEVEL%" == "0" goto init
25 |
26 | echo.
27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
28 | echo.
29 | echo Please set the JAVA_HOME variable in your environment to match the
30 | echo location of your Java installation.
31 |
32 | goto fail
33 |
34 | :findJavaFromJavaHome
35 | set JAVA_HOME=%JAVA_HOME:"=%
36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
37 |
38 | if exist "%JAVA_EXE%" goto init
39 |
40 | echo.
41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
42 | echo.
43 | echo Please set the JAVA_HOME variable in your environment to match the
44 | echo location of your Java installation.
45 |
46 | goto fail
47 |
48 | :init
49 | @rem Get command-line arguments, handling Windowz variants
50 |
51 | if not "%OS%" == "Windows_NT" goto win9xME_args
52 | if "%@eval[2+2]" == "4" goto 4NT_args
53 |
54 | :win9xME_args
55 | @rem Slurp the command line arguments.
56 | set CMD_LINE_ARGS=
57 | set _SKIP=2
58 |
59 | :win9xME_args_slurp
60 | if "x%~1" == "x" goto execute
61 |
62 | set CMD_LINE_ARGS=%*
63 | goto execute
64 |
65 | :4NT_args
66 | @rem Get arguments from the 4NT Shell from JP Software
67 | set CMD_LINE_ARGS=%$
68 |
69 | :execute
70 | @rem Setup the command line
71 |
72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
73 |
74 | @rem Execute Gradle
75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
76 |
77 | :end
78 | @rem End local scope for the variables with windows NT shell
79 | if "%ERRORLEVEL%"=="0" goto mainEnd
80 |
81 | :fail
82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
83 | rem the _cmd.exe /c_ return code!
84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
85 | exit /b 1
86 |
87 | :mainEnd
88 | if "%OS%"=="Windows_NT" endlocal
89 |
90 | :omega
91 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | android {
4 | compileSdkVersion 27
5 | buildToolsVersion "27.0.3"
6 |
7 | defaultConfig {
8 | minSdkVersion 21
9 | targetSdkVersion 27
10 | }
11 |
12 | buildTypes {
13 | release {
14 | minifyEnabled false
15 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/lint.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/aidl/org/opencv/engine/OpenCVEngineInterface.aidl:
--------------------------------------------------------------------------------
1 | package org.opencv.engine;
2 |
3 | /**
4 | * Class provides a Java interface for OpenCV Engine Service. It's synchronous with native OpenCVEngine class.
5 | */
6 | interface OpenCVEngineInterface
7 | {
8 | /**
9 | * @return Returns service version.
10 | */
11 | int getEngineVersion();
12 |
13 | /**
14 | * Finds an installed OpenCV library.
15 | * @param OpenCV version.
16 | * @return Returns path to OpenCV native libs or an empty string if OpenCV can not be found.
17 | */
18 | String getLibPathByVersion(String version);
19 |
20 | /**
21 | * Tries to install defined version of OpenCV from Google Play Market.
22 | * @param OpenCV version.
23 | * @return Returns true if installation was successful or OpenCV package has been already installed.
24 | */
25 | boolean installVersion(String version);
26 |
27 | /**
28 | * Returns list of libraries in loading order, separated by semicolon.
29 | * @param OpenCV version.
30 | * @return Returns names of OpenCV libraries, separated by semicolon.
31 | */
32 | String getLibraryList(String version);
33 | }
34 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/android/FpsMeter.java:
--------------------------------------------------------------------------------
1 | package org.opencv.android;
2 |
3 | import java.text.DecimalFormat;
4 |
5 | import org.opencv.core.Core;
6 |
7 | import android.graphics.Canvas;
8 | import android.graphics.Color;
9 | import android.graphics.Paint;
10 | import android.util.Log;
11 |
12 | public class FpsMeter {
13 | private static final String TAG = "FpsMeter";
14 | private static final int STEP = 20;
15 | private static final DecimalFormat FPS_FORMAT = new DecimalFormat("0.00");
16 |
17 | private int mFramesCouner;
18 | private double mFrequency;
19 | private long mprevFrameTime;
20 | private String mStrfps;
21 | Paint mPaint;
22 | boolean mIsInitialized = false;
23 | int mWidth = 0;
24 | int mHeight = 0;
25 |
26 | public void init() {
27 | mFramesCouner = 0;
28 | mFrequency = Core.getTickFrequency();
29 | mprevFrameTime = Core.getTickCount();
30 | mStrfps = "";
31 |
32 | mPaint = new Paint();
33 | mPaint.setColor(Color.BLUE);
34 | mPaint.setTextSize(20);
35 | }
36 |
37 | public void measure() {
38 | if (!mIsInitialized) {
39 | init();
40 | mIsInitialized = true;
41 | } else {
42 | mFramesCouner++;
43 | if (mFramesCouner % STEP == 0) {
44 | long time = Core.getTickCount();
45 | double fps = STEP * mFrequency / (time - mprevFrameTime);
46 | mprevFrameTime = time;
47 | if (mWidth != 0 && mHeight != 0)
48 | mStrfps = FPS_FORMAT.format(fps) + " FPS@" + Integer.valueOf(mWidth) + "x" + Integer.valueOf(mHeight);
49 | else
50 | mStrfps = FPS_FORMAT.format(fps) + " FPS";
51 | Log.i(TAG, mStrfps);
52 | }
53 | }
54 | }
55 |
56 | public void setResolution(int width, int height) {
57 | mWidth = width;
58 | mHeight = height;
59 | }
60 |
61 | public void draw(Canvas canvas, float offsetx, float offsety) {
62 | Log.d(TAG, mStrfps);
63 | canvas.drawText(mStrfps, offsetx, offsety, mPaint);
64 | }
65 |
66 | }
67 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/android/InstallCallbackInterface.java:
--------------------------------------------------------------------------------
1 | package org.opencv.android;
2 |
3 | /**
4 | * Installation callback interface.
5 | */
6 | public interface InstallCallbackInterface
7 | {
8 | /**
9 | * New package installation is required.
10 | */
11 | static final int NEW_INSTALLATION = 0;
12 | /**
13 | * Current package installation is in progress.
14 | */
15 | static final int INSTALLATION_PROGRESS = 1;
16 |
17 | /**
18 | * Target package name.
19 | * @return Return target package name.
20 | */
21 | public String getPackageName();
22 | /**
23 | * Installation is approved.
24 | */
25 | public void install();
26 | /**
27 | * Installation is canceled.
28 | */
29 | public void cancel();
30 | /**
31 | * Wait for package installation.
32 | */
33 | public void wait_install();
34 | };
35 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/android/LoaderCallbackInterface.java:
--------------------------------------------------------------------------------
1 | package org.opencv.android;
2 |
3 | /**
4 | * Interface for callback object in case of asynchronous initialization of OpenCV.
5 | */
6 | public interface LoaderCallbackInterface
7 | {
8 | /**
9 | * OpenCV initialization finished successfully.
10 | */
11 | static final int SUCCESS = 0;
12 | /**
13 | * Google Play Market cannot be invoked.
14 | */
15 | static final int MARKET_ERROR = 2;
16 | /**
17 | * OpenCV library installation has been canceled by the user.
18 | */
19 | static final int INSTALL_CANCELED = 3;
20 | /**
21 | * This version of OpenCV Manager Service is incompatible with the app. Possibly, a service update is required.
22 | */
23 | static final int INCOMPATIBLE_MANAGER_VERSION = 4;
24 | /**
25 | * OpenCV library initialization has failed.
26 | */
27 | static final int INIT_FAILED = 0xff;
28 |
29 | /**
30 | * Callback method, called after OpenCV library initialization.
31 | * @param status status of initialization (see initialization status constants).
32 | */
33 | public void onManagerConnected(int status);
34 |
35 | /**
36 | * Callback method, called in case the package installation is needed.
37 | * @param callback answer object with approve and cancel methods and the package description.
38 | */
39 | public void onPackageInstall(final int operation, InstallCallbackInterface callback);
40 | };
41 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/android/StaticHelper.java:
--------------------------------------------------------------------------------
1 | package org.opencv.android;
2 |
3 | import org.opencv.core.Core;
4 |
5 | import java.util.StringTokenizer;
6 | import android.util.Log;
7 |
8 | class StaticHelper {
9 |
10 | public static boolean initOpenCV(boolean InitCuda)
11 | {
12 | boolean result;
13 | String libs = "";
14 |
15 | if(InitCuda)
16 | {
17 | loadLibrary("cudart");
18 | loadLibrary("nppc");
19 | loadLibrary("nppi");
20 | loadLibrary("npps");
21 | loadLibrary("cufft");
22 | loadLibrary("cublas");
23 | }
24 |
25 | Log.d(TAG, "Trying to get library list");
26 |
27 | try
28 | {
29 | System.loadLibrary("opencv_info");
30 | libs = getLibraryList();
31 | }
32 | catch(UnsatisfiedLinkError e)
33 | {
34 | Log.e(TAG, "OpenCV error: Cannot load info library for OpenCV");
35 | }
36 |
37 | Log.d(TAG, "Library list: \"" + libs + "\"");
38 | Log.d(TAG, "First attempt to load libs");
39 | if (initOpenCVLibs(libs))
40 | {
41 | Log.d(TAG, "First attempt to load libs is OK");
42 | String eol = System.getProperty("line.separator");
43 | for (String str : Core.getBuildInformation().split(eol))
44 | Log.i(TAG, str);
45 |
46 | result = true;
47 | }
48 | else
49 | {
50 | Log.d(TAG, "First attempt to load libs fails");
51 | result = false;
52 | }
53 |
54 | return result;
55 | }
56 |
57 | private static boolean loadLibrary(String Name)
58 | {
59 | boolean result = true;
60 |
61 | Log.d(TAG, "Trying to load library " + Name);
62 | try
63 | {
64 | System.loadLibrary(Name);
65 | Log.d(TAG, "Library " + Name + " loaded");
66 | }
67 | catch(UnsatisfiedLinkError e)
68 | {
69 | Log.d(TAG, "Cannot load library \"" + Name + "\"");
70 | e.printStackTrace();
71 | result = false;
72 | }
73 |
74 | return result;
75 | }
76 |
77 | private static boolean initOpenCVLibs(String Libs)
78 | {
79 | Log.d(TAG, "Trying to init OpenCV libs");
80 |
81 | boolean result = true;
82 |
83 | if ((null != Libs) && (Libs.length() != 0))
84 | {
85 | Log.d(TAG, "Trying to load libs by dependency list");
86 | StringTokenizer splitter = new StringTokenizer(Libs, ";");
87 | while(splitter.hasMoreTokens())
88 | {
89 | result &= loadLibrary(splitter.nextToken());
90 | }
91 | }
92 | else
93 | {
94 | // If dependencies list is not defined or empty.
95 | result = loadLibrary("opencv_java3");
96 | }
97 |
98 | return result;
99 | }
100 |
101 | private static final String TAG = "OpenCV/StaticHelper";
102 |
103 | private static native String getLibraryList();
104 | }
105 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/core/Algorithm.java:
--------------------------------------------------------------------------------
1 | //
2 | // This file is auto-generated. Please don't modify it!
3 | //
4 | package org.opencv.core;
5 |
6 | import java.lang.String;
7 |
8 | // C++: class Algorithm
9 | //javadoc: Algorithm
10 |
11 | public class Algorithm {
12 |
13 | protected final long nativeObj;
14 | protected Algorithm(long addr) { nativeObj = addr; }
15 |
16 | public long getNativeObjAddr() { return nativeObj; }
17 |
18 | // internal usage only
19 | public static Algorithm __fromPtr__(long addr) { return new Algorithm(addr); }
20 |
21 | //
22 | // C++: String getDefaultName()
23 | //
24 |
25 | //javadoc: Algorithm::getDefaultName()
26 | public String getDefaultName()
27 | {
28 |
29 | String retVal = getDefaultName_0(nativeObj);
30 |
31 | return retVal;
32 | }
33 |
34 |
35 | //
36 | // C++: bool empty()
37 | //
38 |
39 | //javadoc: Algorithm::empty()
40 | public boolean empty()
41 | {
42 |
43 | boolean retVal = empty_0(nativeObj);
44 |
45 | return retVal;
46 | }
47 |
48 |
49 | //
50 | // C++: void clear()
51 | //
52 |
53 | //javadoc: Algorithm::clear()
54 | public void clear()
55 | {
56 |
57 | clear_0(nativeObj);
58 |
59 | return;
60 | }
61 |
62 |
63 | //
64 | // C++: void read(FileNode fn)
65 | //
66 |
67 | // Unknown type 'FileNode' (I), skipping the function
68 |
69 |
70 | //
71 | // C++: void save(String filename)
72 | //
73 |
74 | //javadoc: Algorithm::save(filename)
75 | public void save(String filename)
76 | {
77 |
78 | save_0(nativeObj, filename);
79 |
80 | return;
81 | }
82 |
83 |
84 | //
85 | // C++: void write(Ptr_FileStorage fs, String name = String())
86 | //
87 |
88 | // Unknown type 'Ptr_FileStorage' (I), skipping the function
89 |
90 |
91 | @Override
92 | protected void finalize() throws Throwable {
93 | delete(nativeObj);
94 | }
95 |
96 |
97 |
98 | // C++: String getDefaultName()
99 | private static native String getDefaultName_0(long nativeObj);
100 |
101 | // C++: bool empty()
102 | private static native boolean empty_0(long nativeObj);
103 |
104 | // C++: void clear()
105 | private static native void clear_0(long nativeObj);
106 |
107 | // C++: void save(String filename)
108 | private static native void save_0(long nativeObj, String filename);
109 |
110 | // native support for java finalize()
111 | private static native void delete(long nativeObj);
112 |
113 | }
114 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/core/CvException.java:
--------------------------------------------------------------------------------
1 | package org.opencv.core;
2 |
3 | public class CvException extends RuntimeException {
4 |
5 | private static final long serialVersionUID = 1L;
6 |
7 | public CvException(String msg) {
8 | super(msg);
9 | }
10 |
11 | @Override
12 | public String toString() {
13 | return "CvException [" + super.toString() + "]";
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/core/DMatch.java:
--------------------------------------------------------------------------------
1 | package org.opencv.core;
2 |
3 | //C++: class DMatch
4 |
5 | /**
6 | * Structure for matching: query descriptor index, train descriptor index, train
7 | * image index and distance between descriptors.
8 | */
9 | public class DMatch {
10 |
11 | /**
12 | * Query descriptor index.
13 | */
14 | public int queryIdx;
15 | /**
16 | * Train descriptor index.
17 | */
18 | public int trainIdx;
19 | /**
20 | * Train image index.
21 | */
22 | public int imgIdx;
23 |
24 | // javadoc: DMatch::distance
25 | public float distance;
26 |
27 | // javadoc: DMatch::DMatch()
28 | public DMatch() {
29 | this(-1, -1, Float.MAX_VALUE);
30 | }
31 |
32 | // javadoc: DMatch::DMatch(_queryIdx, _trainIdx, _distance)
33 | public DMatch(int _queryIdx, int _trainIdx, float _distance) {
34 | queryIdx = _queryIdx;
35 | trainIdx = _trainIdx;
36 | imgIdx = -1;
37 | distance = _distance;
38 | }
39 |
40 | // javadoc: DMatch::DMatch(_queryIdx, _trainIdx, _imgIdx, _distance)
41 | public DMatch(int _queryIdx, int _trainIdx, int _imgIdx, float _distance) {
42 | queryIdx = _queryIdx;
43 | trainIdx = _trainIdx;
44 | imgIdx = _imgIdx;
45 | distance = _distance;
46 | }
47 |
48 | public boolean lessThan(DMatch it) {
49 | return distance < it.distance;
50 | }
51 |
52 | @Override
53 | public String toString() {
54 | return "DMatch [queryIdx=" + queryIdx + ", trainIdx=" + trainIdx
55 | + ", imgIdx=" + imgIdx + ", distance=" + distance + "]";
56 | }
57 |
58 | }
59 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/core/KeyPoint.java:
--------------------------------------------------------------------------------
1 | package org.opencv.core;
2 |
3 | import org.opencv.core.Point;
4 |
5 | //javadoc: KeyPoint
6 | public class KeyPoint {
7 |
8 | /**
9 | * Coordinates of the keypoint.
10 | */
11 | public Point pt;
12 | /**
13 | * Diameter of the useful keypoint adjacent area.
14 | */
15 | public float size;
16 | /**
17 | * Computed orientation of the keypoint (-1 if not applicable).
18 | */
19 | public float angle;
20 | /**
21 | * The response, by which the strongest keypoints have been selected. Can
22 | * be used for further sorting or subsampling.
23 | */
24 | public float response;
25 | /**
26 | * Octave (pyramid layer), from which the keypoint has been extracted.
27 | */
28 | public int octave;
29 | /**
30 | * Object ID, that can be used to cluster keypoints by an object they
31 | * belong to.
32 | */
33 | public int class_id;
34 |
35 | // javadoc:KeyPoint::KeyPoint(x,y,_size,_angle,_response,_octave,_class_id)
36 | public KeyPoint(float x, float y, float _size, float _angle, float _response, int _octave, int _class_id)
37 | {
38 | pt = new Point(x, y);
39 | size = _size;
40 | angle = _angle;
41 | response = _response;
42 | octave = _octave;
43 | class_id = _class_id;
44 | }
45 |
46 | // javadoc: KeyPoint::KeyPoint()
47 | public KeyPoint()
48 | {
49 | this(0, 0, 0, -1, 0, 0, -1);
50 | }
51 |
52 | // javadoc: KeyPoint::KeyPoint(x, y, _size, _angle, _response, _octave)
53 | public KeyPoint(float x, float y, float _size, float _angle, float _response, int _octave)
54 | {
55 | this(x, y, _size, _angle, _response, _octave, -1);
56 | }
57 |
58 | // javadoc: KeyPoint::KeyPoint(x, y, _size, _angle, _response)
59 | public KeyPoint(float x, float y, float _size, float _angle, float _response)
60 | {
61 | this(x, y, _size, _angle, _response, 0, -1);
62 | }
63 |
64 | // javadoc: KeyPoint::KeyPoint(x, y, _size, _angle)
65 | public KeyPoint(float x, float y, float _size, float _angle)
66 | {
67 | this(x, y, _size, _angle, 0, 0, -1);
68 | }
69 |
70 | // javadoc: KeyPoint::KeyPoint(x, y, _size)
71 | public KeyPoint(float x, float y, float _size)
72 | {
73 | this(x, y, _size, -1, 0, 0, -1);
74 | }
75 |
76 | @Override
77 | public String toString() {
78 | return "KeyPoint [pt=" + pt + ", size=" + size + ", angle=" + angle
79 | + ", response=" + response + ", octave=" + octave
80 | + ", class_id=" + class_id + "]";
81 | }
82 |
83 | }
84 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/core/MatOfByte.java:
--------------------------------------------------------------------------------
1 | package org.opencv.core;
2 |
3 | import java.util.Arrays;
4 | import java.util.List;
5 |
6 | public class MatOfByte extends Mat {
7 | // 8UC(x)
8 | private static final int _depth = CvType.CV_8U;
9 | private static final int _channels = 1;
10 |
11 | public MatOfByte() {
12 | super();
13 | }
14 |
15 | protected MatOfByte(long addr) {
16 | super(addr);
17 | if( !empty() && checkVector(_channels, _depth) < 0 )
18 | throw new IllegalArgumentException("Incompatible Mat");
19 | //FIXME: do we need release() here?
20 | }
21 |
22 | public static MatOfByte fromNativeAddr(long addr) {
23 | return new MatOfByte(addr);
24 | }
25 |
26 | public MatOfByte(Mat m) {
27 | super(m, Range.all());
28 | if( !empty() && checkVector(_channels, _depth) < 0 )
29 | throw new IllegalArgumentException("Incompatible Mat");
30 | //FIXME: do we need release() here?
31 | }
32 |
33 | public MatOfByte(byte...a) {
34 | super();
35 | fromArray(a);
36 | }
37 |
38 | public MatOfByte(int offset, int length, byte...a) {
39 | super();
40 | fromArray(offset, length, a);
41 | }
42 |
43 | public void alloc(int elemNumber) {
44 | if(elemNumber>0)
45 | super.create(elemNumber, 1, CvType.makeType(_depth, _channels));
46 | }
47 |
48 | public void fromArray(byte...a) {
49 | if(a==null || a.length==0)
50 | return;
51 | int num = a.length / _channels;
52 | alloc(num);
53 | put(0, 0, a); //TODO: check ret val!
54 | }
55 |
56 | public void fromArray(int offset, int length, byte...a) {
57 | if (offset < 0)
58 | throw new IllegalArgumentException("offset < 0");
59 | if (a == null)
60 | throw new NullPointerException();
61 | if (length < 0 || length + offset > a.length)
62 | throw new IllegalArgumentException("invalid 'length' parameter: " + Integer.toString(length));
63 | if (a.length == 0)
64 | return;
65 | int num = length / _channels;
66 | alloc(num);
67 | put(0, 0, a, offset, length); //TODO: check ret val!
68 | }
69 |
70 | public byte[] toArray() {
71 | int num = checkVector(_channels, _depth);
72 | if(num < 0)
73 | throw new RuntimeException("Native Mat has unexpected type or size: " + toString());
74 | byte[] a = new byte[num * _channels];
75 | if(num == 0)
76 | return a;
77 | get(0, 0, a); //TODO: check ret val!
78 | return a;
79 | }
80 |
81 | public void fromList(List lb) {
82 | if(lb==null || lb.size()==0)
83 | return;
84 | Byte ab[] = lb.toArray(new Byte[0]);
85 | byte a[] = new byte[ab.length];
86 | for(int i=0; i toList() {
92 | byte[] a = toArray();
93 | Byte ab[] = new Byte[a.length];
94 | for(int i=0; i0)
42 | super.create(elemNumber, 1, CvType.makeType(_depth, _channels));
43 | }
44 |
45 |
46 | public void fromArray(DMatch...a) {
47 | if(a==null || a.length==0)
48 | return;
49 | int num = a.length;
50 | alloc(num);
51 | float buff[] = new float[num * _channels];
52 | for(int i=0; i ldm) {
75 | DMatch adm[] = ldm.toArray(new DMatch[0]);
76 | fromArray(adm);
77 | }
78 |
79 | public List toList() {
80 | DMatch[] adm = toArray();
81 | return Arrays.asList(adm);
82 | }
83 | }
84 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/core/MatOfDouble.java:
--------------------------------------------------------------------------------
1 | package org.opencv.core;
2 |
3 | import java.util.Arrays;
4 | import java.util.List;
5 |
6 | public class MatOfDouble extends Mat {
7 | // 64FC(x)
8 | private static final int _depth = CvType.CV_64F;
9 | private static final int _channels = 1;
10 |
11 | public MatOfDouble() {
12 | super();
13 | }
14 |
15 | protected MatOfDouble(long addr) {
16 | super(addr);
17 | if( !empty() && checkVector(_channels, _depth) < 0 )
18 | throw new IllegalArgumentException("Incompatible Mat");
19 | //FIXME: do we need release() here?
20 | }
21 |
22 | public static MatOfDouble fromNativeAddr(long addr) {
23 | return new MatOfDouble(addr);
24 | }
25 |
26 | public MatOfDouble(Mat m) {
27 | super(m, Range.all());
28 | if( !empty() && checkVector(_channels, _depth) < 0 )
29 | throw new IllegalArgumentException("Incompatible Mat");
30 | //FIXME: do we need release() here?
31 | }
32 |
33 | public MatOfDouble(double...a) {
34 | super();
35 | fromArray(a);
36 | }
37 |
38 | public void alloc(int elemNumber) {
39 | if(elemNumber>0)
40 | super.create(elemNumber, 1, CvType.makeType(_depth, _channels));
41 | }
42 |
43 | public void fromArray(double...a) {
44 | if(a==null || a.length==0)
45 | return;
46 | int num = a.length / _channels;
47 | alloc(num);
48 | put(0, 0, a); //TODO: check ret val!
49 | }
50 |
51 | public double[] toArray() {
52 | int num = checkVector(_channels, _depth);
53 | if(num < 0)
54 | throw new RuntimeException("Native Mat has unexpected type or size: " + toString());
55 | double[] a = new double[num * _channels];
56 | if(num == 0)
57 | return a;
58 | get(0, 0, a); //TODO: check ret val!
59 | return a;
60 | }
61 |
62 | public void fromList(List lb) {
63 | if(lb==null || lb.size()==0)
64 | return;
65 | Double ab[] = lb.toArray(new Double[0]);
66 | double a[] = new double[ab.length];
67 | for(int i=0; i toList() {
73 | double[] a = toArray();
74 | Double ab[] = new Double[a.length];
75 | for(int i=0; i0)
40 | super.create(elemNumber, 1, CvType.makeType(_depth, _channels));
41 | }
42 |
43 | public void fromArray(float...a) {
44 | if(a==null || a.length==0)
45 | return;
46 | int num = a.length / _channels;
47 | alloc(num);
48 | put(0, 0, a); //TODO: check ret val!
49 | }
50 |
51 | public float[] toArray() {
52 | int num = checkVector(_channels, _depth);
53 | if(num < 0)
54 | throw new RuntimeException("Native Mat has unexpected type or size: " + toString());
55 | float[] a = new float[num * _channels];
56 | if(num == 0)
57 | return a;
58 | get(0, 0, a); //TODO: check ret val!
59 | return a;
60 | }
61 |
62 | public void fromList(List lb) {
63 | if(lb==null || lb.size()==0)
64 | return;
65 | Float ab[] = lb.toArray(new Float[0]);
66 | float a[] = new float[ab.length];
67 | for(int i=0; i toList() {
73 | float[] a = toArray();
74 | Float ab[] = new Float[a.length];
75 | for(int i=0; i0)
40 | super.create(elemNumber, 1, CvType.makeType(_depth, _channels));
41 | }
42 |
43 | public void fromArray(float...a) {
44 | if(a==null || a.length==0)
45 | return;
46 | int num = a.length / _channels;
47 | alloc(num);
48 | put(0, 0, a); //TODO: check ret val!
49 | }
50 |
51 | public float[] toArray() {
52 | int num = checkVector(_channels, _depth);
53 | if(num < 0)
54 | throw new RuntimeException("Native Mat has unexpected type or size: " + toString());
55 | float[] a = new float[num * _channels];
56 | if(num == 0)
57 | return a;
58 | get(0, 0, a); //TODO: check ret val!
59 | return a;
60 | }
61 |
62 | public void fromList(List lb) {
63 | if(lb==null || lb.size()==0)
64 | return;
65 | Float ab[] = lb.toArray(new Float[0]);
66 | float a[] = new float[ab.length];
67 | for(int i=0; i toList() {
73 | float[] a = toArray();
74 | Float ab[] = new Float[a.length];
75 | for(int i=0; i0)
40 | super.create(elemNumber, 1, CvType.makeType(_depth, _channels));
41 | }
42 |
43 | public void fromArray(float...a) {
44 | if(a==null || a.length==0)
45 | return;
46 | int num = a.length / _channels;
47 | alloc(num);
48 | put(0, 0, a); //TODO: check ret val!
49 | }
50 |
51 | public float[] toArray() {
52 | int num = checkVector(_channels, _depth);
53 | if(num < 0)
54 | throw new RuntimeException("Native Mat has unexpected type or size: " + toString());
55 | float[] a = new float[num * _channels];
56 | if(num == 0)
57 | return a;
58 | get(0, 0, a); //TODO: check ret val!
59 | return a;
60 | }
61 |
62 | public void fromList(List lb) {
63 | if(lb==null || lb.size()==0)
64 | return;
65 | Float ab[] = lb.toArray(new Float[0]);
66 | float a[] = new float[ab.length];
67 | for(int i=0; i toList() {
73 | float[] a = toArray();
74 | Float ab[] = new Float[a.length];
75 | for(int i=0; i0)
41 | super.create(elemNumber, 1, CvType.makeType(_depth, _channels));
42 | }
43 |
44 | public void fromArray(int...a) {
45 | if(a==null || a.length==0)
46 | return;
47 | int num = a.length / _channels;
48 | alloc(num);
49 | put(0, 0, a); //TODO: check ret val!
50 | }
51 |
52 | public int[] toArray() {
53 | int num = checkVector(_channels, _depth);
54 | if(num < 0)
55 | throw new RuntimeException("Native Mat has unexpected type or size: " + toString());
56 | int[] a = new int[num * _channels];
57 | if(num == 0)
58 | return a;
59 | get(0, 0, a); //TODO: check ret val!
60 | return a;
61 | }
62 |
63 | public void fromList(List lb) {
64 | if(lb==null || lb.size()==0)
65 | return;
66 | Integer ab[] = lb.toArray(new Integer[0]);
67 | int a[] = new int[ab.length];
68 | for(int i=0; i toList() {
74 | int[] a = toArray();
75 | Integer ab[] = new Integer[a.length];
76 | for(int i=0; i0)
41 | super.create(elemNumber, 1, CvType.makeType(_depth, _channels));
42 | }
43 |
44 | public void fromArray(int...a) {
45 | if(a==null || a.length==0)
46 | return;
47 | int num = a.length / _channels;
48 | alloc(num);
49 | put(0, 0, a); //TODO: check ret val!
50 | }
51 |
52 | public int[] toArray() {
53 | int num = checkVector(_channels, _depth);
54 | if(num < 0)
55 | throw new RuntimeException("Native Mat has unexpected type or size: " + toString());
56 | int[] a = new int[num * _channels];
57 | if(num == 0)
58 | return a;
59 | get(0, 0, a); //TODO: check ret val!
60 | return a;
61 | }
62 |
63 | public void fromList(List lb) {
64 | if(lb==null || lb.size()==0)
65 | return;
66 | Integer ab[] = lb.toArray(new Integer[0]);
67 | int a[] = new int[ab.length];
68 | for(int i=0; i toList() {
74 | int[] a = toArray();
75 | Integer ab[] = new Integer[a.length];
76 | for(int i=0; i0)
42 | super.create(elemNumber, 1, CvType.makeType(_depth, _channels));
43 | }
44 |
45 | public void fromArray(KeyPoint...a) {
46 | if(a==null || a.length==0)
47 | return;
48 | int num = a.length;
49 | alloc(num);
50 | float buff[] = new float[num * _channels];
51 | for(int i=0; i lkp) {
78 | KeyPoint akp[] = lkp.toArray(new KeyPoint[0]);
79 | fromArray(akp);
80 | }
81 |
82 | public List toList() {
83 | KeyPoint[] akp = toArray();
84 | return Arrays.asList(akp);
85 | }
86 | }
87 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/core/MatOfPoint.java:
--------------------------------------------------------------------------------
1 | package org.opencv.core;
2 |
3 | import java.util.Arrays;
4 | import java.util.List;
5 |
6 | public class MatOfPoint extends Mat {
7 | // 32SC2
8 | private static final int _depth = CvType.CV_32S;
9 | private static final int _channels = 2;
10 |
11 | public MatOfPoint() {
12 | super();
13 | }
14 |
15 | protected MatOfPoint(long addr) {
16 | super(addr);
17 | if( !empty() && checkVector(_channels, _depth) < 0 )
18 | throw new IllegalArgumentException("Incompatible Mat");
19 | //FIXME: do we need release() here?
20 | }
21 |
22 | public static MatOfPoint fromNativeAddr(long addr) {
23 | return new MatOfPoint(addr);
24 | }
25 |
26 | public MatOfPoint(Mat m) {
27 | super(m, Range.all());
28 | if( !empty() && checkVector(_channels, _depth) < 0 )
29 | throw new IllegalArgumentException("Incompatible Mat");
30 | //FIXME: do we need release() here?
31 | }
32 |
33 | public MatOfPoint(Point...a) {
34 | super();
35 | fromArray(a);
36 | }
37 |
38 | public void alloc(int elemNumber) {
39 | if(elemNumber>0)
40 | super.create(elemNumber, 1, CvType.makeType(_depth, _channels));
41 | }
42 |
43 | public void fromArray(Point...a) {
44 | if(a==null || a.length==0)
45 | return;
46 | int num = a.length;
47 | alloc(num);
48 | int buff[] = new int[num * _channels];
49 | for(int i=0; i lp) {
70 | Point ap[] = lp.toArray(new Point[0]);
71 | fromArray(ap);
72 | }
73 |
74 | public List toList() {
75 | Point[] ap = toArray();
76 | return Arrays.asList(ap);
77 | }
78 | }
79 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/core/MatOfPoint2f.java:
--------------------------------------------------------------------------------
1 | package org.opencv.core;
2 |
3 | import java.util.Arrays;
4 | import java.util.List;
5 |
6 | public class MatOfPoint2f extends Mat {
7 | // 32FC2
8 | private static final int _depth = CvType.CV_32F;
9 | private static final int _channels = 2;
10 |
11 | public MatOfPoint2f() {
12 | super();
13 | }
14 |
15 | protected MatOfPoint2f(long addr) {
16 | super(addr);
17 | if( !empty() && checkVector(_channels, _depth) < 0 )
18 | throw new IllegalArgumentException("Incompatible Mat");
19 | //FIXME: do we need release() here?
20 | }
21 |
22 | public static MatOfPoint2f fromNativeAddr(long addr) {
23 | return new MatOfPoint2f(addr);
24 | }
25 |
26 | public MatOfPoint2f(Mat m) {
27 | super(m, Range.all());
28 | if( !empty() && checkVector(_channels, _depth) < 0 )
29 | throw new IllegalArgumentException("Incompatible Mat");
30 | //FIXME: do we need release() here?
31 | }
32 |
33 | public MatOfPoint2f(Point...a) {
34 | super();
35 | fromArray(a);
36 | }
37 |
38 | public void alloc(int elemNumber) {
39 | if(elemNumber>0)
40 | super.create(elemNumber, 1, CvType.makeType(_depth, _channels));
41 | }
42 |
43 | public void fromArray(Point...a) {
44 | if(a==null || a.length==0)
45 | return;
46 | int num = a.length;
47 | alloc(num);
48 | float buff[] = new float[num * _channels];
49 | for(int i=0; i lp) {
70 | Point ap[] = lp.toArray(new Point[0]);
71 | fromArray(ap);
72 | }
73 |
74 | public List toList() {
75 | Point[] ap = toArray();
76 | return Arrays.asList(ap);
77 | }
78 | }
79 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/core/MatOfPoint3.java:
--------------------------------------------------------------------------------
1 | package org.opencv.core;
2 |
3 | import java.util.Arrays;
4 | import java.util.List;
5 |
6 | public class MatOfPoint3 extends Mat {
7 | // 32SC3
8 | private static final int _depth = CvType.CV_32S;
9 | private static final int _channels = 3;
10 |
11 | public MatOfPoint3() {
12 | super();
13 | }
14 |
15 | protected MatOfPoint3(long addr) {
16 | super(addr);
17 | if( !empty() && checkVector(_channels, _depth) < 0 )
18 | throw new IllegalArgumentException("Incompatible Mat");
19 | //FIXME: do we need release() here?
20 | }
21 |
22 | public static MatOfPoint3 fromNativeAddr(long addr) {
23 | return new MatOfPoint3(addr);
24 | }
25 |
26 | public MatOfPoint3(Mat m) {
27 | super(m, Range.all());
28 | if( !empty() && checkVector(_channels, _depth) < 0 )
29 | throw new IllegalArgumentException("Incompatible Mat");
30 | //FIXME: do we need release() here?
31 | }
32 |
33 | public MatOfPoint3(Point3...a) {
34 | super();
35 | fromArray(a);
36 | }
37 |
38 | public void alloc(int elemNumber) {
39 | if(elemNumber>0)
40 | super.create(elemNumber, 1, CvType.makeType(_depth, _channels));
41 | }
42 |
43 | public void fromArray(Point3...a) {
44 | if(a==null || a.length==0)
45 | return;
46 | int num = a.length;
47 | alloc(num);
48 | int buff[] = new int[num * _channels];
49 | for(int i=0; i lp) {
71 | Point3 ap[] = lp.toArray(new Point3[0]);
72 | fromArray(ap);
73 | }
74 |
75 | public List toList() {
76 | Point3[] ap = toArray();
77 | return Arrays.asList(ap);
78 | }
79 | }
80 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/core/MatOfPoint3f.java:
--------------------------------------------------------------------------------
1 | package org.opencv.core;
2 |
3 | import java.util.Arrays;
4 | import java.util.List;
5 |
6 | public class MatOfPoint3f extends Mat {
7 | // 32FC3
8 | private static final int _depth = CvType.CV_32F;
9 | private static final int _channels = 3;
10 |
11 | public MatOfPoint3f() {
12 | super();
13 | }
14 |
15 | protected MatOfPoint3f(long addr) {
16 | super(addr);
17 | if( !empty() && checkVector(_channels, _depth) < 0 )
18 | throw new IllegalArgumentException("Incompatible Mat");
19 | //FIXME: do we need release() here?
20 | }
21 |
22 | public static MatOfPoint3f fromNativeAddr(long addr) {
23 | return new MatOfPoint3f(addr);
24 | }
25 |
26 | public MatOfPoint3f(Mat m) {
27 | super(m, Range.all());
28 | if( !empty() && checkVector(_channels, _depth) < 0 )
29 | throw new IllegalArgumentException("Incompatible Mat");
30 | //FIXME: do we need release() here?
31 | }
32 |
33 | public MatOfPoint3f(Point3...a) {
34 | super();
35 | fromArray(a);
36 | }
37 |
38 | public void alloc(int elemNumber) {
39 | if(elemNumber>0)
40 | super.create(elemNumber, 1, CvType.makeType(_depth, _channels));
41 | }
42 |
43 | public void fromArray(Point3...a) {
44 | if(a==null || a.length==0)
45 | return;
46 | int num = a.length;
47 | alloc(num);
48 | float buff[] = new float[num * _channels];
49 | for(int i=0; i lp) {
71 | Point3 ap[] = lp.toArray(new Point3[0]);
72 | fromArray(ap);
73 | }
74 |
75 | public List toList() {
76 | Point3[] ap = toArray();
77 | return Arrays.asList(ap);
78 | }
79 | }
80 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/core/MatOfRect.java:
--------------------------------------------------------------------------------
1 | package org.opencv.core;
2 |
3 | import java.util.Arrays;
4 | import java.util.List;
5 |
6 |
7 | public class MatOfRect extends Mat {
8 | // 32SC4
9 | private static final int _depth = CvType.CV_32S;
10 | private static final int _channels = 4;
11 |
12 | public MatOfRect() {
13 | super();
14 | }
15 |
16 | protected MatOfRect(long addr) {
17 | super(addr);
18 | if( !empty() && checkVector(_channels, _depth) < 0 )
19 | throw new IllegalArgumentException("Incompatible Mat");
20 | //FIXME: do we need release() here?
21 | }
22 |
23 | public static MatOfRect fromNativeAddr(long addr) {
24 | return new MatOfRect(addr);
25 | }
26 |
27 | public MatOfRect(Mat m) {
28 | super(m, Range.all());
29 | if( !empty() && checkVector(_channels, _depth) < 0 )
30 | throw new IllegalArgumentException("Incompatible Mat");
31 | //FIXME: do we need release() here?
32 | }
33 |
34 | public MatOfRect(Rect...a) {
35 | super();
36 | fromArray(a);
37 | }
38 |
39 | public void alloc(int elemNumber) {
40 | if(elemNumber>0)
41 | super.create(elemNumber, 1, CvType.makeType(_depth, _channels));
42 | }
43 |
44 | public void fromArray(Rect...a) {
45 | if(a==null || a.length==0)
46 | return;
47 | int num = a.length;
48 | alloc(num);
49 | int buff[] = new int[num * _channels];
50 | for(int i=0; i lr) {
73 | Rect ap[] = lr.toArray(new Rect[0]);
74 | fromArray(ap);
75 | }
76 |
77 | public List toList() {
78 | Rect[] ar = toArray();
79 | return Arrays.asList(ar);
80 | }
81 | }
82 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/core/MatOfRect2d.java:
--------------------------------------------------------------------------------
1 | package org.opencv.core;
2 |
3 | import java.util.Arrays;
4 | import java.util.List;
5 |
6 |
7 | public class MatOfRect2d extends Mat {
8 | // 64FC4
9 | private static final int _depth = CvType.CV_64F;
10 | private static final int _channels = 4;
11 |
12 | public MatOfRect2d() {
13 | super();
14 | }
15 |
16 | protected MatOfRect2d(long addr) {
17 | super(addr);
18 | if( !empty() && checkVector(_channels, _depth) < 0 )
19 | throw new IllegalArgumentException("Incompatible Mat");
20 | //FIXME: do we need release() here?
21 | }
22 |
23 | public static MatOfRect2d fromNativeAddr(long addr) {
24 | return new MatOfRect2d(addr);
25 | }
26 |
27 | public MatOfRect2d(Mat m) {
28 | super(m, Range.all());
29 | if( !empty() && checkVector(_channels, _depth) < 0 )
30 | throw new IllegalArgumentException("Incompatible Mat");
31 | //FIXME: do we need release() here?
32 | }
33 |
34 | public MatOfRect2d(Rect2d...a) {
35 | super();
36 | fromArray(a);
37 | }
38 |
39 | public void alloc(int elemNumber) {
40 | if(elemNumber>0)
41 | super.create(elemNumber, 1, CvType.makeType(_depth, _channels));
42 | }
43 |
44 | public void fromArray(Rect2d...a) {
45 | if(a==null || a.length==0)
46 | return;
47 | int num = a.length;
48 | alloc(num);
49 | double buff[] = new double[num * _channels];
50 | for(int i=0; i lr) {
73 | Rect2d ap[] = lr.toArray(new Rect2d[0]);
74 | fromArray(ap);
75 | }
76 |
77 | public List toList() {
78 | Rect2d[] ar = toArray();
79 | return Arrays.asList(ar);
80 | }
81 | }
82 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/core/Point.java:
--------------------------------------------------------------------------------
1 | package org.opencv.core;
2 |
3 | //javadoc:Point_
4 | public class Point {
5 |
6 | public double x, y;
7 |
8 | public Point(double x, double y) {
9 | this.x = x;
10 | this.y = y;
11 | }
12 |
13 | public Point() {
14 | this(0, 0);
15 | }
16 |
17 | public Point(double[] vals) {
18 | this();
19 | set(vals);
20 | }
21 |
22 | public void set(double[] vals) {
23 | if (vals != null) {
24 | x = vals.length > 0 ? vals[0] : 0;
25 | y = vals.length > 1 ? vals[1] : 0;
26 | } else {
27 | x = 0;
28 | y = 0;
29 | }
30 | }
31 |
32 | public Point clone() {
33 | return new Point(x, y);
34 | }
35 |
36 | public double dot(Point p) {
37 | return x * p.x + y * p.y;
38 | }
39 |
40 | @Override
41 | public int hashCode() {
42 | final int prime = 31;
43 | int result = 1;
44 | long temp;
45 | temp = Double.doubleToLongBits(x);
46 | result = prime * result + (int) (temp ^ (temp >>> 32));
47 | temp = Double.doubleToLongBits(y);
48 | result = prime * result + (int) (temp ^ (temp >>> 32));
49 | return result;
50 | }
51 |
52 | @Override
53 | public boolean equals(Object obj) {
54 | if (this == obj) return true;
55 | if (!(obj instanceof Point)) return false;
56 | Point it = (Point) obj;
57 | return x == it.x && y == it.y;
58 | }
59 |
60 | public boolean inside(Rect r) {
61 | return r.contains(this);
62 | }
63 |
64 | @Override
65 | public String toString() {
66 | return "{" + x + ", " + y + "}";
67 | }
68 | }
69 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/core/Point3.java:
--------------------------------------------------------------------------------
1 | package org.opencv.core;
2 |
3 | //javadoc:Point3_
4 | public class Point3 {
5 |
6 | public double x, y, z;
7 |
8 | public Point3(double x, double y, double z) {
9 | this.x = x;
10 | this.y = y;
11 | this.z = z;
12 | }
13 |
14 | public Point3() {
15 | this(0, 0, 0);
16 | }
17 |
18 | public Point3(Point p) {
19 | x = p.x;
20 | y = p.y;
21 | z = 0;
22 | }
23 |
24 | public Point3(double[] vals) {
25 | this();
26 | set(vals);
27 | }
28 |
29 | public void set(double[] vals) {
30 | if (vals != null) {
31 | x = vals.length > 0 ? vals[0] : 0;
32 | y = vals.length > 1 ? vals[1] : 0;
33 | z = vals.length > 2 ? vals[2] : 0;
34 | } else {
35 | x = 0;
36 | y = 0;
37 | z = 0;
38 | }
39 | }
40 |
41 | public Point3 clone() {
42 | return new Point3(x, y, z);
43 | }
44 |
45 | public double dot(Point3 p) {
46 | return x * p.x + y * p.y + z * p.z;
47 | }
48 |
49 | public Point3 cross(Point3 p) {
50 | return new Point3(y * p.z - z * p.y, z * p.x - x * p.z, x * p.y - y * p.x);
51 | }
52 |
53 | @Override
54 | public int hashCode() {
55 | final int prime = 31;
56 | int result = 1;
57 | long temp;
58 | temp = Double.doubleToLongBits(x);
59 | result = prime * result + (int) (temp ^ (temp >>> 32));
60 | temp = Double.doubleToLongBits(y);
61 | result = prime * result + (int) (temp ^ (temp >>> 32));
62 | temp = Double.doubleToLongBits(z);
63 | result = prime * result + (int) (temp ^ (temp >>> 32));
64 | return result;
65 | }
66 |
67 | @Override
68 | public boolean equals(Object obj) {
69 | if (this == obj) return true;
70 | if (!(obj instanceof Point3)) return false;
71 | Point3 it = (Point3) obj;
72 | return x == it.x && y == it.y && z == it.z;
73 | }
74 |
75 | @Override
76 | public String toString() {
77 | return "{" + x + ", " + y + ", " + z + "}";
78 | }
79 | }
80 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/core/Range.java:
--------------------------------------------------------------------------------
1 | package org.opencv.core;
2 |
3 | //javadoc:Range
4 | public class Range {
5 |
6 | public int start, end;
7 |
8 | public Range(int s, int e) {
9 | this.start = s;
10 | this.end = e;
11 | }
12 |
13 | public Range() {
14 | this(0, 0);
15 | }
16 |
17 | public Range(double[] vals) {
18 | set(vals);
19 | }
20 |
21 | public void set(double[] vals) {
22 | if (vals != null) {
23 | start = vals.length > 0 ? (int) vals[0] : 0;
24 | end = vals.length > 1 ? (int) vals[1] : 0;
25 | } else {
26 | start = 0;
27 | end = 0;
28 | }
29 |
30 | }
31 |
32 | public int size() {
33 | return empty() ? 0 : end - start;
34 | }
35 |
36 | public boolean empty() {
37 | return end <= start;
38 | }
39 |
40 | public static Range all() {
41 | return new Range(Integer.MIN_VALUE, Integer.MAX_VALUE);
42 | }
43 |
44 | public Range intersection(Range r1) {
45 | Range r = new Range(Math.max(r1.start, this.start), Math.min(r1.end, this.end));
46 | r.end = Math.max(r.end, r.start);
47 | return r;
48 | }
49 |
50 | public Range shift(int delta) {
51 | return new Range(start + delta, end + delta);
52 | }
53 |
54 | public Range clone() {
55 | return new Range(start, end);
56 | }
57 |
58 | @Override
59 | public int hashCode() {
60 | final int prime = 31;
61 | int result = 1;
62 | long temp;
63 | temp = Double.doubleToLongBits(start);
64 | result = prime * result + (int) (temp ^ (temp >>> 32));
65 | temp = Double.doubleToLongBits(end);
66 | result = prime * result + (int) (temp ^ (temp >>> 32));
67 | return result;
68 | }
69 |
70 | @Override
71 | public boolean equals(Object obj) {
72 | if (this == obj) return true;
73 | if (!(obj instanceof Range)) return false;
74 | Range it = (Range) obj;
75 | return start == it.start && end == it.end;
76 | }
77 |
78 | @Override
79 | public String toString() {
80 | return "[" + start + ", " + end + ")";
81 | }
82 | }
83 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/core/Rect.java:
--------------------------------------------------------------------------------
1 | package org.opencv.core;
2 |
3 | //javadoc:Rect_
4 | public class Rect {
5 |
6 | public int x, y, width, height;
7 |
8 | public Rect(int x, int y, int width, int height) {
9 | this.x = x;
10 | this.y = y;
11 | this.width = width;
12 | this.height = height;
13 | }
14 |
15 | public Rect() {
16 | this(0, 0, 0, 0);
17 | }
18 |
19 | public Rect(Point p1, Point p2) {
20 | x = (int) (p1.x < p2.x ? p1.x : p2.x);
21 | y = (int) (p1.y < p2.y ? p1.y : p2.y);
22 | width = (int) (p1.x > p2.x ? p1.x : p2.x) - x;
23 | height = (int) (p1.y > p2.y ? p1.y : p2.y) - y;
24 | }
25 |
26 | public Rect(Point p, Size s) {
27 | this((int) p.x, (int) p.y, (int) s.width, (int) s.height);
28 | }
29 |
30 | public Rect(double[] vals) {
31 | set(vals);
32 | }
33 |
34 | public void set(double[] vals) {
35 | if (vals != null) {
36 | x = vals.length > 0 ? (int) vals[0] : 0;
37 | y = vals.length > 1 ? (int) vals[1] : 0;
38 | width = vals.length > 2 ? (int) vals[2] : 0;
39 | height = vals.length > 3 ? (int) vals[3] : 0;
40 | } else {
41 | x = 0;
42 | y = 0;
43 | width = 0;
44 | height = 0;
45 | }
46 | }
47 |
48 | public Rect clone() {
49 | return new Rect(x, y, width, height);
50 | }
51 |
52 | public Point tl() {
53 | return new Point(x, y);
54 | }
55 |
56 | public Point br() {
57 | return new Point(x + width, y + height);
58 | }
59 |
60 | public Size size() {
61 | return new Size(width, height);
62 | }
63 |
64 | public double area() {
65 | return width * height;
66 | }
67 |
68 | public boolean empty() {
69 | return width <= 0 || height <= 0;
70 | }
71 |
72 | public boolean contains(Point p) {
73 | return x <= p.x && p.x < x + width && y <= p.y && p.y < y + height;
74 | }
75 |
76 | @Override
77 | public int hashCode() {
78 | final int prime = 31;
79 | int result = 1;
80 | long temp;
81 | temp = Double.doubleToLongBits(height);
82 | result = prime * result + (int) (temp ^ (temp >>> 32));
83 | temp = Double.doubleToLongBits(width);
84 | result = prime * result + (int) (temp ^ (temp >>> 32));
85 | temp = Double.doubleToLongBits(x);
86 | result = prime * result + (int) (temp ^ (temp >>> 32));
87 | temp = Double.doubleToLongBits(y);
88 | result = prime * result + (int) (temp ^ (temp >>> 32));
89 | return result;
90 | }
91 |
92 | @Override
93 | public boolean equals(Object obj) {
94 | if (this == obj) return true;
95 | if (!(obj instanceof Rect)) return false;
96 | Rect it = (Rect) obj;
97 | return x == it.x && y == it.y && width == it.width && height == it.height;
98 | }
99 |
100 | @Override
101 | public String toString() {
102 | return "{" + x + ", " + y + ", " + width + "x" + height + "}";
103 | }
104 | }
105 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/core/Scalar.java:
--------------------------------------------------------------------------------
1 | package org.opencv.core;
2 |
3 | //javadoc:Scalar_
4 | public class Scalar {
5 |
6 | public double val[];
7 |
8 | public Scalar(double v0, double v1, double v2, double v3) {
9 | val = new double[] { v0, v1, v2, v3 };
10 | }
11 |
12 | public Scalar(double v0, double v1, double v2) {
13 | val = new double[] { v0, v1, v2, 0 };
14 | }
15 |
16 | public Scalar(double v0, double v1) {
17 | val = new double[] { v0, v1, 0, 0 };
18 | }
19 |
20 | public Scalar(double v0) {
21 | val = new double[] { v0, 0, 0, 0 };
22 | }
23 |
24 | public Scalar(double[] vals) {
25 | if (vals != null && vals.length == 4)
26 | val = vals.clone();
27 | else {
28 | val = new double[4];
29 | set(vals);
30 | }
31 | }
32 |
33 | public void set(double[] vals) {
34 | if (vals != null) {
35 | val[0] = vals.length > 0 ? vals[0] : 0;
36 | val[1] = vals.length > 1 ? vals[1] : 0;
37 | val[2] = vals.length > 2 ? vals[2] : 0;
38 | val[3] = vals.length > 3 ? vals[3] : 0;
39 | } else
40 | val[0] = val[1] = val[2] = val[3] = 0;
41 | }
42 |
43 | public static Scalar all(double v) {
44 | return new Scalar(v, v, v, v);
45 | }
46 |
47 | public Scalar clone() {
48 | return new Scalar(val);
49 | }
50 |
51 | public Scalar mul(Scalar it, double scale) {
52 | return new Scalar(val[0] * it.val[0] * scale, val[1] * it.val[1] * scale,
53 | val[2] * it.val[2] * scale, val[3] * it.val[3] * scale);
54 | }
55 |
56 | public Scalar mul(Scalar it) {
57 | return mul(it, 1);
58 | }
59 |
60 | public Scalar conj() {
61 | return new Scalar(val[0], -val[1], -val[2], -val[3]);
62 | }
63 |
64 | public boolean isReal() {
65 | return val[1] == 0 && val[2] == 0 && val[3] == 0;
66 | }
67 |
68 | @Override
69 | public int hashCode() {
70 | final int prime = 31;
71 | int result = 1;
72 | result = prime * result + java.util.Arrays.hashCode(val);
73 | return result;
74 | }
75 |
76 | @Override
77 | public boolean equals(Object obj) {
78 | if (this == obj) return true;
79 | if (!(obj instanceof Scalar)) return false;
80 | Scalar it = (Scalar) obj;
81 | if (!java.util.Arrays.equals(val, it.val)) return false;
82 | return true;
83 | }
84 |
85 | @Override
86 | public String toString() {
87 | return "[" + val[0] + ", " + val[1] + ", " + val[2] + ", " + val[3] + "]";
88 | }
89 |
90 | }
91 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/core/Size.java:
--------------------------------------------------------------------------------
1 | package org.opencv.core;
2 |
3 | //javadoc:Size_
4 | public class Size {
5 |
6 | public double width, height;
7 |
8 | public Size(double width, double height) {
9 | this.width = width;
10 | this.height = height;
11 | }
12 |
13 | public Size() {
14 | this(0, 0);
15 | }
16 |
17 | public Size(Point p) {
18 | width = p.x;
19 | height = p.y;
20 | }
21 |
22 | public Size(double[] vals) {
23 | set(vals);
24 | }
25 |
26 | public void set(double[] vals) {
27 | if (vals != null) {
28 | width = vals.length > 0 ? vals[0] : 0;
29 | height = vals.length > 1 ? vals[1] : 0;
30 | } else {
31 | width = 0;
32 | height = 0;
33 | }
34 | }
35 |
36 | public double area() {
37 | return width * height;
38 | }
39 |
40 | public boolean empty() {
41 | return width <= 0 || height <= 0;
42 | }
43 |
44 | public Size clone() {
45 | return new Size(width, height);
46 | }
47 |
48 | @Override
49 | public int hashCode() {
50 | final int prime = 31;
51 | int result = 1;
52 | long temp;
53 | temp = Double.doubleToLongBits(height);
54 | result = prime * result + (int) (temp ^ (temp >>> 32));
55 | temp = Double.doubleToLongBits(width);
56 | result = prime * result + (int) (temp ^ (temp >>> 32));
57 | return result;
58 | }
59 |
60 | @Override
61 | public boolean equals(Object obj) {
62 | if (this == obj) return true;
63 | if (!(obj instanceof Size)) return false;
64 | Size it = (Size) obj;
65 | return width == it.width && height == it.height;
66 | }
67 |
68 | @Override
69 | public String toString() {
70 | return (int)width + "x" + (int)height;
71 | }
72 |
73 | }
74 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/core/TermCriteria.java:
--------------------------------------------------------------------------------
1 | package org.opencv.core;
2 |
3 | //javadoc:TermCriteria
4 | public class TermCriteria {
5 |
6 | /**
7 | * The maximum number of iterations or elements to compute
8 | */
9 | public static final int COUNT = 1;
10 | /**
11 | * The maximum number of iterations or elements to compute
12 | */
13 | public static final int MAX_ITER = COUNT;
14 | /**
15 | * The desired accuracy threshold or change in parameters at which the iterative algorithm is terminated.
16 | */
17 | public static final int EPS = 2;
18 |
19 | public int type;
20 | public int maxCount;
21 | public double epsilon;
22 |
23 | /**
24 | * Termination criteria for iterative algorithms.
25 | *
26 | * @param type
27 | * the type of termination criteria: COUNT, EPS or COUNT + EPS.
28 | * @param maxCount
29 | * the maximum number of iterations/elements.
30 | * @param epsilon
31 | * the desired accuracy.
32 | */
33 | public TermCriteria(int type, int maxCount, double epsilon) {
34 | this.type = type;
35 | this.maxCount = maxCount;
36 | this.epsilon = epsilon;
37 | }
38 |
39 | /**
40 | * Termination criteria for iterative algorithms.
41 | */
42 | public TermCriteria() {
43 | this(0, 0, 0.0);
44 | }
45 |
46 | public TermCriteria(double[] vals) {
47 | set(vals);
48 | }
49 |
50 | public void set(double[] vals) {
51 | if (vals != null) {
52 | type = vals.length > 0 ? (int) vals[0] : 0;
53 | maxCount = vals.length > 1 ? (int) vals[1] : 0;
54 | epsilon = vals.length > 2 ? (double) vals[2] : 0;
55 | } else {
56 | type = 0;
57 | maxCount = 0;
58 | epsilon = 0;
59 | }
60 | }
61 |
62 | public TermCriteria clone() {
63 | return new TermCriteria(type, maxCount, epsilon);
64 | }
65 |
66 | @Override
67 | public int hashCode() {
68 | final int prime = 31;
69 | int result = 1;
70 | long temp;
71 | temp = Double.doubleToLongBits(type);
72 | result = prime * result + (int) (temp ^ (temp >>> 32));
73 | temp = Double.doubleToLongBits(maxCount);
74 | result = prime * result + (int) (temp ^ (temp >>> 32));
75 | temp = Double.doubleToLongBits(epsilon);
76 | result = prime * result + (int) (temp ^ (temp >>> 32));
77 | return result;
78 | }
79 |
80 | @Override
81 | public boolean equals(Object obj) {
82 | if (this == obj) return true;
83 | if (!(obj instanceof TermCriteria)) return false;
84 | TermCriteria it = (TermCriteria) obj;
85 | return type == it.type && maxCount == it.maxCount && epsilon == it.epsilon;
86 | }
87 |
88 | @Override
89 | public String toString() {
90 | return "{ type: " + type + ", maxCount: " + maxCount + ", epsilon: " + epsilon + "}";
91 | }
92 | }
93 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/features2d/BFMatcher.java:
--------------------------------------------------------------------------------
1 | //
2 | // This file is auto-generated. Please don't modify it!
3 | //
4 | package org.opencv.features2d;
5 |
6 | import org.opencv.features2d.BFMatcher;
7 | import org.opencv.features2d.DescriptorMatcher;
8 |
9 | // C++: class BFMatcher
10 | //javadoc: BFMatcher
11 |
12 | public class BFMatcher extends DescriptorMatcher {
13 |
14 | protected BFMatcher(long addr) { super(addr); }
15 |
16 | // internal usage only
17 | public static BFMatcher __fromPtr__(long addr) { return new BFMatcher(addr); }
18 |
19 | //
20 | // C++: BFMatcher(int normType = NORM_L2, bool crossCheck = false)
21 | //
22 |
23 | //javadoc: BFMatcher::BFMatcher(normType, crossCheck)
24 | public BFMatcher(int normType, boolean crossCheck)
25 | {
26 |
27 | super( BFMatcher_0(normType, crossCheck) );
28 |
29 | return;
30 | }
31 |
32 | //javadoc: BFMatcher::BFMatcher()
33 | public BFMatcher()
34 | {
35 |
36 | super( BFMatcher_1() );
37 |
38 | return;
39 | }
40 |
41 |
42 | //
43 | // C++: static Ptr_BFMatcher create(int normType = NORM_L2, bool crossCheck = false)
44 | //
45 |
46 | //javadoc: BFMatcher::create(normType, crossCheck)
47 | public static BFMatcher create(int normType, boolean crossCheck)
48 | {
49 |
50 | BFMatcher retVal = BFMatcher.__fromPtr__(create_0(normType, crossCheck));
51 |
52 | return retVal;
53 | }
54 |
55 | //javadoc: BFMatcher::create()
56 | public static BFMatcher create()
57 | {
58 |
59 | BFMatcher retVal = BFMatcher.__fromPtr__(create_1());
60 |
61 | return retVal;
62 | }
63 |
64 |
65 | @Override
66 | protected void finalize() throws Throwable {
67 | delete(nativeObj);
68 | }
69 |
70 |
71 |
72 | // C++: BFMatcher(int normType = NORM_L2, bool crossCheck = false)
73 | private static native long BFMatcher_0(int normType, boolean crossCheck);
74 | private static native long BFMatcher_1();
75 |
76 | // C++: static Ptr_BFMatcher create(int normType = NORM_L2, bool crossCheck = false)
77 | private static native long create_0(int normType, boolean crossCheck);
78 | private static native long create_1();
79 |
80 | // native support for java finalize()
81 | private static native void delete(long nativeObj);
82 |
83 | }
84 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/features2d/BOWKMeansTrainer.java:
--------------------------------------------------------------------------------
1 | //
2 | // This file is auto-generated. Please don't modify it!
3 | //
4 | package org.opencv.features2d;
5 |
6 | import org.opencv.core.Mat;
7 | import org.opencv.core.TermCriteria;
8 | import org.opencv.features2d.BOWTrainer;
9 |
10 | // C++: class BOWKMeansTrainer
11 | //javadoc: BOWKMeansTrainer
12 |
13 | public class BOWKMeansTrainer extends BOWTrainer {
14 |
15 | protected BOWKMeansTrainer(long addr) { super(addr); }
16 |
17 | // internal usage only
18 | public static BOWKMeansTrainer __fromPtr__(long addr) { return new BOWKMeansTrainer(addr); }
19 |
20 | //
21 | // C++: BOWKMeansTrainer(int clusterCount, TermCriteria termcrit = TermCriteria(), int attempts = 3, int flags = KMEANS_PP_CENTERS)
22 | //
23 |
24 | //javadoc: BOWKMeansTrainer::BOWKMeansTrainer(clusterCount, termcrit, attempts, flags)
25 | public BOWKMeansTrainer(int clusterCount, TermCriteria termcrit, int attempts, int flags)
26 | {
27 |
28 | super( BOWKMeansTrainer_0(clusterCount, termcrit.type, termcrit.maxCount, termcrit.epsilon, attempts, flags) );
29 |
30 | return;
31 | }
32 |
33 | //javadoc: BOWKMeansTrainer::BOWKMeansTrainer(clusterCount)
34 | public BOWKMeansTrainer(int clusterCount)
35 | {
36 |
37 | super( BOWKMeansTrainer_1(clusterCount) );
38 |
39 | return;
40 | }
41 |
42 |
43 | //
44 | // C++: Mat cluster(Mat descriptors)
45 | //
46 |
47 | //javadoc: BOWKMeansTrainer::cluster(descriptors)
48 | public Mat cluster(Mat descriptors)
49 | {
50 |
51 | Mat retVal = new Mat(cluster_0(nativeObj, descriptors.nativeObj));
52 |
53 | return retVal;
54 | }
55 |
56 |
57 | //
58 | // C++: Mat cluster()
59 | //
60 |
61 | //javadoc: BOWKMeansTrainer::cluster()
62 | public Mat cluster()
63 | {
64 |
65 | Mat retVal = new Mat(cluster_1(nativeObj));
66 |
67 | return retVal;
68 | }
69 |
70 |
71 | @Override
72 | protected void finalize() throws Throwable {
73 | delete(nativeObj);
74 | }
75 |
76 |
77 |
78 | // C++: BOWKMeansTrainer(int clusterCount, TermCriteria termcrit = TermCriteria(), int attempts = 3, int flags = KMEANS_PP_CENTERS)
79 | private static native long BOWKMeansTrainer_0(int clusterCount, int termcrit_type, int termcrit_maxCount, double termcrit_epsilon, int attempts, int flags);
80 | private static native long BOWKMeansTrainer_1(int clusterCount);
81 |
82 | // C++: Mat cluster(Mat descriptors)
83 | private static native long cluster_0(long nativeObj, long descriptors_nativeObj);
84 |
85 | // C++: Mat cluster()
86 | private static native long cluster_1(long nativeObj);
87 |
88 | // native support for java finalize()
89 | private static native void delete(long nativeObj);
90 |
91 | }
92 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/features2d/FlannBasedMatcher.java:
--------------------------------------------------------------------------------
1 | //
2 | // This file is auto-generated. Please don't modify it!
3 | //
4 | package org.opencv.features2d;
5 |
6 | import org.opencv.features2d.DescriptorMatcher;
7 | import org.opencv.features2d.FlannBasedMatcher;
8 |
9 | // C++: class FlannBasedMatcher
10 | //javadoc: FlannBasedMatcher
11 |
12 | public class FlannBasedMatcher extends DescriptorMatcher {
13 |
14 | protected FlannBasedMatcher(long addr) { super(addr); }
15 |
16 | // internal usage only
17 | public static FlannBasedMatcher __fromPtr__(long addr) { return new FlannBasedMatcher(addr); }
18 |
19 | //
20 | // C++: FlannBasedMatcher(Ptr_flann_IndexParams indexParams = makePtr(), Ptr_flann_SearchParams searchParams = makePtr())
21 | //
22 |
23 | //javadoc: FlannBasedMatcher::FlannBasedMatcher()
24 | public FlannBasedMatcher()
25 | {
26 |
27 | super( FlannBasedMatcher_0() );
28 |
29 | return;
30 | }
31 |
32 |
33 | //
34 | // C++: static Ptr_FlannBasedMatcher create()
35 | //
36 |
37 | //javadoc: FlannBasedMatcher::create()
38 | public static FlannBasedMatcher create()
39 | {
40 |
41 | FlannBasedMatcher retVal = FlannBasedMatcher.__fromPtr__(create_0());
42 |
43 | return retVal;
44 | }
45 |
46 |
47 | @Override
48 | protected void finalize() throws Throwable {
49 | delete(nativeObj);
50 | }
51 |
52 |
53 |
54 | // C++: FlannBasedMatcher(Ptr_flann_IndexParams indexParams = makePtr(), Ptr_flann_SearchParams searchParams = makePtr())
55 | private static native long FlannBasedMatcher_0();
56 |
57 | // C++: static Ptr_FlannBasedMatcher create()
58 | private static native long create_0();
59 |
60 | // native support for java finalize()
61 | private static native void delete(long nativeObj);
62 |
63 | }
64 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/ml/Ml.java:
--------------------------------------------------------------------------------
1 | //
2 | // This file is auto-generated. Please don't modify it!
3 | //
4 | package org.opencv.ml;
5 |
6 |
7 |
8 | // C++: class Ml
9 | //javadoc: Ml
10 |
11 | public class Ml {
12 |
13 | public static final int
14 | VAR_NUMERICAL = 0,
15 | VAR_ORDERED = 0,
16 | VAR_CATEGORICAL = 1,
17 | TEST_ERROR = 0,
18 | TRAIN_ERROR = 1,
19 | ROW_SAMPLE = 0,
20 | COL_SAMPLE = 1;
21 |
22 |
23 |
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/objdetect/BaseCascadeClassifier.java:
--------------------------------------------------------------------------------
1 | //
2 | // This file is auto-generated. Please don't modify it!
3 | //
4 | package org.opencv.objdetect;
5 |
6 | import org.opencv.core.Algorithm;
7 |
8 | // C++: class BaseCascadeClassifier
9 | //javadoc: BaseCascadeClassifier
10 |
11 | public class BaseCascadeClassifier extends Algorithm {
12 |
13 | protected BaseCascadeClassifier(long addr) { super(addr); }
14 |
15 | // internal usage only
16 | public static BaseCascadeClassifier __fromPtr__(long addr) { return new BaseCascadeClassifier(addr); }
17 |
18 | @Override
19 | protected void finalize() throws Throwable {
20 | delete(nativeObj);
21 | }
22 |
23 |
24 |
25 | // native support for java finalize()
26 | private static native void delete(long nativeObj);
27 |
28 | }
29 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/objdetect/Objdetect.java:
--------------------------------------------------------------------------------
1 | //
2 | // This file is auto-generated. Please don't modify it!
3 | //
4 | package org.opencv.objdetect;
5 |
6 | import java.util.ArrayList;
7 | import java.util.List;
8 | import org.opencv.core.Mat;
9 | import org.opencv.core.MatOfInt;
10 | import org.opencv.core.MatOfRect;
11 | import org.opencv.utils.Converters;
12 |
13 | // C++: class Objdetect
14 | //javadoc: Objdetect
15 |
16 | public class Objdetect {
17 |
18 | public static final int
19 | CASCADE_DO_CANNY_PRUNING = 1,
20 | CASCADE_SCALE_IMAGE = 2,
21 | CASCADE_FIND_BIGGEST_OBJECT = 4,
22 | CASCADE_DO_ROUGH_SEARCH = 8;
23 |
24 |
25 | //
26 | // C++: void groupRectangles(vector_Rect& rectList, vector_int& weights, int groupThreshold, double eps = 0.2)
27 | //
28 |
29 | //javadoc: groupRectangles(rectList, weights, groupThreshold, eps)
30 | public static void groupRectangles(MatOfRect rectList, MatOfInt weights, int groupThreshold, double eps)
31 | {
32 | Mat rectList_mat = rectList;
33 | Mat weights_mat = weights;
34 | groupRectangles_0(rectList_mat.nativeObj, weights_mat.nativeObj, groupThreshold, eps);
35 |
36 | return;
37 | }
38 |
39 | //javadoc: groupRectangles(rectList, weights, groupThreshold)
40 | public static void groupRectangles(MatOfRect rectList, MatOfInt weights, int groupThreshold)
41 | {
42 | Mat rectList_mat = rectList;
43 | Mat weights_mat = weights;
44 | groupRectangles_1(rectList_mat.nativeObj, weights_mat.nativeObj, groupThreshold);
45 |
46 | return;
47 | }
48 |
49 |
50 |
51 |
52 | // C++: void groupRectangles(vector_Rect& rectList, vector_int& weights, int groupThreshold, double eps = 0.2)
53 | private static native void groupRectangles_0(long rectList_mat_nativeObj, long weights_mat_nativeObj, int groupThreshold, double eps);
54 | private static native void groupRectangles_1(long rectList_mat_nativeObj, long weights_mat_nativeObj, int groupThreshold);
55 |
56 | }
57 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/osgi/OpenCVInterface.java:
--------------------------------------------------------------------------------
1 | package org.opencv.osgi;
2 |
3 | /**
4 | * Dummy interface to allow some integration testing within OSGi implementation.
5 | */
6 | public interface OpenCVInterface
7 | {
8 | }
9 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/osgi/OpenCVNativeLoader.java:
--------------------------------------------------------------------------------
1 | package org.opencv.osgi;
2 |
3 | import java.util.logging.Level;
4 | import java.util.logging.Logger;
5 |
6 | /**
7 | * This class is intended to provide a convenient way to load OpenCV's native
8 | * library from the Java bundle. If Blueprint is enabled in the OSGi container
9 | * this class will be instantiated automatically and the init() method called
10 | * loading the native library.
11 | */
12 | public class OpenCVNativeLoader implements OpenCVInterface {
13 |
14 | public void init() {
15 | System.loadLibrary("opencv_java3");
16 | Logger.getLogger("org.opencv.osgi").log(Level.INFO, "Successfully loaded OpenCV native library.");
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/photo/AlignExposures.java:
--------------------------------------------------------------------------------
1 | //
2 | // This file is auto-generated. Please don't modify it!
3 | //
4 | package org.opencv.photo;
5 |
6 | import java.util.ArrayList;
7 | import java.util.List;
8 | import org.opencv.core.Algorithm;
9 | import org.opencv.core.Mat;
10 | import org.opencv.utils.Converters;
11 |
12 | // C++: class AlignExposures
13 | //javadoc: AlignExposures
14 |
15 | public class AlignExposures extends Algorithm {
16 |
17 | protected AlignExposures(long addr) { super(addr); }
18 |
19 | // internal usage only
20 | public static AlignExposures __fromPtr__(long addr) { return new AlignExposures(addr); }
21 |
22 | //
23 | // C++: void process(vector_Mat src, vector_Mat dst, Mat times, Mat response)
24 | //
25 |
26 | //javadoc: AlignExposures::process(src, dst, times, response)
27 | public void process(List src, List dst, Mat times, Mat response)
28 | {
29 | Mat src_mat = Converters.vector_Mat_to_Mat(src);
30 | Mat dst_mat = Converters.vector_Mat_to_Mat(dst);
31 | process_0(nativeObj, src_mat.nativeObj, dst_mat.nativeObj, times.nativeObj, response.nativeObj);
32 |
33 | return;
34 | }
35 |
36 |
37 | @Override
38 | protected void finalize() throws Throwable {
39 | delete(nativeObj);
40 | }
41 |
42 |
43 |
44 | // C++: void process(vector_Mat src, vector_Mat dst, Mat times, Mat response)
45 | private static native void process_0(long nativeObj, long src_mat_nativeObj, long dst_mat_nativeObj, long times_nativeObj, long response_nativeObj);
46 |
47 | // native support for java finalize()
48 | private static native void delete(long nativeObj);
49 |
50 | }
51 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/photo/CalibrateCRF.java:
--------------------------------------------------------------------------------
1 | //
2 | // This file is auto-generated. Please don't modify it!
3 | //
4 | package org.opencv.photo;
5 |
6 | import java.util.ArrayList;
7 | import java.util.List;
8 | import org.opencv.core.Algorithm;
9 | import org.opencv.core.Mat;
10 | import org.opencv.utils.Converters;
11 |
12 | // C++: class CalibrateCRF
13 | //javadoc: CalibrateCRF
14 |
15 | public class CalibrateCRF extends Algorithm {
16 |
17 | protected CalibrateCRF(long addr) { super(addr); }
18 |
19 | // internal usage only
20 | public static CalibrateCRF __fromPtr__(long addr) { return new CalibrateCRF(addr); }
21 |
22 | //
23 | // C++: void process(vector_Mat src, Mat& dst, Mat times)
24 | //
25 |
26 | //javadoc: CalibrateCRF::process(src, dst, times)
27 | public void process(List src, Mat dst, Mat times)
28 | {
29 | Mat src_mat = Converters.vector_Mat_to_Mat(src);
30 | process_0(nativeObj, src_mat.nativeObj, dst.nativeObj, times.nativeObj);
31 |
32 | return;
33 | }
34 |
35 |
36 | @Override
37 | protected void finalize() throws Throwable {
38 | delete(nativeObj);
39 | }
40 |
41 |
42 |
43 | // C++: void process(vector_Mat src, Mat& dst, Mat times)
44 | private static native void process_0(long nativeObj, long src_mat_nativeObj, long dst_nativeObj, long times_nativeObj);
45 |
46 | // native support for java finalize()
47 | private static native void delete(long nativeObj);
48 |
49 | }
50 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/photo/CalibrateRobertson.java:
--------------------------------------------------------------------------------
1 | //
2 | // This file is auto-generated. Please don't modify it!
3 | //
4 | package org.opencv.photo;
5 |
6 | import org.opencv.core.Mat;
7 | import org.opencv.photo.CalibrateCRF;
8 |
9 | // C++: class CalibrateRobertson
10 | //javadoc: CalibrateRobertson
11 |
12 | public class CalibrateRobertson extends CalibrateCRF {
13 |
14 | protected CalibrateRobertson(long addr) { super(addr); }
15 |
16 | // internal usage only
17 | public static CalibrateRobertson __fromPtr__(long addr) { return new CalibrateRobertson(addr); }
18 |
19 | //
20 | // C++: Mat getRadiance()
21 | //
22 |
23 | //javadoc: CalibrateRobertson::getRadiance()
24 | public Mat getRadiance()
25 | {
26 |
27 | Mat retVal = new Mat(getRadiance_0(nativeObj));
28 |
29 | return retVal;
30 | }
31 |
32 |
33 | //
34 | // C++: float getThreshold()
35 | //
36 |
37 | //javadoc: CalibrateRobertson::getThreshold()
38 | public float getThreshold()
39 | {
40 |
41 | float retVal = getThreshold_0(nativeObj);
42 |
43 | return retVal;
44 | }
45 |
46 |
47 | //
48 | // C++: int getMaxIter()
49 | //
50 |
51 | //javadoc: CalibrateRobertson::getMaxIter()
52 | public int getMaxIter()
53 | {
54 |
55 | int retVal = getMaxIter_0(nativeObj);
56 |
57 | return retVal;
58 | }
59 |
60 |
61 | //
62 | // C++: void setMaxIter(int max_iter)
63 | //
64 |
65 | //javadoc: CalibrateRobertson::setMaxIter(max_iter)
66 | public void setMaxIter(int max_iter)
67 | {
68 |
69 | setMaxIter_0(nativeObj, max_iter);
70 |
71 | return;
72 | }
73 |
74 |
75 | //
76 | // C++: void setThreshold(float threshold)
77 | //
78 |
79 | //javadoc: CalibrateRobertson::setThreshold(threshold)
80 | public void setThreshold(float threshold)
81 | {
82 |
83 | setThreshold_0(nativeObj, threshold);
84 |
85 | return;
86 | }
87 |
88 |
89 | @Override
90 | protected void finalize() throws Throwable {
91 | delete(nativeObj);
92 | }
93 |
94 |
95 |
96 | // C++: Mat getRadiance()
97 | private static native long getRadiance_0(long nativeObj);
98 |
99 | // C++: float getThreshold()
100 | private static native float getThreshold_0(long nativeObj);
101 |
102 | // C++: int getMaxIter()
103 | private static native int getMaxIter_0(long nativeObj);
104 |
105 | // C++: void setMaxIter(int max_iter)
106 | private static native void setMaxIter_0(long nativeObj, int max_iter);
107 |
108 | // C++: void setThreshold(float threshold)
109 | private static native void setThreshold_0(long nativeObj, float threshold);
110 |
111 | // native support for java finalize()
112 | private static native void delete(long nativeObj);
113 |
114 | }
115 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/photo/MergeDebevec.java:
--------------------------------------------------------------------------------
1 | //
2 | // This file is auto-generated. Please don't modify it!
3 | //
4 | package org.opencv.photo;
5 |
6 | import java.util.ArrayList;
7 | import java.util.List;
8 | import org.opencv.core.Mat;
9 | import org.opencv.photo.MergeExposures;
10 | import org.opencv.utils.Converters;
11 |
12 | // C++: class MergeDebevec
13 | //javadoc: MergeDebevec
14 |
15 | public class MergeDebevec extends MergeExposures {
16 |
17 | protected MergeDebevec(long addr) { super(addr); }
18 |
19 | // internal usage only
20 | public static MergeDebevec __fromPtr__(long addr) { return new MergeDebevec(addr); }
21 |
22 | //
23 | // C++: void process(vector_Mat src, Mat& dst, Mat times, Mat response)
24 | //
25 |
26 | //javadoc: MergeDebevec::process(src, dst, times, response)
27 | public void process(List src, Mat dst, Mat times, Mat response)
28 | {
29 | Mat src_mat = Converters.vector_Mat_to_Mat(src);
30 | process_0(nativeObj, src_mat.nativeObj, dst.nativeObj, times.nativeObj, response.nativeObj);
31 |
32 | return;
33 | }
34 |
35 |
36 | //
37 | // C++: void process(vector_Mat src, Mat& dst, Mat times)
38 | //
39 |
40 | //javadoc: MergeDebevec::process(src, dst, times)
41 | public void process(List src, Mat dst, Mat times)
42 | {
43 | Mat src_mat = Converters.vector_Mat_to_Mat(src);
44 | process_1(nativeObj, src_mat.nativeObj, dst.nativeObj, times.nativeObj);
45 |
46 | return;
47 | }
48 |
49 |
50 | @Override
51 | protected void finalize() throws Throwable {
52 | delete(nativeObj);
53 | }
54 |
55 |
56 |
57 | // C++: void process(vector_Mat src, Mat& dst, Mat times, Mat response)
58 | private static native void process_0(long nativeObj, long src_mat_nativeObj, long dst_nativeObj, long times_nativeObj, long response_nativeObj);
59 |
60 | // C++: void process(vector_Mat src, Mat& dst, Mat times)
61 | private static native void process_1(long nativeObj, long src_mat_nativeObj, long dst_nativeObj, long times_nativeObj);
62 |
63 | // native support for java finalize()
64 | private static native void delete(long nativeObj);
65 |
66 | }
67 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/photo/MergeExposures.java:
--------------------------------------------------------------------------------
1 | //
2 | // This file is auto-generated. Please don't modify it!
3 | //
4 | package org.opencv.photo;
5 |
6 | import java.util.ArrayList;
7 | import java.util.List;
8 | import org.opencv.core.Algorithm;
9 | import org.opencv.core.Mat;
10 | import org.opencv.utils.Converters;
11 |
12 | // C++: class MergeExposures
13 | //javadoc: MergeExposures
14 |
15 | public class MergeExposures extends Algorithm {
16 |
17 | protected MergeExposures(long addr) { super(addr); }
18 |
19 | // internal usage only
20 | public static MergeExposures __fromPtr__(long addr) { return new MergeExposures(addr); }
21 |
22 | //
23 | // C++: void process(vector_Mat src, Mat& dst, Mat times, Mat response)
24 | //
25 |
26 | //javadoc: MergeExposures::process(src, dst, times, response)
27 | public void process(List src, Mat dst, Mat times, Mat response)
28 | {
29 | Mat src_mat = Converters.vector_Mat_to_Mat(src);
30 | process_0(nativeObj, src_mat.nativeObj, dst.nativeObj, times.nativeObj, response.nativeObj);
31 |
32 | return;
33 | }
34 |
35 |
36 | @Override
37 | protected void finalize() throws Throwable {
38 | delete(nativeObj);
39 | }
40 |
41 |
42 |
43 | // C++: void process(vector_Mat src, Mat& dst, Mat times, Mat response)
44 | private static native void process_0(long nativeObj, long src_mat_nativeObj, long dst_nativeObj, long times_nativeObj, long response_nativeObj);
45 |
46 | // native support for java finalize()
47 | private static native void delete(long nativeObj);
48 |
49 | }
50 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/photo/MergeRobertson.java:
--------------------------------------------------------------------------------
1 | //
2 | // This file is auto-generated. Please don't modify it!
3 | //
4 | package org.opencv.photo;
5 |
6 | import java.util.ArrayList;
7 | import java.util.List;
8 | import org.opencv.core.Mat;
9 | import org.opencv.photo.MergeExposures;
10 | import org.opencv.utils.Converters;
11 |
12 | // C++: class MergeRobertson
13 | //javadoc: MergeRobertson
14 |
15 | public class MergeRobertson extends MergeExposures {
16 |
17 | protected MergeRobertson(long addr) { super(addr); }
18 |
19 | // internal usage only
20 | public static MergeRobertson __fromPtr__(long addr) { return new MergeRobertson(addr); }
21 |
22 | //
23 | // C++: void process(vector_Mat src, Mat& dst, Mat times, Mat response)
24 | //
25 |
26 | //javadoc: MergeRobertson::process(src, dst, times, response)
27 | public void process(List src, Mat dst, Mat times, Mat response)
28 | {
29 | Mat src_mat = Converters.vector_Mat_to_Mat(src);
30 | process_0(nativeObj, src_mat.nativeObj, dst.nativeObj, times.nativeObj, response.nativeObj);
31 |
32 | return;
33 | }
34 |
35 |
36 | //
37 | // C++: void process(vector_Mat src, Mat& dst, Mat times)
38 | //
39 |
40 | //javadoc: MergeRobertson::process(src, dst, times)
41 | public void process(List src, Mat dst, Mat times)
42 | {
43 | Mat src_mat = Converters.vector_Mat_to_Mat(src);
44 | process_1(nativeObj, src_mat.nativeObj, dst.nativeObj, times.nativeObj);
45 |
46 | return;
47 | }
48 |
49 |
50 | @Override
51 | protected void finalize() throws Throwable {
52 | delete(nativeObj);
53 | }
54 |
55 |
56 |
57 | // C++: void process(vector_Mat src, Mat& dst, Mat times, Mat response)
58 | private static native void process_0(long nativeObj, long src_mat_nativeObj, long dst_nativeObj, long times_nativeObj, long response_nativeObj);
59 |
60 | // C++: void process(vector_Mat src, Mat& dst, Mat times)
61 | private static native void process_1(long nativeObj, long src_mat_nativeObj, long dst_nativeObj, long times_nativeObj);
62 |
63 | // native support for java finalize()
64 | private static native void delete(long nativeObj);
65 |
66 | }
67 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/photo/Tonemap.java:
--------------------------------------------------------------------------------
1 | //
2 | // This file is auto-generated. Please don't modify it!
3 | //
4 | package org.opencv.photo;
5 |
6 | import org.opencv.core.Algorithm;
7 | import org.opencv.core.Mat;
8 |
9 | // C++: class Tonemap
10 | //javadoc: Tonemap
11 |
12 | public class Tonemap extends Algorithm {
13 |
14 | protected Tonemap(long addr) { super(addr); }
15 |
16 | // internal usage only
17 | public static Tonemap __fromPtr__(long addr) { return new Tonemap(addr); }
18 |
19 | //
20 | // C++: float getGamma()
21 | //
22 |
23 | //javadoc: Tonemap::getGamma()
24 | public float getGamma()
25 | {
26 |
27 | float retVal = getGamma_0(nativeObj);
28 |
29 | return retVal;
30 | }
31 |
32 |
33 | //
34 | // C++: void process(Mat src, Mat& dst)
35 | //
36 |
37 | //javadoc: Tonemap::process(src, dst)
38 | public void process(Mat src, Mat dst)
39 | {
40 |
41 | process_0(nativeObj, src.nativeObj, dst.nativeObj);
42 |
43 | return;
44 | }
45 |
46 |
47 | //
48 | // C++: void setGamma(float gamma)
49 | //
50 |
51 | //javadoc: Tonemap::setGamma(gamma)
52 | public void setGamma(float gamma)
53 | {
54 |
55 | setGamma_0(nativeObj, gamma);
56 |
57 | return;
58 | }
59 |
60 |
61 | @Override
62 | protected void finalize() throws Throwable {
63 | delete(nativeObj);
64 | }
65 |
66 |
67 |
68 | // C++: float getGamma()
69 | private static native float getGamma_0(long nativeObj);
70 |
71 | // C++: void process(Mat src, Mat& dst)
72 | private static native void process_0(long nativeObj, long src_nativeObj, long dst_nativeObj);
73 |
74 | // C++: void setGamma(float gamma)
75 | private static native void setGamma_0(long nativeObj, float gamma);
76 |
77 | // native support for java finalize()
78 | private static native void delete(long nativeObj);
79 |
80 | }
81 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/photo/TonemapDrago.java:
--------------------------------------------------------------------------------
1 | //
2 | // This file is auto-generated. Please don't modify it!
3 | //
4 | package org.opencv.photo;
5 |
6 | import org.opencv.photo.Tonemap;
7 |
8 | // C++: class TonemapDrago
9 | //javadoc: TonemapDrago
10 |
11 | public class TonemapDrago extends Tonemap {
12 |
13 | protected TonemapDrago(long addr) { super(addr); }
14 |
15 | // internal usage only
16 | public static TonemapDrago __fromPtr__(long addr) { return new TonemapDrago(addr); }
17 |
18 | //
19 | // C++: float getBias()
20 | //
21 |
22 | //javadoc: TonemapDrago::getBias()
23 | public float getBias()
24 | {
25 |
26 | float retVal = getBias_0(nativeObj);
27 |
28 | return retVal;
29 | }
30 |
31 |
32 | //
33 | // C++: float getSaturation()
34 | //
35 |
36 | //javadoc: TonemapDrago::getSaturation()
37 | public float getSaturation()
38 | {
39 |
40 | float retVal = getSaturation_0(nativeObj);
41 |
42 | return retVal;
43 | }
44 |
45 |
46 | //
47 | // C++: void setBias(float bias)
48 | //
49 |
50 | //javadoc: TonemapDrago::setBias(bias)
51 | public void setBias(float bias)
52 | {
53 |
54 | setBias_0(nativeObj, bias);
55 |
56 | return;
57 | }
58 |
59 |
60 | //
61 | // C++: void setSaturation(float saturation)
62 | //
63 |
64 | //javadoc: TonemapDrago::setSaturation(saturation)
65 | public void setSaturation(float saturation)
66 | {
67 |
68 | setSaturation_0(nativeObj, saturation);
69 |
70 | return;
71 | }
72 |
73 |
74 | @Override
75 | protected void finalize() throws Throwable {
76 | delete(nativeObj);
77 | }
78 |
79 |
80 |
81 | // C++: float getBias()
82 | private static native float getBias_0(long nativeObj);
83 |
84 | // C++: float getSaturation()
85 | private static native float getSaturation_0(long nativeObj);
86 |
87 | // C++: void setBias(float bias)
88 | private static native void setBias_0(long nativeObj, float bias);
89 |
90 | // C++: void setSaturation(float saturation)
91 | private static native void setSaturation_0(long nativeObj, float saturation);
92 |
93 | // native support for java finalize()
94 | private static native void delete(long nativeObj);
95 |
96 | }
97 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/photo/TonemapMantiuk.java:
--------------------------------------------------------------------------------
1 | //
2 | // This file is auto-generated. Please don't modify it!
3 | //
4 | package org.opencv.photo;
5 |
6 | import org.opencv.photo.Tonemap;
7 |
8 | // C++: class TonemapMantiuk
9 | //javadoc: TonemapMantiuk
10 |
11 | public class TonemapMantiuk extends Tonemap {
12 |
13 | protected TonemapMantiuk(long addr) { super(addr); }
14 |
15 | // internal usage only
16 | public static TonemapMantiuk __fromPtr__(long addr) { return new TonemapMantiuk(addr); }
17 |
18 | //
19 | // C++: float getSaturation()
20 | //
21 |
22 | //javadoc: TonemapMantiuk::getSaturation()
23 | public float getSaturation()
24 | {
25 |
26 | float retVal = getSaturation_0(nativeObj);
27 |
28 | return retVal;
29 | }
30 |
31 |
32 | //
33 | // C++: float getScale()
34 | //
35 |
36 | //javadoc: TonemapMantiuk::getScale()
37 | public float getScale()
38 | {
39 |
40 | float retVal = getScale_0(nativeObj);
41 |
42 | return retVal;
43 | }
44 |
45 |
46 | //
47 | // C++: void setSaturation(float saturation)
48 | //
49 |
50 | //javadoc: TonemapMantiuk::setSaturation(saturation)
51 | public void setSaturation(float saturation)
52 | {
53 |
54 | setSaturation_0(nativeObj, saturation);
55 |
56 | return;
57 | }
58 |
59 |
60 | //
61 | // C++: void setScale(float scale)
62 | //
63 |
64 | //javadoc: TonemapMantiuk::setScale(scale)
65 | public void setScale(float scale)
66 | {
67 |
68 | setScale_0(nativeObj, scale);
69 |
70 | return;
71 | }
72 |
73 |
74 | @Override
75 | protected void finalize() throws Throwable {
76 | delete(nativeObj);
77 | }
78 |
79 |
80 |
81 | // C++: float getSaturation()
82 | private static native float getSaturation_0(long nativeObj);
83 |
84 | // C++: float getScale()
85 | private static native float getScale_0(long nativeObj);
86 |
87 | // C++: void setSaturation(float saturation)
88 | private static native void setSaturation_0(long nativeObj, float saturation);
89 |
90 | // C++: void setScale(float scale)
91 | private static native void setScale_0(long nativeObj, float scale);
92 |
93 | // native support for java finalize()
94 | private static native void delete(long nativeObj);
95 |
96 | }
97 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/video/BackgroundSubtractor.java:
--------------------------------------------------------------------------------
1 | //
2 | // This file is auto-generated. Please don't modify it!
3 | //
4 | package org.opencv.video;
5 |
6 | import org.opencv.core.Algorithm;
7 | import org.opencv.core.Mat;
8 |
9 | // C++: class BackgroundSubtractor
10 | //javadoc: BackgroundSubtractor
11 |
12 | public class BackgroundSubtractor extends Algorithm {
13 |
14 | protected BackgroundSubtractor(long addr) { super(addr); }
15 |
16 | // internal usage only
17 | public static BackgroundSubtractor __fromPtr__(long addr) { return new BackgroundSubtractor(addr); }
18 |
19 | //
20 | // C++: void apply(Mat image, Mat& fgmask, double learningRate = -1)
21 | //
22 |
23 | //javadoc: BackgroundSubtractor::apply(image, fgmask, learningRate)
24 | public void apply(Mat image, Mat fgmask, double learningRate)
25 | {
26 |
27 | apply_0(nativeObj, image.nativeObj, fgmask.nativeObj, learningRate);
28 |
29 | return;
30 | }
31 |
32 | //javadoc: BackgroundSubtractor::apply(image, fgmask)
33 | public void apply(Mat image, Mat fgmask)
34 | {
35 |
36 | apply_1(nativeObj, image.nativeObj, fgmask.nativeObj);
37 |
38 | return;
39 | }
40 |
41 |
42 | //
43 | // C++: void getBackgroundImage(Mat& backgroundImage)
44 | //
45 |
46 | //javadoc: BackgroundSubtractor::getBackgroundImage(backgroundImage)
47 | public void getBackgroundImage(Mat backgroundImage)
48 | {
49 |
50 | getBackgroundImage_0(nativeObj, backgroundImage.nativeObj);
51 |
52 | return;
53 | }
54 |
55 |
56 | @Override
57 | protected void finalize() throws Throwable {
58 | delete(nativeObj);
59 | }
60 |
61 |
62 |
63 | // C++: void apply(Mat image, Mat& fgmask, double learningRate = -1)
64 | private static native void apply_0(long nativeObj, long image_nativeObj, long fgmask_nativeObj, double learningRate);
65 | private static native void apply_1(long nativeObj, long image_nativeObj, long fgmask_nativeObj);
66 |
67 | // C++: void getBackgroundImage(Mat& backgroundImage)
68 | private static native void getBackgroundImage_0(long nativeObj, long backgroundImage_nativeObj);
69 |
70 | // native support for java finalize()
71 | private static native void delete(long nativeObj);
72 |
73 | }
74 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/video/DenseOpticalFlow.java:
--------------------------------------------------------------------------------
1 | //
2 | // This file is auto-generated. Please don't modify it!
3 | //
4 | package org.opencv.video;
5 |
6 | import org.opencv.core.Algorithm;
7 | import org.opencv.core.Mat;
8 |
9 | // C++: class DenseOpticalFlow
10 | //javadoc: DenseOpticalFlow
11 |
12 | public class DenseOpticalFlow extends Algorithm {
13 |
14 | protected DenseOpticalFlow(long addr) { super(addr); }
15 |
16 | // internal usage only
17 | public static DenseOpticalFlow __fromPtr__(long addr) { return new DenseOpticalFlow(addr); }
18 |
19 | //
20 | // C++: void calc(Mat I0, Mat I1, Mat& flow)
21 | //
22 |
23 | //javadoc: DenseOpticalFlow::calc(I0, I1, flow)
24 | public void calc(Mat I0, Mat I1, Mat flow)
25 | {
26 |
27 | calc_0(nativeObj, I0.nativeObj, I1.nativeObj, flow.nativeObj);
28 |
29 | return;
30 | }
31 |
32 |
33 | //
34 | // C++: void collectGarbage()
35 | //
36 |
37 | //javadoc: DenseOpticalFlow::collectGarbage()
38 | public void collectGarbage()
39 | {
40 |
41 | collectGarbage_0(nativeObj);
42 |
43 | return;
44 | }
45 |
46 |
47 | @Override
48 | protected void finalize() throws Throwable {
49 | delete(nativeObj);
50 | }
51 |
52 |
53 |
54 | // C++: void calc(Mat I0, Mat I1, Mat& flow)
55 | private static native void calc_0(long nativeObj, long I0_nativeObj, long I1_nativeObj, long flow_nativeObj);
56 |
57 | // C++: void collectGarbage()
58 | private static native void collectGarbage_0(long nativeObj);
59 |
60 | // native support for java finalize()
61 | private static native void delete(long nativeObj);
62 |
63 | }
64 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/java/org/opencv/video/SparseOpticalFlow.java:
--------------------------------------------------------------------------------
1 | //
2 | // This file is auto-generated. Please don't modify it!
3 | //
4 | package org.opencv.video;
5 |
6 | import org.opencv.core.Algorithm;
7 | import org.opencv.core.Mat;
8 |
9 | // C++: class SparseOpticalFlow
10 | //javadoc: SparseOpticalFlow
11 |
12 | public class SparseOpticalFlow extends Algorithm {
13 |
14 | protected SparseOpticalFlow(long addr) { super(addr); }
15 |
16 | // internal usage only
17 | public static SparseOpticalFlow __fromPtr__(long addr) { return new SparseOpticalFlow(addr); }
18 |
19 | //
20 | // C++: void calc(Mat prevImg, Mat nextImg, Mat prevPts, Mat& nextPts, Mat& status, Mat& err = cv::Mat())
21 | //
22 |
23 | //javadoc: SparseOpticalFlow::calc(prevImg, nextImg, prevPts, nextPts, status, err)
24 | public void calc(Mat prevImg, Mat nextImg, Mat prevPts, Mat nextPts, Mat status, Mat err)
25 | {
26 |
27 | calc_0(nativeObj, prevImg.nativeObj, nextImg.nativeObj, prevPts.nativeObj, nextPts.nativeObj, status.nativeObj, err.nativeObj);
28 |
29 | return;
30 | }
31 |
32 | //javadoc: SparseOpticalFlow::calc(prevImg, nextImg, prevPts, nextPts, status)
33 | public void calc(Mat prevImg, Mat nextImg, Mat prevPts, Mat nextPts, Mat status)
34 | {
35 |
36 | calc_1(nativeObj, prevImg.nativeObj, nextImg.nativeObj, prevPts.nativeObj, nextPts.nativeObj, status.nativeObj);
37 |
38 | return;
39 | }
40 |
41 |
42 | @Override
43 | protected void finalize() throws Throwable {
44 | delete(nativeObj);
45 | }
46 |
47 |
48 |
49 | // C++: void calc(Mat prevImg, Mat nextImg, Mat prevPts, Mat& nextPts, Mat& status, Mat& err = cv::Mat())
50 | private static native void calc_0(long nativeObj, long prevImg_nativeObj, long nextImg_nativeObj, long prevPts_nativeObj, long nextPts_nativeObj, long status_nativeObj, long err_nativeObj);
51 | private static native void calc_1(long nativeObj, long prevImg_nativeObj, long nextImg_nativeObj, long prevPts_nativeObj, long nextPts_nativeObj, long status_nativeObj);
52 |
53 | // native support for java finalize()
54 | private static native void delete(long nativeObj);
55 |
56 | }
57 |
--------------------------------------------------------------------------------
/Lnotes/openCVLibrary341/src/main/res/values/attrs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Lnotes/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | include ':openCVLibrary330'
3 | include ':openCVLibrary341'
4 |
--------------------------------------------------------------------------------
/Logo/horizontal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Gauravv97/LNotes-Linked-Notes/1cf987247fd4e2497d618f15214cc802955b3b35/Logo/horizontal.png
--------------------------------------------------------------------------------
/Logo/logomark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Gauravv97/LNotes-Linked-Notes/1cf987247fd4e2497d618f15214cc802955b3b35/Logo/logomark.png
--------------------------------------------------------------------------------
/Logo/vertical.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Gauravv97/LNotes-Linked-Notes/1cf987247fd4e2497d618f15214cc802955b3b35/Logo/vertical.png
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | LNotes:Linked Notes Android DocumentScanner and Retriever
2 | =========================================================
3 |
4 |
5 |
6 |
7 |
8 | An open-source android scanner with the added functionality of assigning an image as a marker to your notes for easy retrieval. LNotes uses OpenCV for enhancing documents and comes with 5 different filters. For assigning a marker and scanning it to match with previous markers we use ORB image matcher with cached key Points to have insanely fast image matching.
9 |
10 | This can be particularly useful when we want to have additional study material in our documents/handwritten notes without physically adding them. With LNotes you can do this by assigning a marker to your notes and scanning it whenever the document is required.
11 |
12 | ## Downloads
13 |
14 | Download apk from [here](/apk/)
15 |
16 |
17 |
18 | ## Demo
19 |
20 | 
21 |
22 | ## Features
23 |
24 | * Assigning image tags to each individual photo
25 | * PDF creation
26 | * 5 diffrent scanning modes
27 | * Sharing in the form of PDF or Images
28 | * Quadrilateral/4-Point crop
29 | * Pinch/Double-Tap Zoom in gallery
30 |
31 | ## Some Samples
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 | ### External code
40 |
41 | 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 essential parts I've got on the internet and used in the code:
42 |
43 | * [Android-er / GridView code sample](http://android-er.blogspot.com.br/2012/07/gridview-loading-photos-from-sd-card.html)
44 | * [davemorrissey's subsampling-scale-image-view is a major part of the gallery](https://github.com/davemorrissey/subsampling-scale-image-view/)
45 | * [Claudemir Todo Bom's opennotescanner app for camera design and scanning](https://github.com/ctodobom/OpenNoteScanner)
46 | * [OpenCv community](https://opencv.org/)
47 | * [Jhansi Reddy's PolygonView for cropping quadrilateral](https://github.com/jhansireddy/AndroidScannerDemo)
48 |
49 | ### Attributions
50 |
51 | * [Zularizal](https://github.com/zularizal) for new [Logos](https://github.com/Gauravv97/LNotes-Linked-Notes/tree/master/Logo)
52 |
53 | ## About
54 |
55 | Copyright 2018 Gaurav Chaudhari, and licensed under the Apache License, Version 2.0. No attribution is necessary but it's very much appreciated. Star this project if you like it!
56 |
57 |
--------------------------------------------------------------------------------
/Sample/Demo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Gauravv97/LNotes-Linked-Notes/1cf987247fd4e2497d618f15214cc802955b3b35/Sample/Demo.gif
--------------------------------------------------------------------------------
/Sample/Img1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Gauravv97/LNotes-Linked-Notes/1cf987247fd4e2497d618f15214cc802955b3b35/Sample/Img1.jpg
--------------------------------------------------------------------------------
/Sample/Img2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Gauravv97/LNotes-Linked-Notes/1cf987247fd4e2497d618f15214cc802955b3b35/Sample/Img2.jpg
--------------------------------------------------------------------------------
/Sample/Img3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Gauravv97/LNotes-Linked-Notes/1cf987247fd4e2497d618f15214cc802955b3b35/Sample/Img3.jpg
--------------------------------------------------------------------------------
/Sample/Img4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Gauravv97/LNotes-Linked-Notes/1cf987247fd4e2497d618f15214cc802955b3b35/Sample/Img4.jpg
--------------------------------------------------------------------------------
/Sample/Img5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Gauravv97/LNotes-Linked-Notes/1cf987247fd4e2497d618f15214cc802955b3b35/Sample/Img5.jpg
--------------------------------------------------------------------------------
/Sample/Img6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Gauravv97/LNotes-Linked-Notes/1cf987247fd4e2497d618f15214cc802955b3b35/Sample/Img6.jpg
--------------------------------------------------------------------------------
/Sample/Img7.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Gauravv97/LNotes-Linked-Notes/1cf987247fd4e2497d618f15214cc802955b3b35/Sample/Img7.jpg
--------------------------------------------------------------------------------
/Sample/Img8.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Gauravv97/LNotes-Linked-Notes/1cf987247fd4e2497d618f15214cc802955b3b35/Sample/Img8.jpg
--------------------------------------------------------------------------------
/Sample/Img9.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Gauravv97/LNotes-Linked-Notes/1cf987247fd4e2497d618f15214cc802955b3b35/Sample/Img9.jpg
--------------------------------------------------------------------------------
/apk/app-arm64-v8a-debug.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Gauravv97/LNotes-Linked-Notes/1cf987247fd4e2497d618f15214cc802955b3b35/apk/app-arm64-v8a-debug.apk
--------------------------------------------------------------------------------
/apk/app-armeabi-v7a-debug.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Gauravv97/LNotes-Linked-Notes/1cf987247fd4e2497d618f15214cc802955b3b35/apk/app-armeabi-v7a-debug.apk
--------------------------------------------------------------------------------