├── .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 | 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 | 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 | ![Demo](Sample/Demo.gif) 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 --------------------------------------------------------------------------------