├── .gitignore
├── .idea
├── compiler.xml
├── copyright
│ └── profiles_settings.xml
├── gradle.xml
├── libraries
│ ├── animated_vector_drawable_24_2_1.xml
│ ├── appcompat_v7_24_2_1.xml
│ ├── cardview_v7_24_2_1.xml
│ ├── circleimageview_2_1_0.xml
│ ├── design_24_2_1.xml
│ ├── espresso_core_2_2_2.xml
│ ├── espresso_idling_resource_2_2_2.xml
│ ├── exposed_instrumentation_api_publish_0_5.xml
│ ├── glide_3_7_0.xml
│ ├── hamcrest_core_1_3.xml
│ ├── hamcrest_integration_1_3.xml
│ ├── hamcrest_library_1_3.xml
│ ├── javawriter_2_1_1.xml
│ ├── javax_annotation_api_1_2.xml
│ ├── javax_inject_1.xml
│ ├── jsr305_2_0_1.xml
│ ├── junit_4_12.xml
│ ├── libsvm.xml
│ ├── okhttp_3_7_0.xml
│ ├── okio_1_12_0.xml
│ ├── recyclerview_v7_24_2_1.xml
│ ├── rules_0_5.xml
│ ├── runner_0_5.xml
│ ├── support_annotations_24_2_1.xml
│ ├── support_compat_24_2_1.xml
│ ├── support_core_ui_24_2_1.xml
│ ├── support_core_utils_24_2_1.xml
│ ├── support_fragment_24_2_1.xml
│ ├── support_media_compat_24_2_1.xml
│ ├── support_v4_24_2_1.xml
│ └── support_vector_drawable_24_2_1.xml
├── misc.xml
├── modules.xml
├── runConfigurations.xml
└── vcs.xml
├── LICENSE
├── README.md
├── app
├── .gitignore
├── build.gradle
├── libs
│ └── libsvm.jar
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── cn
│ │ └── edu
│ │ └── ecust
│ │ └── faceaccesscontrol
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── cn
│ │ │ └── edu
│ │ │ └── ecust
│ │ │ └── faceaccesscontrol
│ │ │ ├── activity
│ │ │ ├── AdminApproveDetailActivity.java
│ │ │ ├── AdminConfigActivity.java
│ │ │ ├── AdminMainActivity.java
│ │ │ ├── AdminNoticeActivity.java
│ │ │ ├── AdminNoticeEditActivity.java
│ │ │ ├── AdminUserApproveActivity.java
│ │ │ ├── AdminUserDetialActivity.java
│ │ │ ├── AdminUserManageActivity.java
│ │ │ ├── CalculateActivity.java
│ │ │ ├── CameraRecognizeActivity.java
│ │ │ ├── CameraRegisterActivity.java
│ │ │ ├── HistoryActivity.java
│ │ │ ├── NoAdminMainActivity.java
│ │ │ ├── PasswordLoginActivity.java
│ │ │ ├── RegisterNewUserActivity.java
│ │ │ ├── RegisterResultActivity.java
│ │ │ ├── ResultActivity.java
│ │ │ └── WelcomeActivity.java
│ │ │ ├── common
│ │ │ ├── ExitDialogActivity.java
│ │ │ ├── FullScreenActivity.java
│ │ │ └── Toolbar2Activity.java
│ │ │ ├── manage
│ │ │ ├── ActivityCollector.java
│ │ │ ├── AllUseAlertDialog.java
│ │ │ └── MyDatabaseHelper.java
│ │ │ └── userrecycler
│ │ │ ├── ApproveUserCardAdapter.java
│ │ │ ├── HistoryUserCardAdapter.java
│ │ │ ├── UserCard.java
│ │ │ └── UserCardAdapter.java
│ └── res
│ │ ├── drawable
│ │ ├── app_faceicon.png
│ │ ├── ic_admin.png
│ │ ├── ic_back.png
│ │ ├── ic_close.png
│ │ ├── ic_delete.png
│ │ ├── ic_failure.png
│ │ ├── ic_home.png
│ │ ├── ic_menu.png
│ │ ├── ic_ok.png
│ │ ├── ic_refuse.png
│ │ ├── ic_success.png
│ │ ├── ic_tutor.png
│ │ ├── nav_call.png
│ │ ├── nav_close.png
│ │ ├── nav_config.png
│ │ ├── nav_icon.jpg
│ │ ├── nav_location.png
│ │ ├── nav_mail.png
│ │ ├── noadminmainactivity_button_adminlogin.png
│ │ ├── noadminmainactivity_button_recognize.png
│ │ ├── noadminmainactivity_button_register.png
│ │ └── welcomeactivity_background.png
│ │ ├── layout
│ │ ├── activity_admin_approve_detail.xml
│ │ ├── activity_admin_config.xml
│ │ ├── activity_admin_main.xml
│ │ ├── activity_admin_notice.xml
│ │ ├── activity_admin_notice_edit.xml
│ │ ├── activity_admin_user_approve.xml
│ │ ├── activity_admin_user_detial.xml
│ │ ├── activity_admin_user_manage.xml
│ │ ├── activity_calculate.xml
│ │ ├── activity_camera_recognize.xml
│ │ ├── activity_camera_register.xml
│ │ ├── activity_history.xml
│ │ ├── activity_no_admin_main.xml
│ │ ├── activity_password_login.xml
│ │ ├── activity_register_new_user.xml
│ │ ├── activity_register_result.xml
│ │ ├── activity_result.xml
│ │ ├── activity_welcome.xml
│ │ ├── alert_password.xml
│ │ ├── nav_header.xml
│ │ └── usercard_item.xml
│ │ ├── menu
│ │ ├── nav_menu.xml
│ │ └── toolbar.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
│ │ ├── raw
│ │ ├── eyeglasses.jpg
│ │ ├── haarcascade_frontalface_alt2.xml
│ │ └── haarcascade_mcs_eyepair_big.xml
│ │ ├── values-w820dp
│ │ └── dimens.xml
│ │ └── values
│ │ ├── colors.xml
│ │ ├── dimens.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ └── test
│ └── java
│ └── cn
│ └── edu
│ └── ecust
│ └── faceaccesscontrol
│ └── ExampleUnitTest.java
├── build.gradle
├── gradle.properties
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── import-summary.txt
├── openCVLibrary320
├── 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
│ │ ├── 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
│ │ ├── Point.java
│ │ ├── Point3.java
│ │ ├── Range.java
│ │ ├── Rect.java
│ │ ├── RotatedRect.java
│ │ ├── Scalar.java
│ │ ├── Size.java
│ │ ├── TermCriteria.java
│ │ └── TickMeter.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
│ │ ├── Boost.java
│ │ ├── DTrees.java
│ │ ├── EM.java
│ │ ├── KNearest.java
│ │ ├── LogisticRegression.java
│ │ ├── Ml.java
│ │ ├── NormalBayesClassifier.java
│ │ ├── RTrees.java
│ │ ├── SVM.java
│ │ ├── SVMSGD.java
│ │ ├── StatModel.java
│ │ └── TrainData.java
│ │ ├── objdetect
│ │ ├── BaseCascadeClassifier.java
│ │ ├── CascadeClassifier.java
│ │ ├── HOGDescriptor.java
│ │ └── Objdetect.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
└── show_img
├── face.png
├── face_yes.png
├── manage.png
└── user_gui.png
/.gitignore:
--------------------------------------------------------------------------------
1 | # Built application files
2 | *.apk
3 | *.ap_
4 |
5 | # Files for the ART/Dalvik VM
6 | *.dex
7 |
8 | # Java class files
9 | *.class
10 |
11 | # Generated files
12 | bin/
13 | gen/
14 | out/
15 |
16 | # Gradle files
17 | .gradle/
18 | build/
19 |
20 | # Local configuration file (sdk path, etc)
21 | local.properties
22 |
23 | # Proguard folder generated by Eclipse
24 | proguard/
25 |
26 | # Log Files
27 | *.log
28 |
29 | # Android Studio Navigation editor temp files
30 | .navigation/
31 |
32 | # Android Studio captures folder
33 | captures/
34 |
35 | # Intellij
36 | *.iml
37 | .idea/workspace.xml
38 |
39 | # Keystore files
40 | *.jks
41 |
--------------------------------------------------------------------------------
/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/.idea/copyright/profiles_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/.idea/gradle.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
19 |
20 |
--------------------------------------------------------------------------------
/.idea/libraries/animated_vector_drawable_24_2_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/appcompat_v7_24_2_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/.idea/libraries/cardview_v7_24_2_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/libraries/circleimageview_2_1_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/libraries/design_24_2_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/.idea/libraries/espresso_core_2_2_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/espresso_idling_resource_2_2_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/exposed_instrumentation_api_publish_0_5.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/glide_3_7_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/libraries/hamcrest_core_1_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/libraries/hamcrest_integration_1_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/libraries/hamcrest_library_1_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/libraries/javawriter_2_1_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/libraries/javax_annotation_api_1_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/libraries/javax_inject_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/libraries/jsr305_2_0_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/libraries/junit_4_12.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/libraries/libsvm.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/libraries/okhttp_3_7_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/libraries/okio_1_12_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/libraries/recyclerview_v7_24_2_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/.idea/libraries/rules_0_5.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/.idea/libraries/runner_0_5.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/.idea/libraries/support_annotations_24_2_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/libraries/support_compat_24_2_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/.idea/libraries/support_core_ui_24_2_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/.idea/libraries/support_core_utils_24_2_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/.idea/libraries/support_fragment_24_2_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/.idea/libraries/support_media_compat_24_2_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/.idea/libraries/support_v4_24_2_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/libraries/support_vector_drawable_24_2_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/runConfigurations.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # FaceAccessControl
2 | ### 本科毕业设计,基于Android的人脸门禁系统
3 |
4 |
5 | 传统的门禁系统以钥匙作为验证手段,便捷程度低,丢失钥匙之后会导致极大的安全问题。人脸是一种极易获得的生物特征,具有唯一性、稳定性的特点,并且使用时设备无需与人脸接触,因此可以作为新一代的门禁验证手段。近年来,随着Android移动设备性能的不断提升,使得在移动设备上进行人脸识别成为可能。本repo设计并开发了一个基于Android平台的人脸识别门禁系统,并解决了在实际运用中可能遇到的光照变化,人脸姿态变化等情况。主要内容如下:
6 | * 1)基于双眼检测的正脸判断算法研究。人脸识别中,人脸的姿态变化会导致识别率降低。首先研究实现了基于Haar特征的Adaboost人脸检测算法,检测定位出人脸的框架和双眼的位置。然后通过人脸与双眼的位置关系,提出了一个正脸判断的方法。实验表明,该方法有效地降低了人脸姿态问题对于整个识别系统的影响。
7 | * 2)基于LBP+PCA的人脸识别算法研究。首先分析了局部二值模式LBP和主成份分析PCA的原理,研究了LBP与PCA相结合的特征提取方法。相对于单独使用PCA方法,该组合方法能够有效地降低光照变化对人脸识别准确度的影响。然后,采用支持向量机对特征进行分类,并利用置信度计算方法,来有效地表示人脸和分类结果的隶属程度。实验表明,该算法对于光照变化情况下的人脸识别,准确率有了明显的提升。
8 | * 3)Android平台上人脸识别门禁系统的设计与实现。分析了系统的需求,设计了具有用户注册、人脸检测与识别、门禁开关、管理员模块、通知模块等功能模块的人脸识别门禁系统。然后在Android平台上,利用Java语言和计算机图像视觉库Opencv,按照软件工程逻辑完成了系统的整体开发。整个系统经过测试运行,能够满足典型环境中的使用需求。
9 |
10 | # 部分系统界面
11 | 用户主界面:
12 | 
13 | 识别界面:
14 | 
15 | 识别成功页面:
16 | 
17 | 用户管理页面:
18 | 
19 |
--------------------------------------------------------------------------------
/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/app/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 |
3 | android {
4 | compileSdkVersion 24
5 | buildToolsVersion "24.0.3"
6 | defaultConfig {
7 | applicationId "cn.edu.ecust.faceaccesscontrol"
8 | minSdkVersion 17
9 | targetSdkVersion 24
10 | versionCode 1
11 | versionName "1.0"
12 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
13 | }
14 | buildTypes {
15 | release {
16 | minifyEnabled false
17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
18 | }
19 | }
20 | }
21 |
22 | dependencies {
23 | compile fileTree(include: ['*.jar'], dir: 'libs')
24 | androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
25 | exclude group: 'com.android.support', module: 'support-annotations'
26 | })
27 | compile 'com.android.support:appcompat-v7:24.2.1'
28 | testCompile 'junit:junit:4.12'
29 | compile 'com.android.support:design:24.2.1'
30 | compile 'de.hdodenhof:circleimageview:2.1.0'
31 | compile project(':openCVLibrary320')
32 | compile 'com.android.support:recyclerview-v7:24.2.1'
33 | compile 'com.android.support:cardview-v7:24.2.1'
34 | compile 'com.github.bumptech.glide:glide:3.7.0'
35 | compile files('libs/libsvm.jar')
36 | compile 'com.squareup.okhttp3:okhttp:3.7.0'
37 | }
38 |
--------------------------------------------------------------------------------
/app/libs/libsvm.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CommissarMa/FaceAccessControl/95cfeb5f76918cb64eb01609e22ea4fc71a52b1f/app/libs/libsvm.jar
--------------------------------------------------------------------------------
/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 D:\IDE\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 |
--------------------------------------------------------------------------------
/app/src/androidTest/java/cn/edu/ecust/faceaccesscontrol/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package cn.edu.ecust.faceaccesscontrol;
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("cn.edu.ecust.faceaccesscontrol", appContext.getPackageName());
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/app/src/main/java/cn/edu/ecust/faceaccesscontrol/activity/AdminNoticeEditActivity.java:
--------------------------------------------------------------------------------
1 |
2 | package cn.edu.ecust.faceaccesscontrol.activity;
3 |
4 | import android.content.Intent;
5 | import android.database.Cursor;
6 | import android.database.sqlite.SQLiteDatabase;
7 | import android.support.v7.app.AppCompatActivity;
8 | import android.os.Bundle;
9 | import android.support.v7.widget.AppCompatEditText;
10 | import android.support.v7.widget.Toolbar;
11 | import android.util.Log;
12 | import android.view.View;
13 | import android.widget.Button;
14 | import android.widget.Toast;
15 |
16 | import cn.edu.ecust.faceaccesscontrol.R;
17 | import cn.edu.ecust.faceaccesscontrol.common.Toolbar2Activity;
18 | import cn.edu.ecust.faceaccesscontrol.manage.MyDatabaseHelper;
19 |
20 | public class AdminNoticeEditActivity extends Toolbar2Activity {
21 |
22 | @Override
23 | protected void onCreate(Bundle savedInstanceState) {
24 | super.onCreate(savedInstanceState);
25 | setContentView(R.layout.activity_admin_notice_edit);
26 | Toolbar toolbar=(Toolbar)findViewById(R.id.toolbar);//找到工具条
27 | setSupportActionBar(toolbar);//激活工具条
28 |
29 | final AppCompatEditText noticeEditText=(AppCompatEditText)findViewById(R.id.adminnoticeeditpage_addnotice_edittext);//修改编辑框
30 | Button noticeEditButton=(Button)findViewById(R.id.adminnoticeeditpage_addnotice_button);//修改按钮
31 |
32 | Intent intent_lastActvity=getIntent();
33 | final int index=intent_lastActvity.getIntExtra("idIndexInDB",0);
34 |
35 | MyDatabaseHelper dbHelper=new MyDatabaseHelper(AdminNoticeEditActivity.this,"Face.db",null,1);
36 | final SQLiteDatabase db=dbHelper.getWritableDatabase();
37 | Cursor cursor=db.rawQuery("select * from Notice where id= ? ",new String[]{""+index});
38 | if(cursor.moveToFirst()){
39 | do {
40 | noticeEditText.setText(cursor.getString(cursor.getColumnIndex("noticetext")));
41 | }while (cursor.moveToNext());
42 | }
43 | cursor.close();
44 |
45 | noticeEditButton.setOnClickListener(new View.OnClickListener() {
46 | @Override
47 | public void onClick(View v) {
48 | if(!noticeEditText.getText().toString().equals("")){
49 | db.execSQL("update Notice set noticetext = ? where id = ? ",new String[]{noticeEditText.getText().toString(),index+""});
50 | finish();
51 | }else{
52 | Toast.makeText(AdminNoticeEditActivity.this,"通知内容不能为空",Toast.LENGTH_SHORT).show();
53 | }
54 | }
55 | });
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/app/src/main/java/cn/edu/ecust/faceaccesscontrol/activity/AdminUserApproveActivity.java:
--------------------------------------------------------------------------------
1 | package cn.edu.ecust.faceaccesscontrol.activity;
2 |
3 | import android.content.Context;
4 | import android.database.Cursor;
5 | import android.database.sqlite.SQLiteDatabase;
6 | import android.support.v7.app.AppCompatActivity;
7 | import android.os.Bundle;
8 | import android.support.v7.widget.GridLayoutManager;
9 | import android.support.v7.widget.RecyclerView;
10 | import android.support.v7.widget.Toolbar;
11 |
12 | import java.io.File;
13 | import java.util.ArrayList;
14 | import java.util.List;
15 |
16 | import cn.edu.ecust.faceaccesscontrol.R;
17 | import cn.edu.ecust.faceaccesscontrol.common.Toolbar2Activity;
18 | import cn.edu.ecust.faceaccesscontrol.manage.MyDatabaseHelper;
19 | import cn.edu.ecust.faceaccesscontrol.userrecycler.ApproveUserCardAdapter;
20 | import cn.edu.ecust.faceaccesscontrol.userrecycler.UserCard;
21 | import cn.edu.ecust.faceaccesscontrol.userrecycler.UserCardAdapter;
22 |
23 | public class AdminUserApproveActivity extends Toolbar2Activity {
24 |
25 | private List userCardList=new ArrayList<>();
26 | private ApproveUserCardAdapter adapter;
27 |
28 | @Override
29 | protected void onCreate(Bundle savedInstanceState) {
30 | super.onCreate(savedInstanceState);
31 | setContentView(R.layout.activity_admin_user_approve);
32 | Toolbar toolbarCommon=(Toolbar)findViewById(R.id.adminuserapproveactivity_toolbar_common);//找到工具条
33 | setSupportActionBar(toolbarCommon);//激活工具条
34 | }
35 |
36 | @Override
37 | protected void onResume() {
38 | super.onResume();
39 |
40 | //清空列表
41 | userCardList=new ArrayList<>();
42 | //先从数据库中获取所有用户的工号
43 | getAllUserNoFromDB();//这时候userCardList就有数据了
44 |
45 | //填充RecyclerView
46 | RecyclerView recyclerView=(RecyclerView)findViewById(R.id.adminuserapproveactivity_recyclerview_main);
47 | GridLayoutManager layoutManager=new GridLayoutManager(this,4);//设置每行显示的card数量
48 | recyclerView.setLayoutManager(layoutManager);
49 | adapter=new ApproveUserCardAdapter(userCardList);
50 | recyclerView.setAdapter(adapter);
51 | }
52 |
53 | private void getAllUserNoFromDB(){
54 | File faceDir = getDir("face", Context.MODE_PRIVATE);//有此目录就获取,没有就创建
55 | MyDatabaseHelper dbHelper=new MyDatabaseHelper(AdminUserApproveActivity.this,"Face.db",null,1);
56 | SQLiteDatabase db=dbHelper.getWritableDatabase();
57 | Cursor cursor=db.rawQuery("select no from User where grant = 0",null);
58 | if(cursor.moveToFirst()){
59 | do{
60 | String userNo=cursor.getString(cursor.getColumnIndex("no"));
61 | UserCard userCard=new UserCard(userNo,faceDir.getAbsolutePath()+"/"+userNo+"_1.jpg");
62 | userCardList.add(userCard);
63 | }while (cursor.moveToNext());
64 | }
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/app/src/main/java/cn/edu/ecust/faceaccesscontrol/activity/AdminUserManageActivity.java:
--------------------------------------------------------------------------------
1 | package cn.edu.ecust.faceaccesscontrol.activity;
2 |
3 | import android.content.Context;
4 | import android.database.Cursor;
5 | import android.database.sqlite.SQLiteDatabase;
6 | import android.support.v7.app.AppCompatActivity;
7 | import android.os.Bundle;
8 | import android.support.v7.widget.GridLayoutManager;
9 | import android.support.v7.widget.RecyclerView;
10 | import android.support.v7.widget.Toolbar;
11 |
12 | import java.io.File;
13 | import java.util.ArrayList;
14 | import java.util.List;
15 |
16 | import cn.edu.ecust.faceaccesscontrol.R;
17 | import cn.edu.ecust.faceaccesscontrol.common.Toolbar2Activity;
18 | import cn.edu.ecust.faceaccesscontrol.manage.MyDatabaseHelper;
19 | import cn.edu.ecust.faceaccesscontrol.userrecycler.UserCard;
20 | import cn.edu.ecust.faceaccesscontrol.userrecycler.UserCardAdapter;
21 |
22 | public class AdminUserManageActivity extends Toolbar2Activity {
23 |
24 | private List userCardList=new ArrayList<>();
25 | private UserCardAdapter adapter;
26 |
27 | @Override
28 | protected void onCreate(Bundle savedInstanceState) {
29 | super.onCreate(savedInstanceState);
30 | setContentView(R.layout.activity_admin_user_manage);
31 | Toolbar toolbarCommon=(Toolbar)findViewById(R.id.adminusermanageactivity_toolbar_common);//找到工具条
32 | setSupportActionBar(toolbarCommon);//激活工具条
33 | }
34 |
35 | @Override
36 | protected void onResume() {
37 | super.onResume();
38 |
39 | //清空列表
40 | userCardList=new ArrayList<>();
41 | //先从数据库中获取所有用户的工号
42 | getAllUserNoFromDB();//这时候userCardList就有数据了
43 |
44 | //填充RecyclerView
45 | RecyclerView recyclerView=(RecyclerView)findViewById(R.id.adminusermanageactivity_recyclerview_main);
46 | GridLayoutManager layoutManager=new GridLayoutManager(this,4);//设置每行显示的card数量
47 | recyclerView.setLayoutManager(layoutManager);
48 | adapter=new UserCardAdapter(userCardList);
49 | recyclerView.setAdapter(adapter);
50 | }
51 |
52 | private void getAllUserNoFromDB(){
53 | File faceDir = getDir("face", Context.MODE_PRIVATE);//有此目录就获取,没有就创建
54 | MyDatabaseHelper dbHelper=new MyDatabaseHelper(AdminUserManageActivity.this,"Face.db",null,1);
55 | SQLiteDatabase db=dbHelper.getWritableDatabase();
56 | Cursor cursor=db.rawQuery("select no from User where grant = 1",null);
57 | if(cursor.moveToFirst()){
58 | do{
59 | String userNo=cursor.getString(cursor.getColumnIndex("no"));
60 | UserCard userCard=new UserCard(userNo,faceDir.getAbsolutePath()+"/"+userNo+"_1.jpg");
61 | userCardList.add(userCard);
62 | }while (cursor.moveToNext());
63 | }
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/app/src/main/java/cn/edu/ecust/faceaccesscontrol/activity/HistoryActivity.java:
--------------------------------------------------------------------------------
1 | package cn.edu.ecust.faceaccesscontrol.activity;
2 |
3 | import android.content.Context;
4 | import android.database.Cursor;
5 | import android.database.sqlite.SQLiteDatabase;
6 | import android.support.v7.app.AppCompatActivity;
7 | import android.os.Bundle;
8 | import android.support.v7.widget.GridLayoutManager;
9 | import android.support.v7.widget.RecyclerView;
10 | import android.support.v7.widget.Toolbar;
11 |
12 | import java.io.File;
13 | import java.util.ArrayList;
14 | import java.util.List;
15 |
16 | import cn.edu.ecust.faceaccesscontrol.R;
17 | import cn.edu.ecust.faceaccesscontrol.common.Toolbar2Activity;
18 | import cn.edu.ecust.faceaccesscontrol.manage.MyDatabaseHelper;
19 | import cn.edu.ecust.faceaccesscontrol.userrecycler.HistoryUserCardAdapter;
20 | import cn.edu.ecust.faceaccesscontrol.userrecycler.UserCard;
21 | import cn.edu.ecust.faceaccesscontrol.userrecycler.UserCardAdapter;
22 |
23 | public class HistoryActivity extends Toolbar2Activity {
24 |
25 | private List userCardList=new ArrayList<>();
26 | private HistoryUserCardAdapter adapter;
27 |
28 | @Override
29 | protected void onCreate(Bundle savedInstanceState) {
30 | super.onCreate(savedInstanceState);
31 | setContentView(R.layout.activity_history);
32 | Toolbar toolbarCommon=(Toolbar)findViewById(R.id.historyactivity_toolbar_common);//找到工具条
33 | setSupportActionBar(toolbarCommon);//激活工具条
34 | }
35 |
36 | @Override
37 | protected void onResume() {
38 | super.onResume();
39 |
40 | //清空列表
41 | userCardList=new ArrayList<>();
42 | //先从数据库中获取所有用户的工号
43 | getAllTestFromDB();//这时候userCardList就有数据了
44 |
45 | //填充RecyclerView
46 | RecyclerView recyclerView=(RecyclerView)findViewById(R.id.historyactivity_recyclerview_main);
47 | GridLayoutManager layoutManager=new GridLayoutManager(this,4);//设置每行显示的card数量
48 | recyclerView.setLayoutManager(layoutManager);
49 | adapter=new HistoryUserCardAdapter(userCardList);
50 | recyclerView.setAdapter(adapter);
51 | }
52 |
53 | private void getAllTestFromDB(){
54 | File faceDir = getDir("testface", Context.MODE_PRIVATE);//有此目录就获取,没有就创建
55 | MyDatabaseHelper dbHelper=new MyDatabaseHelper(HistoryActivity.this,"Face.db",null,1);
56 | SQLiteDatabase db=dbHelper.getWritableDatabase();
57 | Cursor cursor=db.rawQuery("select * from Test",null);
58 | if(cursor.moveToFirst()){
59 | do{
60 | String userNo=cursor.getString(cursor.getColumnIndex("testname"));
61 | UserCard userCard=new UserCard(userNo,faceDir.getAbsolutePath()+"/"+userNo+".jpg");
62 | userCardList.add(userCard);
63 | }while (cursor.moveToNext());
64 | }
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/app/src/main/java/cn/edu/ecust/faceaccesscontrol/activity/PasswordLoginActivity.java:
--------------------------------------------------------------------------------
1 | package cn.edu.ecust.faceaccesscontrol.activity;
2 |
3 | import android.database.Cursor;
4 | import android.database.sqlite.SQLiteDatabase;
5 | import android.support.v7.app.AppCompatActivity;
6 | import android.os.Bundle;
7 | import android.support.v7.widget.Toolbar;
8 | import android.view.View;
9 | import android.widget.Button;
10 | import android.widget.EditText;
11 | import android.widget.Toast;
12 |
13 | import cn.edu.ecust.faceaccesscontrol.R;
14 | import cn.edu.ecust.faceaccesscontrol.common.Toolbar2Activity;
15 | import cn.edu.ecust.faceaccesscontrol.manage.MyDatabaseHelper;
16 |
17 | public class PasswordLoginActivity extends Toolbar2Activity {
18 |
19 | private EditText editTextNo;
20 | private EditText editTextPassword;
21 | private Button buttonLogin;
22 |
23 | @Override
24 | protected void onCreate(Bundle savedInstanceState) {
25 | super.onCreate(savedInstanceState);
26 | setContentView(R.layout.activity_password_login);
27 | Toolbar toolbarCommon=(Toolbar)findViewById(R.id.passwordloginactivity_toolbar_common);//找到工具条
28 | setSupportActionBar(toolbarCommon);//激活工具条
29 |
30 | editTextNo=(EditText)findViewById(R.id.passwordloginactivity_edittext_no);
31 | editTextPassword=(EditText)findViewById(R.id.passwordloginactivity_edittext_password);
32 | buttonLogin=(Button)findViewById(R.id.passwordloginactivity_button_login);
33 | buttonLogin.setOnClickListener(new View.OnClickListener() {
34 | @Override
35 | public void onClick(View v) {
36 | MyDatabaseHelper dbHelper=new MyDatabaseHelper(PasswordLoginActivity.this,"Face.db",null,1);
37 | SQLiteDatabase db=dbHelper.getWritableDatabase();
38 | Cursor cursor=db.rawQuery("select * from User where no = ? and grant = 1",new String[]{editTextNo.getText().toString()});
39 | if(cursor.moveToFirst()){
40 | do {
41 | if(editTextPassword.getText().toString().equals(cursor.getString(cursor.getColumnIndex("password")))){
42 | Toast.makeText(PasswordLoginActivity.this,"验证成功,门禁已开启!",Toast.LENGTH_SHORT).show();
43 | finish();
44 | }
45 | else {
46 | Toast.makeText(PasswordLoginActivity.this,"密码错误!",Toast.LENGTH_SHORT).show();
47 | }
48 | }while (cursor.moveToNext());
49 | }else{
50 | Toast.makeText(PasswordLoginActivity.this,"用户不存在!",Toast.LENGTH_SHORT).show();
51 | }
52 | cursor.close();
53 | }
54 | });
55 | }
56 | }
57 |
--------------------------------------------------------------------------------
/app/src/main/java/cn/edu/ecust/faceaccesscontrol/activity/RegisterResultActivity.java:
--------------------------------------------------------------------------------
1 | package cn.edu.ecust.faceaccesscontrol.activity;
2 |
3 | import android.app.Activity;
4 | import android.content.Context;
5 | import android.content.Intent;
6 | import android.database.sqlite.SQLiteDatabase;
7 | import android.support.v7.app.AppCompatActivity;
8 | import android.os.Bundle;
9 | import android.support.v7.widget.Toolbar;
10 | import android.util.Log;
11 | import android.widget.ImageView;
12 | import android.widget.TextView;
13 | import android.widget.Toast;
14 |
15 | import com.bumptech.glide.Glide;
16 |
17 | import java.io.File;
18 |
19 | import cn.edu.ecust.faceaccesscontrol.R;
20 | import cn.edu.ecust.faceaccesscontrol.common.Toolbar2Activity;
21 | import cn.edu.ecust.faceaccesscontrol.manage.MyDatabaseHelper;
22 |
23 | public class RegisterResultActivity extends Toolbar2Activity {
24 |
25 | private ImageView imageViewIcon;//显示注册结果的图标
26 | private TextView textViewMessage;//显示注册结果的文字信息
27 |
28 | @Override
29 | protected void onCreate(Bundle savedInstanceState) {
30 | super.onCreate(savedInstanceState);
31 | setContentView(R.layout.activity_register_result);
32 | Toolbar toolbarCommon=(Toolbar)findViewById(R.id.registerresultactivity_toolbar_common);//找到工具条
33 | setSupportActionBar(toolbarCommon);//激活工具条
34 |
35 | //绑定控件
36 | imageViewIcon=(ImageView)findViewById(R.id.registerresultactivity_imageview_icon);
37 | textViewMessage=(TextView)findViewById(R.id.registerresultactivity_textview_message);
38 |
39 | Intent intentFromCameraRegisterActivity=getIntent();
40 | if(intentFromCameraRegisterActivity.getBooleanExtra("isRegisterSuccess",false)==true){
41 | //把该用户的信息插入数据库
42 | insertIntoTable(RegisterResultActivity.this,intentFromCameraRegisterActivity);
43 | //更改UI
44 | imageViewIcon.setImageResource(R.drawable.ic_success);
45 | textViewMessage.setText("注册成功!请等待管理员审批!");
46 | }else{
47 | imageViewIcon.setImageResource(R.drawable.ic_failure);
48 | textViewMessage.setText("注册失败!请重试!");
49 | }
50 | }
51 |
52 | public void insertIntoTable(Activity activity,Intent intent){
53 | String stringUserNo=intent.getStringExtra("userNo");
54 | String stringUserName=intent.getStringExtra("userName");
55 | String stringUserPassword=intent.getStringExtra("userPassword");
56 | String stringUserCellphone=intent.getStringExtra("userCellphone");
57 |
58 | MyDatabaseHelper dbHelper=new MyDatabaseHelper(activity,"Face.db",null,1);
59 | SQLiteDatabase db=dbHelper.getWritableDatabase();
60 | db.execSQL("insert into User (no, name, password, cellphone, grant) values (?,?,?,?,?)",
61 | new String[]{stringUserNo,stringUserName,stringUserPassword,stringUserCellphone,0+""});
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/app/src/main/java/cn/edu/ecust/faceaccesscontrol/common/ExitDialogActivity.java:
--------------------------------------------------------------------------------
1 | package cn.edu.ecust.faceaccesscontrol.common;
2 |
3 | import android.support.v7.app.AppCompatActivity;
4 | import android.os.Bundle;
5 | import android.view.KeyEvent;
6 | import android.view.WindowManager;
7 |
8 | import cn.edu.ecust.faceaccesscontrol.manage.ActivityCollector;
9 | import cn.edu.ecust.faceaccesscontrol.manage.AllUseAlertDialog;
10 |
11 | /**
12 | * 作为其他Activity的父类使用
13 | * 取消状态栏
14 | * 能弹出退出警告框
15 | * 能对活动进行管理,包括添加一个活动,删除一个活动,删除所有活动
16 | * 2017年5月2日09:55:54
17 | */
18 | public class ExitDialogActivity extends FullScreenActivity {
19 |
20 | @Override
21 | protected void onCreate(Bundle savedInstanceState) {
22 | super.onCreate(savedInstanceState);
23 | }
24 |
25 | /**
26 | * 按下Android物理按键时触发
27 | * @param keyCode
28 | * @param event
29 | * @return
30 | */
31 | @Override
32 | public boolean onKeyDown(int keyCode, KeyEvent event) {
33 | if (keyCode == KeyEvent.KEYCODE_BACK){//按下返回键
34 | AllUseAlertDialog.showAlertDialogToExit(this);//弹出警告框
35 | }
36 | return super.onKeyDown(keyCode, event);
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/app/src/main/java/cn/edu/ecust/faceaccesscontrol/common/FullScreenActivity.java:
--------------------------------------------------------------------------------
1 | package cn.edu.ecust.faceaccesscontrol.common;
2 |
3 | import android.support.v7.app.AppCompatActivity;
4 | import android.os.Bundle;
5 | import android.view.WindowManager;
6 |
7 | import cn.edu.ecust.faceaccesscontrol.manage.ActivityCollector;
8 |
9 | public class FullScreenActivity extends AppCompatActivity {
10 |
11 | @Override
12 | protected void onCreate(Bundle savedInstanceState) {
13 | super.onCreate(savedInstanceState);
14 | getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);//取消状态栏
15 | ActivityCollector.addActivity(this);//添加当前活动到活动集合管理类中
16 | }
17 |
18 | @Override
19 | protected void onDestroy() {
20 | super.onDestroy();
21 | ActivityCollector.removeActivity(this);//从活动集合管理类中删除当前活动
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/app/src/main/java/cn/edu/ecust/faceaccesscontrol/common/Toolbar2Activity.java:
--------------------------------------------------------------------------------
1 | package cn.edu.ecust.faceaccesscontrol.common;
2 |
3 | import android.content.Intent;
4 | import android.support.v4.view.GravityCompat;
5 | import android.support.v4.widget.DrawerLayout;
6 | import android.support.v7.app.AppCompatActivity;
7 | import android.os.Bundle;
8 | import android.support.v7.widget.Toolbar;
9 | import android.view.Menu;
10 | import android.view.MenuItem;
11 |
12 | import cn.edu.ecust.faceaccesscontrol.R;
13 | import cn.edu.ecust.faceaccesscontrol.activity.NoAdminMainActivity;
14 | import cn.edu.ecust.faceaccesscontrol.activity.WelcomeActivity;
15 |
16 | /**
17 | * 作为父类使用
18 | * 继承自ExitDialogActivity
19 | * 布局Toolbar
20 | * Toolbar上添加三个图标按钮
21 | * 添加了对应事件
22 | * 2017年4月21日10:50:46
23 | */
24 | public class Toolbar2Activity extends ExitDialogActivity {
25 | public DrawerLayout mDrawerLayout;//滑动菜单
26 |
27 | @Override
28 | protected void onCreate(Bundle savedInstanceState) {
29 | super.onCreate(savedInstanceState);
30 | }
31 |
32 | @Override
33 | public boolean onCreateOptionsMenu(Menu menu) {
34 | getMenuInflater().inflate(R.menu.toolbar,menu);//将工具条填充到活动中
35 | return true;
36 | }
37 |
38 | @Override
39 | public boolean onOptionsItemSelected(MenuItem item) {
40 | switch(item.getItemId()){
41 | case R.id.toolbar_back://点击工具栏上的返回按钮
42 | this.finish();
43 | break;
44 | case R.id.toolbar_home://点击工具栏上的起始页按钮
45 | //Toast.makeText(this,"Clicked home!",Toast.LENGTH_SHORT).show();
46 | Intent intent_home=new Intent(Toolbar2Activity.this,WelcomeActivity.class);
47 | startActivity(intent_home);
48 | break;
49 | case R.id.toolbar_tutor://点击工具栏上的帮助按钮
50 | //Toast.makeText(this,"Clicked tutor!",Toast.LENGTH_SHORT).show();
51 | break;
52 | case android.R.id.home:
53 | mDrawerLayout.openDrawer(GravityCompat.START);
54 | break;
55 | default:
56 | }
57 | return true;
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/app/src/main/java/cn/edu/ecust/faceaccesscontrol/manage/ActivityCollector.java:
--------------------------------------------------------------------------------
1 | package cn.edu.ecust.faceaccesscontrol.manage;
2 |
3 | import android.app.Activity;
4 | import android.support.v7.app.ActionBar;
5 |
6 | import java.util.ArrayList;
7 | import java.util.List;
8 |
9 | /**
10 | * 活动集合管理类
11 | * 添加活动;删除活动;结束所有活动
12 | * 主要用到List存储活动
13 | * Created by CommissarMa on 2017/4/20.
14 | */
15 |
16 | public class ActivityCollector {
17 | public static List activities=new ArrayList<>();
18 |
19 | public static void addActivity(Activity activity){
20 | activities.add(activity);
21 | }
22 |
23 | public static void removeActivity(Activity activity){
24 | activities.remove(activity);
25 | }
26 |
27 | public static void finishAll(){
28 | for(Activity activity:activities){
29 | if(!activity.isFinishing()){
30 | activity.finish();
31 | }
32 | }
33 | activities.clear();
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/app/src/main/java/cn/edu/ecust/faceaccesscontrol/manage/MyDatabaseHelper.java:
--------------------------------------------------------------------------------
1 | package cn.edu.ecust.faceaccesscontrol.manage;
2 |
3 | import android.content.Context;
4 | import android.database.sqlite.SQLiteDatabase;
5 | import android.database.sqlite.SQLiteOpenHelper;
6 | import android.widget.Toast;
7 |
8 | /**
9 | * Created by CommissarMa on 2017/4/25.
10 | */
11 |
12 | public class MyDatabaseHelper extends SQLiteOpenHelper {
13 |
14 | /**
15 | * 创建通知表
16 | */
17 | public static final String CREATE_NOTICE="create table Notice ("
18 | +"id integer primary key, "
19 | +"noticetext text, "
20 | +"time text)";
21 |
22 | /**
23 | * 创建用户表
24 | */
25 | public static final String CREATE_USER="create table User ("
26 | +"no text primary key, "
27 | +"name text, "
28 | +"password text, "
29 | +"cellphone text, "
30 | +"grant text)";
31 |
32 | /**
33 | * 创建识别记录表
34 | */
35 | public static final String CREATE_TEST="create table Test ("
36 | +"testname text primary key)";
37 |
38 | //上下文对象:说明是哪个上下文(活动是其中一种)调用数据库
39 | private Context mContext;
40 |
41 | /**
42 | * 构造方法
43 | */
44 | public MyDatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory,int version){
45 | super(context,name,factory,version);
46 | mContext=context;
47 | }
48 |
49 | /**
50 | * 当数据库的version不变时,只会在第一次时创建
51 | * @param db
52 | */
53 | @Override
54 | public void onCreate(SQLiteDatabase db) {
55 | db.execSQL(CREATE_NOTICE);
56 | db.execSQL(CREATE_USER);
57 | db.execSQL(CREATE_TEST);
58 | Toast.makeText(mContext,"创建数据库成功!",Toast.LENGTH_SHORT).show();
59 | }
60 |
61 | /**
62 | * 数据库的升级方法,当新version大于旧version时被调用
63 | * @param db
64 | * @param oldVersion
65 | * @param newVersion
66 | */
67 | @Override
68 | public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
69 |
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/app/src/main/java/cn/edu/ecust/faceaccesscontrol/userrecycler/HistoryUserCardAdapter.java:
--------------------------------------------------------------------------------
1 | package cn.edu.ecust.faceaccesscontrol.userrecycler;
2 |
3 | import android.content.Context;
4 | import android.content.Intent;
5 | import android.support.v7.widget.CardView;
6 | import android.support.v7.widget.RecyclerView;
7 | import android.view.LayoutInflater;
8 | import android.view.View;
9 | import android.view.ViewGroup;
10 | import android.widget.ImageView;
11 | import android.widget.TextView;
12 |
13 | import com.bumptech.glide.Glide;
14 |
15 | import java.util.List;
16 |
17 | import cn.edu.ecust.faceaccesscontrol.R;
18 | import cn.edu.ecust.faceaccesscontrol.activity.AdminApproveDetailActivity;
19 |
20 | /**
21 | * Created by Administrator on 2017/5/7.
22 | */
23 |
24 | public class HistoryUserCardAdapter extends RecyclerView.Adapter {
25 | private Context mContext;
26 | private List mUserCardList;
27 |
28 | static class ViewHolder extends RecyclerView.ViewHolder{
29 | CardView cardView;
30 | ImageView faceImage;
31 | TextView userNo;
32 |
33 | public ViewHolder(View view){
34 | super(view);
35 | cardView=(CardView)view;
36 | faceImage=(ImageView)view.findViewById(R.id.usercarditem_imageview_face);
37 | userNo=(TextView)view.findViewById(R.id.usercarditem_textview_userno);
38 | }
39 | }
40 |
41 | public HistoryUserCardAdapter(List userCardList){
42 | mUserCardList=userCardList;
43 | }
44 |
45 | @Override
46 | public HistoryUserCardAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
47 | if(mContext==null){
48 | mContext=parent.getContext();
49 | }
50 | View view= LayoutInflater.from(mContext).inflate(R.layout.usercard_item,parent,false);
51 | final HistoryUserCardAdapter.ViewHolder holder=new HistoryUserCardAdapter.ViewHolder(view);
52 | holder.cardView.setOnClickListener(new View.OnClickListener() {
53 | @Override
54 | public void onClick(View v) {
55 | // int position=holder.getAdapterPosition();
56 | // UserCard userCard=mUserCardList.get(position);
57 | // //Toast.makeText(v.getContext(),userCard.getStringUserNo(),Toast.LENGTH_SHORT).show();
58 | // Intent intentAdminApproveDetailActivity=new Intent(v.getContext(), AdminApproveDetailActivity.class);
59 | // intentAdminApproveDetailActivity.putExtra("userNo",userCard.getStringUserNo());
60 | // mContext.startActivity(intentAdminApproveDetailActivity);
61 | }
62 | });
63 | return holder;
64 | }
65 |
66 | @Override
67 | public void onBindViewHolder(HistoryUserCardAdapter.ViewHolder holder, int position) {
68 | UserCard userCard=mUserCardList.get(position);
69 | holder.userNo.setText(userCard.getStringUserNo());
70 | Glide.with(mContext).load(userCard.getStringUserFacePath()).into(holder.faceImage);
71 | }
72 |
73 | @Override
74 | public int getItemCount() {
75 | return mUserCardList.size();
76 | }
77 | }
78 |
--------------------------------------------------------------------------------
/app/src/main/java/cn/edu/ecust/faceaccesscontrol/userrecycler/UserCard.java:
--------------------------------------------------------------------------------
1 | package cn.edu.ecust.faceaccesscontrol.userrecycler;
2 |
3 | /**
4 | * Created by CommissarMa on 2017/5/3.
5 | */
6 |
7 | public class UserCard {
8 | private String stringUserNo;
9 | private String stringUserFacePath;
10 |
11 | public UserCard(String stringUserNo,String stringUserFacePath){
12 | this.stringUserNo=stringUserNo;
13 | this.stringUserFacePath=stringUserFacePath;
14 | }
15 |
16 | public String getStringUserNo(){
17 | return stringUserNo;
18 | }
19 |
20 | public String getStringUserFacePath(){
21 | return stringUserFacePath;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/app/src/main/java/cn/edu/ecust/faceaccesscontrol/userrecycler/UserCardAdapter.java:
--------------------------------------------------------------------------------
1 | package cn.edu.ecust.faceaccesscontrol.userrecycler;
2 |
3 | import android.content.ContentValues;
4 | import android.content.Context;
5 | import android.content.Intent;
6 | import android.support.v7.widget.CardView;
7 | import android.support.v7.widget.RecyclerView;
8 | import android.view.LayoutInflater;
9 | import android.view.View;
10 | import android.view.ViewGroup;
11 | import android.widget.ImageView;
12 | import android.widget.TextView;
13 | import android.widget.Toast;
14 |
15 | import com.bumptech.glide.Glide;
16 |
17 | import java.util.List;
18 |
19 | import cn.edu.ecust.faceaccesscontrol.R;
20 | import cn.edu.ecust.faceaccesscontrol.activity.AdminUserDetialActivity;
21 |
22 | /**
23 | * Created by CommissarMa on 2017/5/3.
24 | */
25 |
26 | public class UserCardAdapter extends RecyclerView.Adapter {
27 |
28 | private Context mContext;
29 | private List mUserCardList;
30 |
31 | static class ViewHolder extends RecyclerView.ViewHolder{
32 | CardView cardView;
33 | ImageView faceImage;
34 | TextView userNo;
35 |
36 | public ViewHolder(View view){
37 | super(view);
38 | cardView=(CardView)view;
39 | faceImage=(ImageView)view.findViewById(R.id.usercarditem_imageview_face);
40 | userNo=(TextView)view.findViewById(R.id.usercarditem_textview_userno);
41 | }
42 | }
43 |
44 | public UserCardAdapter(List userCardList){
45 | mUserCardList=userCardList;
46 | }
47 |
48 | @Override
49 | public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
50 | if(mContext==null){
51 | mContext=parent.getContext();
52 | }
53 | View view= LayoutInflater.from(mContext).inflate(R.layout.usercard_item,parent,false);
54 | final ViewHolder holder=new ViewHolder(view);
55 | holder.cardView.setOnClickListener(new View.OnClickListener() {
56 | @Override
57 | public void onClick(View v) {
58 | int position=holder.getAdapterPosition();
59 | UserCard userCard=mUserCardList.get(position);
60 | //Toast.makeText(v.getContext(),userCard.getStringUserNo(),Toast.LENGTH_SHORT).show();
61 | Intent intentAdminUserDetialActivity=new Intent(v.getContext(), AdminUserDetialActivity.class);
62 | intentAdminUserDetialActivity.putExtra("userNo",userCard.getStringUserNo());
63 | mContext.startActivity(intentAdminUserDetialActivity);
64 | }
65 | });
66 | return holder;
67 | }
68 |
69 | @Override
70 | public void onBindViewHolder(ViewHolder holder, int position) {
71 | UserCard userCard=mUserCardList.get(position);
72 | holder.userNo.setText(userCard.getStringUserNo());
73 | Glide.with(mContext).load(userCard.getStringUserFacePath()).into(holder.faceImage);
74 | }
75 |
76 | @Override
77 | public int getItemCount() {
78 | return mUserCardList.size();
79 | }
80 | }
81 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/app_faceicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CommissarMa/FaceAccessControl/95cfeb5f76918cb64eb01609e22ea4fc71a52b1f/app/src/main/res/drawable/app_faceicon.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_admin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CommissarMa/FaceAccessControl/95cfeb5f76918cb64eb01609e22ea4fc71a52b1f/app/src/main/res/drawable/ic_admin.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CommissarMa/FaceAccessControl/95cfeb5f76918cb64eb01609e22ea4fc71a52b1f/app/src/main/res/drawable/ic_back.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CommissarMa/FaceAccessControl/95cfeb5f76918cb64eb01609e22ea4fc71a52b1f/app/src/main/res/drawable/ic_close.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CommissarMa/FaceAccessControl/95cfeb5f76918cb64eb01609e22ea4fc71a52b1f/app/src/main/res/drawable/ic_delete.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_failure.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CommissarMa/FaceAccessControl/95cfeb5f76918cb64eb01609e22ea4fc71a52b1f/app/src/main/res/drawable/ic_failure.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CommissarMa/FaceAccessControl/95cfeb5f76918cb64eb01609e22ea4fc71a52b1f/app/src/main/res/drawable/ic_home.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CommissarMa/FaceAccessControl/95cfeb5f76918cb64eb01609e22ea4fc71a52b1f/app/src/main/res/drawable/ic_menu.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_ok.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CommissarMa/FaceAccessControl/95cfeb5f76918cb64eb01609e22ea4fc71a52b1f/app/src/main/res/drawable/ic_ok.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_refuse.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CommissarMa/FaceAccessControl/95cfeb5f76918cb64eb01609e22ea4fc71a52b1f/app/src/main/res/drawable/ic_refuse.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_success.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CommissarMa/FaceAccessControl/95cfeb5f76918cb64eb01609e22ea4fc71a52b1f/app/src/main/res/drawable/ic_success.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_tutor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CommissarMa/FaceAccessControl/95cfeb5f76918cb64eb01609e22ea4fc71a52b1f/app/src/main/res/drawable/ic_tutor.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/nav_call.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CommissarMa/FaceAccessControl/95cfeb5f76918cb64eb01609e22ea4fc71a52b1f/app/src/main/res/drawable/nav_call.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/nav_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CommissarMa/FaceAccessControl/95cfeb5f76918cb64eb01609e22ea4fc71a52b1f/app/src/main/res/drawable/nav_close.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/nav_config.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CommissarMa/FaceAccessControl/95cfeb5f76918cb64eb01609e22ea4fc71a52b1f/app/src/main/res/drawable/nav_config.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/nav_icon.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CommissarMa/FaceAccessControl/95cfeb5f76918cb64eb01609e22ea4fc71a52b1f/app/src/main/res/drawable/nav_icon.jpg
--------------------------------------------------------------------------------
/app/src/main/res/drawable/nav_location.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CommissarMa/FaceAccessControl/95cfeb5f76918cb64eb01609e22ea4fc71a52b1f/app/src/main/res/drawable/nav_location.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/nav_mail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CommissarMa/FaceAccessControl/95cfeb5f76918cb64eb01609e22ea4fc71a52b1f/app/src/main/res/drawable/nav_mail.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/noadminmainactivity_button_adminlogin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CommissarMa/FaceAccessControl/95cfeb5f76918cb64eb01609e22ea4fc71a52b1f/app/src/main/res/drawable/noadminmainactivity_button_adminlogin.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/noadminmainactivity_button_recognize.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CommissarMa/FaceAccessControl/95cfeb5f76918cb64eb01609e22ea4fc71a52b1f/app/src/main/res/drawable/noadminmainactivity_button_recognize.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/noadminmainactivity_button_register.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CommissarMa/FaceAccessControl/95cfeb5f76918cb64eb01609e22ea4fc71a52b1f/app/src/main/res/drawable/noadminmainactivity_button_register.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/welcomeactivity_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CommissarMa/FaceAccessControl/95cfeb5f76918cb64eb01609e22ea4fc71a52b1f/app/src/main/res/drawable/welcomeactivity_background.png
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_admin_notice.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
19 |
20 |
26 |
27 |
32 |
33 |
41 |
42 |
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_admin_notice_edit.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
19 |
20 |
25 |
26 |
34 |
35 |
44 |
45 |
46 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_admin_user_approve.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
13 |
14 |
18 |
19 |
27 |
28 |
32 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_admin_user_manage.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
13 |
14 |
18 |
19 |
27 |
28 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_calculate.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_camera_recognize.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
13 |
14 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_camera_register.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
13 |
14 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_history.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
13 |
14 |
18 |
19 |
27 |
28 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_password_login.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
19 |
20 |
23 |
31 |
32 |
42 |
43 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_register_result.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
18 |
19 |
25 |
26 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_welcome.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
19 |
20 |
28 |
29 |
37 |
38 |
47 |
48 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/alert_password.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
13 |
14 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/nav_header.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
17 |
18 |
26 |
27 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/usercard_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
14 |
15 |
20 |
21 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/nav_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/toolbar.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CommissarMa/FaceAccessControl/95cfeb5f76918cb64eb01609e22ea4fc71a52b1f/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CommissarMa/FaceAccessControl/95cfeb5f76918cb64eb01609e22ea4fc71a52b1f/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CommissarMa/FaceAccessControl/95cfeb5f76918cb64eb01609e22ea4fc71a52b1f/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CommissarMa/FaceAccessControl/95cfeb5f76918cb64eb01609e22ea4fc71a52b1f/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CommissarMa/FaceAccessControl/95cfeb5f76918cb64eb01609e22ea4fc71a52b1f/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/raw/eyeglasses.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CommissarMa/FaceAccessControl/95cfeb5f76918cb64eb01609e22ea4fc71a52b1f/app/src/main/res/raw/eyeglasses.jpg
--------------------------------------------------------------------------------
/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 64dp
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3F51B5
4 | #303F9F
5 | #FF4081
6 | #8d8365
7 | #FFECE2C5
8 | #ff0000
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 16dp
4 | 16dp
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/app/src/test/java/cn/edu/ecust/faceaccesscontrol/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package cn.edu.ecust.faceaccesscontrol;
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 | }
--------------------------------------------------------------------------------
/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 | }
7 | dependencies {
8 | classpath 'com.android.tools.build:gradle:2.2.2'
9 |
10 | // NOTE: Do not place your application dependencies here; they belong
11 | // in the individual module build.gradle files
12 | }
13 | }
14 |
15 | allprojects {
16 | repositories {
17 | jcenter()
18 | }
19 | }
20 |
21 | task clean(type: Delete) {
22 | delete rootProject.buildDir
23 | }
24 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CommissarMa/FaceAccessControl/95cfeb5f76918cb64eb01609e22ea4fc71a52b1f/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Mon Dec 28 10:00:20 PST 2015
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-2.14.1-all.zip
7 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/openCVLibrary320/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | android {
4 | compileSdkVersion 24
5 | buildToolsVersion "24.0.2"
6 |
7 | defaultConfig {
8 | minSdkVersion 17
9 | targetSdkVersion 24
10 | }
11 |
12 | buildTypes {
13 | release {
14 | minifyEnabled false
15 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/openCVLibrary320/lint.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/openCVLibrary320/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/openCVLibrary320/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 |
--------------------------------------------------------------------------------
/openCVLibrary320/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 |
--------------------------------------------------------------------------------
/openCVLibrary320/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 |
--------------------------------------------------------------------------------
/openCVLibrary320/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 |
--------------------------------------------------------------------------------
/openCVLibrary320/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 |
--------------------------------------------------------------------------------
/openCVLibrary320/src/main/java/org/opencv/core/Algorithm.java:
--------------------------------------------------------------------------------
1 |
2 | //
3 | // This file is auto-generated. Please don't modify it!
4 | //
5 | package org.opencv.core;
6 |
7 | import java.lang.String;
8 |
9 | // C++: class Algorithm
10 | //javadoc: Algorithm
11 | public class Algorithm {
12 |
13 | protected final long nativeObj;
14 | protected Algorithm(long addr) { nativeObj = addr; }
15 |
16 |
17 | //
18 | // C++: String getDefaultName()
19 | //
20 |
21 | //javadoc: Algorithm::getDefaultName()
22 | public String getDefaultName()
23 | {
24 |
25 | String retVal = getDefaultName_0(nativeObj);
26 |
27 | return retVal;
28 | }
29 |
30 |
31 | //
32 | // C++: void clear()
33 | //
34 |
35 | //javadoc: Algorithm::clear()
36 | public void clear()
37 | {
38 |
39 | clear_0(nativeObj);
40 |
41 | return;
42 | }
43 |
44 |
45 | //
46 | // C++: void save(String filename)
47 | //
48 |
49 | //javadoc: Algorithm::save(filename)
50 | public void save(String filename)
51 | {
52 |
53 | save_0(nativeObj, filename);
54 |
55 | return;
56 | }
57 |
58 |
59 | @Override
60 | protected void finalize() throws Throwable {
61 | delete(nativeObj);
62 | }
63 |
64 |
65 |
66 | // C++: String getDefaultName()
67 | private static native String getDefaultName_0(long nativeObj);
68 |
69 | // C++: void clear()
70 | private static native void clear_0(long nativeObj);
71 |
72 | // C++: void save(String filename)
73 | private static native void save_0(long nativeObj, String filename);
74 |
75 | // native support for java finalize()
76 | private static native void delete(long nativeObj);
77 |
78 | }
79 |
--------------------------------------------------------------------------------
/openCVLibrary320/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 |
--------------------------------------------------------------------------------
/openCVLibrary320/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 | /**
49 | * Less is better.
50 | */
51 | public boolean lessThan(DMatch it) {
52 | return distance < it.distance;
53 | }
54 |
55 | @Override
56 | public String toString() {
57 | return "DMatch [queryIdx=" + queryIdx + ", trainIdx=" + trainIdx
58 | + ", imgIdx=" + imgIdx + ", distance=" + distance + "]";
59 | }
60 |
61 | }
62 |
--------------------------------------------------------------------------------
/openCVLibrary320/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 |
--------------------------------------------------------------------------------
/openCVLibrary320/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 void alloc(int elemNumber) {
39 | if(elemNumber>0)
40 | super.create(elemNumber, 1, CvType.makeType(_depth, _channels));
41 | }
42 |
43 | public void fromArray(byte...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 byte[] toArray() {
52 | int num = checkVector(_channels, _depth);
53 | if(num < 0)
54 | throw new RuntimeException("Native Mat has unexpected type or size: " + toString());
55 | byte[] a = new byte[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 | Byte ab[] = lb.toArray(new Byte[0]);
66 | byte a[] = new byte[ab.length];
67 | for(int i=0; i toList() {
73 | byte[] a = toArray();
74 | Byte ab[] = new Byte[a.length];
75 | 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 |
--------------------------------------------------------------------------------
/openCVLibrary320/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 |
--------------------------------------------------------------------------------
/openCVLibrary320/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 |
--------------------------------------------------------------------------------
/openCVLibrary320/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 |
--------------------------------------------------------------------------------
/openCVLibrary320/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 |
--------------------------------------------------------------------------------
/openCVLibrary320/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 |
--------------------------------------------------------------------------------
/openCVLibrary320/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 |
--------------------------------------------------------------------------------
/openCVLibrary320/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 |
--------------------------------------------------------------------------------
/openCVLibrary320/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 |
--------------------------------------------------------------------------------
/openCVLibrary320/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 |
--------------------------------------------------------------------------------
/openCVLibrary320/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 contains(Point p) {
69 | return x <= p.x && p.x < x + width && y <= p.y && p.y < y + height;
70 | }
71 |
72 | @Override
73 | public int hashCode() {
74 | final int prime = 31;
75 | int result = 1;
76 | long temp;
77 | temp = Double.doubleToLongBits(height);
78 | result = prime * result + (int) (temp ^ (temp >>> 32));
79 | temp = Double.doubleToLongBits(width);
80 | result = prime * result + (int) (temp ^ (temp >>> 32));
81 | temp = Double.doubleToLongBits(x);
82 | result = prime * result + (int) (temp ^ (temp >>> 32));
83 | temp = Double.doubleToLongBits(y);
84 | result = prime * result + (int) (temp ^ (temp >>> 32));
85 | return result;
86 | }
87 |
88 | @Override
89 | public boolean equals(Object obj) {
90 | if (this == obj) return true;
91 | if (!(obj instanceof Rect)) return false;
92 | Rect it = (Rect) obj;
93 | return x == it.x && y == it.y && width == it.width && height == it.height;
94 | }
95 |
96 | @Override
97 | public String toString() {
98 | return "{" + x + ", " + y + ", " + width + "x" + height + "}";
99 | }
100 | }
101 |
--------------------------------------------------------------------------------
/openCVLibrary320/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 |
--------------------------------------------------------------------------------
/openCVLibrary320/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 Size clone() {
41 | return new Size(width, height);
42 | }
43 |
44 | @Override
45 | public int hashCode() {
46 | final int prime = 31;
47 | int result = 1;
48 | long temp;
49 | temp = Double.doubleToLongBits(height);
50 | result = prime * result + (int) (temp ^ (temp >>> 32));
51 | temp = Double.doubleToLongBits(width);
52 | result = prime * result + (int) (temp ^ (temp >>> 32));
53 | return result;
54 | }
55 |
56 | @Override
57 | public boolean equals(Object obj) {
58 | if (this == obj) return true;
59 | if (!(obj instanceof Size)) return false;
60 | Size it = (Size) obj;
61 | return width == it.width && height == it.height;
62 | }
63 |
64 | @Override
65 | public String toString() {
66 | return (int)width + "x" + (int)height;
67 | }
68 |
69 | }
70 |
--------------------------------------------------------------------------------
/openCVLibrary320/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 |
--------------------------------------------------------------------------------
/openCVLibrary320/src/main/java/org/opencv/features2d/BFMatcher.java:
--------------------------------------------------------------------------------
1 |
2 | //
3 | // This file is auto-generated. Please don't modify it!
4 | //
5 | package org.opencv.features2d;
6 |
7 |
8 |
9 | // C++: class BFMatcher
10 | //javadoc: BFMatcher
11 | public class BFMatcher extends DescriptorMatcher {
12 |
13 | protected BFMatcher(long addr) { super(addr); }
14 |
15 |
16 | //
17 | // C++: BFMatcher(int normType = NORM_L2, bool crossCheck = false)
18 | //
19 |
20 | //javadoc: BFMatcher::BFMatcher(normType, crossCheck)
21 | public BFMatcher(int normType, boolean crossCheck)
22 | {
23 |
24 | super( BFMatcher_0(normType, crossCheck) );
25 |
26 | return;
27 | }
28 |
29 | //javadoc: BFMatcher::BFMatcher()
30 | public BFMatcher()
31 | {
32 |
33 | super( BFMatcher_1() );
34 |
35 | return;
36 | }
37 |
38 |
39 | //
40 | // C++: static Ptr_BFMatcher create(int normType = NORM_L2, bool crossCheck = false)
41 | //
42 |
43 | //javadoc: BFMatcher::create(normType, crossCheck)
44 | public static BFMatcher create(int normType, boolean crossCheck)
45 | {
46 |
47 | BFMatcher retVal = new BFMatcher(create_0(normType, crossCheck));
48 |
49 | return retVal;
50 | }
51 |
52 | //javadoc: BFMatcher::create()
53 | public static BFMatcher create()
54 | {
55 |
56 | BFMatcher retVal = new BFMatcher(create_1());
57 |
58 | return retVal;
59 | }
60 |
61 |
62 | @Override
63 | protected void finalize() throws Throwable {
64 | delete(nativeObj);
65 | }
66 |
67 |
68 |
69 | // C++: BFMatcher(int normType = NORM_L2, bool crossCheck = false)
70 | private static native long BFMatcher_0(int normType, boolean crossCheck);
71 | private static native long BFMatcher_1();
72 |
73 | // C++: static Ptr_BFMatcher create(int normType = NORM_L2, bool crossCheck = false)
74 | private static native long create_0(int normType, boolean crossCheck);
75 | private static native long create_1();
76 |
77 | // native support for java finalize()
78 | private static native void delete(long nativeObj);
79 |
80 | }
81 |
--------------------------------------------------------------------------------
/openCVLibrary320/src/main/java/org/opencv/features2d/BOWKMeansTrainer.java:
--------------------------------------------------------------------------------
1 |
2 | //
3 | // This file is auto-generated. Please don't modify it!
4 | //
5 | package org.opencv.features2d;
6 |
7 | import org.opencv.core.Mat;
8 | import org.opencv.core.TermCriteria;
9 |
10 | // C++: class BOWKMeansTrainer
11 | //javadoc: BOWKMeansTrainer
12 | public class BOWKMeansTrainer extends BOWTrainer {
13 |
14 | protected BOWKMeansTrainer(long addr) { super(addr); }
15 |
16 |
17 | //
18 | // C++: BOWKMeansTrainer(int clusterCount, TermCriteria termcrit = TermCriteria(), int attempts = 3, int flags = KMEANS_PP_CENTERS)
19 | //
20 |
21 | //javadoc: BOWKMeansTrainer::BOWKMeansTrainer(clusterCount, termcrit, attempts, flags)
22 | public BOWKMeansTrainer(int clusterCount, TermCriteria termcrit, int attempts, int flags)
23 | {
24 |
25 | super( BOWKMeansTrainer_0(clusterCount, termcrit.type, termcrit.maxCount, termcrit.epsilon, attempts, flags) );
26 |
27 | return;
28 | }
29 |
30 | //javadoc: BOWKMeansTrainer::BOWKMeansTrainer(clusterCount)
31 | public BOWKMeansTrainer(int clusterCount)
32 | {
33 |
34 | super( BOWKMeansTrainer_1(clusterCount) );
35 |
36 | return;
37 | }
38 |
39 |
40 | //
41 | // C++: Mat cluster(Mat descriptors)
42 | //
43 |
44 | //javadoc: BOWKMeansTrainer::cluster(descriptors)
45 | public Mat cluster(Mat descriptors)
46 | {
47 |
48 | Mat retVal = new Mat(cluster_0(nativeObj, descriptors.nativeObj));
49 |
50 | return retVal;
51 | }
52 |
53 |
54 | //
55 | // C++: Mat cluster()
56 | //
57 |
58 | //javadoc: BOWKMeansTrainer::cluster()
59 | public Mat cluster()
60 | {
61 |
62 | Mat retVal = new Mat(cluster_1(nativeObj));
63 |
64 | return retVal;
65 | }
66 |
67 |
68 | @Override
69 | protected void finalize() throws Throwable {
70 | delete(nativeObj);
71 | }
72 |
73 |
74 |
75 | // C++: BOWKMeansTrainer(int clusterCount, TermCriteria termcrit = TermCriteria(), int attempts = 3, int flags = KMEANS_PP_CENTERS)
76 | private static native long BOWKMeansTrainer_0(int clusterCount, int termcrit_type, int termcrit_maxCount, double termcrit_epsilon, int attempts, int flags);
77 | private static native long BOWKMeansTrainer_1(int clusterCount);
78 |
79 | // C++: Mat cluster(Mat descriptors)
80 | private static native long cluster_0(long nativeObj, long descriptors_nativeObj);
81 |
82 | // C++: Mat cluster()
83 | private static native long cluster_1(long nativeObj);
84 |
85 | // native support for java finalize()
86 | private static native void delete(long nativeObj);
87 |
88 | }
89 |
--------------------------------------------------------------------------------
/openCVLibrary320/src/main/java/org/opencv/features2d/FlannBasedMatcher.java:
--------------------------------------------------------------------------------
1 |
2 | //
3 | // This file is auto-generated. Please don't modify it!
4 | //
5 | package org.opencv.features2d;
6 |
7 |
8 |
9 | // C++: class FlannBasedMatcher
10 | //javadoc: FlannBasedMatcher
11 | public class FlannBasedMatcher extends DescriptorMatcher {
12 |
13 | protected FlannBasedMatcher(long addr) { super(addr); }
14 |
15 |
16 | //
17 | // C++: FlannBasedMatcher(Ptr_flann_IndexParams indexParams = makePtr(), Ptr_flann_SearchParams searchParams = makePtr())
18 | //
19 |
20 | //javadoc: FlannBasedMatcher::FlannBasedMatcher()
21 | public FlannBasedMatcher()
22 | {
23 |
24 | super( FlannBasedMatcher_0() );
25 |
26 | return;
27 | }
28 |
29 |
30 | //
31 | // C++: static Ptr_FlannBasedMatcher create()
32 | //
33 |
34 | //javadoc: FlannBasedMatcher::create()
35 | public static FlannBasedMatcher create()
36 | {
37 |
38 | FlannBasedMatcher retVal = new FlannBasedMatcher(create_0());
39 |
40 | return retVal;
41 | }
42 |
43 |
44 | @Override
45 | protected void finalize() throws Throwable {
46 | delete(nativeObj);
47 | }
48 |
49 |
50 |
51 | // C++: FlannBasedMatcher(Ptr_flann_IndexParams indexParams = makePtr(), Ptr_flann_SearchParams searchParams = makePtr())
52 | private static native long FlannBasedMatcher_0();
53 |
54 | // C++: static Ptr_FlannBasedMatcher create()
55 | private static native long create_0();
56 |
57 | // native support for java finalize()
58 | private static native void delete(long nativeObj);
59 |
60 | }
61 |
--------------------------------------------------------------------------------
/openCVLibrary320/src/main/java/org/opencv/ml/Ml.java:
--------------------------------------------------------------------------------
1 |
2 | //
3 | // This file is auto-generated. Please don't modify it!
4 | //
5 | package org.opencv.ml;
6 |
7 |
8 |
9 | public class Ml {
10 |
11 | public static final int
12 | VAR_NUMERICAL = 0,
13 | VAR_ORDERED = 0,
14 | VAR_CATEGORICAL = 1,
15 | TEST_ERROR = 0,
16 | TRAIN_ERROR = 1,
17 | ROW_SAMPLE = 0,
18 | COL_SAMPLE = 1;
19 |
20 |
21 |
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/openCVLibrary320/src/main/java/org/opencv/ml/NormalBayesClassifier.java:
--------------------------------------------------------------------------------
1 |
2 | //
3 | // This file is auto-generated. Please don't modify it!
4 | //
5 | package org.opencv.ml;
6 |
7 | import org.opencv.core.Mat;
8 |
9 | // C++: class NormalBayesClassifier
10 | //javadoc: NormalBayesClassifier
11 | public class NormalBayesClassifier extends StatModel {
12 |
13 | protected NormalBayesClassifier(long addr) { super(addr); }
14 |
15 |
16 | //
17 | // C++: static Ptr_NormalBayesClassifier create()
18 | //
19 |
20 | //javadoc: NormalBayesClassifier::create()
21 | public static NormalBayesClassifier create()
22 | {
23 |
24 | NormalBayesClassifier retVal = new NormalBayesClassifier(create_0());
25 |
26 | return retVal;
27 | }
28 |
29 |
30 | //
31 | // C++: float predictProb(Mat inputs, Mat& outputs, Mat& outputProbs, int flags = 0)
32 | //
33 |
34 | //javadoc: NormalBayesClassifier::predictProb(inputs, outputs, outputProbs, flags)
35 | public float predictProb(Mat inputs, Mat outputs, Mat outputProbs, int flags)
36 | {
37 |
38 | float retVal = predictProb_0(nativeObj, inputs.nativeObj, outputs.nativeObj, outputProbs.nativeObj, flags);
39 |
40 | return retVal;
41 | }
42 |
43 | //javadoc: NormalBayesClassifier::predictProb(inputs, outputs, outputProbs)
44 | public float predictProb(Mat inputs, Mat outputs, Mat outputProbs)
45 | {
46 |
47 | float retVal = predictProb_1(nativeObj, inputs.nativeObj, outputs.nativeObj, outputProbs.nativeObj);
48 |
49 | return retVal;
50 | }
51 |
52 |
53 | @Override
54 | protected void finalize() throws Throwable {
55 | delete(nativeObj);
56 | }
57 |
58 |
59 |
60 | // C++: static Ptr_NormalBayesClassifier create()
61 | private static native long create_0();
62 |
63 | // C++: float predictProb(Mat inputs, Mat& outputs, Mat& outputProbs, int flags = 0)
64 | private static native float predictProb_0(long nativeObj, long inputs_nativeObj, long outputs_nativeObj, long outputProbs_nativeObj, int flags);
65 | private static native float predictProb_1(long nativeObj, long inputs_nativeObj, long outputs_nativeObj, long outputProbs_nativeObj);
66 |
67 | // native support for java finalize()
68 | private static native void delete(long nativeObj);
69 |
70 | }
71 |
--------------------------------------------------------------------------------
/openCVLibrary320/src/main/java/org/opencv/objdetect/BaseCascadeClassifier.java:
--------------------------------------------------------------------------------
1 |
2 | //
3 | // This file is auto-generated. Please don't modify it!
4 | //
5 | package org.opencv.objdetect;
6 |
7 | import org.opencv.core.Algorithm;
8 |
9 | // C++: class BaseCascadeClassifier
10 | //javadoc: BaseCascadeClassifier
11 | public class BaseCascadeClassifier extends Algorithm {
12 |
13 | protected BaseCascadeClassifier(long addr) { super(addr); }
14 |
15 |
16 | @Override
17 | protected void finalize() throws Throwable {
18 | delete(nativeObj);
19 | }
20 |
21 |
22 |
23 | // native support for java finalize()
24 | private static native void delete(long nativeObj);
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/openCVLibrary320/src/main/java/org/opencv/objdetect/Objdetect.java:
--------------------------------------------------------------------------------
1 |
2 | //
3 | // This file is auto-generated. Please don't modify it!
4 | //
5 | package org.opencv.objdetect;
6 |
7 | import java.util.ArrayList;
8 | import org.opencv.core.Mat;
9 | import org.opencv.core.MatOfInt;
10 | import org.opencv.core.MatOfRect;
11 |
12 | public class Objdetect {
13 |
14 | public static final int
15 | CASCADE_DO_CANNY_PRUNING = 1,
16 | CASCADE_SCALE_IMAGE = 2,
17 | CASCADE_FIND_BIGGEST_OBJECT = 4,
18 | CASCADE_DO_ROUGH_SEARCH = 8;
19 |
20 |
21 | //
22 | // C++: void groupRectangles(vector_Rect& rectList, vector_int& weights, int groupThreshold, double eps = 0.2)
23 | //
24 |
25 | //javadoc: groupRectangles(rectList, weights, groupThreshold, eps)
26 | public static void groupRectangles(MatOfRect rectList, MatOfInt weights, int groupThreshold, double eps)
27 | {
28 | Mat rectList_mat = rectList;
29 | Mat weights_mat = weights;
30 | groupRectangles_0(rectList_mat.nativeObj, weights_mat.nativeObj, groupThreshold, eps);
31 |
32 | return;
33 | }
34 |
35 | //javadoc: groupRectangles(rectList, weights, groupThreshold)
36 | public static void groupRectangles(MatOfRect rectList, MatOfInt weights, int groupThreshold)
37 | {
38 | Mat rectList_mat = rectList;
39 | Mat weights_mat = weights;
40 | groupRectangles_1(rectList_mat.nativeObj, weights_mat.nativeObj, groupThreshold);
41 |
42 | return;
43 | }
44 |
45 |
46 |
47 |
48 | // C++: void groupRectangles(vector_Rect& rectList, vector_int& weights, int groupThreshold, double eps = 0.2)
49 | private static native void groupRectangles_0(long rectList_mat_nativeObj, long weights_mat_nativeObj, int groupThreshold, double eps);
50 | private static native void groupRectangles_1(long rectList_mat_nativeObj, long weights_mat_nativeObj, int groupThreshold);
51 |
52 | }
53 |
--------------------------------------------------------------------------------
/openCVLibrary320/src/main/java/org/opencv/photo/AlignExposures.java:
--------------------------------------------------------------------------------
1 |
2 | //
3 | // This file is auto-generated. Please don't modify it!
4 | //
5 | package org.opencv.photo;
6 |
7 | import java.util.ArrayList;
8 | import java.util.List;
9 | import org.opencv.core.Algorithm;
10 | import org.opencv.core.Mat;
11 | import org.opencv.utils.Converters;
12 |
13 | // C++: class AlignExposures
14 | //javadoc: AlignExposures
15 | public class AlignExposures extends Algorithm {
16 |
17 | protected AlignExposures(long addr) { super(addr); }
18 |
19 |
20 | //
21 | // C++: void process(vector_Mat src, vector_Mat dst, Mat times, Mat response)
22 | //
23 |
24 | //javadoc: AlignExposures::process(src, dst, times, response)
25 | public void process(List src, List dst, Mat times, Mat response)
26 | {
27 | Mat src_mat = Converters.vector_Mat_to_Mat(src);
28 | Mat dst_mat = Converters.vector_Mat_to_Mat(dst);
29 | process_0(nativeObj, src_mat.nativeObj, dst_mat.nativeObj, times.nativeObj, response.nativeObj);
30 |
31 | return;
32 | }
33 |
34 |
35 | @Override
36 | protected void finalize() throws Throwable {
37 | delete(nativeObj);
38 | }
39 |
40 |
41 |
42 | // C++: void process(vector_Mat src, vector_Mat dst, Mat times, Mat response)
43 | private static native void process_0(long nativeObj, long src_mat_nativeObj, long dst_mat_nativeObj, long times_nativeObj, long response_nativeObj);
44 |
45 | // native support for java finalize()
46 | private static native void delete(long nativeObj);
47 |
48 | }
49 |
--------------------------------------------------------------------------------
/openCVLibrary320/src/main/java/org/opencv/photo/CalibrateCRF.java:
--------------------------------------------------------------------------------
1 |
2 | //
3 | // This file is auto-generated. Please don't modify it!
4 | //
5 | package org.opencv.photo;
6 |
7 | import java.util.ArrayList;
8 | import java.util.List;
9 | import org.opencv.core.Algorithm;
10 | import org.opencv.core.Mat;
11 | import org.opencv.utils.Converters;
12 |
13 | // C++: class CalibrateCRF
14 | //javadoc: CalibrateCRF
15 | public class CalibrateCRF extends Algorithm {
16 |
17 | protected CalibrateCRF(long addr) { super(addr); }
18 |
19 |
20 | //
21 | // C++: void process(vector_Mat src, Mat& dst, Mat times)
22 | //
23 |
24 | //javadoc: CalibrateCRF::process(src, dst, times)
25 | public void process(List src, Mat dst, Mat times)
26 | {
27 | Mat src_mat = Converters.vector_Mat_to_Mat(src);
28 | process_0(nativeObj, src_mat.nativeObj, dst.nativeObj, times.nativeObj);
29 |
30 | return;
31 | }
32 |
33 |
34 | @Override
35 | protected void finalize() throws Throwable {
36 | delete(nativeObj);
37 | }
38 |
39 |
40 |
41 | // C++: void process(vector_Mat src, Mat& dst, Mat times)
42 | private static native void process_0(long nativeObj, long src_mat_nativeObj, long dst_nativeObj, long times_nativeObj);
43 |
44 | // native support for java finalize()
45 | private static native void delete(long nativeObj);
46 |
47 | }
48 |
--------------------------------------------------------------------------------
/openCVLibrary320/src/main/java/org/opencv/photo/CalibrateDebevec.java:
--------------------------------------------------------------------------------
1 |
2 | //
3 | // This file is auto-generated. Please don't modify it!
4 | //
5 | package org.opencv.photo;
6 |
7 |
8 |
9 | // C++: class CalibrateDebevec
10 | //javadoc: CalibrateDebevec
11 | public class CalibrateDebevec extends CalibrateCRF {
12 |
13 | protected CalibrateDebevec(long addr) { super(addr); }
14 |
15 |
16 | //
17 | // C++: bool getRandom()
18 | //
19 |
20 | //javadoc: CalibrateDebevec::getRandom()
21 | public boolean getRandom()
22 | {
23 |
24 | boolean retVal = getRandom_0(nativeObj);
25 |
26 | return retVal;
27 | }
28 |
29 |
30 | //
31 | // C++: float getLambda()
32 | //
33 |
34 | //javadoc: CalibrateDebevec::getLambda()
35 | public float getLambda()
36 | {
37 |
38 | float retVal = getLambda_0(nativeObj);
39 |
40 | return retVal;
41 | }
42 |
43 |
44 | //
45 | // C++: int getSamples()
46 | //
47 |
48 | //javadoc: CalibrateDebevec::getSamples()
49 | public int getSamples()
50 | {
51 |
52 | int retVal = getSamples_0(nativeObj);
53 |
54 | return retVal;
55 | }
56 |
57 |
58 | //
59 | // C++: void setLambda(float lambda)
60 | //
61 |
62 | //javadoc: CalibrateDebevec::setLambda(lambda)
63 | public void setLambda(float lambda)
64 | {
65 |
66 | setLambda_0(nativeObj, lambda);
67 |
68 | return;
69 | }
70 |
71 |
72 | //
73 | // C++: void setRandom(bool random)
74 | //
75 |
76 | //javadoc: CalibrateDebevec::setRandom(random)
77 | public void setRandom(boolean random)
78 | {
79 |
80 | setRandom_0(nativeObj, random);
81 |
82 | return;
83 | }
84 |
85 |
86 | //
87 | // C++: void setSamples(int samples)
88 | //
89 |
90 | //javadoc: CalibrateDebevec::setSamples(samples)
91 | public void setSamples(int samples)
92 | {
93 |
94 | setSamples_0(nativeObj, samples);
95 |
96 | return;
97 | }
98 |
99 |
100 | @Override
101 | protected void finalize() throws Throwable {
102 | delete(nativeObj);
103 | }
104 |
105 |
106 |
107 | // C++: bool getRandom()
108 | private static native boolean getRandom_0(long nativeObj);
109 |
110 | // C++: float getLambda()
111 | private static native float getLambda_0(long nativeObj);
112 |
113 | // C++: int getSamples()
114 | private static native int getSamples_0(long nativeObj);
115 |
116 | // C++: void setLambda(float lambda)
117 | private static native void setLambda_0(long nativeObj, float lambda);
118 |
119 | // C++: void setRandom(bool random)
120 | private static native void setRandom_0(long nativeObj, boolean random);
121 |
122 | // C++: void setSamples(int samples)
123 | private static native void setSamples_0(long nativeObj, int samples);
124 |
125 | // native support for java finalize()
126 | private static native void delete(long nativeObj);
127 |
128 | }
129 |
--------------------------------------------------------------------------------
/openCVLibrary320/src/main/java/org/opencv/photo/CalibrateRobertson.java:
--------------------------------------------------------------------------------
1 |
2 | //
3 | // This file is auto-generated. Please don't modify it!
4 | //
5 | package org.opencv.photo;
6 |
7 | import org.opencv.core.Mat;
8 |
9 | // C++: class CalibrateRobertson
10 | //javadoc: CalibrateRobertson
11 | public class CalibrateRobertson extends CalibrateCRF {
12 |
13 | protected CalibrateRobertson(long addr) { super(addr); }
14 |
15 |
16 | //
17 | // C++: Mat getRadiance()
18 | //
19 |
20 | //javadoc: CalibrateRobertson::getRadiance()
21 | public Mat getRadiance()
22 | {
23 |
24 | Mat retVal = new Mat(getRadiance_0(nativeObj));
25 |
26 | return retVal;
27 | }
28 |
29 |
30 | //
31 | // C++: float getThreshold()
32 | //
33 |
34 | //javadoc: CalibrateRobertson::getThreshold()
35 | public float getThreshold()
36 | {
37 |
38 | float retVal = getThreshold_0(nativeObj);
39 |
40 | return retVal;
41 | }
42 |
43 |
44 | //
45 | // C++: int getMaxIter()
46 | //
47 |
48 | //javadoc: CalibrateRobertson::getMaxIter()
49 | public int getMaxIter()
50 | {
51 |
52 | int retVal = getMaxIter_0(nativeObj);
53 |
54 | return retVal;
55 | }
56 |
57 |
58 | //
59 | // C++: void setMaxIter(int max_iter)
60 | //
61 |
62 | //javadoc: CalibrateRobertson::setMaxIter(max_iter)
63 | public void setMaxIter(int max_iter)
64 | {
65 |
66 | setMaxIter_0(nativeObj, max_iter);
67 |
68 | return;
69 | }
70 |
71 |
72 | //
73 | // C++: void setThreshold(float threshold)
74 | //
75 |
76 | //javadoc: CalibrateRobertson::setThreshold(threshold)
77 | public void setThreshold(float threshold)
78 | {
79 |
80 | setThreshold_0(nativeObj, threshold);
81 |
82 | return;
83 | }
84 |
85 |
86 | @Override
87 | protected void finalize() throws Throwable {
88 | delete(nativeObj);
89 | }
90 |
91 |
92 |
93 | // C++: Mat getRadiance()
94 | private static native long getRadiance_0(long nativeObj);
95 |
96 | // C++: float getThreshold()
97 | private static native float getThreshold_0(long nativeObj);
98 |
99 | // C++: int getMaxIter()
100 | private static native int getMaxIter_0(long nativeObj);
101 |
102 | // C++: void setMaxIter(int max_iter)
103 | private static native void setMaxIter_0(long nativeObj, int max_iter);
104 |
105 | // C++: void setThreshold(float threshold)
106 | private static native void setThreshold_0(long nativeObj, float threshold);
107 |
108 | // native support for java finalize()
109 | private static native void delete(long nativeObj);
110 |
111 | }
112 |
--------------------------------------------------------------------------------
/openCVLibrary320/src/main/java/org/opencv/photo/MergeDebevec.java:
--------------------------------------------------------------------------------
1 |
2 | //
3 | // This file is auto-generated. Please don't modify it!
4 | //
5 | package org.opencv.photo;
6 |
7 | import java.util.ArrayList;
8 | import java.util.List;
9 | import org.opencv.core.Mat;
10 | import org.opencv.utils.Converters;
11 |
12 | // C++: class MergeDebevec
13 | //javadoc: MergeDebevec
14 | public class MergeDebevec extends MergeExposures {
15 |
16 | protected MergeDebevec(long addr) { super(addr); }
17 |
18 |
19 | //
20 | // C++: void process(vector_Mat src, Mat& dst, Mat times, Mat response)
21 | //
22 |
23 | //javadoc: MergeDebevec::process(src, dst, times, response)
24 | public void process(List src, Mat dst, Mat times, Mat response)
25 | {
26 | Mat src_mat = Converters.vector_Mat_to_Mat(src);
27 | process_0(nativeObj, src_mat.nativeObj, dst.nativeObj, times.nativeObj, response.nativeObj);
28 |
29 | return;
30 | }
31 |
32 |
33 | //
34 | // C++: void process(vector_Mat src, Mat& dst, Mat times)
35 | //
36 |
37 | //javadoc: MergeDebevec::process(src, dst, times)
38 | public void process(List src, Mat dst, Mat times)
39 | {
40 | Mat src_mat = Converters.vector_Mat_to_Mat(src);
41 | process_1(nativeObj, src_mat.nativeObj, dst.nativeObj, times.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 process(vector_Mat src, Mat& dst, Mat times, Mat response)
55 | private static native void process_0(long nativeObj, long src_mat_nativeObj, long dst_nativeObj, long times_nativeObj, long response_nativeObj);
56 |
57 | // C++: void process(vector_Mat src, Mat& dst, Mat times)
58 | private static native void process_1(long nativeObj, long src_mat_nativeObj, long dst_nativeObj, long times_nativeObj);
59 |
60 | // native support for java finalize()
61 | private static native void delete(long nativeObj);
62 |
63 | }
64 |
--------------------------------------------------------------------------------
/openCVLibrary320/src/main/java/org/opencv/photo/MergeExposures.java:
--------------------------------------------------------------------------------
1 |
2 | //
3 | // This file is auto-generated. Please don't modify it!
4 | //
5 | package org.opencv.photo;
6 |
7 | import java.util.ArrayList;
8 | import java.util.List;
9 | import org.opencv.core.Algorithm;
10 | import org.opencv.core.Mat;
11 | import org.opencv.utils.Converters;
12 |
13 | // C++: class MergeExposures
14 | //javadoc: MergeExposures
15 | public class MergeExposures extends Algorithm {
16 |
17 | protected MergeExposures(long addr) { super(addr); }
18 |
19 |
20 | //
21 | // C++: void process(vector_Mat src, Mat& dst, Mat times, Mat response)
22 | //
23 |
24 | //javadoc: MergeExposures::process(src, dst, times, response)
25 | public void process(List src, Mat dst, Mat times, Mat response)
26 | {
27 | Mat src_mat = Converters.vector_Mat_to_Mat(src);
28 | process_0(nativeObj, src_mat.nativeObj, dst.nativeObj, times.nativeObj, response.nativeObj);
29 |
30 | return;
31 | }
32 |
33 |
34 | @Override
35 | protected void finalize() throws Throwable {
36 | delete(nativeObj);
37 | }
38 |
39 |
40 |
41 | // C++: void process(vector_Mat src, Mat& dst, Mat times, Mat response)
42 | private static native void process_0(long nativeObj, long src_mat_nativeObj, long dst_nativeObj, long times_nativeObj, long response_nativeObj);
43 |
44 | // native support for java finalize()
45 | private static native void delete(long nativeObj);
46 |
47 | }
48 |
--------------------------------------------------------------------------------
/openCVLibrary320/src/main/java/org/opencv/photo/MergeRobertson.java:
--------------------------------------------------------------------------------
1 |
2 | //
3 | // This file is auto-generated. Please don't modify it!
4 | //
5 | package org.opencv.photo;
6 |
7 | import java.util.ArrayList;
8 | import java.util.List;
9 | import org.opencv.core.Mat;
10 | import org.opencv.utils.Converters;
11 |
12 | // C++: class MergeRobertson
13 | //javadoc: MergeRobertson
14 | public class MergeRobertson extends MergeExposures {
15 |
16 | protected MergeRobertson(long addr) { super(addr); }
17 |
18 |
19 | //
20 | // C++: void process(vector_Mat src, Mat& dst, Mat times, Mat response)
21 | //
22 |
23 | //javadoc: MergeRobertson::process(src, dst, times, response)
24 | public void process(List src, Mat dst, Mat times, Mat response)
25 | {
26 | Mat src_mat = Converters.vector_Mat_to_Mat(src);
27 | process_0(nativeObj, src_mat.nativeObj, dst.nativeObj, times.nativeObj, response.nativeObj);
28 |
29 | return;
30 | }
31 |
32 |
33 | //
34 | // C++: void process(vector_Mat src, Mat& dst, Mat times)
35 | //
36 |
37 | //javadoc: MergeRobertson::process(src, dst, times)
38 | public void process(List src, Mat dst, Mat times)
39 | {
40 | Mat src_mat = Converters.vector_Mat_to_Mat(src);
41 | process_1(nativeObj, src_mat.nativeObj, dst.nativeObj, times.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 process(vector_Mat src, Mat& dst, Mat times, Mat response)
55 | private static native void process_0(long nativeObj, long src_mat_nativeObj, long dst_nativeObj, long times_nativeObj, long response_nativeObj);
56 |
57 | // C++: void process(vector_Mat src, Mat& dst, Mat times)
58 | private static native void process_1(long nativeObj, long src_mat_nativeObj, long dst_nativeObj, long times_nativeObj);
59 |
60 | // native support for java finalize()
61 | private static native void delete(long nativeObj);
62 |
63 | }
64 |
--------------------------------------------------------------------------------
/openCVLibrary320/src/main/java/org/opencv/photo/Tonemap.java:
--------------------------------------------------------------------------------
1 |
2 | //
3 | // This file is auto-generated. Please don't modify it!
4 | //
5 | package org.opencv.photo;
6 |
7 | import org.opencv.core.Algorithm;
8 | import org.opencv.core.Mat;
9 |
10 | // C++: class Tonemap
11 | //javadoc: Tonemap
12 | public class Tonemap extends Algorithm {
13 |
14 | protected Tonemap(long addr) { super(addr); }
15 |
16 |
17 | //
18 | // C++: float getGamma()
19 | //
20 |
21 | //javadoc: Tonemap::getGamma()
22 | public float getGamma()
23 | {
24 |
25 | float retVal = getGamma_0(nativeObj);
26 |
27 | return retVal;
28 | }
29 |
30 |
31 | //
32 | // C++: void process(Mat src, Mat& dst)
33 | //
34 |
35 | //javadoc: Tonemap::process(src, dst)
36 | public void process(Mat src, Mat dst)
37 | {
38 |
39 | process_0(nativeObj, src.nativeObj, dst.nativeObj);
40 |
41 | return;
42 | }
43 |
44 |
45 | //
46 | // C++: void setGamma(float gamma)
47 | //
48 |
49 | //javadoc: Tonemap::setGamma(gamma)
50 | public void setGamma(float gamma)
51 | {
52 |
53 | setGamma_0(nativeObj, gamma);
54 |
55 | return;
56 | }
57 |
58 |
59 | @Override
60 | protected void finalize() throws Throwable {
61 | delete(nativeObj);
62 | }
63 |
64 |
65 |
66 | // C++: float getGamma()
67 | private static native float getGamma_0(long nativeObj);
68 |
69 | // C++: void process(Mat src, Mat& dst)
70 | private static native void process_0(long nativeObj, long src_nativeObj, long dst_nativeObj);
71 |
72 | // C++: void setGamma(float gamma)
73 | private static native void setGamma_0(long nativeObj, float gamma);
74 |
75 | // native support for java finalize()
76 | private static native void delete(long nativeObj);
77 |
78 | }
79 |
--------------------------------------------------------------------------------
/openCVLibrary320/src/main/java/org/opencv/photo/TonemapDrago.java:
--------------------------------------------------------------------------------
1 |
2 | //
3 | // This file is auto-generated. Please don't modify it!
4 | //
5 | package org.opencv.photo;
6 |
7 |
8 |
9 | // C++: class TonemapDrago
10 | //javadoc: TonemapDrago
11 | public class TonemapDrago extends Tonemap {
12 |
13 | protected TonemapDrago(long addr) { super(addr); }
14 |
15 |
16 | //
17 | // C++: float getBias()
18 | //
19 |
20 | //javadoc: TonemapDrago::getBias()
21 | public float getBias()
22 | {
23 |
24 | float retVal = getBias_0(nativeObj);
25 |
26 | return retVal;
27 | }
28 |
29 |
30 | //
31 | // C++: float getSaturation()
32 | //
33 |
34 | //javadoc: TonemapDrago::getSaturation()
35 | public float getSaturation()
36 | {
37 |
38 | float retVal = getSaturation_0(nativeObj);
39 |
40 | return retVal;
41 | }
42 |
43 |
44 | //
45 | // C++: void setBias(float bias)
46 | //
47 |
48 | //javadoc: TonemapDrago::setBias(bias)
49 | public void setBias(float bias)
50 | {
51 |
52 | setBias_0(nativeObj, bias);
53 |
54 | return;
55 | }
56 |
57 |
58 | //
59 | // C++: void setSaturation(float saturation)
60 | //
61 |
62 | //javadoc: TonemapDrago::setSaturation(saturation)
63 | public void setSaturation(float saturation)
64 | {
65 |
66 | setSaturation_0(nativeObj, saturation);
67 |
68 | return;
69 | }
70 |
71 |
72 | @Override
73 | protected void finalize() throws Throwable {
74 | delete(nativeObj);
75 | }
76 |
77 |
78 |
79 | // C++: float getBias()
80 | private static native float getBias_0(long nativeObj);
81 |
82 | // C++: float getSaturation()
83 | private static native float getSaturation_0(long nativeObj);
84 |
85 | // C++: void setBias(float bias)
86 | private static native void setBias_0(long nativeObj, float bias);
87 |
88 | // C++: void setSaturation(float saturation)
89 | private static native void setSaturation_0(long nativeObj, float saturation);
90 |
91 | // native support for java finalize()
92 | private static native void delete(long nativeObj);
93 |
94 | }
95 |
--------------------------------------------------------------------------------
/openCVLibrary320/src/main/java/org/opencv/photo/TonemapMantiuk.java:
--------------------------------------------------------------------------------
1 |
2 | //
3 | // This file is auto-generated. Please don't modify it!
4 | //
5 | package org.opencv.photo;
6 |
7 |
8 |
9 | // C++: class TonemapMantiuk
10 | //javadoc: TonemapMantiuk
11 | public class TonemapMantiuk extends Tonemap {
12 |
13 | protected TonemapMantiuk(long addr) { super(addr); }
14 |
15 |
16 | //
17 | // C++: float getSaturation()
18 | //
19 |
20 | //javadoc: TonemapMantiuk::getSaturation()
21 | public float getSaturation()
22 | {
23 |
24 | float retVal = getSaturation_0(nativeObj);
25 |
26 | return retVal;
27 | }
28 |
29 |
30 | //
31 | // C++: float getScale()
32 | //
33 |
34 | //javadoc: TonemapMantiuk::getScale()
35 | public float getScale()
36 | {
37 |
38 | float retVal = getScale_0(nativeObj);
39 |
40 | return retVal;
41 | }
42 |
43 |
44 | //
45 | // C++: void setSaturation(float saturation)
46 | //
47 |
48 | //javadoc: TonemapMantiuk::setSaturation(saturation)
49 | public void setSaturation(float saturation)
50 | {
51 |
52 | setSaturation_0(nativeObj, saturation);
53 |
54 | return;
55 | }
56 |
57 |
58 | //
59 | // C++: void setScale(float scale)
60 | //
61 |
62 | //javadoc: TonemapMantiuk::setScale(scale)
63 | public void setScale(float scale)
64 | {
65 |
66 | setScale_0(nativeObj, scale);
67 |
68 | return;
69 | }
70 |
71 |
72 | @Override
73 | protected void finalize() throws Throwable {
74 | delete(nativeObj);
75 | }
76 |
77 |
78 |
79 | // C++: float getSaturation()
80 | private static native float getSaturation_0(long nativeObj);
81 |
82 | // C++: float getScale()
83 | private static native float getScale_0(long nativeObj);
84 |
85 | // C++: void setSaturation(float saturation)
86 | private static native void setSaturation_0(long nativeObj, float saturation);
87 |
88 | // C++: void setScale(float scale)
89 | private static native void setScale_0(long nativeObj, float scale);
90 |
91 | // native support for java finalize()
92 | private static native void delete(long nativeObj);
93 |
94 | }
95 |
--------------------------------------------------------------------------------
/openCVLibrary320/src/main/java/org/opencv/video/BackgroundSubtractor.java:
--------------------------------------------------------------------------------
1 |
2 | //
3 | // This file is auto-generated. Please don't modify it!
4 | //
5 | package org.opencv.video;
6 |
7 | import org.opencv.core.Algorithm;
8 | import org.opencv.core.Mat;
9 |
10 | // C++: class BackgroundSubtractor
11 | //javadoc: BackgroundSubtractor
12 | public class BackgroundSubtractor extends Algorithm {
13 |
14 | protected BackgroundSubtractor(long addr) { super(addr); }
15 |
16 |
17 | //
18 | // C++: void apply(Mat image, Mat& fgmask, double learningRate = -1)
19 | //
20 |
21 | //javadoc: BackgroundSubtractor::apply(image, fgmask, learningRate)
22 | public void apply(Mat image, Mat fgmask, double learningRate)
23 | {
24 |
25 | apply_0(nativeObj, image.nativeObj, fgmask.nativeObj, learningRate);
26 |
27 | return;
28 | }
29 |
30 | //javadoc: BackgroundSubtractor::apply(image, fgmask)
31 | public void apply(Mat image, Mat fgmask)
32 | {
33 |
34 | apply_1(nativeObj, image.nativeObj, fgmask.nativeObj);
35 |
36 | return;
37 | }
38 |
39 |
40 | //
41 | // C++: void getBackgroundImage(Mat& backgroundImage)
42 | //
43 |
44 | //javadoc: BackgroundSubtractor::getBackgroundImage(backgroundImage)
45 | public void getBackgroundImage(Mat backgroundImage)
46 | {
47 |
48 | getBackgroundImage_0(nativeObj, backgroundImage.nativeObj);
49 |
50 | return;
51 | }
52 |
53 |
54 | @Override
55 | protected void finalize() throws Throwable {
56 | delete(nativeObj);
57 | }
58 |
59 |
60 |
61 | // C++: void apply(Mat image, Mat& fgmask, double learningRate = -1)
62 | private static native void apply_0(long nativeObj, long image_nativeObj, long fgmask_nativeObj, double learningRate);
63 | private static native void apply_1(long nativeObj, long image_nativeObj, long fgmask_nativeObj);
64 |
65 | // C++: void getBackgroundImage(Mat& backgroundImage)
66 | private static native void getBackgroundImage_0(long nativeObj, long backgroundImage_nativeObj);
67 |
68 | // native support for java finalize()
69 | private static native void delete(long nativeObj);
70 |
71 | }
72 |
--------------------------------------------------------------------------------
/openCVLibrary320/src/main/java/org/opencv/video/DenseOpticalFlow.java:
--------------------------------------------------------------------------------
1 |
2 | //
3 | // This file is auto-generated. Please don't modify it!
4 | //
5 | package org.opencv.video;
6 |
7 | import org.opencv.core.Algorithm;
8 | import org.opencv.core.Mat;
9 |
10 | // C++: class DenseOpticalFlow
11 | //javadoc: DenseOpticalFlow
12 | public class DenseOpticalFlow extends Algorithm {
13 |
14 | protected DenseOpticalFlow(long addr) { super(addr); }
15 |
16 |
17 | //
18 | // C++: void calc(Mat I0, Mat I1, Mat& flow)
19 | //
20 |
21 | //javadoc: DenseOpticalFlow::calc(I0, I1, flow)
22 | public void calc(Mat I0, Mat I1, Mat flow)
23 | {
24 |
25 | calc_0(nativeObj, I0.nativeObj, I1.nativeObj, flow.nativeObj);
26 |
27 | return;
28 | }
29 |
30 |
31 | //
32 | // C++: void collectGarbage()
33 | //
34 |
35 | //javadoc: DenseOpticalFlow::collectGarbage()
36 | public void collectGarbage()
37 | {
38 |
39 | collectGarbage_0(nativeObj);
40 |
41 | return;
42 | }
43 |
44 |
45 | @Override
46 | protected void finalize() throws Throwable {
47 | delete(nativeObj);
48 | }
49 |
50 |
51 |
52 | // C++: void calc(Mat I0, Mat I1, Mat& flow)
53 | private static native void calc_0(long nativeObj, long I0_nativeObj, long I1_nativeObj, long flow_nativeObj);
54 |
55 | // C++: void collectGarbage()
56 | private static native void collectGarbage_0(long nativeObj);
57 |
58 | // native support for java finalize()
59 | private static native void delete(long nativeObj);
60 |
61 | }
62 |
--------------------------------------------------------------------------------
/openCVLibrary320/src/main/java/org/opencv/video/SparseOpticalFlow.java:
--------------------------------------------------------------------------------
1 |
2 | //
3 | // This file is auto-generated. Please don't modify it!
4 | //
5 | package org.opencv.video;
6 |
7 | import org.opencv.core.Algorithm;
8 | import org.opencv.core.Mat;
9 |
10 | // C++: class SparseOpticalFlow
11 | //javadoc: SparseOpticalFlow
12 | public class SparseOpticalFlow extends Algorithm {
13 |
14 | protected SparseOpticalFlow(long addr) { super(addr); }
15 |
16 |
17 | //
18 | // C++: void calc(Mat prevImg, Mat nextImg, Mat prevPts, Mat& nextPts, Mat& status, Mat& err = cv::Mat())
19 | //
20 |
21 | //javadoc: SparseOpticalFlow::calc(prevImg, nextImg, prevPts, nextPts, status, err)
22 | public void calc(Mat prevImg, Mat nextImg, Mat prevPts, Mat nextPts, Mat status, Mat err)
23 | {
24 |
25 | calc_0(nativeObj, prevImg.nativeObj, nextImg.nativeObj, prevPts.nativeObj, nextPts.nativeObj, status.nativeObj, err.nativeObj);
26 |
27 | return;
28 | }
29 |
30 | //javadoc: SparseOpticalFlow::calc(prevImg, nextImg, prevPts, nextPts, status)
31 | public void calc(Mat prevImg, Mat nextImg, Mat prevPts, Mat nextPts, Mat status)
32 | {
33 |
34 | calc_1(nativeObj, prevImg.nativeObj, nextImg.nativeObj, prevPts.nativeObj, nextPts.nativeObj, status.nativeObj);
35 |
36 | return;
37 | }
38 |
39 |
40 | @Override
41 | protected void finalize() throws Throwable {
42 | delete(nativeObj);
43 | }
44 |
45 |
46 |
47 | // C++: void calc(Mat prevImg, Mat nextImg, Mat prevPts, Mat& nextPts, Mat& status, Mat& err = cv::Mat())
48 | 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);
49 | private static native void calc_1(long nativeObj, long prevImg_nativeObj, long nextImg_nativeObj, long prevPts_nativeObj, long nextPts_nativeObj, long status_nativeObj);
50 |
51 | // native support for java finalize()
52 | private static native void delete(long nativeObj);
53 |
54 | }
55 |
--------------------------------------------------------------------------------
/openCVLibrary320/src/main/res/values/attrs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | include ':openCVLibrary320'
3 |
--------------------------------------------------------------------------------
/show_img/face.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CommissarMa/FaceAccessControl/95cfeb5f76918cb64eb01609e22ea4fc71a52b1f/show_img/face.png
--------------------------------------------------------------------------------
/show_img/face_yes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CommissarMa/FaceAccessControl/95cfeb5f76918cb64eb01609e22ea4fc71a52b1f/show_img/face_yes.png
--------------------------------------------------------------------------------
/show_img/manage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CommissarMa/FaceAccessControl/95cfeb5f76918cb64eb01609e22ea4fc71a52b1f/show_img/manage.png
--------------------------------------------------------------------------------
/show_img/user_gui.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CommissarMa/FaceAccessControl/95cfeb5f76918cb64eb01609e22ea4fc71a52b1f/show_img/user_gui.png
--------------------------------------------------------------------------------