├── BlogNativeCamera ├── .classpath ├── .cproject ├── .project ├── AndroidManifest.xml ├── bin │ ├── AndroidManifest.xml │ ├── BlogNativeCamera.apk │ ├── R.txt │ ├── classes.dex │ ├── classes │ │ ├── com │ │ │ └── blogspot │ │ │ │ └── mesai0 │ │ │ │ ├── BuildConfig.class │ │ │ │ ├── CameraPreviewer$1.class │ │ │ │ ├── CameraPreviewer.class │ │ │ │ ├── CameraRenderer.class │ │ │ │ ├── Native.class │ │ │ │ ├── R$attr.class │ │ │ │ ├── R$drawable.class │ │ │ │ ├── R$id.class │ │ │ │ ├── R$string.class │ │ │ │ ├── R$style.class │ │ │ │ ├── R$styleable.class │ │ │ │ └── R.class │ │ └── org │ │ │ └── opencv │ │ │ ├── R$attr.class │ │ │ ├── R$id.class │ │ │ ├── R$styleable.class │ │ │ └── R.class │ ├── dexedLibs │ │ ├── android-support-v4-f2766a44aa401c7da60297936a44a205.jar │ │ ├── annotations-ff3f38afbbd54f43e0dafa76d924280d.jar │ │ └── opencv library - 2.4.3-9eaebcf1019a9c79c99ea2d35711c2bd.jar │ ├── res │ │ ├── drawable-hdpi │ │ │ └── ic_launcher.png │ │ ├── drawable-mdpi │ │ │ └── ic_launcher.png │ │ └── drawable-xhdpi │ │ │ └── ic_launcher.png │ └── resources.ap_ ├── gen │ ├── com │ │ └── blogspot │ │ │ └── mesai0 │ │ │ ├── BuildConfig.java │ │ │ └── R.java │ └── org │ │ └── opencv │ │ └── R.java ├── jni │ ├── Android.mk │ ├── Application.mk │ └── CameraRenderer.cpp ├── libs │ └── android-support-v4.jar ├── obj │ └── local │ │ └── armeabi-v7a │ │ ├── libNativeCamera.so │ │ ├── libgnustl_static.a │ │ ├── libnative_camera_r2.2.0.so │ │ ├── libnative_camera_r2.3.3.so │ │ ├── libnative_camera_r3.0.1.so │ │ ├── libnative_camera_r4.0.0.so │ │ ├── libnative_camera_r4.0.3.so │ │ ├── libnative_camera_r4.1.1.so │ │ ├── libnative_camera_r4.2.0.so │ │ ├── libopencv_java.so │ │ └── objs │ │ └── NativeCamera │ │ ├── CameraRenderer.o │ │ └── CameraRenderer.o.d ├── proguard-project.txt ├── project.properties ├── res │ ├── drawable-hdpi │ │ └── ic_launcher.png │ ├── drawable-mdpi │ │ └── ic_launcher.png │ ├── drawable-xhdpi │ │ └── ic_launcher.png │ └── values │ │ ├── strings.xml │ │ └── styles.xml └── src │ └── com │ └── blogspot │ └── mesai0 │ ├── CameraPreviewer.java │ ├── CameraRenderer.java │ └── Native.java └── README.md /BlogNativeCamera/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /BlogNativeCamera/.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 | -------------------------------------------------------------------------------- /BlogNativeCamera/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | BlogNativeCamera 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 10 | 11 | 12 | ?children? 13 | ?name?=outputEntries\|?children?=?name?=entry\\\\\\\|\\\|?name?=entry\\\\\\\|\\\|\|| 14 | 15 | 16 | ?name? 17 | 18 | 19 | 20 | org.eclipse.cdt.make.core.append_environment 21 | true 22 | 23 | 24 | org.eclipse.cdt.make.core.autoBuildTarget 25 | 26 | 27 | 28 | org.eclipse.cdt.make.core.buildArguments 29 | 30 | 31 | 32 | org.eclipse.cdt.make.core.buildCommand 33 | ndk-build 34 | 35 | 36 | org.eclipse.cdt.make.core.cleanBuildTarget 37 | clean 38 | 39 | 40 | org.eclipse.cdt.make.core.contents 41 | org.eclipse.cdt.make.core.activeConfigSettings 42 | 43 | 44 | org.eclipse.cdt.make.core.enableAutoBuild 45 | true 46 | 47 | 48 | org.eclipse.cdt.make.core.enableCleanBuild 49 | true 50 | 51 | 52 | org.eclipse.cdt.make.core.enableFullBuild 53 | true 54 | 55 | 56 | org.eclipse.cdt.make.core.fullBuildTarget 57 | 58 | 59 | 60 | org.eclipse.cdt.make.core.stopOnError 61 | true 62 | 63 | 64 | org.eclipse.cdt.make.core.useDefaultBuildCmd 65 | true 66 | 67 | 68 | 69 | 70 | com.android.ide.eclipse.adt.ResourceManagerBuilder 71 | 72 | 73 | 74 | 75 | com.android.ide.eclipse.adt.PreCompilerBuilder 76 | 77 | 78 | 79 | 80 | org.eclipse.jdt.core.javabuilder 81 | 82 | 83 | 84 | 85 | com.android.ide.eclipse.adt.ApkBuilder 86 | 87 | 88 | 89 | 90 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 91 | full,incremental, 92 | 93 | 94 | 95 | 96 | 97 | com.android.ide.eclipse.adt.AndroidNature 98 | org.eclipse.jdt.core.javanature 99 | org.eclipse.cdt.core.cnature 100 | org.eclipse.cdt.core.ccnature 101 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 102 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 103 | 104 | 105 | -------------------------------------------------------------------------------- /BlogNativeCamera/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 9 | 10 | 11 | 12 | 17 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /BlogNativeCamera/bin/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 9 | 10 | 11 | 12 | 17 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /BlogNativeCamera/bin/BlogNativeCamera.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/bin/BlogNativeCamera.apk -------------------------------------------------------------------------------- /BlogNativeCamera/bin/R.txt: -------------------------------------------------------------------------------- 1 | int attr camera_id 0x7f010001 2 | int attr show_fps 0x7f010000 3 | int drawable ic_launcher 0x7f020000 4 | int id any 0x7f030000 5 | int id back 0x7f030001 6 | int id front 0x7f030002 7 | int string app_name 0x7f040000 8 | int style AppBaseTheme 0x7f050000 9 | int style AppTheme 0x7f050001 10 | int[] styleable CameraBridgeViewBase { 0x7f010000, 0x7f010001 } 11 | int styleable CameraBridgeViewBase_camera_id 1 12 | int styleable CameraBridgeViewBase_show_fps 0 13 | -------------------------------------------------------------------------------- /BlogNativeCamera/bin/classes.dex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/bin/classes.dex -------------------------------------------------------------------------------- /BlogNativeCamera/bin/classes/com/blogspot/mesai0/BuildConfig.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/bin/classes/com/blogspot/mesai0/BuildConfig.class -------------------------------------------------------------------------------- /BlogNativeCamera/bin/classes/com/blogspot/mesai0/CameraPreviewer$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/bin/classes/com/blogspot/mesai0/CameraPreviewer$1.class -------------------------------------------------------------------------------- /BlogNativeCamera/bin/classes/com/blogspot/mesai0/CameraPreviewer.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/bin/classes/com/blogspot/mesai0/CameraPreviewer.class -------------------------------------------------------------------------------- /BlogNativeCamera/bin/classes/com/blogspot/mesai0/CameraRenderer.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/bin/classes/com/blogspot/mesai0/CameraRenderer.class -------------------------------------------------------------------------------- /BlogNativeCamera/bin/classes/com/blogspot/mesai0/Native.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/bin/classes/com/blogspot/mesai0/Native.class -------------------------------------------------------------------------------- /BlogNativeCamera/bin/classes/com/blogspot/mesai0/R$attr.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/bin/classes/com/blogspot/mesai0/R$attr.class -------------------------------------------------------------------------------- /BlogNativeCamera/bin/classes/com/blogspot/mesai0/R$drawable.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/bin/classes/com/blogspot/mesai0/R$drawable.class -------------------------------------------------------------------------------- /BlogNativeCamera/bin/classes/com/blogspot/mesai0/R$id.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/bin/classes/com/blogspot/mesai0/R$id.class -------------------------------------------------------------------------------- /BlogNativeCamera/bin/classes/com/blogspot/mesai0/R$string.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/bin/classes/com/blogspot/mesai0/R$string.class -------------------------------------------------------------------------------- /BlogNativeCamera/bin/classes/com/blogspot/mesai0/R$style.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/bin/classes/com/blogspot/mesai0/R$style.class -------------------------------------------------------------------------------- /BlogNativeCamera/bin/classes/com/blogspot/mesai0/R$styleable.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/bin/classes/com/blogspot/mesai0/R$styleable.class -------------------------------------------------------------------------------- /BlogNativeCamera/bin/classes/com/blogspot/mesai0/R.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/bin/classes/com/blogspot/mesai0/R.class -------------------------------------------------------------------------------- /BlogNativeCamera/bin/classes/org/opencv/R$attr.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/bin/classes/org/opencv/R$attr.class -------------------------------------------------------------------------------- /BlogNativeCamera/bin/classes/org/opencv/R$id.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/bin/classes/org/opencv/R$id.class -------------------------------------------------------------------------------- /BlogNativeCamera/bin/classes/org/opencv/R$styleable.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/bin/classes/org/opencv/R$styleable.class -------------------------------------------------------------------------------- /BlogNativeCamera/bin/classes/org/opencv/R.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/bin/classes/org/opencv/R.class -------------------------------------------------------------------------------- /BlogNativeCamera/bin/dexedLibs/android-support-v4-f2766a44aa401c7da60297936a44a205.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/bin/dexedLibs/android-support-v4-f2766a44aa401c7da60297936a44a205.jar -------------------------------------------------------------------------------- /BlogNativeCamera/bin/dexedLibs/annotations-ff3f38afbbd54f43e0dafa76d924280d.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/bin/dexedLibs/annotations-ff3f38afbbd54f43e0dafa76d924280d.jar -------------------------------------------------------------------------------- /BlogNativeCamera/bin/dexedLibs/opencv library - 2.4.3-9eaebcf1019a9c79c99ea2d35711c2bd.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/bin/dexedLibs/opencv library - 2.4.3-9eaebcf1019a9c79c99ea2d35711c2bd.jar -------------------------------------------------------------------------------- /BlogNativeCamera/bin/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/bin/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /BlogNativeCamera/bin/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/bin/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /BlogNativeCamera/bin/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/bin/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /BlogNativeCamera/bin/resources.ap_: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/bin/resources.ap_ -------------------------------------------------------------------------------- /BlogNativeCamera/gen/com/blogspot/mesai0/BuildConfig.java: -------------------------------------------------------------------------------- 1 | /** Automatically generated file. DO NOT MODIFY */ 2 | package com.blogspot.mesai0; 3 | 4 | public final class BuildConfig { 5 | public final static boolean DEBUG = true; 6 | } -------------------------------------------------------------------------------- /BlogNativeCamera/gen/com/blogspot/mesai0/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.blogspot.mesai0; 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 | 24 | 25 | 26 | 27 |
ConstantValueDescription
any-1
back0
front1
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 drawable { 40 | public static final int ic_launcher=0x7f020000; 41 | } 42 | public static final class id { 43 | public static final int any=0x7f030000; 44 | public static final int back=0x7f030001; 45 | public static final int front=0x7f030002; 46 | } 47 | public static final class string { 48 | public static final int app_name=0x7f040000; 49 | } 50 | public static final class style { 51 | /** 52 | Base application theme, dependent on API level. This theme is replaced 53 | by AppBaseTheme from res/values-vXX/styles.xml on newer devices. 54 | 55 | 56 | Theme customizations available in newer API levels can go in 57 | res/values-vXX/styles.xml, while customizations related to 58 | backward-compatibility can go here. 59 | 60 | */ 61 | public static final int AppBaseTheme=0x7f050000; 62 | /** Application theme. 63 | All customizations that are NOT specific to a particular API-level can go here. 64 | */ 65 | public static final int AppTheme=0x7f050001; 66 | } 67 | public static final class styleable { 68 | /** Attributes that can be used with a CameraBridgeViewBase. 69 |

Includes the following attributes:

70 | 71 | 72 | 73 | 74 | 75 | 76 |
AttributeDescription
{@link #CameraBridgeViewBase_camera_id com.blogspot.mesai0:camera_id}
{@link #CameraBridgeViewBase_show_fps com.blogspot.mesai0:show_fps}
77 | @see #CameraBridgeViewBase_camera_id 78 | @see #CameraBridgeViewBase_show_fps 79 | */ 80 | public static final int[] CameraBridgeViewBase = { 81 | 0x7f010000, 0x7f010001 82 | }; 83 | /** 84 |

This symbol is the offset where the {@link com.blogspot.mesai0.R.attr#camera_id} 85 | attribute's value can be found in the {@link #CameraBridgeViewBase} array. 86 | 87 | 88 |

May be an integer value, such as "100". 89 |

This may also be a reference to a resource (in the form 90 | "@[package:]type:name") or 91 | theme attribute (in the form 92 | "?[package:][type:]name") 93 | containing a value of this type. 94 |

May be one of the following constant values.

95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 |
ConstantValueDescription
any-1
back0
front1
104 | @attr name com.blogspot.mesai0:camera_id 105 | */ 106 | public static final int CameraBridgeViewBase_camera_id = 1; 107 | /** 108 |

This symbol is the offset where the {@link com.blogspot.mesai0.R.attr#show_fps} 109 | attribute's value can be found in the {@link #CameraBridgeViewBase} array. 110 | 111 | 112 |

Must be a boolean value, either "true" or "false". 113 |

This may also be a reference to a resource (in the form 114 | "@[package:]type:name") or 115 | theme attribute (in the form 116 | "?[package:][type:]name") 117 | containing a value of this type. 118 | @attr name com.blogspot.mesai0:show_fps 119 | */ 120 | public static final int CameraBridgeViewBase_show_fps = 0; 121 | }; 122 | } 123 | -------------------------------------------------------------------------------- /BlogNativeCamera/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 = 0x7f030000; 16 | public static final int back = 0x7f030001; 17 | public static final int front = 0x7f030002; 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 | -------------------------------------------------------------------------------- /BlogNativeCamera/jni/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH := $(call my-dir) 2 | 3 | 4 | 5 | 6 | include $(CLEAR_VARS) 7 | LOCAL_MODULE := opencv-prebuilt 8 | LOCAL_SRC_FILES = build/libs/$(TARGET_ARCH_ABI)/libopencv_java.so 9 | LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/build/include 10 | include $(PREBUILT_SHARED_LIBRARY) 11 | 12 | include $(CLEAR_VARS) 13 | LOCAL_MODULE := camera1-prebuilt 14 | LOCAL_SRC_FILES = build/libs/$(TARGET_ARCH_ABI)/libnative_camera_r4.2.0.so 15 | LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/build/include 16 | include $(PREBUILT_SHARED_LIBRARY) 17 | 18 | include $(CLEAR_VARS) 19 | LOCAL_MODULE := camera2-prebuilt 20 | LOCAL_SRC_FILES = build/libs/$(TARGET_ARCH_ABI)/libnative_camera_r4.1.1.so 21 | LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/build/include 22 | include $(PREBUILT_SHARED_LIBRARY) 23 | 24 | include $(CLEAR_VARS) 25 | LOCAL_MODULE := camera3-prebuilt 26 | LOCAL_SRC_FILES = build/libs/$(TARGET_ARCH_ABI)/libnative_camera_r4.0.3.so 27 | LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/build/include 28 | include $(PREBUILT_SHARED_LIBRARY) 29 | 30 | include $(CLEAR_VARS) 31 | LOCAL_MODULE := camera4-prebuilt 32 | LOCAL_SRC_FILES = build/libs/$(TARGET_ARCH_ABI)/libnative_camera_r4.0.0.so 33 | LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/build/include 34 | include $(PREBUILT_SHARED_LIBRARY) 35 | 36 | include $(CLEAR_VARS) 37 | LOCAL_MODULE := camera5-prebuilt 38 | LOCAL_SRC_FILES = build/libs/$(TARGET_ARCH_ABI)/libnative_camera_r3.0.1.so 39 | LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/build/include 40 | include $(PREBUILT_SHARED_LIBRARY) 41 | 42 | include $(CLEAR_VARS) 43 | LOCAL_MODULE := camera6-prebuilt 44 | LOCAL_SRC_FILES = build/libs/$(TARGET_ARCH_ABI)/libnative_camera_r2.3.3.so 45 | LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/build/include 46 | include $(PREBUILT_SHARED_LIBRARY) 47 | 48 | include $(CLEAR_VARS) 49 | LOCAL_MODULE := camera7-prebuilt 50 | LOCAL_SRC_FILES = build/libs/$(TARGET_ARCH_ABI)/libnative_camera_r2.2.0.so 51 | LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/build/include 52 | include $(PREBUILT_SHARED_LIBRARY) 53 | 54 | include $(CLEAR_VARS) 55 | OPENGLES_LIB := -lGLESv1_CM 56 | OPENGLES_DEF := -DUSE_OPENGL_ES_1_1 57 | LOCAL_MODULE := NativeCamera 58 | LOCAL_SHARED_LIBRARIES := opencv-prebuilt 59 | LOCAL_SRC_FILES := CameraRenderer.cpp 60 | LOCAL_LDLIBS += $(OPENGLES_LIB) -llog -ldl 61 | 62 | include $(BUILD_SHARED_LIBRARY) -------------------------------------------------------------------------------- /BlogNativeCamera/jni/Application.mk: -------------------------------------------------------------------------------- 1 | APP_STL := gnustl_static 2 | APP_CPPFLAGS := -frtti -fexceptions 3 | APP_ABI := armeabi-v7a 4 | APP_PLATFORM := android-8 5 | -------------------------------------------------------------------------------- /BlogNativeCamera/jni/CameraRenderer.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include "opencv2/highgui/highgui.hpp" 10 | 11 | // Utility for logging: 12 | #define LOG_TAG "CAMERA_RENDERER" 13 | #define LOG(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__) 14 | 15 | GLuint texture; 16 | cv::VideoCapture capture; 17 | cv::Mat buffer[30]; 18 | cv::Mat rgbFrame; 19 | cv::Mat inframe; 20 | cv::Mat outframe; 21 | int bufferIndex; 22 | int rgbIndex; 23 | int frameWidth; 24 | int frameHeight; 25 | int screenWidth; 26 | int screenHeight; 27 | int orientation; 28 | pthread_mutex_t FGmutex; 29 | pthread_t frameGrabber; 30 | pthread_attr_t attr; 31 | struct sched_param param; 32 | 33 | GLfloat vertices[] = { 34 | -1.0f, -1.0f, 0.0f, // V1 - bottom left 35 | -1.0f, 1.0f, 0.0f, // V2 - top left 36 | 1.0f, -1.0f, 0.0f, // V3 - bottom right 37 | 1.0f, 1.0f, 0.0f // V4 - top right 38 | }; 39 | 40 | GLfloat textures[8]; 41 | 42 | extern "C" { 43 | 44 | void drawBackground(); 45 | void createTexture(); 46 | void destroyTexture(); 47 | void *frameRetriever(void*); 48 | 49 | JNIEXPORT void JNICALL Java_com_blogspot_mesai0_Native_initCamera(JNIEnv*, jobject,jint width,jint height) 50 | { 51 | LOG("Camera Created"); 52 | capture.open(CV_CAP_ANDROID + 0); 53 | capture.set(CV_CAP_PROP_FRAME_WIDTH, width); 54 | capture.set(CV_CAP_PROP_FRAME_HEIGHT, height); 55 | frameWidth =width; 56 | frameHeight = height; 57 | LOG("frameWidth = %d",frameWidth); 58 | LOG("frameHeight = %d",frameHeight); 59 | glClearColor(0.0f, 0.0f, 0.0f, 1.0f); 60 | glShadeModel(GL_SMOOTH); 61 | glClearDepthf(1.0f); 62 | glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); 63 | pthread_attr_t attr; 64 | pthread_attr_init(&attr); 65 | pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); 66 | pthread_attr_setschedpolicy(&attr, SCHED_FIFO); 67 | memset(¶m, 0, sizeof(param)); 68 | param.sched_priority = 100; 69 | pthread_attr_setschedparam(&attr, ¶m); 70 | pthread_create(&frameGrabber, &attr, frameRetriever, NULL); 71 | pthread_attr_destroy(&attr); 72 | 73 | } 74 | 75 | JNIEXPORT void JNICALL Java_com_blogspot_mesai0_Native_surfaceChanged(JNIEnv*, jobject,jint width,jint height,jint orien) 76 | { 77 | LOG("Surface Changed"); 78 | glViewport(0, 0, width,height); 79 | if(orien==1) { 80 | screenWidth = width; 81 | screenHeight = height; 82 | orientation = 1; 83 | } else { 84 | screenWidth = height; 85 | screenHeight = width; 86 | orientation = 2; 87 | } 88 | 89 | 90 | LOG("screenWidth = %d",screenWidth); 91 | LOG("screenHeight = %d",screenHeight); 92 | glMatrixMode(GL_PROJECTION); 93 | glLoadIdentity(); 94 | float aspect = screenWidth / screenHeight; 95 | float bt = (float) tan(45 / 2); 96 | float lr = bt * aspect; 97 | glFrustumf(-lr * 0.1f, lr * 0.1f, -bt * 0.1f, bt * 0.1f, 0.1f, 98 | 100.0f); 99 | glMatrixMode(GL_MODELVIEW); 100 | glLoadIdentity(); 101 | glEnable(GL_TEXTURE_2D); 102 | glClearColor(0.0f, 0.0f, 0.0f, 1.0f); 103 | glClearDepthf(1.0f); 104 | glEnable(GL_DEPTH_TEST); 105 | glDepthFunc(GL_LEQUAL); 106 | createTexture(); 107 | } 108 | 109 | JNIEXPORT void JNICALL Java_com_blogspot_mesai0_Native_releaseCamera(JNIEnv*, jobject) 110 | { 111 | LOG("Camera Released"); 112 | capture.release(); 113 | destroyTexture(); 114 | 115 | } 116 | 117 | void createTexture() { 118 | textures[0] = ((1024.0f-frameWidth*1.0f)/2.0f)/1024.0f; 119 | textures[1] = ((1024.0f-frameHeight*1.0f)/2.0f)/1024.0f + (frameHeight*1.0f/1024.0f); 120 | textures[2] = ((1024.0f-frameWidth*1.0f)/2.0f)/1024.0f + (frameWidth*1.0f/1024.0f); 121 | textures[3] = ((1024.0f-frameHeight*1.0f)/2.0f)/1024.0f + (frameHeight*1.0f/1024.0f); 122 | textures[4] = ((1024.0f-frameWidth*1.0f)/2.0f)/1024.0f; 123 | textures[5] = ((1024.0f-frameHeight*1.0f)/2.0f)/1024.0f; 124 | textures[6] = ((1024.0f-frameWidth*1.0f)/2.0f)/1024.0f + (frameWidth*1.0f/1024.0f); 125 | textures[7] = ((1024.0f-frameHeight*1.0f)/2.0f)/1024.0f; 126 | LOG("Texture Created"); 127 | glGenTextures(1, &texture); 128 | glBindTexture(GL_TEXTURE_2D, texture); 129 | glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); 130 | glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); 131 | glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 1024,1024, 0, GL_RGB, 132 | GL_UNSIGNED_SHORT_5_6_5, NULL); 133 | glBindTexture(GL_TEXTURE_2D, 0); 134 | } 135 | 136 | void destroyTexture() { 137 | LOG("Texture destroyed"); 138 | glDeleteTextures(1, &texture); 139 | } 140 | 141 | JNIEXPORT void JNICALL Java_com_blogspot_mesai0_Native_renderBackground( 142 | JNIEnv*, jobject) { 143 | drawBackground(); 144 | } 145 | 146 | void drawBackground() { 147 | glClear (GL_COLOR_BUFFER_BIT); 148 | glBindTexture(GL_TEXTURE_2D, texture); 149 | if(bufferIndex>0){ 150 | pthread_mutex_lock(&FGmutex); 151 | cvtColor(buffer[(bufferIndex - 1) % 30], outframe, CV_BGR2BGR565); 152 | pthread_mutex_unlock(&FGmutex); 153 | cv::flip(outframe, rgbFrame, 1); 154 | if (texture != 0) 155 | glTexSubImage2D(GL_TEXTURE_2D, 0, (1024-frameWidth)/2, (1024-frameHeight)/2, frameWidth, frameHeight, 156 | GL_RGB, GL_UNSIGNED_SHORT_5_6_5, rgbFrame.ptr()); 157 | } 158 | glEnableClientState (GL_VERTEX_ARRAY); 159 | glEnableClientState (GL_TEXTURE_COORD_ARRAY); 160 | glLoadIdentity(); 161 | if(orientation!=1){ 162 | glRotatef( 90,0,0,1); 163 | } 164 | // Set the face rotation 165 | glFrontFace (GL_CW); 166 | // Point to our vertex buffer 167 | glVertexPointer(3, GL_FLOAT, 0, vertices); 168 | glTexCoordPointer(2, GL_FLOAT, 0, textures); 169 | // Draw the vertices as triangle strip 170 | glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); 171 | //Disable the client state before leaving 172 | glDisableClientState(GL_VERTEX_ARRAY); 173 | glDisableClientState(GL_TEXTURE_COORD_ARRAY); 174 | } 175 | 176 | void *frameRetriever(void*) { 177 | while (capture.isOpened()) { 178 | capture.read(inframe); 179 | if (!inframe.empty()) { 180 | pthread_mutex_lock(&FGmutex); 181 | inframe.copyTo(buffer[(bufferIndex++) % 30]); 182 | pthread_mutex_unlock(&FGmutex); 183 | } 184 | } 185 | LOG("Camera Closed"); 186 | pthread_exit (NULL); 187 | } 188 | 189 | 190 | } 191 | -------------------------------------------------------------------------------- /BlogNativeCamera/libs/android-support-v4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/libs/android-support-v4.jar -------------------------------------------------------------------------------- /BlogNativeCamera/obj/local/armeabi-v7a/libNativeCamera.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/obj/local/armeabi-v7a/libNativeCamera.so -------------------------------------------------------------------------------- /BlogNativeCamera/obj/local/armeabi-v7a/libgnustl_static.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/obj/local/armeabi-v7a/libgnustl_static.a -------------------------------------------------------------------------------- /BlogNativeCamera/obj/local/armeabi-v7a/libnative_camera_r2.2.0.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/obj/local/armeabi-v7a/libnative_camera_r2.2.0.so -------------------------------------------------------------------------------- /BlogNativeCamera/obj/local/armeabi-v7a/libnative_camera_r2.3.3.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/obj/local/armeabi-v7a/libnative_camera_r2.3.3.so -------------------------------------------------------------------------------- /BlogNativeCamera/obj/local/armeabi-v7a/libnative_camera_r3.0.1.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/obj/local/armeabi-v7a/libnative_camera_r3.0.1.so -------------------------------------------------------------------------------- /BlogNativeCamera/obj/local/armeabi-v7a/libnative_camera_r4.0.0.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/obj/local/armeabi-v7a/libnative_camera_r4.0.0.so -------------------------------------------------------------------------------- /BlogNativeCamera/obj/local/armeabi-v7a/libnative_camera_r4.0.3.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/obj/local/armeabi-v7a/libnative_camera_r4.0.3.so -------------------------------------------------------------------------------- /BlogNativeCamera/obj/local/armeabi-v7a/libnative_camera_r4.1.1.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/obj/local/armeabi-v7a/libnative_camera_r4.1.1.so -------------------------------------------------------------------------------- /BlogNativeCamera/obj/local/armeabi-v7a/libnative_camera_r4.2.0.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/obj/local/armeabi-v7a/libnative_camera_r4.2.0.so -------------------------------------------------------------------------------- /BlogNativeCamera/obj/local/armeabi-v7a/libopencv_java.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/obj/local/armeabi-v7a/libopencv_java.so -------------------------------------------------------------------------------- /BlogNativeCamera/obj/local/armeabi-v7a/objs/NativeCamera/CameraRenderer.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/obj/local/armeabi-v7a/objs/NativeCamera/CameraRenderer.o -------------------------------------------------------------------------------- /BlogNativeCamera/obj/local/armeabi-v7a/objs/NativeCamera/CameraRenderer.o.d: -------------------------------------------------------------------------------- 1 | obj/local/armeabi-v7a/objs/NativeCamera/CameraRenderer.o: \ 2 | jni/CameraRenderer.cpp \ 3 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/jni.h \ 4 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/GLES/gl.h \ 5 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/GLES/glplatform.h \ 6 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/KHR/khrplatform.h \ 7 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/stdint.h \ 8 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/sys/_types.h \ 9 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/machine/_types.h \ 10 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/GLES/glext.h \ 11 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/android/log.h \ 12 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/pthread.h \ 13 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/time.h \ 14 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/sys/cdefs.h \ 15 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/sys/cdefs_elf.h \ 16 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/android/api-level.h \ 17 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/sys/time.h \ 18 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/sys/types.h \ 19 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/linux/posix_types.h \ 20 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/linux/stddef.h \ 21 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/linux/compiler.h \ 22 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/asm/posix_types.h \ 23 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/asm/types.h \ 24 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/linux/types.h \ 25 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/machine/kernel.h \ 26 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/sys/sysmacros.h \ 27 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/linux/time.h \ 28 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/asm/siginfo.h \ 29 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/asm-generic/siginfo.h \ 30 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/signal.h \ 31 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/limits.h \ 32 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/sys/limits.h \ 33 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/linux/limits.h \ 34 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/machine/internal_types.h \ 35 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/machine/limits.h \ 36 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/sys/syslimits.h \ 37 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/string.h \ 38 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/malloc.h \ 39 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/asm/signal.h \ 40 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/asm-generic/signal.h \ 41 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/asm/sigcontext.h \ 42 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/sched.h \ 43 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/Math.h \ 44 | jni/build/include/opencv/cv.h jni/build/include/opencv2/core/core_c.h \ 45 | jni/build/include/opencv2/core/types_c.h \ 46 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/assert.h \ 47 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/stdlib.h \ 48 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/alloca.h \ 49 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/strings.h \ 50 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/memory.h \ 51 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/math.h \ 52 | jni/build/include/opencv2/core/core.hpp \ 53 | jni/build/include/opencv2/core/version.hpp \ 54 | /Users/MESAI/Development/Android/android-ndk-r8b/sources/cxx-stl/gnu-libstdc++/4.6/include/algorithm \ 55 | /Users/MESAI/Development/Android/android-ndk-r8b/sources/cxx-stl/gnu-libstdc++/4.6/include/cmath \ 56 | /Users/MESAI/Development/Android/android-ndk-r8b/sources/cxx-stl/gnu-libstdc++/4.6/include/cstddef \ 57 | /Users/MESAI/Development/Android/android-ndk-r8b/sources/cxx-stl/gnu-libstdc++/4.6/include/complex \ 58 | /Users/MESAI/Development/Android/android-ndk-r8b/sources/cxx-stl/gnu-libstdc++/4.6/include/map \ 59 | /Users/MESAI/Development/Android/android-ndk-r8b/sources/cxx-stl/gnu-libstdc++/4.6/include/vector \ 60 | jni/build/include/opencv2/core/operations.hpp \ 61 | /Users/MESAI/Development/Android/android-ndk-r8b/sources/cxx-stl/gnu-libstdc++/4.6/include/limits \ 62 | jni/build/include/opencv2/core/mat.hpp \ 63 | jni/build/include/opencv2/imgproc/imgproc_c.h \ 64 | jni/build/include/opencv2/imgproc/types_c.h \ 65 | jni/build/include/opencv2/imgproc/imgproc.hpp \ 66 | jni/build/include/opencv2/video/tracking.hpp \ 67 | jni/build/include/opencv2/features2d/features2d.hpp \ 68 | jni/build/include/opencv2/flann/miniflann.hpp \ 69 | jni/build/include/opencv2/flann/defines.h \ 70 | jni/build/include/opencv2/flann/config.h \ 71 | jni/build/include/opencv2/flann/flann.hpp \ 72 | jni/build/include/opencv2/flann/flann_base.hpp \ 73 | /Users/MESAI/Development/Android/android-ndk-r8b/sources/cxx-stl/gnu-libstdc++/4.6/include/cassert \ 74 | /Users/MESAI/Development/Android/android-ndk-r8b/sources/cxx-stl/gnu-libstdc++/4.6/include/cstdio \ 75 | jni/build/include/opencv2/flann/general.h \ 76 | jni/build/include/opencv2/flann/defines.h \ 77 | /Users/MESAI/Development/Android/android-ndk-r8b/sources/cxx-stl/gnu-libstdc++/4.6/include/stdexcept \ 78 | jni/build/include/opencv2/flann/matrix.h \ 79 | jni/build/include/opencv2/flann/params.h \ 80 | jni/build/include/opencv2/flann/any.h \ 81 | /Users/MESAI/Development/Android/android-ndk-r8b/sources/cxx-stl/gnu-libstdc++/4.6/include/typeinfo \ 82 | /Users/MESAI/Development/Android/android-ndk-r8b/sources/cxx-stl/gnu-libstdc++/4.6/include/iostream \ 83 | jni/build/include/opencv2/flann/saving.h \ 84 | /Users/MESAI/Development/Android/android-ndk-r8b/sources/cxx-stl/gnu-libstdc++/4.6/include/cstring \ 85 | jni/build/include/opencv2/flann/nn_index.h \ 86 | jni/build/include/opencv2/flann/result_set.h \ 87 | /Users/MESAI/Development/Android/android-ndk-r8b/sources/cxx-stl/gnu-libstdc++/4.6/include/set \ 88 | jni/build/include/opencv2/flann/all_indices.h \ 89 | jni/build/include/opencv2/flann/kdtree_index.h \ 90 | jni/build/include/opencv2/flann/dynamic_bitset.h \ 91 | jni/build/include/opencv2/flann/dist.h \ 92 | jni/build/include/opencv2/flann/heap.h \ 93 | jni/build/include/opencv2/flann/allocator.h \ 94 | jni/build/include/opencv2/flann/random.h \ 95 | jni/build/include/opencv2/flann/kdtree_single_index.h \ 96 | jni/build/include/opencv2/flann/kmeans_index.h \ 97 | jni/build/include/opencv2/flann/logger.h \ 98 | jni/build/include/opencv2/flann/composite_index.h \ 99 | jni/build/include/opencv2/flann/linear_index.h \ 100 | jni/build/include/opencv2/flann/hierarchical_clustering_index.h \ 101 | jni/build/include/opencv2/flann/lsh_index.h \ 102 | jni/build/include/opencv2/flann/lsh_table.h \ 103 | /Users/MESAI/Development/Android/android-ndk-r8b/sources/cxx-stl/gnu-libstdc++/4.6/include/iomanip \ 104 | jni/build/include/opencv2/flann/autotuned_index.h \ 105 | jni/build/include/opencv2/flann/ground_truth.h \ 106 | jni/build/include/opencv2/flann/index_testing.h \ 107 | jni/build/include/opencv2/flann/timer.h \ 108 | jni/build/include/opencv2/flann/sampling.h \ 109 | jni/build/include/opencv2/calib3d/calib3d.hpp \ 110 | jni/build/include/opencv2/objdetect/objdetect.hpp \ 111 | /Users/MESAI/Development/Android/android-ndk-r8b/sources/cxx-stl/gnu-libstdc++/4.6/include/deque \ 112 | jni/build/include/opencv2/legacy/compat.hpp \ 113 | jni/build/include/opencv2/core/internal.hpp \ 114 | jni/build/include/opencv2/highgui/highgui.hpp \ 115 | jni/build/include/opencv2/highgui/highgui_c.h 116 | 117 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/jni.h: 118 | 119 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/GLES/gl.h: 120 | 121 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/GLES/glplatform.h: 122 | 123 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/KHR/khrplatform.h: 124 | 125 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/stdint.h: 126 | 127 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/sys/_types.h: 128 | 129 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/machine/_types.h: 130 | 131 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/GLES/glext.h: 132 | 133 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/android/log.h: 134 | 135 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/pthread.h: 136 | 137 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/time.h: 138 | 139 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/sys/cdefs.h: 140 | 141 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/sys/cdefs_elf.h: 142 | 143 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/android/api-level.h: 144 | 145 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/sys/time.h: 146 | 147 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/sys/types.h: 148 | 149 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/linux/posix_types.h: 150 | 151 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/linux/stddef.h: 152 | 153 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/linux/compiler.h: 154 | 155 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/asm/posix_types.h: 156 | 157 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/asm/types.h: 158 | 159 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/linux/types.h: 160 | 161 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/machine/kernel.h: 162 | 163 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/sys/sysmacros.h: 164 | 165 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/linux/time.h: 166 | 167 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/asm/siginfo.h: 168 | 169 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/asm-generic/siginfo.h: 170 | 171 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/signal.h: 172 | 173 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/limits.h: 174 | 175 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/sys/limits.h: 176 | 177 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/linux/limits.h: 178 | 179 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/machine/internal_types.h: 180 | 181 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/machine/limits.h: 182 | 183 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/sys/syslimits.h: 184 | 185 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/string.h: 186 | 187 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/malloc.h: 188 | 189 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/asm/signal.h: 190 | 191 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/asm-generic/signal.h: 192 | 193 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/asm/sigcontext.h: 194 | 195 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/sched.h: 196 | 197 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/Math.h: 198 | 199 | jni/build/include/opencv/cv.h: 200 | 201 | jni/build/include/opencv2/core/core_c.h: 202 | 203 | jni/build/include/opencv2/core/types_c.h: 204 | 205 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/assert.h: 206 | 207 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/stdlib.h: 208 | 209 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/alloca.h: 210 | 211 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/strings.h: 212 | 213 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/memory.h: 214 | 215 | /Users/MESAI/Development/Android/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/math.h: 216 | 217 | jni/build/include/opencv2/core/core.hpp: 218 | 219 | jni/build/include/opencv2/core/version.hpp: 220 | 221 | /Users/MESAI/Development/Android/android-ndk-r8b/sources/cxx-stl/gnu-libstdc++/4.6/include/algorithm: 222 | 223 | /Users/MESAI/Development/Android/android-ndk-r8b/sources/cxx-stl/gnu-libstdc++/4.6/include/cmath: 224 | 225 | /Users/MESAI/Development/Android/android-ndk-r8b/sources/cxx-stl/gnu-libstdc++/4.6/include/cstddef: 226 | 227 | /Users/MESAI/Development/Android/android-ndk-r8b/sources/cxx-stl/gnu-libstdc++/4.6/include/complex: 228 | 229 | /Users/MESAI/Development/Android/android-ndk-r8b/sources/cxx-stl/gnu-libstdc++/4.6/include/map: 230 | 231 | /Users/MESAI/Development/Android/android-ndk-r8b/sources/cxx-stl/gnu-libstdc++/4.6/include/vector: 232 | 233 | jni/build/include/opencv2/core/operations.hpp: 234 | 235 | /Users/MESAI/Development/Android/android-ndk-r8b/sources/cxx-stl/gnu-libstdc++/4.6/include/limits: 236 | 237 | jni/build/include/opencv2/core/mat.hpp: 238 | 239 | jni/build/include/opencv2/imgproc/imgproc_c.h: 240 | 241 | jni/build/include/opencv2/imgproc/types_c.h: 242 | 243 | jni/build/include/opencv2/imgproc/imgproc.hpp: 244 | 245 | jni/build/include/opencv2/video/tracking.hpp: 246 | 247 | jni/build/include/opencv2/features2d/features2d.hpp: 248 | 249 | jni/build/include/opencv2/flann/miniflann.hpp: 250 | 251 | jni/build/include/opencv2/flann/defines.h: 252 | 253 | jni/build/include/opencv2/flann/config.h: 254 | 255 | jni/build/include/opencv2/flann/flann.hpp: 256 | 257 | jni/build/include/opencv2/flann/flann_base.hpp: 258 | 259 | /Users/MESAI/Development/Android/android-ndk-r8b/sources/cxx-stl/gnu-libstdc++/4.6/include/cassert: 260 | 261 | /Users/MESAI/Development/Android/android-ndk-r8b/sources/cxx-stl/gnu-libstdc++/4.6/include/cstdio: 262 | 263 | jni/build/include/opencv2/flann/general.h: 264 | 265 | jni/build/include/opencv2/flann/defines.h: 266 | 267 | /Users/MESAI/Development/Android/android-ndk-r8b/sources/cxx-stl/gnu-libstdc++/4.6/include/stdexcept: 268 | 269 | jni/build/include/opencv2/flann/matrix.h: 270 | 271 | jni/build/include/opencv2/flann/params.h: 272 | 273 | jni/build/include/opencv2/flann/any.h: 274 | 275 | /Users/MESAI/Development/Android/android-ndk-r8b/sources/cxx-stl/gnu-libstdc++/4.6/include/typeinfo: 276 | 277 | /Users/MESAI/Development/Android/android-ndk-r8b/sources/cxx-stl/gnu-libstdc++/4.6/include/iostream: 278 | 279 | jni/build/include/opencv2/flann/saving.h: 280 | 281 | /Users/MESAI/Development/Android/android-ndk-r8b/sources/cxx-stl/gnu-libstdc++/4.6/include/cstring: 282 | 283 | jni/build/include/opencv2/flann/nn_index.h: 284 | 285 | jni/build/include/opencv2/flann/result_set.h: 286 | 287 | /Users/MESAI/Development/Android/android-ndk-r8b/sources/cxx-stl/gnu-libstdc++/4.6/include/set: 288 | 289 | jni/build/include/opencv2/flann/all_indices.h: 290 | 291 | jni/build/include/opencv2/flann/kdtree_index.h: 292 | 293 | jni/build/include/opencv2/flann/dynamic_bitset.h: 294 | 295 | jni/build/include/opencv2/flann/dist.h: 296 | 297 | jni/build/include/opencv2/flann/heap.h: 298 | 299 | jni/build/include/opencv2/flann/allocator.h: 300 | 301 | jni/build/include/opencv2/flann/random.h: 302 | 303 | jni/build/include/opencv2/flann/kdtree_single_index.h: 304 | 305 | jni/build/include/opencv2/flann/kmeans_index.h: 306 | 307 | jni/build/include/opencv2/flann/logger.h: 308 | 309 | jni/build/include/opencv2/flann/composite_index.h: 310 | 311 | jni/build/include/opencv2/flann/linear_index.h: 312 | 313 | jni/build/include/opencv2/flann/hierarchical_clustering_index.h: 314 | 315 | jni/build/include/opencv2/flann/lsh_index.h: 316 | 317 | jni/build/include/opencv2/flann/lsh_table.h: 318 | 319 | /Users/MESAI/Development/Android/android-ndk-r8b/sources/cxx-stl/gnu-libstdc++/4.6/include/iomanip: 320 | 321 | jni/build/include/opencv2/flann/autotuned_index.h: 322 | 323 | jni/build/include/opencv2/flann/ground_truth.h: 324 | 325 | jni/build/include/opencv2/flann/index_testing.h: 326 | 327 | jni/build/include/opencv2/flann/timer.h: 328 | 329 | jni/build/include/opencv2/flann/sampling.h: 330 | 331 | jni/build/include/opencv2/calib3d/calib3d.hpp: 332 | 333 | jni/build/include/opencv2/objdetect/objdetect.hpp: 334 | 335 | /Users/MESAI/Development/Android/android-ndk-r8b/sources/cxx-stl/gnu-libstdc++/4.6/include/deque: 336 | 337 | jni/build/include/opencv2/legacy/compat.hpp: 338 | 339 | jni/build/include/opencv2/core/internal.hpp: 340 | 341 | jni/build/include/opencv2/highgui/highgui.hpp: 342 | 343 | jni/build/include/opencv2/highgui/highgui_c.h: 344 | -------------------------------------------------------------------------------- /BlogNativeCamera/proguard-project.txt: -------------------------------------------------------------------------------- 1 | # To enable ProGuard in your project, edit project.properties 2 | # to define the proguard.config property as described in that file. 3 | # 4 | # Add project specific ProGuard rules here. 5 | # By default, the flags in this file are appended to flags specified 6 | # in ${sdk.dir}/tools/proguard/proguard-android.txt 7 | # You can edit the include path and order by changing the ProGuard 8 | # include property in project.properties. 9 | # 10 | # For more details, see 11 | # http://developer.android.com/guide/developing/tools/proguard.html 12 | 13 | # Add any project specific keep options here: 14 | 15 | # If your project uses WebView with JS, uncomment the following 16 | # and specify the fully qualified class name to the JavaScript interface 17 | # class: 18 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 19 | # public *; 20 | #} 21 | -------------------------------------------------------------------------------- /BlogNativeCamera/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 | # Project target. 14 | target=android-8 15 | android.library.reference.1=../OpenCV Library - 2.4.3 16 | -------------------------------------------------------------------------------- /BlogNativeCamera/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /BlogNativeCamera/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /BlogNativeCamera/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MESAI/NativeCamera/76eb7c53e490bd66f5fa56f3a59137ef82baa94c/BlogNativeCamera/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /BlogNativeCamera/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | BlogNativeCamera 4 | 5 | 6 | -------------------------------------------------------------------------------- /BlogNativeCamera/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 14 | 15 | 16 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /BlogNativeCamera/src/com/blogspot/mesai0/CameraPreviewer.java: -------------------------------------------------------------------------------- 1 | package com.blogspot.mesai0; 2 | 3 | import java.util.List; 4 | 5 | import org.opencv.android.CameraBridgeViewBase.ListItemAccessor; 6 | import org.opencv.android.NativeCameraView.OpenCvSizeAccessor; 7 | import org.opencv.core.Size; 8 | import org.opencv.highgui.Highgui; 9 | import org.opencv.highgui.VideoCapture; 10 | 11 | import android.app.Activity; 12 | import android.opengl.GLSurfaceView; 13 | import android.os.Bundle; 14 | import android.view.Display; 15 | 16 | public class CameraPreviewer extends Activity { 17 | 18 | GLSurfaceView mView; 19 | 20 | @Override protected void onCreate(Bundle icicle) { 21 | super.onCreate(icicle); 22 | Native.loadlibs(); 23 | VideoCapture mCamera = new VideoCapture(Highgui.CV_CAP_ANDROID); 24 | java.util.List sizes = mCamera.getSupportedPreviewSizes(); 25 | mCamera.release(); 26 | 27 | mView = new GLSurfaceView(getApplication()){ 28 | @Override 29 | public void onPause() { 30 | // TODO Auto-generated method stub 31 | super.onPause(); 32 | Native.releaseCamera(); 33 | } 34 | }; 35 | Size size = calculateCameraFrameSize(sizes,new OpenCvSizeAccessor()); 36 | mView.setRenderer(new CameraRenderer(this,size)); 37 | setContentView(mView); 38 | } 39 | 40 | protected Size calculateCameraFrameSize(List supportedSizes, 41 | ListItemAccessor accessor) { 42 | int calcWidth = Integer.MAX_VALUE; 43 | int calcHeight = Integer.MAX_VALUE; 44 | 45 | Display display = getWindowManager().getDefaultDisplay(); 46 | 47 | int maxAllowedWidth = 1024; 48 | int maxAllowedHeight = 1024; 49 | 50 | for (Object size : supportedSizes) { 51 | int width = accessor.getWidth(size); 52 | int height = accessor.getHeight(size); 53 | 54 | if (width <= maxAllowedWidth && height <= maxAllowedHeight) { 55 | if ( width <= calcWidth 56 | && width>=(maxAllowedWidth/2) 57 | &&(display.getWidth()%width==0||display.getHeight()%height==0)) { 58 | calcWidth = (int) width; 59 | calcHeight = (int) height; 60 | } 61 | } 62 | } 63 | 64 | return new Size(calcWidth, calcHeight); 65 | } 66 | @Override protected void onPause() { 67 | super.onPause(); 68 | mView.onPause(); 69 | 70 | } 71 | 72 | @Override protected void onResume() { 73 | super.onResume(); 74 | mView.onResume(); 75 | 76 | } 77 | } -------------------------------------------------------------------------------- /BlogNativeCamera/src/com/blogspot/mesai0/CameraRenderer.java: -------------------------------------------------------------------------------- 1 | package com.blogspot.mesai0; 2 | 3 | 4 | import javax.microedition.khronos.egl.EGLConfig; 5 | import javax.microedition.khronos.opengles.GL10; 6 | 7 | import org.opencv.core.Size; 8 | 9 | import android.content.Context; 10 | import android.opengl.GLSurfaceView.Renderer; 11 | 12 | 13 | public class CameraRenderer implements Renderer { 14 | 15 | private Size size; 16 | private Context context; 17 | public CameraRenderer(Context c,Size size) { 18 | super(); 19 | context = c; 20 | this.size = size; 21 | } 22 | 23 | public void onSurfaceCreated(GL10 gl, EGLConfig config) { 24 | Thread.currentThread().setPriority(Thread.MAX_PRIORITY); 25 | Native.initCamera((int)size.width,(int)size.height); 26 | } 27 | 28 | public void onDrawFrame(GL10 gl) { 29 | // long startTime = System.currentTimeMillis(); 30 | Native.renderBackground(); 31 | // long endTime = System.currentTimeMillis(); 32 | // if(30-(endTime-startTime)>0){ 33 | // try { 34 | // Thread.sleep(30-(endTime-startTime)); 35 | // } catch (InterruptedException e) {} 36 | // } 37 | // endTime = System.currentTimeMillis(); 38 | //System.out.println(endTime-startTime+" ms"); 39 | } 40 | 41 | public void onSurfaceChanged(GL10 gl, int width, int height) { 42 | Native.surfaceChanged(width,height,context.getResources().getConfiguration().orientation); 43 | } 44 | } -------------------------------------------------------------------------------- /BlogNativeCamera/src/com/blogspot/mesai0/Native.java: -------------------------------------------------------------------------------- 1 | package com.blogspot.mesai0; 2 | 3 | public class Native { 4 | public static void loadlibs() { 5 | System.loadLibrary("opencv_java"); 6 | System.loadLibrary("NativeCamera"); 7 | } 8 | 9 | public static native void initCamera(int width, int height); 10 | 11 | public static native void releaseCamera(); 12 | 13 | public static native void renderBackground(); 14 | 15 | public static native void surfaceChanged(int width, int height, 16 | int orientation); 17 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | MESAI0 2 | ====== 3 | A Sample app to use opencv for getting camera frames natively. 4 | 5 | http://mesai0.blogspot.com/ 6 | 7 | Add the shared library of openCV java. 8 | 9 | Add jni/build/ 10 | 11 | Add the openCV include folder and libs folder in jni/build/ as described in the blog. 12 | 13 | then ndk-build 14 | --------------------------------------------------------------------------------