├── .classpath
├── .cproject
├── .project
├── .settings
├── desktop.ini
└── org.eclipse.jdt.core.prefs
├── AndroidManifest.xml
├── README.md
├── bin
├── AndroidManifest.xml
├── Emotiondetection.apk
├── OpenCV Sample - face-detection.apk
├── R.txt
├── classes.dex
├── classes
│ ├── com
│ │ ├── desktop.ini
│ │ └── emotion
│ │ │ ├── desktop.ini
│ │ │ └── facedetection
│ │ │ ├── BuildConfig.class
│ │ │ ├── FaceDetectionView.class
│ │ │ ├── FdActivity$1$1.class
│ │ │ ├── FdActivity$1.class
│ │ │ ├── FdActivity$2.class
│ │ │ ├── FdActivity.class
│ │ │ ├── FpsMeter.class
│ │ │ ├── R$attr.class
│ │ │ ├── R$color.class
│ │ │ ├── R$drawable.class
│ │ │ ├── R$id.class
│ │ │ ├── R$layout.class
│ │ │ ├── R$raw.class
│ │ │ ├── R$string.class
│ │ │ ├── R$style.class
│ │ │ ├── R$styleable.class
│ │ │ ├── R.class
│ │ │ ├── SampleCvViewBase.class
│ │ │ └── desktop.ini
│ ├── desktop.ini
│ └── org
│ │ ├── desktop.ini
│ │ └── opencv
│ │ ├── R$attr.class
│ │ ├── R$id.class
│ │ ├── R$styleable.class
│ │ ├── R.class
│ │ ├── desktop.ini
│ │ └── samples
│ │ ├── desktop.ini
│ │ └── facedetect
│ │ ├── DetectionBasedTracker.class
│ │ └── desktop.ini
├── desktop.ini
├── dexedLibs
│ ├── desktop.ini
│ └── opencv library - 2.4.6-6979bdfd6b515aa5da9dffe500a0d733.jar
├── res
│ ├── crunch
│ │ ├── desktop.ini
│ │ └── drawable
│ │ │ ├── big_smile.png
│ │ │ ├── desktop.ini
│ │ │ └── icon.png
│ └── desktop.ini
└── resources.ap_
├── desktop.ini
├── gen
├── com
│ ├── desktop.ini
│ └── emotion
│ │ ├── desktop.ini
│ │ └── facedetection
│ │ ├── BuildConfig.java
│ │ ├── R.java
│ │ └── desktop.ini
├── desktop.ini
└── org
│ ├── desktop.ini
│ └── opencv
│ ├── R.java
│ └── desktop.ini
├── jni
├── Android.mk
├── Application.mk
├── DetectionBasedTracker_jni.cpp
├── DetectionBasedTracker_jni.h
└── desktop.ini
├── libs
├── armeabi-v7a
│ ├── desktop.ini
│ └── libdetection_based_tracker.so
└── desktop.ini
├── lint.xml
├── obj
├── desktop.ini
└── local
│ ├── armeabi-v7a
│ ├── desktop.ini
│ ├── libdetection_based_tracker.so
│ └── objs
│ │ ├── desktop.ini
│ │ └── detection_based_tracker
│ │ ├── DetectionBasedTracker_jni.o
│ │ ├── DetectionBasedTracker_jni.o.d
│ │ └── desktop.ini
│ └── desktop.ini
├── project.properties
├── res
├── desktop.ini
├── drawable
│ ├── big_smile.png
│ ├── desktop.ini
│ └── icon.png
├── layout
│ ├── activity_main_menu.xml
│ ├── desktop.ini
│ └── face_detect_surface_view.xml
├── raw
│ ├── desktop.ini
│ ├── haarcascade_eye.xml
│ ├── haarcascade_eye_tree_eyeglasses.xml
│ ├── haarcascade_frontalface_alt.xml
│ ├── haarcascade_mcs_mouth.xml
│ ├── haarcascade_smile.xml
│ ├── lbpcascade_frontalface.xml
│ ├── sad_custom1.xml
│ ├── sad_pre.xml
│ └── smile5.xml
└── values
│ ├── colors.xml
│ ├── desktop.ini
│ ├── strings.xml
│ └── styles.xml
└── src
├── com
├── desktop.ini
└── emotion
│ ├── desktop.ini
│ └── facedetection
│ ├── FaceDetectionView.java
│ ├── FdActivity.java
│ ├── FpsMeter.java
│ ├── SampleCvViewBase.java
│ └── desktop.ini
├── desktop.ini
└── org
├── desktop.ini
└── opencv
├── desktop.ini
└── samples
├── desktop.ini
└── facedetect
├── DetectionBasedTracker.java
└── desktop.ini
/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.cproject:
--------------------------------------------------------------------------------
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 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
--------------------------------------------------------------------------------
/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | OpenCV Sample - face-detection
4 |
5 |
6 |
7 |
8 |
9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder
10 | auto,full,incremental,
11 |
12 |
13 | ?name?
14 |
15 |
16 |
17 | org.eclipse.cdt.make.core.append_environment
18 | true
19 |
20 |
21 | org.eclipse.cdt.make.core.autoBuildTarget
22 |
23 |
24 |
25 | org.eclipse.cdt.make.core.buildArguments
26 |
27 |
28 |
29 | org.eclipse.cdt.make.core.buildCommand
30 | "${NDKROOT}/ndk-build.cmd"
31 |
32 |
33 | org.eclipse.cdt.make.core.cleanBuildTarget
34 | clean
35 |
36 |
37 | org.eclipse.cdt.make.core.contents
38 | org.eclipse.cdt.make.core.activeConfigSettings
39 |
40 |
41 | org.eclipse.cdt.make.core.enableAutoBuild
42 | true
43 |
44 |
45 | org.eclipse.cdt.make.core.enableCleanBuild
46 | false
47 |
48 |
49 | org.eclipse.cdt.make.core.enableFullBuild
50 | true
51 |
52 |
53 | org.eclipse.cdt.make.core.fullBuildTarget
54 |
55 |
56 |
57 | org.eclipse.cdt.make.core.stopOnError
58 | true
59 |
60 |
61 | org.eclipse.cdt.make.core.useDefaultBuildCmd
62 | false
63 |
64 |
65 |
66 |
67 | com.android.ide.eclipse.adt.ResourceManagerBuilder
68 |
69 |
70 |
71 |
72 | com.android.ide.eclipse.adt.PreCompilerBuilder
73 |
74 |
75 |
76 |
77 | org.eclipse.jdt.core.javabuilder
78 |
79 |
80 |
81 |
82 | com.android.ide.eclipse.adt.ApkBuilder
83 |
84 |
85 |
86 |
87 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder
88 | full,incremental,
89 |
90 |
91 |
92 |
93 |
94 | com.android.ide.eclipse.adt.AndroidNature
95 | org.eclipse.jdt.core.javanature
96 | org.eclipse.cdt.core.cnature
97 | org.eclipse.cdt.core.ccnature
98 | org.eclipse.cdt.managedbuilder.core.managedBuildNature
99 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature
100 |
101 |
102 |
--------------------------------------------------------------------------------
/.settings/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/.settings/org.eclipse.jdt.core.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
4 | org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
5 | org.eclipse.jdt.core.compiler.compliance=1.6
6 | org.eclipse.jdt.core.compiler.debug.lineNumber=generate
7 | org.eclipse.jdt.core.compiler.debug.localVariable=generate
8 | org.eclipse.jdt.core.compiler.debug.sourceFile=generate
9 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
10 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
11 | org.eclipse.jdt.core.compiler.source=1.6
12 |
--------------------------------------------------------------------------------
/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
9 |
10 |
15 |
17 |
18 |
19 |
20 |
21 |
22 |
27 |
28 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | SmileDetection
2 | ==============
3 |
4 | This is an Android Based Smile Detection Project , using OpenCV and JavaCV. It works well with android and to make it work you need to install the open cv libraries in your Android Phone.
5 |
--------------------------------------------------------------------------------
/bin/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
9 |
10 |
15 |
17 |
18 |
19 |
20 |
21 |
22 |
27 |
28 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/bin/Emotiondetection.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhishek-ch/SmileDetection/b94c7ffebdf377ead5cb74bfdb39a4a03d40ddaa/bin/Emotiondetection.apk
--------------------------------------------------------------------------------
/bin/OpenCV Sample - face-detection.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhishek-ch/SmileDetection/b94c7ffebdf377ead5cb74bfdb39a4a03d40ddaa/bin/OpenCV Sample - face-detection.apk
--------------------------------------------------------------------------------
/bin/R.txt:
--------------------------------------------------------------------------------
1 | int attr camera_id 0x7f010001
2 | int attr show_fps 0x7f010000
3 | int color black_overlay 0x7f060000
4 | int drawable big_smile 0x7f020000
5 | int drawable icon 0x7f020001
6 | int id Space1 0x7f050004
7 | int id Space2 0x7f050006
8 | int id Space3 0x7f050005
9 | int id any 0x7f050000
10 | int id back 0x7f050001
11 | int id btnCamera 0x7f050007
12 | int id btnDB 0x7f050008
13 | int id btnTrain 0x7f050009
14 | int id container 0x7f050003
15 | int id fd_activity_surface_view 0x7f05000a
16 | int id front 0x7f050002
17 | int layout activity_main_menu 0x7f030000
18 | int layout face_detect_surface_view 0x7f030001
19 | int raw haarcascade_eye 0x7f040000
20 | int raw haarcascade_eye_tree_eyeglasses 0x7f040001
21 | int raw haarcascade_frontalface_alt 0x7f040002
22 | int raw haarcascade_mcs_mouth 0x7f040003
23 | int raw haarcascade_smile 0x7f040004
24 | int raw lbpcascade_frontalface 0x7f040005
25 | int raw smile5 0x7f040006
26 | int string app_name 0x7f070000
27 | int style ActionBarStyle 0x7f080002
28 | int style AppBaseTheme 0x7f080000
29 | int style AppTheme 0x7f080001
30 | int[] styleable CameraBridgeViewBase { 0x7f010000, 0x7f010001 }
31 | int styleable CameraBridgeViewBase_camera_id 1
32 | int styleable CameraBridgeViewBase_show_fps 0
33 |
--------------------------------------------------------------------------------
/bin/classes.dex:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhishek-ch/SmileDetection/b94c7ffebdf377ead5cb74bfdb39a4a03d40ddaa/bin/classes.dex
--------------------------------------------------------------------------------
/bin/classes/com/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/bin/classes/com/emotion/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/bin/classes/com/emotion/facedetection/BuildConfig.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhishek-ch/SmileDetection/b94c7ffebdf377ead5cb74bfdb39a4a03d40ddaa/bin/classes/com/emotion/facedetection/BuildConfig.class
--------------------------------------------------------------------------------
/bin/classes/com/emotion/facedetection/FaceDetectionView.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhishek-ch/SmileDetection/b94c7ffebdf377ead5cb74bfdb39a4a03d40ddaa/bin/classes/com/emotion/facedetection/FaceDetectionView.class
--------------------------------------------------------------------------------
/bin/classes/com/emotion/facedetection/FdActivity$1$1.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhishek-ch/SmileDetection/b94c7ffebdf377ead5cb74bfdb39a4a03d40ddaa/bin/classes/com/emotion/facedetection/FdActivity$1$1.class
--------------------------------------------------------------------------------
/bin/classes/com/emotion/facedetection/FdActivity$1.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhishek-ch/SmileDetection/b94c7ffebdf377ead5cb74bfdb39a4a03d40ddaa/bin/classes/com/emotion/facedetection/FdActivity$1.class
--------------------------------------------------------------------------------
/bin/classes/com/emotion/facedetection/FdActivity$2.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhishek-ch/SmileDetection/b94c7ffebdf377ead5cb74bfdb39a4a03d40ddaa/bin/classes/com/emotion/facedetection/FdActivity$2.class
--------------------------------------------------------------------------------
/bin/classes/com/emotion/facedetection/FdActivity.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhishek-ch/SmileDetection/b94c7ffebdf377ead5cb74bfdb39a4a03d40ddaa/bin/classes/com/emotion/facedetection/FdActivity.class
--------------------------------------------------------------------------------
/bin/classes/com/emotion/facedetection/FpsMeter.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhishek-ch/SmileDetection/b94c7ffebdf377ead5cb74bfdb39a4a03d40ddaa/bin/classes/com/emotion/facedetection/FpsMeter.class
--------------------------------------------------------------------------------
/bin/classes/com/emotion/facedetection/R$attr.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhishek-ch/SmileDetection/b94c7ffebdf377ead5cb74bfdb39a4a03d40ddaa/bin/classes/com/emotion/facedetection/R$attr.class
--------------------------------------------------------------------------------
/bin/classes/com/emotion/facedetection/R$color.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhishek-ch/SmileDetection/b94c7ffebdf377ead5cb74bfdb39a4a03d40ddaa/bin/classes/com/emotion/facedetection/R$color.class
--------------------------------------------------------------------------------
/bin/classes/com/emotion/facedetection/R$drawable.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhishek-ch/SmileDetection/b94c7ffebdf377ead5cb74bfdb39a4a03d40ddaa/bin/classes/com/emotion/facedetection/R$drawable.class
--------------------------------------------------------------------------------
/bin/classes/com/emotion/facedetection/R$id.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhishek-ch/SmileDetection/b94c7ffebdf377ead5cb74bfdb39a4a03d40ddaa/bin/classes/com/emotion/facedetection/R$id.class
--------------------------------------------------------------------------------
/bin/classes/com/emotion/facedetection/R$layout.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhishek-ch/SmileDetection/b94c7ffebdf377ead5cb74bfdb39a4a03d40ddaa/bin/classes/com/emotion/facedetection/R$layout.class
--------------------------------------------------------------------------------
/bin/classes/com/emotion/facedetection/R$raw.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhishek-ch/SmileDetection/b94c7ffebdf377ead5cb74bfdb39a4a03d40ddaa/bin/classes/com/emotion/facedetection/R$raw.class
--------------------------------------------------------------------------------
/bin/classes/com/emotion/facedetection/R$string.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhishek-ch/SmileDetection/b94c7ffebdf377ead5cb74bfdb39a4a03d40ddaa/bin/classes/com/emotion/facedetection/R$string.class
--------------------------------------------------------------------------------
/bin/classes/com/emotion/facedetection/R$style.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhishek-ch/SmileDetection/b94c7ffebdf377ead5cb74bfdb39a4a03d40ddaa/bin/classes/com/emotion/facedetection/R$style.class
--------------------------------------------------------------------------------
/bin/classes/com/emotion/facedetection/R$styleable.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhishek-ch/SmileDetection/b94c7ffebdf377ead5cb74bfdb39a4a03d40ddaa/bin/classes/com/emotion/facedetection/R$styleable.class
--------------------------------------------------------------------------------
/bin/classes/com/emotion/facedetection/R.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhishek-ch/SmileDetection/b94c7ffebdf377ead5cb74bfdb39a4a03d40ddaa/bin/classes/com/emotion/facedetection/R.class
--------------------------------------------------------------------------------
/bin/classes/com/emotion/facedetection/SampleCvViewBase.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhishek-ch/SmileDetection/b94c7ffebdf377ead5cb74bfdb39a4a03d40ddaa/bin/classes/com/emotion/facedetection/SampleCvViewBase.class
--------------------------------------------------------------------------------
/bin/classes/com/emotion/facedetection/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/bin/classes/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/bin/classes/org/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/bin/classes/org/opencv/R$attr.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhishek-ch/SmileDetection/b94c7ffebdf377ead5cb74bfdb39a4a03d40ddaa/bin/classes/org/opencv/R$attr.class
--------------------------------------------------------------------------------
/bin/classes/org/opencv/R$id.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhishek-ch/SmileDetection/b94c7ffebdf377ead5cb74bfdb39a4a03d40ddaa/bin/classes/org/opencv/R$id.class
--------------------------------------------------------------------------------
/bin/classes/org/opencv/R$styleable.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhishek-ch/SmileDetection/b94c7ffebdf377ead5cb74bfdb39a4a03d40ddaa/bin/classes/org/opencv/R$styleable.class
--------------------------------------------------------------------------------
/bin/classes/org/opencv/R.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhishek-ch/SmileDetection/b94c7ffebdf377ead5cb74bfdb39a4a03d40ddaa/bin/classes/org/opencv/R.class
--------------------------------------------------------------------------------
/bin/classes/org/opencv/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/bin/classes/org/opencv/samples/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/bin/classes/org/opencv/samples/facedetect/DetectionBasedTracker.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhishek-ch/SmileDetection/b94c7ffebdf377ead5cb74bfdb39a4a03d40ddaa/bin/classes/org/opencv/samples/facedetect/DetectionBasedTracker.class
--------------------------------------------------------------------------------
/bin/classes/org/opencv/samples/facedetect/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/bin/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/bin/dexedLibs/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/bin/dexedLibs/opencv library - 2.4.6-6979bdfd6b515aa5da9dffe500a0d733.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhishek-ch/SmileDetection/b94c7ffebdf377ead5cb74bfdb39a4a03d40ddaa/bin/dexedLibs/opencv library - 2.4.6-6979bdfd6b515aa5da9dffe500a0d733.jar
--------------------------------------------------------------------------------
/bin/res/crunch/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/bin/res/crunch/drawable/big_smile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhishek-ch/SmileDetection/b94c7ffebdf377ead5cb74bfdb39a4a03d40ddaa/bin/res/crunch/drawable/big_smile.png
--------------------------------------------------------------------------------
/bin/res/crunch/drawable/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/bin/res/crunch/drawable/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhishek-ch/SmileDetection/b94c7ffebdf377ead5cb74bfdb39a4a03d40ddaa/bin/res/crunch/drawable/icon.png
--------------------------------------------------------------------------------
/bin/res/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/bin/resources.ap_:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhishek-ch/SmileDetection/b94c7ffebdf377ead5cb74bfdb39a4a03d40ddaa/bin/resources.ap_
--------------------------------------------------------------------------------
/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/gen/com/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/gen/com/emotion/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/gen/com/emotion/facedetection/BuildConfig.java:
--------------------------------------------------------------------------------
1 | /** Automatically generated file. DO NOT MODIFY */
2 | package com.emotion.facedetection;
3 |
4 | public final class BuildConfig {
5 | public final static boolean DEBUG = true;
6 | }
--------------------------------------------------------------------------------
/gen/com/emotion/facedetection/R.java:
--------------------------------------------------------------------------------
1 | /* AUTO-GENERATED FILE. DO NOT MODIFY.
2 | *
3 | * This class was automatically generated by the
4 | * aapt tool from the resource data it found. It
5 | * should not be modified by hand.
6 | */
7 |
8 | package com.emotion.facedetection;
9 |
10 | public final class R {
11 | public static final class attr {
12 | /**
May be an integer value, such as "100
".
13 |
This may also be a reference to a resource (in the form
14 | "@[package :]type :name
") or
15 | theme attribute (in the form
16 | "?[package :][type :]name
")
17 | containing a value of this type.
18 |
May be one of the following constant values.
19 |
20 |
21 |
22 |
23 | Constant Value Description
24 | any
-1
25 | back
99
26 | front
98
27 |
28 | */
29 | public static final int camera_id=0x7f010001;
30 | /** Must be a boolean value, either "true
" or "false
".
31 |
This may also be a reference to a resource (in the form
32 | "@[package :]type :name
") or
33 | theme attribute (in the form
34 | "?[package :][type :]name
")
35 | containing a value of this type.
36 | */
37 | public static final int show_fps=0x7f010000;
38 | }
39 | public static final class color {
40 | public static final int black_overlay=0x7f060000;
41 | }
42 | public static final class drawable {
43 | public static final int big_smile=0x7f020000;
44 | public static final int icon=0x7f020001;
45 | }
46 | public static final class id {
47 | public static final int Space1=0x7f050004;
48 | public static final int Space2=0x7f050006;
49 | public static final int Space3=0x7f050005;
50 | public static final int any=0x7f050000;
51 | public static final int back=0x7f050001;
52 | public static final int btnCamera=0x7f050007;
53 | public static final int btnDB=0x7f050008;
54 | public static final int btnTrain=0x7f050009;
55 | public static final int container=0x7f050003;
56 | public static final int fd_activity_surface_view=0x7f05000a;
57 | public static final int front=0x7f050002;
58 | }
59 | public static final class layout {
60 | public static final int activity_main_menu=0x7f030000;
61 | public static final int face_detect_surface_view=0x7f030001;
62 | }
63 | public static final class raw {
64 | public static final int haarcascade_eye=0x7f040000;
65 | public static final int haarcascade_eye_tree_eyeglasses=0x7f040001;
66 | public static final int haarcascade_frontalface_alt=0x7f040002;
67 | public static final int haarcascade_mcs_mouth=0x7f040003;
68 | public static final int lbpcascade_frontalface=0x7f040004;
69 | public static final int sad_custom1=0x7f040005;
70 | public static final int sad_pre=0x7f040006;
71 | public static final int smile5=0x7f040007;
72 | }
73 | public static final class string {
74 | public static final int app_name=0x7f070000;
75 | }
76 | public static final class style {
77 | public static final int ActionBarStyle=0x7f080002;
78 | /**
79 | Base application theme, dependent on API level. This theme is replaced
80 | by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
81 |
82 |
83 |
84 | Theme customizations available in newer API levels can go in
85 | res/values-vXX/styles.xml, while customizations related to
86 | backward-compatibility can go here.
87 |
88 |
89 | Application theme.
90 | */
91 | public static final int AppBaseTheme=0x7f080000;
92 | public static final int AppTheme=0x7f080001;
93 | }
94 | public static final class styleable {
95 | /** Attributes that can be used with a CameraBridgeViewBase.
96 |
Includes the following attributes:
97 |
98 |
99 |
100 | Attribute Description
101 | {@link #CameraBridgeViewBase_camera_id com.emotion.facedetection:camera_id}
102 | {@link #CameraBridgeViewBase_show_fps com.emotion.facedetection:show_fps}
103 |
104 | @see #CameraBridgeViewBase_camera_id
105 | @see #CameraBridgeViewBase_show_fps
106 | */
107 | public static final int[] CameraBridgeViewBase = {
108 | 0x7f010000, 0x7f010001
109 | };
110 | /**
111 | This symbol is the offset where the {@link com.emotion.facedetection.R.attr#camera_id}
112 | attribute's value can be found in the {@link #CameraBridgeViewBase} array.
113 |
114 |
115 |
May be an integer value, such as "100
".
116 |
This may also be a reference to a resource (in the form
117 | "@[package :]type :name
") or
118 | theme attribute (in the form
119 | "?[package :][type :]name
")
120 | containing a value of this type.
121 |
May be one of the following constant values.
122 |
123 |
124 |
125 |
126 | Constant Value Description
127 | any
-1
128 | back
99
129 | front
98
130 |
131 | @attr name com.emotion.facedetection:camera_id
132 | */
133 | public static final int CameraBridgeViewBase_camera_id = 1;
134 | /**
135 | This symbol is the offset where the {@link com.emotion.facedetection.R.attr#show_fps}
136 | attribute's value can be found in the {@link #CameraBridgeViewBase} array.
137 |
138 |
139 |
Must be a boolean value, either "true
" or "false
".
140 |
This may also be a reference to a resource (in the form
141 | "@[package :]type :name
") or
142 | theme attribute (in the form
143 | "?[package :][type :]name
")
144 | containing a value of this type.
145 | @attr name com.emotion.facedetection:show_fps
146 | */
147 | public static final int CameraBridgeViewBase_show_fps = 0;
148 | };
149 | }
150 |
--------------------------------------------------------------------------------
/gen/com/emotion/facedetection/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/gen/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/gen/org/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/gen/org/opencv/R.java:
--------------------------------------------------------------------------------
1 | /* AUTO-GENERATED FILE. DO NOT MODIFY.
2 | *
3 | * This class was automatically generated by the
4 | * aapt tool from the resource data it found. It
5 | * should not be modified by hand.
6 | */
7 | package org.opencv;
8 |
9 | public final class R {
10 | public static final class attr {
11 | public static final int camera_id = 0x7f010001;
12 | public static final int show_fps = 0x7f010000;
13 | }
14 | public static final class id {
15 | public static final int any = 0x7f050000;
16 | public static final int back = 0x7f050001;
17 | public static final int front = 0x7f050002;
18 | }
19 | public static final class styleable {
20 | public static final int[] CameraBridgeViewBase = { 0x7f010000, 0x7f010001 };
21 | public static final int CameraBridgeViewBase_camera_id = 1;
22 | public static final int CameraBridgeViewBase_show_fps = 0;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/gen/org/opencv/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/jni/Android.mk:
--------------------------------------------------------------------------------
1 | LOCAL_PATH := $(call my-dir)
2 |
3 | include $(CLEAR_VARS)
4 |
5 | #OPENCV_CAMERA_MODULES:=off
6 | #OPENCV_INSTALL_MODULES:=off
7 | #OPENCV_LIB_TYPE:=SHARED
8 | include C:/Opencv2/Android/OpenCV-2.4.6-android-sdk-r2/OpenCV-2.4.6-android-sdk/sdk/native/jni/OpenCV.mk
9 |
10 | LOCAL_SRC_FILES := DetectionBasedTracker_jni.cpp
11 | LOCAL_C_INCLUDES += $(LOCAL_PATH)
12 | LOCAL_LDLIBS += -llog -ldl
13 |
14 | LOCAL_MODULE := detection_based_tracker
15 |
16 | include $(BUILD_SHARED_LIBRARY)
--------------------------------------------------------------------------------
/jni/Application.mk:
--------------------------------------------------------------------------------
1 | APP_STL := gnustl_static
2 | APP_CPPFLAGS := -frtti -fexceptions
3 | APP_ABI := armeabi-v7a
4 | APP_PLATFORM := android-8
5 |
--------------------------------------------------------------------------------
/jni/DetectionBasedTracker_jni.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 |
5 | #include
6 | #include
7 |
8 | #include
9 |
10 | #define LOG_TAG "FaceDetection/DetectionBasedTracker"
11 | #define LOGD(...) ((void)__android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__))
12 |
13 | using namespace std;
14 | using namespace cv;
15 |
16 | inline void vector_Rect_to_Mat(vector& v_rect, Mat& mat)
17 | {
18 | mat = Mat(v_rect, true);
19 | }
20 |
21 | JNIEXPORT jlong JNICALL Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeCreateObject
22 | (JNIEnv * jenv, jclass, jstring jFileName, jint faceSize)
23 | {
24 | LOGD("Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeCreateObject enter");
25 | const char* jnamestr = jenv->GetStringUTFChars(jFileName, NULL);
26 | string stdFileName(jnamestr);
27 | jlong result = 0;
28 |
29 | try
30 | {
31 | DetectionBasedTracker::Parameters DetectorParams;
32 | if (faceSize > 0)
33 | DetectorParams.minObjectSize = faceSize;
34 | result = (jlong)new DetectionBasedTracker(stdFileName, DetectorParams);
35 | }
36 | catch(cv::Exception& e)
37 | {
38 | LOGD("nativeCreateObject caught cv::Exception: %s", e.what());
39 | jclass je = jenv->FindClass("org/opencv/core/CvException");
40 | if(!je)
41 | je = jenv->FindClass("java/lang/Exception");
42 | jenv->ThrowNew(je, e.what());
43 | }
44 | catch (...)
45 | {
46 | LOGD("nativeCreateObject caught unknown exception");
47 | jclass je = jenv->FindClass("java/lang/Exception");
48 | jenv->ThrowNew(je, "Unknown exception in JNI code {highgui::VideoCapture_n_1VideoCapture__()}");
49 | return 0;
50 | }
51 |
52 | LOGD("Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeCreateObject exit");
53 | return result;
54 | }
55 |
56 | JNIEXPORT void JNICALL Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeDestroyObject
57 | (JNIEnv * jenv, jclass, jlong thiz)
58 | {
59 | LOGD("Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeDestroyObject enter");
60 | try
61 | {
62 | if(thiz != 0)
63 | {
64 | ((DetectionBasedTracker*)thiz)->stop();
65 | delete (DetectionBasedTracker*)thiz;
66 | }
67 | }
68 | catch(cv::Exception& e)
69 | {
70 | LOGD("nativeestroyObject caught cv::Exception: %s", e.what());
71 | jclass je = jenv->FindClass("org/opencv/core/CvException");
72 | if(!je)
73 | je = jenv->FindClass("java/lang/Exception");
74 | jenv->ThrowNew(je, e.what());
75 | }
76 | catch (...)
77 | {
78 | LOGD("nativeDestroyObject caught unknown exception");
79 | jclass je = jenv->FindClass("java/lang/Exception");
80 | jenv->ThrowNew(je, "Unknown exception in JNI code {highgui::VideoCapture_n_1VideoCapture__()}");
81 | }
82 | LOGD("Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeDestroyObject exit");
83 | }
84 |
85 | JNIEXPORT void JNICALL Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeStart
86 | (JNIEnv * jenv, jclass, jlong thiz)
87 | {
88 | LOGD("Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeStart enter");
89 | try
90 | {
91 | ((DetectionBasedTracker*)thiz)->run();
92 | }
93 | catch(cv::Exception& e)
94 | {
95 | LOGD("nativeStart caught cv::Exception: %s", e.what());
96 | jclass je = jenv->FindClass("org/opencv/core/CvException");
97 | if(!je)
98 | je = jenv->FindClass("java/lang/Exception");
99 | jenv->ThrowNew(je, e.what());
100 | }
101 | catch (...)
102 | {
103 | LOGD("nativeStart caught unknown exception");
104 | jclass je = jenv->FindClass("java/lang/Exception");
105 | jenv->ThrowNew(je, "Unknown exception in JNI code {highgui::VideoCapture_n_1VideoCapture__()}");
106 | }
107 | LOGD("Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeStart exit");
108 | }
109 |
110 | JNIEXPORT void JNICALL Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeStop
111 | (JNIEnv * jenv, jclass, jlong thiz)
112 | {
113 | LOGD("Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeStop enter");
114 | try
115 | {
116 | ((DetectionBasedTracker*)thiz)->stop();
117 | }
118 | catch(cv::Exception& e)
119 | {
120 | LOGD("nativeStop caught cv::Exception: %s", e.what());
121 | jclass je = jenv->FindClass("org/opencv/core/CvException");
122 | if(!je)
123 | je = jenv->FindClass("java/lang/Exception");
124 | jenv->ThrowNew(je, e.what());
125 | }
126 | catch (...)
127 | {
128 | LOGD("nativeStop caught unknown exception");
129 | jclass je = jenv->FindClass("java/lang/Exception");
130 | jenv->ThrowNew(je, "Unknown exception in JNI code {highgui::VideoCapture_n_1VideoCapture__()}");
131 | }
132 | LOGD("Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeStop exit");
133 | }
134 |
135 | JNIEXPORT void JNICALL Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeSetFaceSize
136 | (JNIEnv * jenv, jclass, jlong thiz, jint faceSize)
137 | {
138 | LOGD("Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeSetFaceSize enter");
139 | try
140 | {
141 | if (faceSize > 0)
142 | {
143 | DetectionBasedTracker::Parameters DetectorParams = \
144 | ((DetectionBasedTracker*)thiz)->getParameters();
145 | DetectorParams.minObjectSize = faceSize;
146 | ((DetectionBasedTracker*)thiz)->setParameters(DetectorParams);
147 | }
148 | }
149 | catch(cv::Exception& e)
150 | {
151 | LOGD("nativeStop caught cv::Exception: %s", e.what());
152 | jclass je = jenv->FindClass("org/opencv/core/CvException");
153 | if(!je)
154 | je = jenv->FindClass("java/lang/Exception");
155 | jenv->ThrowNew(je, e.what());
156 | }
157 | catch (...)
158 | {
159 | LOGD("nativeSetFaceSize caught unknown exception");
160 | jclass je = jenv->FindClass("java/lang/Exception");
161 | jenv->ThrowNew(je, "Unknown exception in JNI code {highgui::VideoCapture_n_1VideoCapture__()}");
162 | }
163 | LOGD("Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeSetFaceSize exit");
164 | }
165 |
166 |
167 | JNIEXPORT void JNICALL Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeDetect
168 | (JNIEnv * jenv, jclass, jlong thiz, jlong imageGray, jlong faces)
169 | {
170 | LOGD("Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeDetect enter");
171 | try
172 | {
173 | vector RectFaces;
174 | ((DetectionBasedTracker*)thiz)->process(*((Mat*)imageGray));
175 | ((DetectionBasedTracker*)thiz)->getObjects(RectFaces);
176 | vector_Rect_to_Mat(RectFaces, *((Mat*)faces));
177 | }
178 | catch(cv::Exception& e)
179 | {
180 | LOGD("nativeCreateObject caught cv::Exception: %s", e.what());
181 | jclass je = jenv->FindClass("org/opencv/core/CvException");
182 | if(!je)
183 | je = jenv->FindClass("java/lang/Exception");
184 | jenv->ThrowNew(je, e.what());
185 | }
186 | catch (...)
187 | {
188 | LOGD("nativeDetect caught unknown exception");
189 | jclass je = jenv->FindClass("java/lang/Exception");
190 | jenv->ThrowNew(je, "Unknown exception in JNI code {highgui::VideoCapture_n_1VideoCapture__()}");
191 | }
192 | LOGD("Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeDetect exit");
193 | }
--------------------------------------------------------------------------------
/jni/DetectionBasedTracker_jni.h:
--------------------------------------------------------------------------------
1 | /* DO NOT EDIT THIS FILE - it is machine generated */
2 | #include
3 | /* Header for class org_opencv_samples_fd_DetectionBasedTracker */
4 |
5 | #ifndef _Included_org_opencv_samples_fd_DetectionBasedTracker
6 | #define _Included_org_opencv_samples_fd_DetectionBasedTracker
7 | #ifdef __cplusplus
8 | extern "C" {
9 | #endif
10 | /*
11 | * Class: org_opencv_samples_fd_DetectionBasedTracker
12 | * Method: nativeCreateObject
13 | * Signature: (Ljava/lang/String;F)J
14 | */
15 | JNIEXPORT jlong JNICALL Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeCreateObject
16 | (JNIEnv *, jclass, jstring, jint);
17 |
18 | /*
19 | * Class: org_opencv_samples_fd_DetectionBasedTracker
20 | * Method: nativeDestroyObject
21 | * Signature: (J)V
22 | */
23 | JNIEXPORT void JNICALL Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeDestroyObject
24 | (JNIEnv *, jclass, jlong);
25 |
26 | /*
27 | * Class: org_opencv_samples_fd_DetectionBasedTracker
28 | * Method: nativeStart
29 | * Signature: (J)V
30 | */
31 | JNIEXPORT void JNICALL Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeStart
32 | (JNIEnv *, jclass, jlong);
33 |
34 | /*
35 | * Class: org_opencv_samples_fd_DetectionBasedTracker
36 | * Method: nativeStop
37 | * Signature: (J)V
38 | */
39 | JNIEXPORT void JNICALL Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeStop
40 | (JNIEnv *, jclass, jlong);
41 |
42 | /*
43 | * Class: org_opencv_samples_fd_DetectionBasedTracker
44 | * Method: nativeSetFaceSize
45 | * Signature: (JI)V
46 | */
47 | JNIEXPORT void JNICALL Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeSetFaceSize
48 | (JNIEnv *, jclass, jlong, jint);
49 |
50 | /*
51 | * Class: org_opencv_samples_fd_DetectionBasedTracker
52 | * Method: nativeDetect
53 | * Signature: (JJJ)V
54 | */
55 | JNIEXPORT void JNICALL Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeDetect
56 | (JNIEnv *, jclass, jlong, jlong, jlong);
57 |
58 | #ifdef __cplusplus
59 | }
60 | #endif
61 | #endif
62 |
--------------------------------------------------------------------------------
/jni/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/libs/armeabi-v7a/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/libs/armeabi-v7a/libdetection_based_tracker.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhishek-ch/SmileDetection/b94c7ffebdf377ead5cb74bfdb39a4a03d40ddaa/libs/armeabi-v7a/libdetection_based_tracker.so
--------------------------------------------------------------------------------
/libs/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/lint.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/obj/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/obj/local/armeabi-v7a/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/obj/local/armeabi-v7a/libdetection_based_tracker.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhishek-ch/SmileDetection/b94c7ffebdf377ead5cb74bfdb39a4a03d40ddaa/obj/local/armeabi-v7a/libdetection_based_tracker.so
--------------------------------------------------------------------------------
/obj/local/armeabi-v7a/objs/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/obj/local/armeabi-v7a/objs/detection_based_tracker/DetectionBasedTracker_jni.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhishek-ch/SmileDetection/b94c7ffebdf377ead5cb74bfdb39a4a03d40ddaa/obj/local/armeabi-v7a/objs/detection_based_tracker/DetectionBasedTracker_jni.o
--------------------------------------------------------------------------------
/obj/local/armeabi-v7a/objs/detection_based_tracker/DetectionBasedTracker_jni.o.d:
--------------------------------------------------------------------------------
1 | obj/local/armeabi-v7a/objs/detection_based_tracker/DetectionBasedTracker_jni.o: \
2 | jni/DetectionBasedTracker_jni.cpp jni/DetectionBasedTracker_jni.h \
3 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/jni.h \
4 | C:/Opencv2/Android/OpenCV-2.4.6-android-sdk-r2/OpenCV-2.4.6-android-sdk/sdk/native/jni/include/opencv2/core/core.hpp \
5 | C:/Opencv2/Android/OpenCV-2.4.6-android-sdk-r2/OpenCV-2.4.6-android-sdk/sdk/native/jni/include/opencv2/core/types_c.h \
6 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/assert.h \
7 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/sys/cdefs.h \
8 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/sys/cdefs_elf.h \
9 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/android/api-level.h \
10 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/stdlib.h \
11 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/string.h \
12 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/malloc.h \
13 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/alloca.h \
14 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/strings.h \
15 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/sys/types.h \
16 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/stdint.h \
17 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/sys/_types.h \
18 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/machine/_types.h \
19 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/linux/posix_types.h \
20 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/linux/stddef.h \
21 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/linux/compiler.h \
22 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/asm/posix_types.h \
23 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/asm/types.h \
24 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/linux/types.h \
25 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/machine/kernel.h \
26 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/sys/sysmacros.h \
27 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/memory.h \
28 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/math.h \
29 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/limits.h \
30 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/sys/limits.h \
31 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/linux/limits.h \
32 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/machine/internal_types.h \
33 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/machine/limits.h \
34 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/sys/syslimits.h \
35 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/asm/page.h \
36 | C:/Opencv2/Android/OpenCV-2.4.6-android-sdk-r2/OpenCV-2.4.6-android-sdk/sdk/native/jni/include/opencv2/core/version.hpp \
37 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/sources/cxx-stl/gnu-libstdc++/4.6/include/algorithm \
38 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/sources/cxx-stl/gnu-libstdc++/4.6/include/cmath \
39 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/sources/cxx-stl/gnu-libstdc++/4.6/include/cstddef \
40 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/sources/cxx-stl/gnu-libstdc++/4.6/include/complex \
41 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/sources/cxx-stl/gnu-libstdc++/4.6/include/map \
42 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/sources/cxx-stl/gnu-libstdc++/4.6/include/vector \
43 | C:/Opencv2/Android/OpenCV-2.4.6-android-sdk-r2/OpenCV-2.4.6-android-sdk/sdk/native/jni/include/opencv2/core/operations.hpp \
44 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/sources/cxx-stl/gnu-libstdc++/4.6/include/limits \
45 | C:/Opencv2/Android/OpenCV-2.4.6-android-sdk-r2/OpenCV-2.4.6-android-sdk/sdk/native/jni/include/opencv2/core/mat.hpp \
46 | C:/Opencv2/Android/OpenCV-2.4.6-android-sdk-r2/OpenCV-2.4.6-android-sdk/sdk/native/jni/include/opencv2/contrib/detection_based_tracker.hpp \
47 | C:/Opencv2/Android/OpenCV-2.4.6-android-sdk-r2/OpenCV-2.4.6-android-sdk/sdk/native/jni/include/opencv2/objdetect/objdetect.hpp \
48 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/sources/cxx-stl/gnu-libstdc++/4.6/include/deque \
49 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/android/log.h
50 |
51 | jni/DetectionBasedTracker_jni.h:
52 |
53 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/jni.h:
54 |
55 | C:/Opencv2/Android/OpenCV-2.4.6-android-sdk-r2/OpenCV-2.4.6-android-sdk/sdk/native/jni/include/opencv2/core/core.hpp:
56 |
57 | C:/Opencv2/Android/OpenCV-2.4.6-android-sdk-r2/OpenCV-2.4.6-android-sdk/sdk/native/jni/include/opencv2/core/types_c.h:
58 |
59 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/assert.h:
60 |
61 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/sys/cdefs.h:
62 |
63 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/sys/cdefs_elf.h:
64 |
65 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/android/api-level.h:
66 |
67 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/stdlib.h:
68 |
69 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/string.h:
70 |
71 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/malloc.h:
72 |
73 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/alloca.h:
74 |
75 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/strings.h:
76 |
77 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/sys/types.h:
78 |
79 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/stdint.h:
80 |
81 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/sys/_types.h:
82 |
83 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/machine/_types.h:
84 |
85 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/linux/posix_types.h:
86 |
87 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/linux/stddef.h:
88 |
89 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/linux/compiler.h:
90 |
91 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/asm/posix_types.h:
92 |
93 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/asm/types.h:
94 |
95 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/linux/types.h:
96 |
97 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/machine/kernel.h:
98 |
99 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/sys/sysmacros.h:
100 |
101 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/memory.h:
102 |
103 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/math.h:
104 |
105 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/limits.h:
106 |
107 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/sys/limits.h:
108 |
109 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/linux/limits.h:
110 |
111 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/machine/internal_types.h:
112 |
113 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/machine/limits.h:
114 |
115 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/sys/syslimits.h:
116 |
117 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/asm/page.h:
118 |
119 | C:/Opencv2/Android/OpenCV-2.4.6-android-sdk-r2/OpenCV-2.4.6-android-sdk/sdk/native/jni/include/opencv2/core/version.hpp:
120 |
121 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/sources/cxx-stl/gnu-libstdc++/4.6/include/algorithm:
122 |
123 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/sources/cxx-stl/gnu-libstdc++/4.6/include/cmath:
124 |
125 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/sources/cxx-stl/gnu-libstdc++/4.6/include/cstddef:
126 |
127 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/sources/cxx-stl/gnu-libstdc++/4.6/include/complex:
128 |
129 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/sources/cxx-stl/gnu-libstdc++/4.6/include/map:
130 |
131 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/sources/cxx-stl/gnu-libstdc++/4.6/include/vector:
132 |
133 | C:/Opencv2/Android/OpenCV-2.4.6-android-sdk-r2/OpenCV-2.4.6-android-sdk/sdk/native/jni/include/opencv2/core/operations.hpp:
134 |
135 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/sources/cxx-stl/gnu-libstdc++/4.6/include/limits:
136 |
137 | C:/Opencv2/Android/OpenCV-2.4.6-android-sdk-r2/OpenCV-2.4.6-android-sdk/sdk/native/jni/include/opencv2/core/mat.hpp:
138 |
139 | C:/Opencv2/Android/OpenCV-2.4.6-android-sdk-r2/OpenCV-2.4.6-android-sdk/sdk/native/jni/include/opencv2/contrib/detection_based_tracker.hpp:
140 |
141 | C:/Opencv2/Android/OpenCV-2.4.6-android-sdk-r2/OpenCV-2.4.6-android-sdk/sdk/native/jni/include/opencv2/objdetect/objdetect.hpp:
142 |
143 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/sources/cxx-stl/gnu-libstdc++/4.6/include/deque:
144 |
145 | C:/android-ndk-r9-windows-x86_64/android-ndk-r9/platforms/android-8/arch-arm/usr/include/android/log.h:
146 |
--------------------------------------------------------------------------------
/obj/local/armeabi-v7a/objs/detection_based_tracker/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/obj/local/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/project.properties:
--------------------------------------------------------------------------------
1 | # This file is automatically generated by Android Tools.
2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED!
3 | #
4 | # This file must be checked in Version Control Systems.
5 | #
6 | # To customize properties used by the Ant build system edit
7 | # "ant.properties", and override values to adapt the script to your
8 | # project structure.
9 | #
10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
12 |
13 | android.library.reference.1=../../../../../Opencv2/Android/OpenCV-2.4.6-android-sdk-r2/OpenCV-2.4.6-android-sdk/sdk/java
14 | # Project target.
15 | target=android-18
16 |
--------------------------------------------------------------------------------
/res/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/res/drawable/big_smile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhishek-ch/SmileDetection/b94c7ffebdf377ead5cb74bfdb39a4a03d40ddaa/res/drawable/big_smile.png
--------------------------------------------------------------------------------
/res/drawable/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/res/drawable/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhishek-ch/SmileDetection/b94c7ffebdf377ead5cb74bfdb39a4a03d40ddaa/res/drawable/icon.png
--------------------------------------------------------------------------------
/res/layout/activity_main_menu.xml:
--------------------------------------------------------------------------------
1 |
10 |
11 |
19 |
20 |
28 |
29 |
36 |
37 |
42 |
43 |
47 |
48 |
49 |
50 |
55 |
56 |
60 |
61 |
64 |
65 |
68 |
69 |
--------------------------------------------------------------------------------
/res/layout/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/res/layout/face_detect_surface_view.xml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/res/raw/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/res/raw/lbpcascade_frontalface.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 | BOOST
9 | LBP
10 | 24
11 | 24
12 |
13 | GAB
14 | 0.9950000047683716
15 | 0.5000000000000000
16 | 0.9500000000000000
17 | 1
18 | 100
19 |
20 | 256
21 | 20
22 |
23 |
24 | <_>
25 | 3
26 | -0.7520892024040222
27 |
28 |
29 | <_>
30 |
31 | 0 -1 46 -67130709 -21569 -1426120013 -1275125205 -21585
32 | -16385 587145899 -24005
33 |
34 | -0.6543210148811340 0.8888888955116272
35 |
36 | <_>
37 |
38 | 0 -1 13 -163512766 -769593758 -10027009 -262145 -514457854
39 | -193593353 -524289 -1
40 |
41 | -0.7739216089248657 0.7278633713722229
42 |
43 | <_>
44 |
45 | 0 -1 2 -363936790 -893203669 -1337948010 -136907894
46 | 1088782736 -134217726 -741544961 -1590337
47 |
48 | -0.7068563103675842 0.6761534214019775
49 |
50 | <_>
51 | 4
52 | -0.4872078299522400
53 |
54 |
55 | <_>
56 |
57 | 0 -1 84 2147483647 1946124287 -536870913 2147450879
58 | 738132490 1061101567 243204619 2147446655
59 |
60 | -0.8083735704421997 0.7685696482658386
61 |
62 | <_>
63 |
64 | 0 -1 21 2147483647 263176079 1879048191 254749487 1879048191
65 | -134252545 -268435457 801111999
66 |
67 | -0.7698410153388977 0.6592915654182434
68 |
69 | <_>
70 |
71 | 0 -1 106 -98110272 1610939566 -285484400 -850010381
72 | -189334372 -1671954433 -571026695 -262145
73 |
74 | -0.7506558895111084 0.5444605946540833
75 |
76 | <_>
77 |
78 | 0 -1 48 -798690576 -131075 1095771153 -237144073 -65569 -1
79 | -216727745 -69206049
80 |
81 | -0.7775990366935730 0.5465461611747742
82 |
83 | <_>
84 | 4
85 | -1.1592328548431396
86 |
87 |
88 | <_>
89 |
90 | 0 -1 47 -21585 -20549 -100818262 -738254174 -20561 -36865
91 | -151016790 -134238549
92 |
93 | -0.5601882934570313 0.7743113040924072
94 |
95 | <_>
96 |
97 | 0 -1 12 -286003217 183435247 -268994614 -421330945
98 | -402686081 1090387966 -286785545 -402653185
99 |
100 | -0.6124526262283325 0.6978127956390381
101 |
102 | <_>
103 |
104 | 0 -1 26 -50347012 970882927 -50463492 -1253377 -134218251
105 | -50364513 -33619992 -172490753
106 |
107 | -0.6114496588706970 0.6537628173828125
108 |
109 | <_>
110 |
111 | 0 -1 8 -273 -135266321 1877977738 -2088243418 -134217987
112 | 2146926575 -18910642 1095231247
113 |
114 | -0.6854077577590942 0.5403239130973816
115 |
116 | <_>
117 | 5
118 | -0.7562355995178223
119 |
120 |
121 | <_>
122 |
123 | 0 -1 96 -1273 1870659519 -20971602 -67633153 -134250731
124 | 2004875127 -250 -150995969
125 |
126 | -0.4051094949245453 0.7584033608436585
127 |
128 | <_>
129 |
130 | 0 -1 33 -868162224 -76810262 -4262145 -257 1465211989
131 | -268959873 -2656269 -524289
132 |
133 | -0.7388162612915039 0.5340843200683594
134 |
135 | <_>
136 |
137 | 0 -1 57 -12817 -49 -541103378 -152950 -38993 -20481 -1153876
138 | -72478976
139 |
140 | -0.6582943797111511 0.5339496731758118
141 |
142 | <_>
143 |
144 | 0 -1 125 -269484161 -452984961 -319816180 -1594032130 -2111
145 | -990117891 -488975296 -520947741
146 |
147 | -0.5981323719024658 0.5323504805564880
148 |
149 | <_>
150 |
151 | 0 -1 53 557787431 670265215 -1342193665 -1075892225
152 | 1998528318 1056964607 -33570977 -1
153 |
154 | -0.6498787999153137 0.4913350641727448
155 |
156 | <_>
157 | 5
158 | -0.8085358142852783
159 |
160 |
161 | <_>
162 |
163 | 0 -1 60 -536873708 880195381 -16842788 -20971521 -176687276
164 | -168427659 -16777260 -33554626
165 |
166 | -0.5278195738792419 0.6946372389793396
167 |
168 | <_>
169 |
170 | 0 -1 7 -1 -62981529 -1090591130 805330978 -8388827 -41945787
171 | -39577 -531118985
172 |
173 | -0.5206505060195923 0.6329920291900635
174 |
175 | <_>
176 |
177 | 0 -1 98 -725287348 1347747543 -852489 -16809993 1489881036
178 | -167903241 -1 -1
179 |
180 | -0.7516061067581177 0.4232024252414703
181 |
182 | <_>
183 |
184 | 0 -1 44 -32777 1006582562 -65 935312171 -8388609 -1078198273
185 | -1 733886267
186 |
187 | -0.7639313936233521 0.4123568832874298
188 |
189 | <_>
190 |
191 | 0 -1 24 -85474705 2138828511 -1036436754 817625855
192 | 1123369029 -58796809 -1013468481 -194513409
193 |
194 | -0.5123769044876099 0.5791834592819214
195 |
196 | <_>
197 | 5
198 | -0.5549971461296082
199 |
200 |
201 | <_>
202 |
203 | 0 -1 42 -17409 -20481 -268457797 -134239493 -17473 -1 -21829
204 | -21846
205 |
206 | -0.3763174116611481 0.7298233509063721
207 |
208 | <_>
209 |
210 | 0 -1 6 -805310737 -2098262358 -269504725 682502698
211 | 2147483519 1740574719 -1090519233 -268472385
212 |
213 | -0.5352765917778015 0.5659480094909668
214 |
215 | <_>
216 |
217 | 0 -1 61 -67109678 -6145 -8 -87884584 -20481 -1073762305
218 | -50856216 -16849696
219 |
220 | -0.5678374171257019 0.4961479902267456
221 |
222 | <_>
223 |
224 | 0 -1 123 -138428633 1002418167 -1359008245 -1908670465
225 | -1346685918 910098423 -1359010520 -1346371657
226 |
227 | -0.5706262588500977 0.4572288393974304
228 |
229 | <_>
230 |
231 | 0 -1 9 -89138513 -4196353 1256531674 -1330665426 1216308261
232 | -36190633 33498198 -151796633
233 |
234 | -0.5344601869583130 0.4672054052352905
235 |
236 | <_>
237 | 5
238 | -0.8776460289955139
239 |
240 |
241 | <_>
242 |
243 | 0 -1 105 1073769576 206601725 -34013449 -33554433 -789514004
244 | -101384321 -690225153 -264193
245 |
246 | -0.7700348496437073 0.5943940877914429
247 |
248 | <_>
249 |
250 | 0 -1 30 -1432340997 -823623681 -49153 -34291724 -269484035
251 | -1342767105 -1078198273 -1277955
252 |
253 | -0.5043668746948242 0.6151274442672730
254 |
255 | <_>
256 |
257 | 0 -1 35 -1067385040 -195758209 -436748425 -134217731
258 | -50855988 -129 -1 -1
259 |
260 | -0.6808040738105774 0.4667325913906097
261 |
262 | <_>
263 |
264 | 0 -1 119 832534325 -34111555 -26050561 -423659521 -268468364
265 | 2105014143 -2114244 -17367185
266 |
267 | -0.4927591383457184 0.5401885509490967
268 |
269 | <_>
270 |
271 | 0 -1 82 -1089439888 -1080524865 2143059967 -1114121
272 | -1140949004 -3 -2361356 -739516
273 |
274 | -0.6445107460021973 0.4227822124958038
275 |
276 | <_>
277 | 6
278 | -1.1139287948608398
279 |
280 |
281 | <_>
282 |
283 | 0 -1 52 -1074071553 -1074003969 -1 -1280135430 -5324817 -1
284 | -335548482 582134442
285 |
286 | -0.5307556986808777 0.6258179545402527
287 |
288 | <_>
289 |
290 | 0 -1 99 -706937396 -705364068 -540016724 -570495027
291 | -570630659 -587857963 -33628164 -35848193
292 |
293 | -0.5227634310722351 0.5049746036529541
294 |
295 | <_>
296 |
297 | 0 -1 18 -2035630093 42119158 -268503053 -1671444 261017599
298 | 1325432815 1954394111 -805306449
299 |
300 | -0.4983572661876679 0.5106441378593445
301 |
302 | <_>
303 |
304 | 0 -1 111 -282529488 -1558073088 1426018736 -170526448
305 | -546832487 -5113037 -34243375 -570427929
306 |
307 | -0.4990860521793366 0.5060507059097290
308 |
309 | <_>
310 |
311 | 0 -1 92 1016332500 -606301707 915094269 -1080086049
312 | -1837027144 -1361600280 2147318747 1067975613
313 |
314 | -0.5695009231567383 0.4460467398166657
315 |
316 | <_>
317 |
318 | 0 -1 51 -656420166 -15413034 -141599534 -603435836
319 | 1505950458 -787556946 -79823438 -1326199134
320 |
321 | -0.6590405106544495 0.3616424500942230
322 |
323 | <_>
324 | 7
325 | -0.8243625760078430
326 |
327 |
328 | <_>
329 |
330 | 0 -1 28 -901591776 -201916417 -262 -67371009 -143312112
331 | -524289 -41943178 -1
332 |
333 | -0.4972776770591736 0.6027074456214905
334 |
335 | <_>
336 |
337 | 0 -1 112 -4507851 -411340929 -268437513 -67502145 -17350859
338 | -32901 -71344315 -29377
339 |
340 | -0.4383158981800079 0.5966237187385559
341 |
342 | <_>
343 |
344 | 0 -1 69 -75894785 -117379438 -239063587 -12538500 1485072126
345 | 2076233213 2123118847 801906927
346 |
347 | -0.6386105418205261 0.3977999985218048
348 |
349 | <_>
350 |
351 | 0 -1 19 -823480413 786628589 -16876049 -1364262914 242165211
352 | 1315930109 -696268833 -455082829
353 |
354 | -0.5512794256210327 0.4282079637050629
355 |
356 | <_>
357 |
358 | 0 -1 73 -521411968 6746762 -1396236286 -2038436114
359 | -185612509 57669627 -143132877 -1041235973
360 |
361 | -0.6418755054473877 0.3549866080284119
362 |
363 | <_>
364 |
365 | 0 -1 126 -478153869 1076028979 -1645895615 1365298272
366 | -557859073 -339771473 1442574528 -1058802061
367 |
368 | -0.4841901361942291 0.4668019413948059
369 |
370 | <_>
371 |
372 | 0 -1 45 -246350404 -1650402048 -1610612745 -788400696
373 | 1467604861 -2787397 1476263935 -4481349
374 |
375 | -0.5855734348297119 0.3879135847091675
376 |
377 | <_>
378 | 7
379 | -1.2237116098403931
380 |
381 |
382 | <_>
383 |
384 | 0 -1 114 -24819 1572863935 -16809993 -67108865 2146778388
385 | 1433927541 -268608444 -34865205
386 |
387 | -0.2518476545810700 0.7088654041290283
388 |
389 | <_>
390 |
391 | 0 -1 97 -1841359 -134271049 -32769 -5767369 -1116675 -2185
392 | -8231 -33603327
393 |
394 | -0.4303432404994965 0.5283288359642029
395 |
396 | <_>
397 |
398 | 0 -1 25 -1359507589 -1360593090 -1073778729 -269553812
399 | -809512977 1744707583 -41959433 -134758978
400 |
401 | -0.4259553551673889 0.5440809130668640
402 |
403 | <_>
404 |
405 | 0 -1 34 729753407 -134270989 -1140907329 -235200777
406 | 658456383 2147467263 -1140900929 -16385
407 |
408 | -0.5605589151382446 0.4220733344554901
409 |
410 | <_>
411 |
412 | 0 -1 134 -310380553 -420675595 -193005472 -353568129
413 | 1205338070 -990380036 887604324 -420544526
414 |
415 | -0.5192656517028809 0.4399855434894562
416 |
417 | <_>
418 |
419 | 0 -1 16 -1427119361 1978920959 -287119734 -487068946
420 | 114759245 -540578051 -707510259 -671660453
421 |
422 | -0.5013077259063721 0.4570254683494568
423 |
424 | <_>
425 |
426 | 0 -1 74 -738463762 -889949281 -328301948 -121832450
427 | -1142658284 -1863576559 2146417353 -263185
428 |
429 | -0.4631414115428925 0.4790246188640595
430 |
431 | <_>
432 | 7
433 | -0.5544230937957764
434 |
435 |
436 | <_>
437 |
438 | 0 -1 113 -76228780 -65538 -1 -67174401 -148007 -33 -221796
439 | -272842924
440 |
441 | -0.3949716091156006 0.6082032322883606
442 |
443 | <_>
444 |
445 | 0 -1 110 369147696 -1625232112 2138570036 -1189900 790708019
446 | -1212613127 799948719 -4456483
447 |
448 | -0.4855885505676270 0.4785369932651520
449 |
450 | <_>
451 |
452 | 0 -1 37 784215839 -290015241 536832799 -402984963
453 | -1342414991 -838864897 -176769 -268456129
454 |
455 | -0.4620285332202911 0.4989669024944305
456 |
457 | <_>
458 |
459 | 0 -1 41 -486418688 -171915327 -340294900 -21938 -519766032
460 | -772751172 -73096060 -585322623
461 |
462 | -0.6420643329620361 0.3624351918697357
463 |
464 | <_>
465 |
466 | 0 -1 117 -33554953 -475332625 -1423463824 -2077230421
467 | -4849669 -2080505925 -219032928 -1071915349
468 |
469 | -0.4820112884044647 0.4632140696048737
470 |
471 | <_>
472 |
473 | 0 -1 65 -834130468 -134217476 -1349314083 -1073803559
474 | -619913764 -1449131844 -1386890321 -1979118423
475 |
476 | -0.4465552568435669 0.5061788558959961
477 |
478 | <_>
479 |
480 | 0 -1 56 -285249779 1912569855 -16530 -1731022870 -1161904146
481 | -1342177297 -268439634 -1464078708
482 |
483 | -0.5190586447715759 0.4441480338573456
484 |
485 | <_>
486 | 7
487 | -0.7161560654640198
488 |
489 |
490 | <_>
491 |
492 | 0 -1 20 1246232575 1078001186 -10027057 60102 -277348353
493 | -43646987 -1210581153 1195769615
494 |
495 | -0.4323809444904327 0.5663768053054810
496 |
497 | <_>
498 |
499 | 0 -1 15 -778583572 -612921106 -578775890 -4036478
500 | -1946580497 -1164766570 -1986687009 -12103599
501 |
502 | -0.4588732719421387 0.4547033011913300
503 |
504 | <_>
505 |
506 | 0 -1 129 -1073759445 2013231743 -1363169553 -1082459201
507 | -1414286549 868185983 -1356133589 -1077936257
508 |
509 | -0.5218553543090820 0.4111092388629913
510 |
511 | <_>
512 |
513 | 0 -1 102 -84148365 -2093417722 -1204850272 564290299
514 | -67121221 -1342177350 -1309195902 -776734797
515 |
516 | -0.4920000731945038 0.4326725304126740
517 |
518 | <_>
519 |
520 | 0 -1 88 -25694458 67104495 -290216278 -168563037 2083877442
521 | 1702788383 -144191964 -234882162
522 |
523 | -0.4494568109512329 0.4448510706424713
524 |
525 | <_>
526 |
527 | 0 -1 59 -857980836 904682741 -1612267521 232279415
528 | 1550862252 -574825221 -357380888 -4579409
529 |
530 | -0.5180826783180237 0.3888972699642181
531 |
532 | <_>
533 |
534 | 0 -1 27 -98549440 -137838400 494928389 -246013630 939541351
535 | -1196072350 -620603549 2137216273
536 |
537 | -0.6081240773200989 0.3333222270011902
538 |
539 | <_>
540 | 8
541 | -0.6743940711021423
542 |
543 |
544 | <_>
545 |
546 | 0 -1 29 -150995201 2071191945 -1302151626 536934335
547 | -1059008937 914128709 1147328110 -268369925
548 |
549 | -0.1790193915367127 0.6605972051620483
550 |
551 | <_>
552 |
553 | 0 -1 128 -134509479 1610575703 -1342177289 1861484541
554 | -1107833788 1577058173 -333558568 -136319041
555 |
556 | -0.3681024610996246 0.5139749646186829
557 |
558 | <_>
559 |
560 | 0 -1 70 -1 1060154476 -1090984524 -630918524 -539492875
561 | 779616255 -839568424 -321
562 |
563 | -0.3217232525348663 0.6171553134918213
564 |
565 | <_>
566 |
567 | 0 -1 4 -269562385 -285029906 -791084350 -17923776 235286671
568 | 1275504943 1344390399 -966276889
569 |
570 | -0.4373284578323364 0.4358185231685638
571 |
572 | <_>
573 |
574 | 0 -1 76 17825984 -747628419 595427229 1474759671 575672208
575 | -1684005538 872217086 -1155858277
576 |
577 | -0.4404836893081665 0.4601220190525055
578 |
579 | <_>
580 |
581 | 0 -1 124 -336593039 1873735591 -822231622 -355795238
582 | -470820869 -1997537409 -1057132384 -1015285005
583 |
584 | -0.4294152259826660 0.4452161788940430
585 |
586 | <_>
587 |
588 | 0 -1 54 -834212130 -593694721 -322142257 -364892500
589 | -951029539 -302125121 -1615106053 -79249765
590 |
591 | -0.3973052501678467 0.4854526817798615
592 |
593 | <_>
594 |
595 | 0 -1 95 1342144479 2147431935 -33554561 -47873 -855685912 -1
596 | 1988052447 536827383
597 |
598 | -0.7054683566093445 0.2697997391223908
599 |
600 | <_>
601 | 9
602 | -1.2042298316955566
603 |
604 |
605 | <_>
606 |
607 | 0 -1 39 1431368960 -183437936 -537002499 -137497097
608 | 1560590321 -84611081 -2097193 -513
609 |
610 | -0.5905947685241699 0.5101932883262634
611 |
612 | <_>
613 |
614 | 0 -1 120 -1645259691 2105491231 2130706431 1458995007
615 | -8567536 -42483883 -33780003 -21004417
616 |
617 | -0.4449204802513123 0.4490709304809570
618 |
619 | <_>
620 |
621 | 0 -1 89 -612381022 -505806938 -362027516 -452985106
622 | 275854917 1920431639 -12600561 -134221825
623 |
624 | -0.4693818688392639 0.4061094820499420
625 |
626 | <_>
627 |
628 | 0 -1 14 -805573153 -161 -554172679 -530519488 -16779441
629 | 2000682871 -33604275 -150997129
630 |
631 | -0.3600351214408875 0.5056326985359192
632 |
633 | <_>
634 |
635 | 0 -1 67 6192 435166195 1467449341 2046691505 -1608493775
636 | -4755729 -1083162625 -71365637
637 |
638 | -0.4459891915321350 0.4132415652275085
639 |
640 | <_>
641 |
642 | 0 -1 86 -41689215 -3281034 1853357967 -420712635 -415924289
643 | -270209208 -1088293113 -825311232
644 |
645 | -0.4466069042682648 0.4135067760944367
646 |
647 | <_>
648 |
649 | 0 -1 80 -117391116 -42203396 2080374461 -188709 -542008165
650 | -356831940 -1091125345 -1073796897
651 |
652 | -0.3394956290721893 0.5658645033836365
653 |
654 | <_>
655 |
656 | 0 -1 75 -276830049 1378714472 -1342181951 757272098
657 | 1073740607 -282199241 -415761549 170896931
658 |
659 | -0.5346512198448181 0.3584479391574860
660 |
661 | <_>
662 |
663 | 0 -1 55 -796075825 -123166849 2113667055 -217530421
664 | -1107432194 -16385 -806359809 -391188771
665 |
666 | -0.4379335641860962 0.4123645126819611
667 |
668 | <_>
669 | 10
670 | -0.8402050137519836
671 |
672 |
673 | <_>
674 |
675 | 0 -1 71 -890246622 15525883 -487690486 47116238 -1212319899
676 | -1291847681 -68159890 -469829921
677 |
678 | -0.2670986354351044 0.6014143228530884
679 |
680 | <_>
681 |
682 | 0 -1 31 -1361180685 -1898008841 -1090588811 -285410071
683 | -1074016265 -840443905 2147221487 -262145
684 |
685 | -0.4149844348430634 0.4670888185501099
686 |
687 | <_>
688 |
689 | 0 -1 40 1426190596 1899364271 2142731795 -142607505
690 | -508232452 -21563393 -41960001 -65
691 |
692 | -0.4985891580581665 0.3719584941864014
693 |
694 | <_>
695 |
696 | 0 -1 109 -201337965 10543906 -236498096 -746195597
697 | 1974565825 -15204415 921907633 -190058309
698 |
699 | -0.4568729996681213 0.3965812027454376
700 |
701 | <_>
702 |
703 | 0 -1 130 -595026732 -656401928 -268649235 -571490699
704 | -440600392 -133131 -358810952 -2004088646
705 |
706 | -0.4770836830139160 0.3862601518630981
707 |
708 | <_>
709 |
710 | 0 -1 66 941674740 -1107882114 1332789109 -67691015
711 | -1360463693 -1556612430 -609108546 733546933
712 |
713 | -0.4877715110778809 0.3778986334800720
714 |
715 | <_>
716 |
717 | 0 -1 49 -17114945 -240061474 1552871558 -82775604 -932393844
718 | -1308544889 -532635478 -99042357
719 |
720 | -0.3721654713153839 0.4994400143623352
721 |
722 | <_>
723 |
724 | 0 -1 133 -655906006 1405502603 -939205164 1884929228
725 | -498859222 559417357 -1928559445 -286264385
726 |
727 | -0.3934195041656494 0.4769641458988190
728 |
729 | <_>
730 |
731 | 0 -1 0 -335837777 1860677295 -90 -1946186226 931096183
732 | 251612987 2013265917 -671232197
733 |
734 | -0.4323300719261169 0.4342164099216461
735 |
736 | <_>
737 |
738 | 0 -1 103 37769424 -137772680 374692301 2002666345 -536176194
739 | -1644484728 807009019 1069089930
740 |
741 | -0.4993278682231903 0.3665378093719482
742 |
743 | <_>
744 | 9
745 | -1.1974394321441650
746 |
747 |
748 | <_>
749 |
750 | 0 -1 43 -5505 2147462911 2143265466 -4511070 -16450 -257
751 | -201348440 -71333206
752 |
753 | -0.3310225307941437 0.5624626278877258
754 |
755 | <_>
756 |
757 | 0 -1 90 -136842268 -499330741 2015250980 -87107126
758 | -641665744 -788524639 -1147864792 -134892563
759 |
760 | -0.5266560912132263 0.3704403042793274
761 |
762 | <_>
763 |
764 | 0 -1 104 -146800880 -1780368555 2111170033 -140904684
765 | -16777551 -1946681885 -1646463595 -839131947
766 |
767 | -0.4171888828277588 0.4540435671806335
768 |
769 | <_>
770 |
771 | 0 -1 85 -832054034 -981663763 -301990281 -578814081
772 | -932319000 -1997406723 -33555201 -69206017
773 |
774 | -0.4556705355644226 0.3704262077808380
775 |
776 | <_>
777 |
778 | 0 -1 24 -118492417 -1209026825 1119023838 -1334313353
779 | 1112948738 -297319313 1378887291 -139469193
780 |
781 | -0.4182529747486115 0.4267231225967407
782 |
783 | <_>
784 |
785 | 0 -1 78 -1714382628 -2353704 -112094959 -549613092
786 | -1567058760 -1718550464 -342315012 -1074972227
787 |
788 | -0.3625369668006897 0.4684656262397766
789 |
790 | <_>
791 |
792 | 0 -1 5 -85219702 316836394 -33279 1904970288 2117267315
793 | -260901769 -621461759 -88607770
794 |
795 | -0.4742925167083740 0.3689507246017456
796 |
797 | <_>
798 |
799 | 0 -1 11 -294654041 -353603585 -1641159686 -50331921
800 | -2080899877 1145569279 -143132713 -152044037
801 |
802 | -0.3666271567344666 0.4580127298831940
803 |
804 | <_>
805 |
806 | 0 -1 32 1887453658 -638545712 -1877976819 -34320972
807 | -1071067983 -661345416 -583338277 1060190561
808 |
809 | -0.4567637443542481 0.3894708156585693
810 |
811 | <_>
812 | 9
813 | -0.5733128190040588
814 |
815 |
816 | <_>
817 |
818 | 0 -1 122 -994063296 1088745462 -318837116 -319881377
819 | 1102566613 1165490103 -121679694 -134744129
820 |
821 | -0.4055117964744568 0.5487945079803467
822 |
823 | <_>
824 |
825 | 0 -1 68 -285233233 -538992907 1811935199 -369234005 -529
826 | -20593 -20505 -1561401854
827 |
828 | -0.3787897229194641 0.4532003402709961
829 |
830 | <_>
831 |
832 | 0 -1 58 -1335245632 1968917183 1940861695 536816369
833 | -1226071367 -570908176 457026619 1000020667
834 |
835 | -0.4258328974246979 0.4202791750431061
836 |
837 | <_>
838 |
839 | 0 -1 94 -1360318719 -1979797897 -50435249 -18646473
840 | -608879292 -805306691 -269304244 -17840167
841 |
842 | -0.4561023116111755 0.4002747833728790
843 |
844 | <_>
845 |
846 | 0 -1 87 2062765935 -16449 -1275080721 -16406 45764335
847 | -1090552065 -772846337 -570464322
848 |
849 | -0.4314672648906708 0.4086346626281738
850 |
851 | <_>
852 |
853 | 0 -1 127 -536896021 1080817663 -738234288 -965478709
854 | -2082767969 1290855887 1993822934 -990381609
855 |
856 | -0.4174543321132660 0.4249868988990784
857 |
858 | <_>
859 |
860 | 0 -1 3 -818943025 168730891 -293610428 -79249354 669224671
861 | 621166734 1086506807 1473768907
862 |
863 | -0.4321364760398865 0.4090838730335236
864 |
865 | <_>
866 |
867 | 0 -1 79 -68895696 -67107736 -1414315879 -841676168
868 | -619843344 -1180610531 -1081990469 1043203389
869 |
870 | -0.5018386244773865 0.3702533841133118
871 |
872 | <_>
873 |
874 | 0 -1 116 -54002134 -543485719 -2124882422 -1437445858
875 | -115617074 -1195787391 -1096024366 -2140472445
876 |
877 | -0.5037505626678467 0.3564981222152710
878 |
879 | <_>
880 | 9
881 | -0.4892596900463104
882 |
883 |
884 | <_>
885 |
886 | 0 -1 132 -67113211 2003808111 1862135111 846461923 -2752
887 | 2002237273 -273154752 1937223539
888 |
889 | -0.2448196411132813 0.5689709186553955
890 |
891 | <_>
892 |
893 | 0 -1 62 1179423888 -78064940 -611839555 -539167899
894 | -1289358360 -1650810108 -892540499 -1432827684
895 |
896 | -0.4633283913135529 0.3587929606437683
897 |
898 | <_>
899 |
900 | 0 -1 23 -285212705 -78450761 -656212031 -264050110 -27787425
901 | -1334349961 -547662981 -135796924
902 |
903 | -0.3731099069118500 0.4290455579757690
904 |
905 | <_>
906 |
907 | 0 -1 77 341863476 403702016 -550588417 1600194541
908 | -1080690735 951127993 -1388580949 -1153717473
909 |
910 | -0.3658909499645233 0.4556473195552826
911 |
912 | <_>
913 |
914 | 0 -1 22 -586880702 -204831512 -100644596 -39319550
915 | -1191150794 705692513 457203315 -75806957
916 |
917 | -0.5214384198188782 0.3221037387847900
918 |
919 | <_>
920 |
921 | 0 -1 72 -416546870 545911370 -673716192 -775559454
922 | -264113598 139424 -183369982 -204474641
923 |
924 | -0.4289036989212036 0.4004956185817719
925 |
926 | <_>
927 |
928 | 0 -1 50 -1026505020 -589692154 -1740499937 -1563770497
929 | 1348491006 -60710713 -1109853489 -633909413
930 |
931 | -0.4621542394161224 0.3832748532295227
932 |
933 | <_>
934 |
935 | 0 -1 108 -1448872304 -477895040 -1778390608 -772418127
936 | -1789923416 -1612057181 -805306693 -1415842113
937 |
938 | -0.3711548447608948 0.4612701535224915
939 |
940 | <_>
941 |
942 | 0 -1 92 407905424 -582449988 52654751 -1294472 -285103725
943 | -74633006 1871559083 1057955850
944 |
945 | -0.5180652141571045 0.3205870389938355
946 |
947 | <_>
948 | 10
949 | -0.5911940932273865
950 |
951 |
952 | <_>
953 |
954 | 0 -1 81 4112 -1259563825 -846671428 -100902460 1838164148
955 | -74153752 -90653988 -1074263896
956 |
957 | -0.2592592537403107 0.5873016119003296
958 |
959 | <_>
960 |
961 | 0 -1 1 -285216785 -823206977 -1085589 -1081346 1207959293
962 | 1157103471 2097133565 -2097169
963 |
964 | -0.3801195919513702 0.4718827307224274
965 |
966 | <_>
967 |
968 | 0 -1 121 -12465 -536875169 2147478367 2130706303 -37765492
969 | -866124467 -318782328 -1392509185
970 |
971 | -0.3509117066860199 0.5094807147979736
972 |
973 | <_>
974 |
975 | 0 -1 38 2147449663 -20741 -16794757 1945873146 -16710 -1
976 | -8406341 -67663041
977 |
978 | -0.4068757295608521 0.4130136370658875
979 |
980 | <_>
981 |
982 | 0 -1 17 -155191713 866117231 1651407483 548272812 -479201468
983 | -447742449 1354229504 -261884429
984 |
985 | -0.4557141065597534 0.3539792001247406
986 |
987 | <_>
988 |
989 | 0 -1 100 -225319378 -251682065 -492783986 -792341777
990 | -1287261695 1393643841 -11274182 -213909521
991 |
992 | -0.4117803275585175 0.4118592441082001
993 |
994 | <_>
995 |
996 | 0 -1 63 -382220122 -2002072729 -51404800 -371201558
997 | -923011069 -2135301457 -2066104743 -1042557441
998 |
999 | -0.4008397758007050 0.4034757018089294
1000 |
1001 | <_>
1002 |
1003 | 0 -1 101 -627353764 -48295149 1581203952 -436258614
1004 | -105268268 -1435893445 -638126888 -1061107126
1005 |
1006 | -0.5694189667701721 0.2964762747287750
1007 |
1008 | <_>
1009 |
1010 | 0 -1 118 -8399181 1058107691 -621022752 -251003468 -12582915
1011 | -574619739 -994397789 -1648362021
1012 |
1013 | -0.3195341229438782 0.5294018983840942
1014 |
1015 | <_>
1016 |
1017 | 0 -1 92 -348343812 -1078389516 1717960437 364735981
1018 | -1783841602 -4883137 -457572354 -1076950384
1019 |
1020 | -0.3365339040756226 0.5067458748817444
1021 |
1022 | <_>
1023 | 10
1024 | -0.7612916231155396
1025 |
1026 |
1027 | <_>
1028 |
1029 | 0 -1 10 -1976661318 -287957604 -1659497122 -782068 43591089
1030 | -453637880 1435470000 -1077438561
1031 |
1032 | -0.4204545319080353 0.5165745615959168
1033 |
1034 | <_>
1035 |
1036 | 0 -1 131 -67110925 14874979 -142633168 -1338923040
1037 | 2046713291 -2067933195 1473503712 -789579837
1038 |
1039 | -0.3762553930282593 0.4075302779674530
1040 |
1041 | <_>
1042 |
1043 | 0 -1 83 -272814301 -1577073 -1118685 -305156120 -1052289
1044 | -1073813756 -538971154 -355523038
1045 |
1046 | -0.4253497421741486 0.3728055357933044
1047 |
1048 | <_>
1049 |
1050 | 0 -1 135 -2233 -214486242 -538514758 573747007 -159390971
1051 | 1994225489 -973738098 -203424005
1052 |
1053 | -0.3601998090744019 0.4563256204128265
1054 |
1055 | <_>
1056 |
1057 | 0 -1 115 -261031688 -1330369299 -641860609 1029570301
1058 | -1306461192 -1196149518 -1529767778 683139823
1059 |
1060 | -0.4034293889999390 0.4160816967487335
1061 |
1062 | <_>
1063 |
1064 | 0 -1 64 -572993608 -34042628 -417865 -111109 -1433365268
1065 | -19869715 -1920939864 -1279457063
1066 |
1067 | -0.3620899617671967 0.4594142735004425
1068 |
1069 | <_>
1070 |
1071 | 0 -1 36 -626275097 -615256993 1651946018 805366393
1072 | 2016559730 -430780849 -799868165 -16580645
1073 |
1074 | -0.3903816640377045 0.4381459355354309
1075 |
1076 | <_>
1077 |
1078 | 0 -1 93 1354797300 -1090957603 1976418270 -1342502178
1079 | -1851873892 -1194637077 -1153521668 -1108399474
1080 |
1081 | -0.3591445386409760 0.4624078869819641
1082 |
1083 | <_>
1084 |
1085 | 0 -1 91 68157712 1211368313 -304759523 1063017136 798797750
1086 | -275513546 648167355 -1145357350
1087 |
1088 | -0.4297670423984528 0.4023293554782867
1089 |
1090 | <_>
1091 |
1092 | 0 -1 107 -546318240 -1628569602 -163577944 -537002306
1093 | -545456389 -1325465645 -380446736 -1058473386
1094 |
1095 | -0.5727006793022156 0.2995934784412384
1096 |
1097 | <_>
1098 |
1099 | 0 0 3 5
1100 | <_>
1101 |
1102 | 0 0 4 2
1103 | <_>
1104 |
1105 | 0 0 6 3
1106 | <_>
1107 |
1108 | 0 1 2 3
1109 | <_>
1110 |
1111 | 0 1 3 3
1112 | <_>
1113 |
1114 | 0 1 3 7
1115 | <_>
1116 |
1117 | 0 4 3 3
1118 | <_>
1119 |
1120 | 0 11 3 4
1121 | <_>
1122 |
1123 | 0 12 8 4
1124 | <_>
1125 |
1126 | 0 14 4 3
1127 | <_>
1128 |
1129 | 1 0 5 3
1130 | <_>
1131 |
1132 | 1 1 2 2
1133 | <_>
1134 |
1135 | 1 3 3 1
1136 | <_>
1137 |
1138 | 1 7 4 4
1139 | <_>
1140 |
1141 | 1 12 2 2
1142 | <_>
1143 |
1144 | 1 13 4 1
1145 | <_>
1146 |
1147 | 1 14 4 3
1148 | <_>
1149 |
1150 | 1 17 3 2
1151 | <_>
1152 |
1153 | 2 0 2 3
1154 | <_>
1155 |
1156 | 2 1 2 2
1157 | <_>
1158 |
1159 | 2 2 4 6
1160 | <_>
1161 |
1162 | 2 3 4 4
1163 | <_>
1164 |
1165 | 2 7 2 1
1166 | <_>
1167 |
1168 | 2 11 2 3
1169 | <_>
1170 |
1171 | 2 17 3 2
1172 | <_>
1173 |
1174 | 3 0 2 2
1175 | <_>
1176 |
1177 | 3 1 7 3
1178 | <_>
1179 |
1180 | 3 7 2 1
1181 | <_>
1182 |
1183 | 3 7 2 4
1184 | <_>
1185 |
1186 | 3 18 2 2
1187 | <_>
1188 |
1189 | 4 0 2 3
1190 | <_>
1191 |
1192 | 4 3 2 1
1193 | <_>
1194 |
1195 | 4 6 2 1
1196 | <_>
1197 |
1198 | 4 6 2 5
1199 | <_>
1200 |
1201 | 4 7 5 2
1202 | <_>
1203 |
1204 | 4 8 4 3
1205 | <_>
1206 |
1207 | 4 18 2 2
1208 | <_>
1209 |
1210 | 5 0 2 2
1211 | <_>
1212 |
1213 | 5 3 4 4
1214 | <_>
1215 |
1216 | 5 6 2 5
1217 | <_>
1218 |
1219 | 5 9 2 2
1220 | <_>
1221 |
1222 | 5 10 2 2
1223 | <_>
1224 |
1225 | 6 3 4 4
1226 | <_>
1227 |
1228 | 6 4 4 3
1229 | <_>
1230 |
1231 | 6 5 2 3
1232 | <_>
1233 |
1234 | 6 5 2 5
1235 | <_>
1236 |
1237 | 6 5 4 3
1238 | <_>
1239 |
1240 | 6 6 4 2
1241 | <_>
1242 |
1243 | 6 6 4 4
1244 | <_>
1245 |
1246 | 6 18 1 2
1247 | <_>
1248 |
1249 | 6 21 2 1
1250 | <_>
1251 |
1252 | 7 0 3 7
1253 | <_>
1254 |
1255 | 7 4 2 3
1256 | <_>
1257 |
1258 | 7 9 5 1
1259 | <_>
1260 |
1261 | 7 21 2 1
1262 | <_>
1263 |
1264 | 8 0 1 4
1265 | <_>
1266 |
1267 | 8 5 2 2
1268 | <_>
1269 |
1270 | 8 5 3 2
1271 | <_>
1272 |
1273 | 8 17 3 1
1274 | <_>
1275 |
1276 | 8 18 1 2
1277 | <_>
1278 |
1279 | 9 0 5 3
1280 | <_>
1281 |
1282 | 9 2 2 6
1283 | <_>
1284 |
1285 | 9 5 1 1
1286 | <_>
1287 |
1288 | 9 11 1 1
1289 | <_>
1290 |
1291 | 9 16 1 1
1292 | <_>
1293 |
1294 | 9 16 2 1
1295 | <_>
1296 |
1297 | 9 17 1 1
1298 | <_>
1299 |
1300 | 9 18 1 1
1301 | <_>
1302 |
1303 | 10 5 1 2
1304 | <_>
1305 |
1306 | 10 5 3 3
1307 | <_>
1308 |
1309 | 10 7 1 5
1310 | <_>
1311 |
1312 | 10 8 1 1
1313 | <_>
1314 |
1315 | 10 9 1 1
1316 | <_>
1317 |
1318 | 10 10 1 1
1319 | <_>
1320 |
1321 | 10 10 1 2
1322 | <_>
1323 |
1324 | 10 14 3 3
1325 | <_>
1326 |
1327 | 10 15 1 1
1328 | <_>
1329 |
1330 | 10 15 2 1
1331 | <_>
1332 |
1333 | 10 16 1 1
1334 | <_>
1335 |
1336 | 10 16 2 1
1337 | <_>
1338 |
1339 | 10 17 1 1
1340 | <_>
1341 |
1342 | 10 21 1 1
1343 | <_>
1344 |
1345 | 11 3 2 2
1346 | <_>
1347 |
1348 | 11 5 1 2
1349 | <_>
1350 |
1351 | 11 5 3 3
1352 | <_>
1353 |
1354 | 11 5 4 6
1355 | <_>
1356 |
1357 | 11 6 1 1
1358 | <_>
1359 |
1360 | 11 7 2 2
1361 | <_>
1362 |
1363 | 11 8 1 2
1364 | <_>
1365 |
1366 | 11 10 1 1
1367 | <_>
1368 |
1369 | 11 10 1 2
1370 | <_>
1371 |
1372 | 11 15 1 1
1373 | <_>
1374 |
1375 | 11 17 1 1
1376 | <_>
1377 |
1378 | 11 18 1 1
1379 | <_>
1380 |
1381 | 12 0 2 2
1382 | <_>
1383 |
1384 | 12 1 2 5
1385 | <_>
1386 |
1387 | 12 2 4 1
1388 | <_>
1389 |
1390 | 12 3 1 3
1391 | <_>
1392 |
1393 | 12 7 3 4
1394 | <_>
1395 |
1396 | 12 10 3 2
1397 | <_>
1398 |
1399 | 12 11 1 1
1400 | <_>
1401 |
1402 | 12 12 3 2
1403 | <_>
1404 |
1405 | 12 14 4 3
1406 | <_>
1407 |
1408 | 12 17 1 1
1409 | <_>
1410 |
1411 | 12 21 2 1
1412 | <_>
1413 |
1414 | 13 6 2 5
1415 | <_>
1416 |
1417 | 13 7 3 5
1418 | <_>
1419 |
1420 | 13 11 3 2
1421 | <_>
1422 |
1423 | 13 17 2 2
1424 | <_>
1425 |
1426 | 13 17 3 2
1427 | <_>
1428 |
1429 | 13 18 1 2
1430 | <_>
1431 |
1432 | 13 18 2 2
1433 | <_>
1434 |
1435 | 14 0 2 2
1436 | <_>
1437 |
1438 | 14 1 1 3
1439 | <_>
1440 |
1441 | 14 2 3 2
1442 | <_>
1443 |
1444 | 14 7 2 1
1445 | <_>
1446 |
1447 | 14 13 2 1
1448 | <_>
1449 |
1450 | 14 13 3 3
1451 | <_>
1452 |
1453 | 14 17 2 2
1454 | <_>
1455 |
1456 | 15 0 2 2
1457 | <_>
1458 |
1459 | 15 0 2 3
1460 | <_>
1461 |
1462 | 15 4 3 2
1463 | <_>
1464 |
1465 | 15 4 3 6
1466 | <_>
1467 |
1468 | 15 6 3 2
1469 | <_>
1470 |
1471 | 15 11 3 4
1472 | <_>
1473 |
1474 | 15 13 3 2
1475 | <_>
1476 |
1477 | 15 17 2 2
1478 | <_>
1479 |
1480 | 15 17 3 2
1481 | <_>
1482 |
1483 | 16 1 2 3
1484 | <_>
1485 |
1486 | 16 3 2 4
1487 | <_>
1488 |
1489 | 16 6 1 1
1490 | <_>
1491 |
1492 | 16 16 2 2
1493 | <_>
1494 |
1495 | 17 1 2 2
1496 | <_>
1497 |
1498 | 17 1 2 5
1499 | <_>
1500 |
1501 | 17 12 2 2
1502 | <_>
1503 |
1504 | 18 0 2 2
1505 |
1506 |
--------------------------------------------------------------------------------
/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #66000000
4 |
5 |
6 |
--------------------------------------------------------------------------------
/res/values/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Emotion Detection
4 |
5 |
--------------------------------------------------------------------------------
/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
15 |
16 |
17 |
18 |
19 |
23 |
24 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/src/com/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/src/com/emotion/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/src/com/emotion/facedetection/FaceDetectionView.java:
--------------------------------------------------------------------------------
1 | package com.emotion.facedetection;
2 |
3 | import java.io.File;
4 | import java.io.FileOutputStream;
5 | import java.io.IOException;
6 | import java.io.InputStream;
7 |
8 | import org.opencv.android.Utils;
9 | import org.opencv.core.Core;
10 | import org.opencv.core.Mat;
11 | import org.opencv.core.MatOfRect;
12 | import org.opencv.core.Rect;
13 | import org.opencv.core.Scalar;
14 | import org.opencv.core.Size;
15 | import org.opencv.highgui.Highgui;
16 | import org.opencv.highgui.VideoCapture;
17 | import org.opencv.objdetect.CascadeClassifier;
18 | import org.opencv.samples.facedetect.DetectionBasedTracker;
19 |
20 | import android.content.Context;
21 | import android.graphics.Bitmap;
22 | import android.util.Log;
23 | import android.view.ContextMenu;
24 | import android.view.SurfaceHolder;
25 |
26 | class FaceDetectionView extends SampleCvViewBase {
27 | private static final String TAG = "Test::FaceDetectionView";
28 | private Mat mRgba;
29 | private Mat mGray;
30 | private File mCascadeFile, mEyeFile, mMouthFile, mSadFile;
31 | private CascadeClassifier mJavaDetector, mEyeDetector, mSadDetector,
32 | mMouthDetector;
33 | private DetectionBasedTracker mNativeDetector;
34 |
35 | private static final Scalar FACE_RECT_COLOR = new Scalar(255, 167, 192, 19);
36 |
37 | public static final int JAVA_DETECTOR = 0;
38 | public static final int NATIVE_DETECTOR = 1;
39 |
40 | private int mDetectorType = JAVA_DETECTOR;
41 |
42 | private float mRelativeFaceSize = 0;
43 | private int mAbsoluteFaceSize = 0;
44 |
45 | public void setMinFaceSize(float faceSize) {
46 | mRelativeFaceSize = faceSize;
47 | mAbsoluteFaceSize = 0;
48 | }
49 |
50 | public void setDetectorType(int type) {
51 | if (mDetectorType != type) {
52 | mDetectorType = type;
53 |
54 | if (type == NATIVE_DETECTOR) {
55 | Log.i(TAG, "Detection Based Tracker enabled");
56 | mNativeDetector.start();
57 | } else {
58 | Log.i(TAG, "Cascade detector enabled");
59 | mNativeDetector.stop();
60 | }
61 | }
62 | }
63 |
64 | public FaceDetectionView(Context context) {
65 | super(context);
66 | try {
67 | InputStream is = context.getResources().openRawResource(
68 | R.raw.haarcascade_frontalface_alt);
69 | File cascadeDir = context.getDir("cascade", Context.MODE_PRIVATE);
70 | mCascadeFile = new File(cascadeDir,
71 | "haarcascade_frontalface_alt.xml");
72 | FileOutputStream os = new FileOutputStream(mCascadeFile);
73 |
74 | byte[] buffer = new byte[4096];
75 | int bytesRead;
76 | while ((bytesRead = is.read(buffer)) != -1) {
77 | os.write(buffer, 0, bytesRead);
78 | }
79 | is.close();
80 | os.close();
81 |
82 | mJavaDetector = new CascadeClassifier(
83 | mCascadeFile.getAbsolutePath());
84 | if (mJavaDetector.empty()) {
85 | Log.e(TAG, "Failed to load cascade classifier");
86 | mJavaDetector = null;
87 | } else {
88 | Log.i(TAG,
89 | "Loaded cascade classifier from "
90 | + mCascadeFile.getAbsolutePath());
91 | }
92 |
93 | InputStream eye = context.getResources().openRawResource(
94 | R.raw.haarcascade_eye_tree_eyeglasses);
95 | File eyeDir = context.getDir("cascadeeye", Context.MODE_PRIVATE);
96 | mEyeFile = new File(eyeDir, "haarcascade_eye_tree_eyeglasses.xml");
97 | FileOutputStream os1 = new FileOutputStream(mEyeFile);
98 |
99 | byte[] buffer1 = new byte[4096];
100 | int bytesRead1;
101 | while ((bytesRead1 = eye.read(buffer1)) != -1) {
102 | os1.write(buffer1, 0, bytesRead1);
103 | }
104 | eye.close();
105 | os1.close();
106 |
107 | mEyeDetector = new CascadeClassifier(mEyeFile.getAbsolutePath());
108 | if (mEyeDetector.empty()) {
109 | Log.e(TAG, "Failed to load eye cascade classifier");
110 | mEyeDetector = null;
111 | } else {
112 | Log.i(TAG,
113 | "Loaded eye cascade classifier from "
114 | + mEyeFile.getAbsolutePath());
115 | }
116 |
117 | // Changes for Face Made here
118 | // If want only Mouth then use haarcascade_mcs_mouth xml file
119 | InputStream mouth = context.getResources().openRawResource(
120 | R.raw.haarcascade_mcs_mouth);
121 | File mouthDir = context
122 | .getDir("cascademouth", Context.MODE_PRIVATE);
123 | mMouthFile = new File(mouthDir, "haarcascade_mcs_mouth.xml");
124 | FileOutputStream os2 = new FileOutputStream(mMouthFile);
125 |
126 | byte[] buffer2 = new byte[4096];
127 | int bytesRead2;
128 | while ((bytesRead2 = mouth.read(buffer2)) != -1) {
129 | os2.write(buffer2, 0, bytesRead2);
130 | }
131 | mouth.close();
132 | os2.close();
133 |
134 | mMouthDetector = new CascadeClassifier(mMouthFile.getAbsolutePath());
135 | if (mMouthDetector.empty()) {
136 | Log.e(TAG, "Failed to load Mouth cascade classifier");
137 | mMouthDetector = null;
138 | } else {
139 | Log.i(TAG,
140 | "Loaded mouth cascade classifier from "
141 | + mMouthFile.getAbsolutePath());
142 | }
143 |
144 | // Changes for Face Made here
145 | // If want only Smile then use smile5 xml file
146 | InputStream sad = context.getResources().openRawResource(
147 | R.raw.sad_custom1);
148 | File smileDir = context
149 | .getDir("cascadesmile", Context.MODE_PRIVATE);
150 | mSadFile = new File(smileDir, "sad_custom1.xml");
151 | FileOutputStream os3 = new FileOutputStream(mSadFile);
152 |
153 | byte[] buffer3 = new byte[4096];
154 | int bytesRead3;
155 | while ((bytesRead3 = sad.read(buffer3)) != -1) {
156 | os3.write(buffer3, 0, bytesRead3);
157 | }
158 | sad.close();
159 | os3.close();
160 |
161 | mSadDetector = new CascadeClassifier(mSadFile.getAbsolutePath());
162 | if (mSadDetector.empty()) {
163 | Log.e(TAG, "Failed to load Smile cascade classifier");
164 | mSadDetector = null;
165 | } else {
166 | Log.i(TAG,
167 | "Loaded Smile cascade classifier from "
168 | + mSadFile.getAbsolutePath());
169 | }
170 |
171 | mNativeDetector = new DetectionBasedTracker(
172 | mCascadeFile.getAbsolutePath(), 0);
173 | if (mNativeDetector == null) {
174 | Log.e(TAG, "Failed to load native cascade classifier");
175 | // mJavaDetector = null;
176 | } else {
177 | Log.i(TAG, "Loaded native cascade classifier from "
178 | + mCascadeFile.getAbsolutePath());
179 | }
180 |
181 | cascadeDir.delete();
182 | eyeDir.delete();
183 | mouthDir.delete();
184 | smileDir.delete();
185 |
186 | } catch (IOException e) {
187 | e.printStackTrace();
188 | Log.e(TAG, "Failed to load cascade. Exception thrown: " + e);
189 | }
190 | }
191 |
192 |
193 | @Override
194 | public void surfaceCreated(SurfaceHolder holder) {
195 | synchronized (this) {
196 | // initialize Mats before usage
197 | mGray = new Mat();
198 | mRgba = new Mat();
199 | }
200 |
201 | super.surfaceCreated(holder);
202 | }
203 |
204 | @Override
205 | protected void onCreateContextMenu(ContextMenu menu) {
206 | // TODO Auto-generated method stub
207 | super.onCreateContextMenu(menu);
208 | }
209 |
210 | Rect[] mouthArray;
211 | Rect[] sadArray;
212 |
213 | @Override
214 | protected Bitmap processFrame(VideoCapture capture) {
215 | capture.retrieve(mRgba, Highgui.CV_CAP_ANDROID_COLOR_FRAME_RGBA);
216 | capture.retrieve(mGray, Highgui.CV_CAP_ANDROID_GREY_FRAME);
217 |
218 | if (mAbsoluteFaceSize == 0) {
219 | int height = mGray.rows();
220 | if (Math.round(height * mRelativeFaceSize) > 0)
221 | ;
222 | {
223 | mAbsoluteFaceSize = Math.round(height * mRelativeFaceSize);
224 | }
225 | mNativeDetector.setMinFaceSize(mAbsoluteFaceSize);
226 | }
227 |
228 | MatOfRect faces = new MatOfRect();
229 | // MatOfRect eyes = new MatOfRect();
230 | MatOfRect mouth = new MatOfRect();
231 | MatOfRect sad = new MatOfRect();
232 |
233 | if (mDetectorType == JAVA_DETECTOR) {
234 | if (mJavaDetector != null)
235 | mJavaDetector.detectMultiScale(mGray, faces, 1.1, 2,
236 | 2 // TODO: objdetect.CV_HAAR_SCALE_IMAGE
237 | , new Size(mAbsoluteFaceSize, mAbsoluteFaceSize),
238 | new Size());
239 | } else if (mDetectorType == NATIVE_DETECTOR) {
240 | if (mNativeDetector != null)
241 | mNativeDetector.detect(mGray, faces);
242 | } else {
243 | Log.e(TAG, "Detection method is not selected!");
244 | }
245 |
246 | Rect[] facesArray = faces.toArray();
247 | for (int i = 0; i < facesArray.length; i++)
248 | Core.rectangle(mRgba, facesArray[0].tl(), facesArray[0].br(),
249 | FACE_RECT_COLOR, 6);
250 |
251 | if (facesArray.length > 0) {
252 |
253 | // Rect roi = new
254 | // Rect((int)facesArray[0].tl().x,(int)facesArray[0].tl().y,facesArray[0].width,facesArray[0].height);
255 | // Rect roi = new
256 | // Rect((int)facesArray[0].tl().x,(int)(facesArray[0].tl().y+facesArray[0].height/5),facesArray[0].width,(int)(facesArray[0].height/3));//
257 | Rect roi = new Rect((int) facesArray[0].tl().x,
258 | (int) (facesArray[0].tl().y), facesArray[0].width,
259 | (int) (facesArray[0].height));//
260 | // refer to opencv 2.4 tut pdf
261 | if (roi.x >= 0 && roi.width >= 0 && roi.y >= 0 && roi.height >= 0) {
262 |
263 | // is Menu is Selected
264 | if (isTurnedOn) {
265 | Rect roi_Mouth = new Rect((int) facesArray[0].tl().x,
266 | (int) (facesArray[0].tl().y)/*
267 | * +facesArray[0].height*
268 | * 2/3
269 | */,
270 | facesArray[0].width, (int) (facesArray[0].height)/**
271 | *
272 | * 2/5
273 | */
274 | );//
275 | Mat cropped_Mouth = new Mat();
276 | Mat cropped_Smile = new Mat();
277 | cropped_Mouth = mGray.submat(roi_Mouth);
278 | cropped_Smile = mGray.submat(roi_Mouth);
279 |
280 | CascadeClassifier classifier = mMouthDetector;
281 | CascadeClassifier classifier_Sad = null;
282 | if (strTypeSelected.equals("Mouth")) {
283 | classifier = mMouthDetector;
284 | classifier_Sad = mSadDetector;
285 | } else if (strTypeSelected.equals("Smile")) {
286 | classifier = mSadDetector;
287 | }
288 |
289 | if (classifier != null)
290 | classifier.detectMultiScale(cropped_Mouth, mouth, 1.1,
291 | 0, 1, new Size(mAbsoluteFaceSize,
292 | mAbsoluteFaceSize), new Size());
293 | else
294 | Log.i("Fdvuew", "classifier is NULL");
295 |
296 | // Smile Detector Classsifier only in-case of Mouth
297 | // detection
298 | if (classifier_Sad != null)
299 | classifier_Sad.detectMultiScale(cropped_Smile, sad,
300 | 1.1, 0, 1, new Size(mAbsoluteFaceSize,
301 | mAbsoluteFaceSize), new Size());
302 | else
303 | Log.i("Fdvuew", "classifier is NULL");
304 |
305 | cropped_Smile.release();
306 | cropped_Mouth.release();
307 | cropped_Mouth = null;
308 |
309 | mouthArray = mouth.toArray();
310 | sadArray = sad.toArray();
311 | // Point x2 = new Point();
312 | // for (int i = 0; i < mouthArray.length; i++) {
313 | // x2.x = facesArray[0].x + mouthArray[i].x
314 | // + mouthArray[i].width * 0.5;
315 | // x2.y = facesArray[0].y + mouthArray[i].y
316 | // + mouthArray[i].height * 0.5;
317 | // if (x2.y > (facesArray[0].y * 5)) {
318 | // int Radius = (int) ((mouthArray[i].width + mouthArray[i].height) * 0.20);
319 | // Core.circle(mRgba, x2, Radius, MOUTH_RECT_COLOR, 4);
320 | // if (iCircleType == 1) {
321 | // break;
322 | // }
323 | // }
324 | //
325 | // }
326 |
327 | }
328 | sad.release();
329 | faces.release();
330 | mouth.release();
331 | //eyes.release();
332 | faces = null;
333 | mouth = null;
334 | // eyes = null;
335 | }
336 |
337 | }
338 |
339 | // Bitmap bmp = Bitmap.createBitmap(mRgba.cols(), mRgba.rows(),
340 | // Bitmap.Config.ARGB_8888);
341 | Bitmap bmp = Bitmap.createBitmap(mRgba.cols(), mRgba.rows(),
342 | Bitmap.Config.ARGB_8888);
343 |
344 | try {
345 | Utils.matToBitmap(mRgba, bmp);
346 | } catch (Exception e) {
347 | Log.e(TAG,
348 | "Utils.matToBitmap() throws an exception: "
349 | + e.getMessage());
350 | bmp.recycle();
351 | bmp = null;
352 | }
353 |
354 | return bmp;
355 |
356 | }
357 |
358 | protected int updateMouth() {
359 | if (sadArray != null)
360 | return sadArray.length;
361 | else
362 | return 0;
363 | }
364 |
365 | @Override
366 | public void run() {
367 | super.run();
368 |
369 | synchronized (this) {
370 | // Explicitly deallocate Mats
371 | if (mRgba != null)
372 | mRgba.release();
373 | if (mGray != null)
374 | mGray.release();
375 | if (mCascadeFile != null)
376 | mCascadeFile.delete();
377 | if (mNativeDetector != null)
378 | mNativeDetector.release();
379 |
380 | mRgba = null;
381 | mGray = null;
382 | mCascadeFile = null;
383 | }
384 | }
385 |
386 | /**
387 | * sets the Smile or Mouth Setting of the user setting
388 | *
389 | * @param string
390 | * @param string2
391 | */
392 |
393 | String strTypeSelected;
394 | boolean isTurnedOn;
395 |
396 | public void setMouthEvent(String strTypeSelected, boolean isTurnedOn) {
397 | this.strTypeSelected = strTypeSelected;
398 | this.isTurnedOn = isTurnedOn;
399 | }
400 |
401 | int iCircleType;
402 |
403 | public void setCircleType(int iCircleType) {
404 | this.iCircleType = iCircleType;
405 | }
406 |
407 | int iEyeType;
408 |
409 | public void setEyeState(int iEyeType) {
410 | this.iEyeType = iEyeType;
411 | }
412 | }
--------------------------------------------------------------------------------
/src/com/emotion/facedetection/FdActivity.java:
--------------------------------------------------------------------------------
1 | package com.emotion.facedetection;
2 |
3 | import org.opencv.android.BaseLoaderCallback;
4 | import org.opencv.android.LoaderCallbackInterface;
5 | import org.opencv.android.OpenCVLoader;
6 |
7 | import android.app.Activity;
8 | import android.app.AlertDialog;
9 | import android.content.DialogInterface;
10 | import android.content.Intent;
11 | import android.os.Bundle;
12 | import android.util.Log;
13 | import android.view.Menu;
14 | import android.view.MenuItem;
15 | import android.view.Window;
16 |
17 | public class FdActivity extends Activity {
18 | private static final String TAG = "Sample::Activity";
19 |
20 | private MenuItem mItemType;
21 |
22 | private MenuItem mSmileState;
23 | private MenuItem mMouthState;
24 | private MenuItem mCameraView;
25 | private MenuItem mCircleType;
26 | private MenuItem mEyeView;
27 |
28 |
29 | private FaceDetectionView mView;
30 | FdActivity activity;
31 |
32 | private BaseLoaderCallback mOpenCVCallBack = new BaseLoaderCallback(this) {
33 | @SuppressWarnings("deprecation")
34 | @Override
35 | public void onManagerConnected(int status) {
36 | switch (status) {
37 | case LoaderCallbackInterface.SUCCESS:
38 | {
39 | Log.i(TAG, "OpenCV loaded successfully");
40 | //define new API
41 |
42 | // Load native libs after OpenCV initialization
43 | System.loadLibrary("detection_based_tracker");
44 |
45 | // Create and set View
46 | mView = new FaceDetectionView(mAppContext);
47 | mView.setDetectorType(mDetectorType);
48 | mView.setMouthEvent("Mouth",true);
49 | if (mSmileState != null) {
50 | mSmileState.setEnabled(true);
51 | }
52 | mView.setCircleType(iCircleType);
53 | mView.setEyeState(iEyeType);
54 | mView.setMinFaceSize(0.2f);
55 | setContentView(mView);
56 | // Check native OpenCV camera
57 | if( !mView.openCamera(iCameraType) ) {
58 | AlertDialog ad = new AlertDialog.Builder(mAppContext).create();
59 | ad.setCancelable(false); // This blocks the 'BACK' button
60 | ad.setMessage("Fatal error: can't open camera!");
61 | ad.setButton("OK", new DialogInterface.OnClickListener() {
62 | public void onClick(DialogInterface dialog, int which) {
63 | dialog.dismiss();
64 | finish();
65 | }
66 | });
67 | ad.show();
68 | }
69 | } break;
70 | default:
71 | {
72 | super.onManagerConnected(status);
73 | } break;
74 | }
75 | }
76 | };
77 |
78 |
79 | private int mDetectorType = 1;
80 | private String[] mDetectorName;
81 | private String[] mSmileNames;
82 | //Default Smile Value
83 | private int iSmileType = 0;
84 | private int iCircleType = 1;
85 | private int iMouthType = 1;
86 | private int iCameraType = 0;
87 | private int iEyeType = 0;
88 | private String[] mMouthNames;
89 | private String[] mCameraViewValues;
90 | private String[] mCircleValues;
91 | private String[] mEyeValues;
92 |
93 | public FdActivity() {
94 | Log.i(TAG, "Instantiated new " + this.getClass());
95 | activity = this;
96 | mDetectorName = new String[2];
97 | mSmileNames = new String[]{"Smile ON","Smile OFF"};
98 | mMouthNames = new String[]{"Mouth ON","Mouth OFF"};
99 | mCircleValues = new String[]{"Single","Multiple"};
100 | mEyeValues = new String[]{"Eye OFF","Eye ON"};
101 | mCameraViewValues = new String[]{"Back Camera","Front Camera"};
102 | mDetectorName[FaceDetectionView.JAVA_DETECTOR] = "Java";
103 | mDetectorName[FaceDetectionView.NATIVE_DETECTOR] = "Native (tracking)";
104 | }
105 |
106 | @Override
107 | protected void onPause() {
108 | Log.i(TAG, "onPause");
109 | super.onPause();
110 | if (mView != null)
111 | mView.releaseCamera();
112 | }
113 |
114 | @SuppressWarnings("deprecation")
115 | @Override
116 | protected void onResume() {
117 | Log.i(TAG, "onResume");
118 | super.onResume();
119 | if( mView != null && !mView.openCamera(iCameraType) ) {
120 | AlertDialog ad = new AlertDialog.Builder(this).create();
121 | ad.setCancelable(false); // This blocks the 'BACK' button
122 | ad.setMessage("Fatal error: can't open camera!");
123 | ad.setButton("OK", new DialogInterface.OnClickListener() {
124 | public void onClick(DialogInterface dialog, int which) {
125 | dialog.dismiss();
126 | finish();
127 | }
128 | });
129 | ad.show();
130 | }
131 | }
132 |
133 | /** Called when the activity is first created. */
134 | @Override
135 | public void onCreate(Bundle savedInstanceState) {
136 | Log.i(TAG, "onCreate");
137 | super.onCreate(savedInstanceState);
138 | try{
139 | Bundle extras = getIntent().getExtras();
140 | //Define which camera type , Native or Java
141 | iCameraType = (Integer) extras.get("mCameraType");
142 | }catch(Exception e){
143 | }
144 | //Enable extended window features. This is a convenience for calling getWindow().requestFeature().
145 | requestWindowFeature(Window.FEATURE_NO_TITLE);
146 |
147 | Log.i(TAG, "Trying to load OpenCV library");
148 | if (!OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_6, this, mOpenCVCallBack))
149 | {
150 | Log.e(TAG, "Cannot connect to OpenCV Manager");
151 | }
152 | }
153 |
154 | @Override
155 | public boolean onCreateOptionsMenu(Menu menu) {
156 | Log.i(TAG, "onCreateOptionsMenu--------------------------->");
157 | mSmileState = menu.add(mSmileNames[iSmileType]);
158 | mMouthState = menu.add(mMouthNames[iMouthType]);
159 | mCircleType = menu.add(mCircleValues[iCircleType]);
160 | mEyeView = menu.add(mEyeValues[iEyeType]);
161 | mCameraView = menu.add(mCameraViewValues[iCameraType]);
162 | mItemType = menu.add(mDetectorName[mDetectorType]);
163 | mSmileState.setEnabled(false);
164 | return true;
165 | }
166 |
167 | @Override
168 | public boolean onOptionsItemSelected(MenuItem item) {
169 | Log.i(TAG, "Menu Item selected " + item);
170 | if (item == mEyeView){
171 | iEyeType = (iEyeType == 0)?1:0;
172 | item.setTitle(mEyeValues[iEyeType]);
173 | mView.setEyeState(iEyeType);
174 | }
175 | else if (item == mCircleType){
176 | iCircleType = (iCircleType == 0)?1:0;
177 | item.setTitle(mCircleValues[iCircleType]);
178 | mView.setCircleType(iCircleType);
179 | }
180 | else if (item == mSmileState){
181 | iSmileType = (iSmileType==0)?1:0;
182 | item.setTitle(mSmileNames[iSmileType]);
183 | if(iSmileType == 1){
184 | mMouthState.setEnabled(false);
185 | mView.setMouthEvent("Smile",true);
186 | }else if(iSmileType == 0){
187 | mMouthState.setEnabled(true);
188 | mView.setMouthEvent("Smile",false);
189 | }
190 | } else if (item == mMouthState){
191 | iMouthType = (iMouthType==0)?1:0;
192 | item.setTitle(mMouthNames[iMouthType]);
193 | if(iMouthType == 1){
194 | mSmileState.setEnabled(false);
195 | mView.setMouthEvent("Mouth",true);
196 | }else if(iMouthType == 0){
197 | mSmileState.setEnabled(true);
198 | mView.setMouthEvent("Mouth",false);
199 | }
200 | }
201 | else if (item == mItemType)
202 | {
203 | mDetectorType = (mDetectorType + 1) % mDetectorName.length;
204 | item.setTitle(mDetectorName[mDetectorType]);
205 | mView.setDetectorType(mDetectorType);
206 | }else if(item == mCameraView){
207 | finish();
208 | Intent intent = new Intent(this,FdActivity.class);
209 | Bundle b = new Bundle();
210 | iCameraType = (iCameraType==0)?1:0;
211 | b.putInt("mCameraType", iCameraType);
212 | item.setTitle(mCameraViewValues[iCameraType]);
213 | intent.putExtras(b);
214 | startActivity(intent);
215 | }
216 | return true;
217 | }
218 |
219 |
220 | }
221 |
--------------------------------------------------------------------------------
/src/com/emotion/facedetection/FpsMeter.java:
--------------------------------------------------------------------------------
1 | package com.emotion.facedetection;
2 | import java.text.DecimalFormat;
3 |
4 | import org.opencv.core.Core;
5 |
6 | import android.graphics.Bitmap;
7 | import android.graphics.Canvas;
8 | import android.graphics.Color;
9 | import android.graphics.Paint;
10 |
11 | public class FpsMeter {
12 | int step;
13 | int framesCouner;
14 | double freq;
15 | long prevFrameTime;
16 | String strfps;
17 | DecimalFormat twoPlaces = new DecimalFormat("0.00");
18 | Paint paint;
19 |
20 | public void init() {
21 | step = 20;
22 | framesCouner = 0;
23 | freq = Core.getTickFrequency();
24 | prevFrameTime = Core.getTickCount();
25 | strfps = "";
26 |
27 | paint = new Paint();
28 | paint.setColor(Color.GREEN);
29 | paint.setTextSize(60);
30 | }
31 |
32 | public void measure() {
33 | }
34 |
35 | public void draw(String string, Canvas canvas, float offsetx, float offsety) {
36 | if(string.equals("SAD")){
37 | canvas.drawText("WHY "+string+". Please Don't be.", 20 + offsetx, 10 + 50 + offsety, paint);
38 | }else{
39 | canvas.drawText("Nice Smile :-) .", 20 + offsetx, 10 + 50 + offsety, paint);
40 | }
41 | }
42 |
43 | public void drawString(Canvas canvas, float offsetx, float offsety){
44 | //canvas.drawText("Why Sad!!!", 20 + offsetx, 10 + 50 + offsety, paint);
45 | }
46 |
47 | public void drawString(Canvas canvas, Bitmap bmp) {
48 | // TODO Auto-generated method stub
49 | float offsetx = (canvas.getWidth() - bmp.getWidth()) / 2;
50 | canvas.drawText("HAPPY ", 20 + offsetx, 10 + 50 + 0, paint);
51 | }
52 |
53 | }
--------------------------------------------------------------------------------
/src/com/emotion/facedetection/SampleCvViewBase.java:
--------------------------------------------------------------------------------
1 | package com.emotion.facedetection;
2 | import java.util.List;
3 |
4 | import org.opencv.core.Size;
5 | import org.opencv.highgui.Highgui;
6 | import org.opencv.highgui.VideoCapture;
7 |
8 | import android.content.Context;
9 | import android.graphics.Bitmap;
10 | import android.graphics.Canvas;
11 | import android.util.Log;
12 | import android.view.SurfaceHolder;
13 | import android.view.SurfaceView;
14 |
15 | public abstract class SampleCvViewBase extends SurfaceView implements SurfaceHolder.Callback, Runnable {
16 | private static final String TAG = "Sample::SurfaceView";
17 |
18 | private SurfaceHolder mHolder;
19 | private VideoCapture mCamera;
20 | int cvCapAndroidFront;
21 | // Camera mCamera = Camera.open(1);
22 | protected FpsMeter mFps;
23 |
24 | public SampleCvViewBase(Context context) {
25 | super(context);
26 | mHolder = getHolder();
27 | mHolder.addCallback(this);
28 | mFps = new FpsMeter();
29 | Log.i(TAG, "Instantiated new " + this.getClass());
30 | }
31 |
32 | public boolean openCamera(int mCameraType) {
33 | Log.i(TAG, "openCamera");
34 | synchronized (this) {
35 | releaseCamera();
36 | if(mCameraType == 0){
37 | cvCapAndroidFront = Highgui.CV_CAP_ANDROID_FRONT;//Opening Front camera
38 | }else if(mCameraType == 1){
39 | cvCapAndroidFront = Highgui.CV_CAP_ANDROID_BACK;//Open The back Camera
40 | }
41 | mCamera = new VideoCapture(cvCapAndroidFront);
42 | if (!mCamera.isOpened()) {
43 | mCamera.release();
44 | mCamera = null;
45 | Log.e(TAG, "Failed to open native camera");
46 | return false;
47 | }
48 | }
49 | return true;
50 | }
51 |
52 | public void releaseCamera() {
53 | Log.i(TAG, "releaseCamera");
54 | synchronized (this) {
55 | if (mCamera != null) {
56 | mCamera.release();
57 | mCamera = null;
58 | }
59 | }
60 | }
61 |
62 | public void setupCamera(int width, int height) {
63 | Log.i(TAG, "setupCamera("+width+", "+height+")");
64 | synchronized (this) {
65 | if (mCamera != null && mCamera.isOpened()) {
66 | List sizes = mCamera.getSupportedPreviewSizes();
67 | int mFrameWidth = width;
68 | int mFrameHeight = height;
69 |
70 | // selecting optimal camera preview size
71 | {
72 | double minDiff = Double.MAX_VALUE;
73 | for (Size size : sizes) {
74 | if (Math.abs(size.height - height) < minDiff) {
75 | mFrameWidth = (int) size.width;
76 | mFrameHeight = (int) size.height;
77 | minDiff = Math.abs(size.height - height);
78 | }
79 | }
80 | }
81 |
82 | mCamera.set(Highgui.CV_CAP_PROP_FRAME_WIDTH, mFrameWidth);
83 | mCamera.set(Highgui.CV_CAP_PROP_FRAME_HEIGHT, mFrameHeight);
84 | }
85 | }
86 |
87 | }
88 |
89 | public void surfaceChanged(SurfaceHolder _holder, int format, int width, int height) {
90 | Log.i(TAG, "surfaceChanged");
91 | setupCamera(width, height);
92 | //setupCamera(480,320);//imran setting up camera for reduced resolution so that we have
93 | //good frame rate
94 | }
95 |
96 | public void surfaceCreated(SurfaceHolder holder) {
97 | Log.i(TAG, "surfaceCreated");
98 | (new Thread(this)).start();
99 | }
100 |
101 | public void surfaceDestroyed(SurfaceHolder holder) {
102 | Log.i(TAG, "surfaceDestroyed");
103 | releaseCamera();
104 | }
105 |
106 |
107 |
108 | protected abstract Bitmap processFrame(VideoCapture capture);
109 | protected abstract int updateMouth();
110 |
111 | Bitmap bmp = null;
112 | Canvas canvas;
113 |
114 | public void run() {
115 | Log.i(TAG, "Starting processing thread");
116 | mFps.init();
117 |
118 | while (true) {
119 |
120 | synchronized (this) {
121 | if (mCamera == null)
122 | break;
123 |
124 | if (!mCamera.grab()) {
125 | Log.e(TAG, "mCamera.grab() failed");
126 | break;
127 | }
128 |
129 | bmp = processFrame(mCamera);
130 |
131 | // mFps.measure();
132 | }
133 |
134 | if (bmp != null) {
135 | canvas = mHolder.lockCanvas();
136 | if (canvas != null) {
137 | canvas.drawBitmap(bmp, (canvas.getWidth() - bmp.getWidth()) / 2, (canvas.getHeight() - bmp.getHeight()) / 2, null);
138 | int updateMouth = updateMouth();
139 | if(updateMouth<=0){
140 | mFps.draw("SAD",canvas, (canvas.getWidth() - bmp.getWidth()) / 2, 0);
141 | }else{
142 | mFps.draw("Happy :-) ",canvas, (canvas.getWidth() - bmp.getWidth()) / 2, 0);
143 | }
144 | mHolder.unlockCanvasAndPost(canvas);
145 | }
146 | bmp.recycle();
147 | }
148 | }
149 |
150 | Log.i(TAG, "Finishing processing thread");
151 | }
152 | }
--------------------------------------------------------------------------------
/src/com/emotion/facedetection/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/src/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/src/org/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/src/org/opencv/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/src/org/opencv/samples/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------
/src/org/opencv/samples/facedetect/DetectionBasedTracker.java:
--------------------------------------------------------------------------------
1 | package org.opencv.samples.facedetect;
2 |
3 | import org.opencv.core.Mat;
4 | import org.opencv.core.MatOfRect;
5 |
6 | public class DetectionBasedTracker
7 | {
8 | public DetectionBasedTracker(String cascadeName, int minFaceSize) {
9 | mNativeObj = nativeCreateObject(cascadeName, minFaceSize);
10 | }
11 |
12 | public void start() {
13 | nativeStart(mNativeObj);
14 | }
15 |
16 | public void stop() {
17 | nativeStop(mNativeObj);
18 | }
19 |
20 | public void setMinFaceSize(int size) {
21 | nativeSetFaceSize(mNativeObj, size);
22 | }
23 |
24 | public void detect(Mat imageGray, MatOfRect faces) {
25 | nativeDetect(mNativeObj, imageGray.getNativeObjAddr(), faces.getNativeObjAddr());
26 | }
27 |
28 | public void release() {
29 | nativeDestroyObject(mNativeObj);
30 | mNativeObj = 0;
31 | }
32 |
33 | private long mNativeObj = 0;
34 |
35 | private static native long nativeCreateObject(String cascadeName, int minFaceSize);
36 | private static native void nativeDestroyObject(long thiz);
37 | private static native void nativeStart(long thiz);
38 | private static native void nativeStop(long thiz);
39 | private static native void nativeSetFaceSize(long thiz, int size);
40 | private static native void nativeDetect(long thiz, long inputImage, long faces);
41 | }
42 |
--------------------------------------------------------------------------------
/src/org/opencv/samples/facedetect/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | InfoTip=This folder is shared online.
3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe
4 | IconIndex=12
5 |
--------------------------------------------------------------------------------