移除采样过程中的水平旋转、移除opencv库,修复:https://github.com/devzwy/open_nsfw_android/issues/4#issuecomment-494745262
	
		
	
				
					
				
			
							parent
							
								
									6a012d8fc0
								
							
						
					
					
						commit
						7f54e3cfc1
					
				| @ -1,44 +0,0 @@ | ||||
| # For more information about using CMake with Android Studio, read the | ||||
| # documentation: https://d.android.com/studio/projects/add-native-code.html | ||||
| 
 | ||||
| # Sets the minimum version of CMake required to build the native library. | ||||
| 
 | ||||
| cmake_minimum_required(VERSION 3.4.1) | ||||
| 
 | ||||
| # Creates and names a library, sets it as either STATIC | ||||
| # or SHARED, and provides the relative paths to its source code. | ||||
| # You can define multiple libraries, and CMake builds them for you. | ||||
| # Gradle automatically packages shared libraries with your APK. | ||||
| 
 | ||||
| add_library( # Sets the name of the library. | ||||
|              native-lib | ||||
| 
 | ||||
|              # Sets the library as a shared library. | ||||
|              SHARED | ||||
| 
 | ||||
|              # Provides a relative path to your source file(s). | ||||
|              src/main/cpp/native-lib.cpp ) | ||||
| 
 | ||||
| # Searches for a specified prebuilt library and stores the path as a | ||||
| # variable. Because CMake includes system libraries in the search path by | ||||
| # default, you only need to specify the name of the public NDK library | ||||
| # you want to add. CMake verifies that the library exists before | ||||
| # completing its build. | ||||
| 
 | ||||
| find_library( # Sets the name of the path variable. | ||||
|               log-lib | ||||
| 
 | ||||
|               # Specifies the name of the NDK library that | ||||
|               # you want CMake to locate. | ||||
|               log ) | ||||
| 
 | ||||
| # Specifies libraries CMake should link to your target library. You | ||||
| # can link multiple libraries, such as libraries you define in this | ||||
| # build script, prebuilt third-party libraries, or system libraries. | ||||
| 
 | ||||
| target_link_libraries( # Specifies the target library. | ||||
|                        native-lib | ||||
| 
 | ||||
|                        # Links the target library to the log library | ||||
|                        # included in the NDK. | ||||
|                        ${log-lib} ) | ||||
									
										Binary file not shown.
									
								
							
						
									
										Binary file not shown.
									
								
							
						
									
										Binary file not shown.
									
								
							
						
									
										Binary file not shown.
									
								
							
						
									
										Binary file not shown.
									
								
							
						
									
										Binary file not shown.
									
								
							
						
									
										Binary file not shown.
									
								
							
						| @ -1,24 +0,0 @@ | ||||
| #include <jni.h> | ||||
| #include <string> | ||||
| 
 | ||||
| extern "C" | ||||
| JNIEXPORT void JNICALL | ||||
| Java_com_zwy_nsfw_JniLoader_argb2bgr(JNIEnv *env, jobject thiz, | ||||
|                                                                    jbyteArray rgbSrc_, | ||||
|                                                                    jbyteArray bgrDesc_) { | ||||
|     jbyte *rgbSrc = env->GetByteArrayElements(rgbSrc_, NULL); | ||||
|     jbyte *bgrDesc = env->GetByteArrayElements(bgrDesc_, NULL); | ||||
|     printf("s[]=%s\n","C+++++++++");/*输出数组字符串s[]=Hello,Comrade*/ | ||||
|     int wh = env->GetArrayLength(rgbSrc_) / 4 ; | ||||
| 
 | ||||
| 
 | ||||
| //#pragma omp parallel for
 | ||||
|     for (int i = 0; i < wh; ++i) { | ||||
|         bgrDesc[i * 3] = rgbSrc[i * 4 + 2];		//B
 | ||||
|         bgrDesc[i * 3 + 1] = rgbSrc[i * 4 + 1]; 	//G
 | ||||
|         bgrDesc[i * 3 + 2] = rgbSrc[i * 4 ];		//R
 | ||||
|     } | ||||
| 
 | ||||
|     env->ReleaseByteArrayElements(rgbSrc_, rgbSrc, JNI_ABORT); | ||||
|     env->ReleaseByteArrayElements(bgrDesc_, bgrDesc, JNI_COMMIT); | ||||
| } | ||||
| @ -1,10 +0,0 @@ | ||||
| package com.zwy.nsfw; | ||||
| 
 | ||||
| public class JniLoader { | ||||
| 
 | ||||
|     static  { | ||||
|         System.loadLibrary("native-lib"); | ||||
|     } | ||||
| 
 | ||||
|     public static native void argb2bgr(byte[] rgbSrc,byte[] bgrDesc); | ||||
| } | ||||
| @ -1,17 +0,0 @@ | ||||
| apply plugin: 'com.android.library' | ||||
| 
 | ||||
| android { | ||||
|     compileSdkVersion 28 | ||||
| 
 | ||||
|     defaultConfig { | ||||
|         minSdkVersion 15 | ||||
|         targetSdkVersion 28 | ||||
|     } | ||||
| 
 | ||||
|     buildTypes { | ||||
|         release { | ||||
|             minifyEnabled false | ||||
|             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @ -1,199 +0,0 @@ | ||||
| /* | ||||
|  * This file is auto-generated.  DO NOT MODIFY. | ||||
|  * Original file: /Users/jason/AndroidStudioProjects/open_nsfw_android/openCVLibrary340/src/main/aidl/org/opencv/engine/OpenCVEngineInterface.aidl | ||||
|  */ | ||||
| package org.opencv.engine; | ||||
| /** | ||||
| * Class provides a Java interface for OpenCV Engine Service. It's synchronous with native OpenCVEngine class. | ||||
| */ | ||||
| public interface OpenCVEngineInterface extends android.os.IInterface | ||||
| { | ||||
| /** Local-side IPC implementation stub class. */ | ||||
| public static abstract class Stub extends android.os.Binder implements org.opencv.engine.OpenCVEngineInterface | ||||
| { | ||||
| private static final java.lang.String DESCRIPTOR = "org.opencv.engine.OpenCVEngineInterface"; | ||||
| /** Construct the stub at attach it to the interface. */ | ||||
| public Stub() | ||||
| { | ||||
| this.attachInterface(this, DESCRIPTOR); | ||||
| } | ||||
| /** | ||||
|  * Cast an IBinder object into an org.opencv.engine.OpenCVEngineInterface interface, | ||||
|  * generating a proxy if needed. | ||||
|  */ | ||||
| public static org.opencv.engine.OpenCVEngineInterface asInterface(android.os.IBinder obj) | ||||
| { | ||||
| if ((obj==null)) { | ||||
| return null; | ||||
| } | ||||
| android.os.IInterface iin = obj.queryLocalInterface(DESCRIPTOR); | ||||
| if (((iin!=null)&&(iin instanceof org.opencv.engine.OpenCVEngineInterface))) { | ||||
| return ((org.opencv.engine.OpenCVEngineInterface)iin); | ||||
| } | ||||
| return new org.opencv.engine.OpenCVEngineInterface.Stub.Proxy(obj); | ||||
| } | ||||
| @Override public android.os.IBinder asBinder() | ||||
| { | ||||
| return this; | ||||
| } | ||||
| @Override public boolean onTransact(int code, android.os.Parcel data, android.os.Parcel reply, int flags) throws android.os.RemoteException | ||||
| { | ||||
| java.lang.String descriptor = DESCRIPTOR; | ||||
| switch (code) | ||||
| { | ||||
| case INTERFACE_TRANSACTION: | ||||
| { | ||||
| reply.writeString(descriptor); | ||||
| return true; | ||||
| } | ||||
| case TRANSACTION_getEngineVersion: | ||||
| { | ||||
| data.enforceInterface(descriptor); | ||||
| int _result = this.getEngineVersion(); | ||||
| reply.writeNoException(); | ||||
| reply.writeInt(_result); | ||||
| return true; | ||||
| } | ||||
| case TRANSACTION_getLibPathByVersion: | ||||
| { | ||||
| data.enforceInterface(descriptor); | ||||
| java.lang.String _arg0; | ||||
| _arg0 = data.readString(); | ||||
| java.lang.String _result = this.getLibPathByVersion(_arg0); | ||||
| reply.writeNoException(); | ||||
| reply.writeString(_result); | ||||
| return true; | ||||
| } | ||||
| case TRANSACTION_installVersion: | ||||
| { | ||||
| data.enforceInterface(descriptor); | ||||
| java.lang.String _arg0; | ||||
| _arg0 = data.readString(); | ||||
| boolean _result = this.installVersion(_arg0); | ||||
| reply.writeNoException(); | ||||
| reply.writeInt(((_result)?(1):(0))); | ||||
| return true; | ||||
| } | ||||
| case TRANSACTION_getLibraryList: | ||||
| { | ||||
| data.enforceInterface(descriptor); | ||||
| java.lang.String _arg0; | ||||
| _arg0 = data.readString(); | ||||
| java.lang.String _result = this.getLibraryList(_arg0); | ||||
| reply.writeNoException(); | ||||
| reply.writeString(_result); | ||||
| return true; | ||||
| } | ||||
| default: | ||||
| { | ||||
| return super.onTransact(code, data, reply, flags); | ||||
| } | ||||
| } | ||||
| } | ||||
| private static class Proxy implements org.opencv.engine.OpenCVEngineInterface | ||||
| { | ||||
| private android.os.IBinder mRemote; | ||||
| Proxy(android.os.IBinder remote) | ||||
| { | ||||
| mRemote = remote; | ||||
| } | ||||
| @Override public android.os.IBinder asBinder() | ||||
| { | ||||
| return mRemote; | ||||
| } | ||||
| public java.lang.String getInterfaceDescriptor() | ||||
| { | ||||
| return DESCRIPTOR; | ||||
| } | ||||
| @Override public int getEngineVersion() throws android.os.RemoteException | ||||
| { | ||||
| android.os.Parcel _data = android.os.Parcel.obtain(); | ||||
| android.os.Parcel _reply = android.os.Parcel.obtain(); | ||||
| int _result; | ||||
| try { | ||||
| _data.writeInterfaceToken(DESCRIPTOR); | ||||
| mRemote.transact(Stub.TRANSACTION_getEngineVersion, _data, _reply, 0); | ||||
| _reply.readException(); | ||||
| _result = _reply.readInt(); | ||||
| } | ||||
| finally { | ||||
| _reply.recycle(); | ||||
| _data.recycle(); | ||||
| } | ||||
| return _result; | ||||
| } | ||||
| @Override public java.lang.String getLibPathByVersion(java.lang.String version) throws android.os.RemoteException | ||||
| { | ||||
| android.os.Parcel _data = android.os.Parcel.obtain(); | ||||
| android.os.Parcel _reply = android.os.Parcel.obtain(); | ||||
| java.lang.String _result; | ||||
| try { | ||||
| _data.writeInterfaceToken(DESCRIPTOR); | ||||
| _data.writeString(version); | ||||
| mRemote.transact(Stub.TRANSACTION_getLibPathByVersion, _data, _reply, 0); | ||||
| _reply.readException(); | ||||
| _result = _reply.readString(); | ||||
| } | ||||
| finally { | ||||
| _reply.recycle(); | ||||
| _data.recycle(); | ||||
| } | ||||
| return _result; | ||||
| } | ||||
| /** | ||||
|     * Tries to install defined version of OpenCV from Google Play Market. | ||||
|     * @param OpenCV version. | ||||
|     * @return Returns true if installation was successful or OpenCV package has been already installed. | ||||
|     */ | ||||
| @Override public boolean installVersion(java.lang.String version) throws android.os.RemoteException | ||||
| { | ||||
| android.os.Parcel _data = android.os.Parcel.obtain(); | ||||
| android.os.Parcel _reply = android.os.Parcel.obtain(); | ||||
| boolean _result; | ||||
| try { | ||||
| _data.writeInterfaceToken(DESCRIPTOR); | ||||
| _data.writeString(version); | ||||
| mRemote.transact(Stub.TRANSACTION_installVersion, _data, _reply, 0); | ||||
| _reply.readException(); | ||||
| _result = (0!=_reply.readInt()); | ||||
| } | ||||
| finally { | ||||
| _reply.recycle(); | ||||
| _data.recycle(); | ||||
| } | ||||
| return _result; | ||||
| } | ||||
| @Override public java.lang.String getLibraryList(java.lang.String version) throws android.os.RemoteException | ||||
| { | ||||
| android.os.Parcel _data = android.os.Parcel.obtain(); | ||||
| android.os.Parcel _reply = android.os.Parcel.obtain(); | ||||
| java.lang.String _result; | ||||
| try { | ||||
| _data.writeInterfaceToken(DESCRIPTOR); | ||||
| _data.writeString(version); | ||||
| mRemote.transact(Stub.TRANSACTION_getLibraryList, _data, _reply, 0); | ||||
| _reply.readException(); | ||||
| _result = _reply.readString(); | ||||
| } | ||||
| finally { | ||||
| _reply.recycle(); | ||||
| _data.recycle(); | ||||
| } | ||||
| return _result; | ||||
| } | ||||
| } | ||||
| static final int TRANSACTION_getEngineVersion = (android.os.IBinder.FIRST_CALL_TRANSACTION + 0); | ||||
| static final int TRANSACTION_getLibPathByVersion = (android.os.IBinder.FIRST_CALL_TRANSACTION + 1); | ||||
| static final int TRANSACTION_installVersion = (android.os.IBinder.FIRST_CALL_TRANSACTION + 2); | ||||
| static final int TRANSACTION_getLibraryList = (android.os.IBinder.FIRST_CALL_TRANSACTION + 3); | ||||
| } | ||||
| public int getEngineVersion() throws android.os.RemoteException; | ||||
| public java.lang.String getLibPathByVersion(java.lang.String version) throws android.os.RemoteException; | ||||
| /** | ||||
|     * Tries to install defined version of OpenCV from Google Play Market. | ||||
|     * @param OpenCV version. | ||||
|     * @return Returns true if installation was successful or OpenCV package has been already installed. | ||||
|     */ | ||||
| public boolean installVersion(java.lang.String version) throws android.os.RemoteException; | ||||
| public java.lang.String getLibraryList(java.lang.String version) throws android.os.RemoteException; | ||||
| } | ||||
| @ -1,13 +0,0 @@ | ||||
| /** | ||||
|  * Automatically generated file. DO NOT MODIFY | ||||
|  */ | ||||
| package org.opencv; | ||||
| 
 | ||||
| public final class BuildConfig { | ||||
|   public static final boolean DEBUG = Boolean.parseBoolean("true"); | ||||
|   public static final String APPLICATION_ID = "org.opencv"; | ||||
|   public static final String BUILD_TYPE = "debug"; | ||||
|   public static final String FLAVOR = ""; | ||||
|   public static final int VERSION_CODE = -1; | ||||
|   public static final String VERSION_NAME = ""; | ||||
| } | ||||
| @ -1,9 +0,0 @@ | ||||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <manifest xmlns:android="http://schemas.android.com/apk/res/android" | ||||
|     package="org.opencv" > | ||||
| 
 | ||||
|     <uses-sdk | ||||
|         android:minSdkVersion="15" | ||||
|         android:targetSdkVersion="28" /> | ||||
| 
 | ||||
| </manifest> | ||||
| @ -1 +0,0 @@ | ||||
| [{"outputType":{"type":"AAPT_FRIENDLY_MERGED_MANIFESTS"},"apkData":{"type":"MAIN","splits":[],"versionCode":-1,"enabled":true,"outputFile":"openCVLibrary340-debug.aar","fullName":"debug","baseName":"debug"},"path":"AndroidManifest.xml","properties":{"packageId":"org.opencv","split":""}}] | ||||
| @ -1,9 +0,0 @@ | ||||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <manifest xmlns:android="http://schemas.android.com/apk/res/android" | ||||
|     package="org.opencv" > | ||||
| 
 | ||||
|     <uses-sdk | ||||
|         android:minSdkVersion="15" | ||||
|         android:targetSdkVersion="28" /> | ||||
| 
 | ||||
| </manifest> | ||||
| @ -1 +0,0 @@ | ||||
| [{"outputType":{"type":"MERGED_MANIFESTS"},"apkData":{"type":"MAIN","splits":[],"versionCode":-1,"enabled":true,"outputFile":"openCVLibrary340-debug.aar","fullName":"debug","baseName":"debug"},"path":"../../library_manifest/debug/AndroidManifest.xml","properties":{"packageId":"org.opencv","split":""}}] | ||||
| @ -1,25 +0,0 @@ | ||||
| -- Merging decision tree log --- | ||||
| manifest | ||||
| ADDED from /Users/jason/AndroidStudioProjects/open_nsfw_android/openCVLibrary340/src/main/AndroidManifest.xml:2:1-5:12 | ||||
| INJECTED from /Users/jason/AndroidStudioProjects/open_nsfw_android/openCVLibrary340/src/main/AndroidManifest.xml:2:1-5:12 | ||||
| INJECTED from /Users/jason/AndroidStudioProjects/open_nsfw_android/openCVLibrary340/src/main/AndroidManifest.xml:2:1-5:12 | ||||
| 	package | ||||
| 		ADDED from /Users/jason/AndroidStudioProjects/open_nsfw_android/openCVLibrary340/src/main/AndroidManifest.xml:3:7-27 | ||||
| 		INJECTED from /Users/jason/AndroidStudioProjects/open_nsfw_android/openCVLibrary340/src/main/AndroidManifest.xml | ||||
| 		INJECTED from /Users/jason/AndroidStudioProjects/open_nsfw_android/openCVLibrary340/src/main/AndroidManifest.xml | ||||
| 	xmlns:android | ||||
| 		ADDED from /Users/jason/AndroidStudioProjects/open_nsfw_android/openCVLibrary340/src/main/AndroidManifest.xml:2:11-69 | ||||
| uses-sdk | ||||
| INJECTED from /Users/jason/AndroidStudioProjects/open_nsfw_android/openCVLibrary340/src/main/AndroidManifest.xml reason: use-sdk injection requested | ||||
| INJECTED from /Users/jason/AndroidStudioProjects/open_nsfw_android/openCVLibrary340/src/main/AndroidManifest.xml | ||||
| INJECTED from /Users/jason/AndroidStudioProjects/open_nsfw_android/openCVLibrary340/src/main/AndroidManifest.xml | ||||
| INJECTED from /Users/jason/AndroidStudioProjects/open_nsfw_android/openCVLibrary340/src/main/AndroidManifest.xml | ||||
| INJECTED from /Users/jason/AndroidStudioProjects/open_nsfw_android/openCVLibrary340/src/main/AndroidManifest.xml | ||||
| 	android:targetSdkVersion | ||||
| 		INJECTED from /Users/jason/AndroidStudioProjects/open_nsfw_android/openCVLibrary340/src/main/AndroidManifest.xml | ||||
| 		ADDED from /Users/jason/AndroidStudioProjects/open_nsfw_android/openCVLibrary340/src/main/AndroidManifest.xml | ||||
| 		INJECTED from /Users/jason/AndroidStudioProjects/open_nsfw_android/openCVLibrary340/src/main/AndroidManifest.xml | ||||
| 	android:minSdkVersion | ||||
| 		INJECTED from /Users/jason/AndroidStudioProjects/open_nsfw_android/openCVLibrary340/src/main/AndroidManifest.xml | ||||
| 		ADDED from /Users/jason/AndroidStudioProjects/open_nsfw_android/openCVLibrary340/src/main/AndroidManifest.xml | ||||
| 		INJECTED from /Users/jason/AndroidStudioProjects/open_nsfw_android/openCVLibrary340/src/main/AndroidManifest.xml | ||||
| @ -1,9 +0,0 @@ | ||||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <lint> | ||||
|     <issue id="InlinedApi"> | ||||
|         <ignore path="src\org\opencv\android\JavaCameraView.java" /> | ||||
|     </issue> | ||||
|     <issue id="NewApi"> | ||||
|         <ignore path="src\org\opencv\android\JavaCameraView.java" /> | ||||
|     </issue> | ||||
| </lint> | ||||
| @ -1,5 +0,0 @@ | ||||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <manifest xmlns:android="http://schemas.android.com/apk/res/android" | ||||
|       package="org.opencv"> | ||||
| 
 | ||||
| </manifest> | ||||
| @ -1,33 +0,0 @@ | ||||
| package org.opencv.engine; | ||||
| 
 | ||||
| /** | ||||
| * Class provides a Java interface for OpenCV Engine Service. It's synchronous with native OpenCVEngine class. | ||||
| */ | ||||
| interface OpenCVEngineInterface | ||||
| { | ||||
|     /** | ||||
|     * @return Returns service version. | ||||
|     */ | ||||
|     int getEngineVersion(); | ||||
| 
 | ||||
|     /** | ||||
|     * Finds an installed OpenCV library. | ||||
|     * @param OpenCV version. | ||||
|     * @return Returns path to OpenCV native libs or an empty string if OpenCV can not be found. | ||||
|     */ | ||||
|     String getLibPathByVersion(String version); | ||||
| 
 | ||||
|     /** | ||||
|     * Tries to install defined version of OpenCV from Google Play Market. | ||||
|     * @param OpenCV version. | ||||
|     * @return Returns true if installation was successful or OpenCV package has been already installed. | ||||
|     */ | ||||
|     boolean installVersion(String version); | ||||
| 
 | ||||
|     /** | ||||
|     * Returns list of libraries in loading order, separated by semicolon. | ||||
|     * @param OpenCV version. | ||||
|     * @return Returns names of OpenCV libraries, separated by semicolon. | ||||
|     */ | ||||
|     String getLibraryList(String version); | ||||
| } | ||||
| @ -1,391 +0,0 @@ | ||||
| package org.opencv.android; | ||||
| 
 | ||||
| import java.io.File; | ||||
| import java.util.StringTokenizer; | ||||
| 
 | ||||
| import org.opencv.core.Core; | ||||
| import org.opencv.engine.OpenCVEngineInterface; | ||||
| 
 | ||||
| import android.content.ComponentName; | ||||
| import android.content.Context; | ||||
| import android.content.Intent; | ||||
| import android.content.ServiceConnection; | ||||
| import android.net.Uri; | ||||
| import android.os.IBinder; | ||||
| import android.os.RemoteException; | ||||
| import android.util.Log; | ||||
| 
 | ||||
| class AsyncServiceHelper | ||||
| { | ||||
|     public static boolean initOpenCV(String Version, final Context AppContext, | ||||
|             final LoaderCallbackInterface Callback) | ||||
|     { | ||||
|         AsyncServiceHelper helper = new AsyncServiceHelper(Version, AppContext, Callback); | ||||
|         Intent intent = new Intent("org.opencv.engine.BIND"); | ||||
|         intent.setPackage("org.opencv.engine"); | ||||
|         if (AppContext.bindService(intent, helper.mServiceConnection, Context.BIND_AUTO_CREATE)) | ||||
|         { | ||||
|             return true; | ||||
|         } | ||||
|         else | ||||
|         { | ||||
|             AppContext.unbindService(helper.mServiceConnection); | ||||
|             InstallService(AppContext, Callback); | ||||
|             return false; | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     protected AsyncServiceHelper(String Version, Context AppContext, LoaderCallbackInterface Callback) | ||||
|     { | ||||
|         mOpenCVersion = Version; | ||||
|         mUserAppCallback = Callback; | ||||
|         mAppContext = AppContext; | ||||
|     } | ||||
| 
 | ||||
|     protected static final String TAG = "OpenCVManager/Helper"; | ||||
|     protected static final int MINIMUM_ENGINE_VERSION = 2; | ||||
|     protected OpenCVEngineInterface mEngineService; | ||||
|     protected LoaderCallbackInterface mUserAppCallback; | ||||
|     protected String mOpenCVersion; | ||||
|     protected Context mAppContext; | ||||
|     protected static boolean mServiceInstallationProgress = false; | ||||
|     protected static boolean mLibraryInstallationProgress = false; | ||||
| 
 | ||||
|     protected static boolean InstallServiceQuiet(Context context) | ||||
|     { | ||||
|         boolean result = true; | ||||
|         try | ||||
|         { | ||||
|             Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(OPEN_CV_SERVICE_URL)); | ||||
|             intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); | ||||
|             context.startActivity(intent); | ||||
|         } | ||||
|         catch(Exception e) | ||||
|         { | ||||
|             result = false; | ||||
|         } | ||||
| 
 | ||||
|         return result; | ||||
|     } | ||||
| 
 | ||||
|     protected static void InstallService(final Context AppContext, final LoaderCallbackInterface Callback) | ||||
|     { | ||||
|         if (!mServiceInstallationProgress) | ||||
|         { | ||||
|                 Log.d(TAG, "Request new service installation"); | ||||
|                 InstallCallbackInterface InstallQuery = new InstallCallbackInterface() { | ||||
|                 private LoaderCallbackInterface mUserAppCallback = Callback; | ||||
|                 public String getPackageName() | ||||
|                 { | ||||
|                     return "OpenCV Manager"; | ||||
|                 } | ||||
|                 public void install() { | ||||
|                     Log.d(TAG, "Trying to install OpenCV Manager via Google Play"); | ||||
| 
 | ||||
|                     boolean result = InstallServiceQuiet(AppContext); | ||||
|                     if (result) | ||||
|                     { | ||||
|                         mServiceInstallationProgress = true; | ||||
|                         Log.d(TAG, "Package installation started"); | ||||
|                     } | ||||
|                     else | ||||
|                     { | ||||
|                         Log.d(TAG, "OpenCV package was not installed!"); | ||||
|                         int Status = LoaderCallbackInterface.MARKET_ERROR; | ||||
|                         Log.d(TAG, "Init finished with status " + Status); | ||||
|                         Log.d(TAG, "Unbind from service"); | ||||
|                         Log.d(TAG, "Calling using callback"); | ||||
|                         mUserAppCallback.onManagerConnected(Status); | ||||
|                     } | ||||
|                 } | ||||
| 
 | ||||
|                 public void cancel() | ||||
|                 { | ||||
|                     Log.d(TAG, "OpenCV library installation was canceled"); | ||||
|                     int Status = LoaderCallbackInterface.INSTALL_CANCELED; | ||||
|                     Log.d(TAG, "Init finished with status " + Status); | ||||
|                     Log.d(TAG, "Calling using callback"); | ||||
|                     mUserAppCallback.onManagerConnected(Status); | ||||
|                 } | ||||
| 
 | ||||
|                 public void wait_install() | ||||
|                 { | ||||
|                     Log.e(TAG, "Instalation was not started! Nothing to wait!"); | ||||
|                 } | ||||
|             }; | ||||
| 
 | ||||
|             Callback.onPackageInstall(InstallCallbackInterface.NEW_INSTALLATION, InstallQuery); | ||||
|         } | ||||
|         else | ||||
|         { | ||||
|             Log.d(TAG, "Waiting current installation process"); | ||||
|             InstallCallbackInterface WaitQuery = new InstallCallbackInterface() { | ||||
|                 private LoaderCallbackInterface mUserAppCallback = Callback; | ||||
|                 public String getPackageName() | ||||
|                 { | ||||
|                     return "OpenCV Manager"; | ||||
|                 } | ||||
|                 public void install() | ||||
|                 { | ||||
|                     Log.e(TAG, "Nothing to install we just wait current installation"); | ||||
|                 } | ||||
|                 public void cancel() | ||||
|                 { | ||||
|                     Log.d(TAG, "Waiting for OpenCV canceled by user"); | ||||
|                     mServiceInstallationProgress = false; | ||||
|                     int Status = LoaderCallbackInterface.INSTALL_CANCELED; | ||||
|                     Log.d(TAG, "Init finished with status " + Status); | ||||
|                     Log.d(TAG, "Calling using callback"); | ||||
|                     mUserAppCallback.onManagerConnected(Status); | ||||
|                 } | ||||
|                 public void wait_install() | ||||
|                 { | ||||
|                      InstallServiceQuiet(AppContext); | ||||
|                 } | ||||
|             }; | ||||
| 
 | ||||
|             Callback.onPackageInstall(InstallCallbackInterface.INSTALLATION_PROGRESS, WaitQuery); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      *  URL of OpenCV Manager page on Google Play Market. | ||||
|      */ | ||||
|     protected static final String OPEN_CV_SERVICE_URL = "market://details?id=org.opencv.engine"; | ||||
| 
 | ||||
|     protected ServiceConnection mServiceConnection = new ServiceConnection() | ||||
|     { | ||||
|         public void onServiceConnected(ComponentName className, IBinder service) | ||||
|         { | ||||
|             Log.d(TAG, "Service connection created"); | ||||
|             mEngineService = OpenCVEngineInterface.Stub.asInterface(service); | ||||
|             if (null == mEngineService) | ||||
|             { | ||||
|                 Log.d(TAG, "OpenCV Manager Service connection fails. May be service was not installed?"); | ||||
|                 InstallService(mAppContext, mUserAppCallback); | ||||
|             } | ||||
|             else | ||||
|             { | ||||
|                 mServiceInstallationProgress = false; | ||||
|                 try | ||||
|                 { | ||||
|                     if (mEngineService.getEngineVersion() < MINIMUM_ENGINE_VERSION) | ||||
|                     { | ||||
|                         Log.d(TAG, "Init finished with status " + LoaderCallbackInterface.INCOMPATIBLE_MANAGER_VERSION); | ||||
|                         Log.d(TAG, "Unbind from service"); | ||||
|                         mAppContext.unbindService(mServiceConnection); | ||||
|                         Log.d(TAG, "Calling using callback"); | ||||
|                         mUserAppCallback.onManagerConnected(LoaderCallbackInterface.INCOMPATIBLE_MANAGER_VERSION); | ||||
|                         return; | ||||
|                     } | ||||
| 
 | ||||
|                     Log.d(TAG, "Trying to get library path"); | ||||
|                     String path = mEngineService.getLibPathByVersion(mOpenCVersion); | ||||
|                     if ((null == path) || (path.length() == 0)) | ||||
|                     { | ||||
|                         if (!mLibraryInstallationProgress) | ||||
|                         { | ||||
|                             InstallCallbackInterface InstallQuery = new InstallCallbackInterface() { | ||||
|                                 public String getPackageName() | ||||
|                                 { | ||||
|                                     return "OpenCV library"; | ||||
|                                 } | ||||
|                                 public void install() { | ||||
|                                     Log.d(TAG, "Trying to install OpenCV lib via Google Play"); | ||||
|                                     try | ||||
|                                     { | ||||
|                                         if (mEngineService.installVersion(mOpenCVersion)) | ||||
|                                         { | ||||
|                                             mLibraryInstallationProgress = true; | ||||
|                                             Log.d(TAG, "Package installation started"); | ||||
|                                             Log.d(TAG, "Unbind from service"); | ||||
|                                             mAppContext.unbindService(mServiceConnection); | ||||
|                                         } | ||||
|                                         else | ||||
|                                         { | ||||
|                                             Log.d(TAG, "OpenCV package was not installed!"); | ||||
|                                             Log.d(TAG, "Init finished with status " + LoaderCallbackInterface.MARKET_ERROR); | ||||
|                                             Log.d(TAG, "Unbind from service"); | ||||
|                                             mAppContext.unbindService(mServiceConnection); | ||||
|                                             Log.d(TAG, "Calling using callback"); | ||||
|                                             mUserAppCallback.onManagerConnected(LoaderCallbackInterface.MARKET_ERROR); | ||||
|                                         } | ||||
|                                     } catch (RemoteException e) { | ||||
|                                         e.printStackTrace();; | ||||
|                                         Log.d(TAG, "Init finished with status " + LoaderCallbackInterface.INIT_FAILED); | ||||
|                                         Log.d(TAG, "Unbind from service"); | ||||
|                                         mAppContext.unbindService(mServiceConnection); | ||||
|                                         Log.d(TAG, "Calling using callback"); | ||||
|                                         mUserAppCallback.onManagerConnected(LoaderCallbackInterface.INIT_FAILED); | ||||
|                                     } | ||||
|                                 } | ||||
|                                 public void cancel() { | ||||
|                                     Log.d(TAG, "OpenCV library installation was canceled"); | ||||
|                                     Log.d(TAG, "Init finished with status " + LoaderCallbackInterface.INSTALL_CANCELED); | ||||
|                                     Log.d(TAG, "Unbind from service"); | ||||
|                                     mAppContext.unbindService(mServiceConnection); | ||||
|                                     Log.d(TAG, "Calling using callback"); | ||||
|                                     mUserAppCallback.onManagerConnected(LoaderCallbackInterface.INSTALL_CANCELED); | ||||
|                                 } | ||||
|                                 public void wait_install() { | ||||
|                                     Log.e(TAG, "Installation was not started! Nothing to wait!"); | ||||
|                                 } | ||||
|                             }; | ||||
| 
 | ||||
|                             mUserAppCallback.onPackageInstall(InstallCallbackInterface.NEW_INSTALLATION, InstallQuery); | ||||
|                         } | ||||
|                         else | ||||
|                         { | ||||
|                             InstallCallbackInterface WaitQuery = new InstallCallbackInterface() { | ||||
|                                 public String getPackageName() | ||||
|                                 { | ||||
|                                     return "OpenCV library"; | ||||
|                                 } | ||||
| 
 | ||||
|                                 public void install() { | ||||
|                                     Log.e(TAG, "Nothing to install we just wait current installation"); | ||||
|                                 } | ||||
|                                 public void cancel() | ||||
|                                 { | ||||
|                                     Log.d(TAG, "OpenCV library installation was canceled"); | ||||
|                                     mLibraryInstallationProgress = false; | ||||
|                                     Log.d(TAG, "Init finished with status " + LoaderCallbackInterface.INSTALL_CANCELED); | ||||
|                                     Log.d(TAG, "Unbind from service"); | ||||
|                                     mAppContext.unbindService(mServiceConnection); | ||||
|                                     Log.d(TAG, "Calling using callback"); | ||||
|                                         mUserAppCallback.onManagerConnected(LoaderCallbackInterface.INSTALL_CANCELED); | ||||
|                                 } | ||||
|                                 public void wait_install() { | ||||
|                                     Log.d(TAG, "Waiting for current installation"); | ||||
|                                     try | ||||
|                                     { | ||||
|                                         if (!mEngineService.installVersion(mOpenCVersion)) | ||||
|                                         { | ||||
|                                             Log.d(TAG, "OpenCV package was not installed!"); | ||||
|                                             Log.d(TAG, "Init finished with status " + LoaderCallbackInterface.MARKET_ERROR); | ||||
|                                             Log.d(TAG, "Calling using callback"); | ||||
|                                             mUserAppCallback.onManagerConnected(LoaderCallbackInterface.MARKET_ERROR); | ||||
|                                         } | ||||
|                                         else | ||||
|                                         { | ||||
|                                             Log.d(TAG, "Wating for package installation"); | ||||
|                                         } | ||||
| 
 | ||||
|                                         Log.d(TAG, "Unbind from service"); | ||||
|                                         mAppContext.unbindService(mServiceConnection); | ||||
| 
 | ||||
|                                     } catch (RemoteException e) { | ||||
|                                         e.printStackTrace(); | ||||
|                                         Log.d(TAG, "Init finished with status " + LoaderCallbackInterface.INIT_FAILED); | ||||
|                                         Log.d(TAG, "Unbind from service"); | ||||
|                                         mAppContext.unbindService(mServiceConnection); | ||||
|                                         Log.d(TAG, "Calling using callback"); | ||||
|                                         mUserAppCallback.onManagerConnected(LoaderCallbackInterface.INIT_FAILED); | ||||
|                                     } | ||||
|                                } | ||||
|                             }; | ||||
| 
 | ||||
|                             mUserAppCallback.onPackageInstall(InstallCallbackInterface.INSTALLATION_PROGRESS, WaitQuery); | ||||
|                         } | ||||
|                         return; | ||||
|                     } | ||||
|                     else | ||||
|                     { | ||||
|                         Log.d(TAG, "Trying to get library list"); | ||||
|                         mLibraryInstallationProgress = false; | ||||
|                         String libs = mEngineService.getLibraryList(mOpenCVersion); | ||||
|                         Log.d(TAG, "Library list: \"" + libs + "\""); | ||||
|                         Log.d(TAG, "First attempt to load libs"); | ||||
|                         int status; | ||||
|                         if (initOpenCVLibs(path, libs)) | ||||
|                         { | ||||
|                             Log.d(TAG, "First attempt to load libs is OK"); | ||||
|                             String eol = System.getProperty("line.separator"); | ||||
|                             for (String str : Core.getBuildInformation().split(eol)) | ||||
|                                 Log.i(TAG, str); | ||||
| 
 | ||||
|                             status = LoaderCallbackInterface.SUCCESS; | ||||
|                         } | ||||
|                         else | ||||
|                         { | ||||
|                             Log.d(TAG, "First attempt to load libs fails"); | ||||
|                             status = LoaderCallbackInterface.INIT_FAILED; | ||||
|                         } | ||||
| 
 | ||||
|                         Log.d(TAG, "Init finished with status " + status); | ||||
|                         Log.d(TAG, "Unbind from service"); | ||||
|                         mAppContext.unbindService(mServiceConnection); | ||||
|                         Log.d(TAG, "Calling using callback"); | ||||
|                         mUserAppCallback.onManagerConnected(status); | ||||
|                     } | ||||
|                 } | ||||
|                 catch (RemoteException e) | ||||
|                 { | ||||
|                     e.printStackTrace(); | ||||
|                     Log.d(TAG, "Init finished with status " + LoaderCallbackInterface.INIT_FAILED); | ||||
|                     Log.d(TAG, "Unbind from service"); | ||||
|                     mAppContext.unbindService(mServiceConnection); | ||||
|                     Log.d(TAG, "Calling using callback"); | ||||
|                     mUserAppCallback.onManagerConnected(LoaderCallbackInterface.INIT_FAILED); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         public void onServiceDisconnected(ComponentName className) | ||||
|         { | ||||
|             mEngineService = null; | ||||
|         } | ||||
|     }; | ||||
| 
 | ||||
|     private boolean loadLibrary(String AbsPath) | ||||
|     { | ||||
|         boolean result = true; | ||||
| 
 | ||||
|         Log.d(TAG, "Trying to load library " + AbsPath); | ||||
|         try | ||||
|         { | ||||
|             System.load(AbsPath); | ||||
|             Log.d(TAG, "OpenCV libs init was ok!"); | ||||
|         } | ||||
|         catch(UnsatisfiedLinkError e) | ||||
|         { | ||||
|             Log.d(TAG, "Cannot load library \"" + AbsPath + "\""); | ||||
|             e.printStackTrace(); | ||||
|             result &= false; | ||||
|         } | ||||
| 
 | ||||
|         return result; | ||||
|     } | ||||
| 
 | ||||
|     private boolean initOpenCVLibs(String Path, String Libs) | ||||
|     { | ||||
|         Log.d(TAG, "Trying to init OpenCV libs"); | ||||
|         if ((null != Path) && (Path.length() != 0)) | ||||
|         { | ||||
|             boolean result = true; | ||||
|             if ((null != Libs) && (Libs.length() != 0)) | ||||
|             { | ||||
|                 Log.d(TAG, "Trying to load libs by dependency list"); | ||||
|                 StringTokenizer splitter = new StringTokenizer(Libs, ";"); | ||||
|                 while(splitter.hasMoreTokens()) | ||||
|                 { | ||||
|                     String AbsLibraryPath = Path + File.separator + splitter.nextToken(); | ||||
|                     result &= loadLibrary(AbsLibraryPath); | ||||
|                 } | ||||
|             } | ||||
|             else | ||||
|             { | ||||
|                 // If the dependencies list is not defined or empty.
 | ||||
|                 String AbsLibraryPath = Path + File.separator + "libopencv_java3.so"; | ||||
|                 result &= loadLibrary(AbsLibraryPath); | ||||
|             } | ||||
| 
 | ||||
|             return result; | ||||
|         } | ||||
|         else | ||||
|         { | ||||
|             Log.d(TAG, "Library path \"" + Path + "\" is empty"); | ||||
|             return false; | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @ -1,141 +0,0 @@ | ||||
| package org.opencv.android; | ||||
| 
 | ||||
| import android.app.Activity; | ||||
| import android.app.AlertDialog; | ||||
| import android.content.Context; | ||||
| import android.content.DialogInterface; | ||||
| import android.content.DialogInterface.OnClickListener; | ||||
| import android.util.Log; | ||||
| 
 | ||||
| /** | ||||
|  * Basic implementation of LoaderCallbackInterface. | ||||
|  */ | ||||
| public abstract class BaseLoaderCallback implements LoaderCallbackInterface { | ||||
| 
 | ||||
|     public BaseLoaderCallback(Context AppContext) { | ||||
|         mAppContext = AppContext; | ||||
|     } | ||||
| 
 | ||||
|     public void onManagerConnected(int status) | ||||
|     { | ||||
|         switch (status) | ||||
|         { | ||||
|             /** OpenCV initialization was successful. **/ | ||||
|             case LoaderCallbackInterface.SUCCESS: | ||||
|             { | ||||
|                 /** Application must override this method to handle successful library initialization. **/ | ||||
|             } break; | ||||
|             /** OpenCV loader can not start Google Play Market. **/ | ||||
|             case LoaderCallbackInterface.MARKET_ERROR: | ||||
|             { | ||||
|                 Log.e(TAG, "Package installation failed!"); | ||||
|                 AlertDialog MarketErrorMessage = new AlertDialog.Builder(mAppContext).create(); | ||||
|                 MarketErrorMessage.setTitle("OpenCV Manager"); | ||||
|                 MarketErrorMessage.setMessage("Package installation failed!"); | ||||
|                 MarketErrorMessage.setCancelable(false); // This blocks the 'BACK' button
 | ||||
|                 MarketErrorMessage.setButton(AlertDialog.BUTTON_POSITIVE, "OK", new OnClickListener() { | ||||
|                     public void onClick(DialogInterface dialog, int which) { | ||||
|                         finish(); | ||||
|                     } | ||||
|                 }); | ||||
|                 MarketErrorMessage.show(); | ||||
|             } break; | ||||
|             /** Package installation has been canceled. **/ | ||||
|             case LoaderCallbackInterface.INSTALL_CANCELED: | ||||
|             { | ||||
|                 Log.d(TAG, "OpenCV library installation was canceled by user"); | ||||
|                 finish(); | ||||
|             } break; | ||||
|             /** Application is incompatible with this version of OpenCV Manager. Possibly, a service update is required. **/ | ||||
|             case LoaderCallbackInterface.INCOMPATIBLE_MANAGER_VERSION: | ||||
|             { | ||||
|                 Log.d(TAG, "OpenCV Manager Service is uncompatible with this app!"); | ||||
|                 AlertDialog IncomatibilityMessage = new AlertDialog.Builder(mAppContext).create(); | ||||
|                 IncomatibilityMessage.setTitle("OpenCV Manager"); | ||||
|                 IncomatibilityMessage.setMessage("OpenCV Manager service is incompatible with this app. Try to update it via Google Play."); | ||||
|                 IncomatibilityMessage.setCancelable(false); // This blocks the 'BACK' button
 | ||||
|                 IncomatibilityMessage.setButton(AlertDialog.BUTTON_POSITIVE, "OK", new OnClickListener() { | ||||
|                     public void onClick(DialogInterface dialog, int which) { | ||||
|                         finish(); | ||||
|                     } | ||||
|                 }); | ||||
|                 IncomatibilityMessage.show(); | ||||
|             } break; | ||||
|             /** Other status, i.e. INIT_FAILED. **/ | ||||
|             default: | ||||
|             { | ||||
|                 Log.e(TAG, "OpenCV loading failed!"); | ||||
|                 AlertDialog InitFailedDialog = new AlertDialog.Builder(mAppContext).create(); | ||||
|                 InitFailedDialog.setTitle("OpenCV error"); | ||||
|                 InitFailedDialog.setMessage("OpenCV was not initialised correctly. Application will be shut down"); | ||||
|                 InitFailedDialog.setCancelable(false); // This blocks the 'BACK' button
 | ||||
|                 InitFailedDialog.setButton(AlertDialog.BUTTON_POSITIVE, "OK", new OnClickListener() { | ||||
| 
 | ||||
|                     public void onClick(DialogInterface dialog, int which) { | ||||
|                         finish(); | ||||
|                     } | ||||
|                 }); | ||||
| 
 | ||||
|                 InitFailedDialog.show(); | ||||
|             } break; | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     public void onPackageInstall(final int operation, final InstallCallbackInterface callback) | ||||
|     { | ||||
|         switch (operation) | ||||
|         { | ||||
|             case InstallCallbackInterface.NEW_INSTALLATION: | ||||
|             { | ||||
|                 AlertDialog InstallMessage = new AlertDialog.Builder(mAppContext).create(); | ||||
|                 InstallMessage.setTitle("Package not found"); | ||||
|                 InstallMessage.setMessage(callback.getPackageName() + " package was not found! Try to install it?"); | ||||
|                 InstallMessage.setCancelable(false); // This blocks the 'BACK' button
 | ||||
|                 InstallMessage.setButton(AlertDialog.BUTTON_POSITIVE, "Yes", new OnClickListener() | ||||
|                 { | ||||
|                     public void onClick(DialogInterface dialog, int which) | ||||
|                     { | ||||
|                         callback.install(); | ||||
|                     } | ||||
|                 }); | ||||
| 
 | ||||
|                 InstallMessage.setButton(AlertDialog.BUTTON_NEGATIVE, "No", new OnClickListener() { | ||||
| 
 | ||||
|                     public void onClick(DialogInterface dialog, int which) | ||||
|                     { | ||||
|                         callback.cancel(); | ||||
|                     } | ||||
|                 }); | ||||
| 
 | ||||
|                 InstallMessage.show(); | ||||
|             } break; | ||||
|             case InstallCallbackInterface.INSTALLATION_PROGRESS: | ||||
|             { | ||||
|                 AlertDialog WaitMessage = new AlertDialog.Builder(mAppContext).create(); | ||||
|                 WaitMessage.setTitle("OpenCV is not ready"); | ||||
|                 WaitMessage.setMessage("Installation is in progress. Wait or exit?"); | ||||
|                 WaitMessage.setCancelable(false); // This blocks the 'BACK' button
 | ||||
|                 WaitMessage.setButton(AlertDialog.BUTTON_POSITIVE, "Wait", new OnClickListener() { | ||||
|                     public void onClick(DialogInterface dialog, int which) { | ||||
|                         callback.wait_install(); | ||||
|                     } | ||||
|                 }); | ||||
|                 WaitMessage.setButton(AlertDialog.BUTTON_NEGATIVE, "Exit", new OnClickListener() { | ||||
|                     public void onClick(DialogInterface dialog, int which) { | ||||
|                         callback.cancel(); | ||||
|                     } | ||||
|                 }); | ||||
| 
 | ||||
|                 WaitMessage.show(); | ||||
|             } break; | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     void finish() | ||||
|     { | ||||
|         ((Activity) mAppContext).finish(); | ||||
|     } | ||||
| 
 | ||||
|     protected Context mAppContext; | ||||
|     private final static String TAG = "OpenCVLoader/BaseLoaderCallback"; | ||||
| } | ||||
| @ -1,302 +0,0 @@ | ||||
| package org.opencv.android; | ||||
| 
 | ||||
| import java.util.Arrays; | ||||
| import java.util.concurrent.Semaphore; | ||||
| import java.util.concurrent.TimeUnit; | ||||
| import android.annotation.TargetApi; | ||||
| import android.content.Context; | ||||
| import android.graphics.SurfaceTexture; | ||||
| import android.hardware.camera2.CameraAccessException; | ||||
| import android.hardware.camera2.CameraCaptureSession; | ||||
| import android.hardware.camera2.CameraCharacteristics; | ||||
| import android.hardware.camera2.CameraDevice; | ||||
| import android.hardware.camera2.CameraManager; | ||||
| import android.hardware.camera2.CaptureRequest; | ||||
| import android.hardware.camera2.params.StreamConfigurationMap; | ||||
| import android.os.Handler; | ||||
| import android.os.HandlerThread; | ||||
| import android.util.Log; | ||||
| import android.util.Size; | ||||
| import android.view.Surface; | ||||
| 
 | ||||
| @TargetApi(21) | ||||
| public class Camera2Renderer extends CameraGLRendererBase { | ||||
| 
 | ||||
|     protected final String LOGTAG = "Camera2Renderer"; | ||||
|     private CameraDevice mCameraDevice; | ||||
|     private CameraCaptureSession mCaptureSession; | ||||
|     private CaptureRequest.Builder mPreviewRequestBuilder; | ||||
|     private String mCameraID; | ||||
|     private Size mPreviewSize = new Size(-1, -1); | ||||
| 
 | ||||
|     private HandlerThread mBackgroundThread; | ||||
|     private Handler mBackgroundHandler; | ||||
|     private Semaphore mCameraOpenCloseLock = new Semaphore(1); | ||||
| 
 | ||||
|     Camera2Renderer(CameraGLSurfaceView view) { | ||||
|         super(view); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     protected void doStart() { | ||||
|         Log.d(LOGTAG, "doStart"); | ||||
|         startBackgroundThread(); | ||||
|         super.doStart(); | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     @Override | ||||
|     protected void doStop() { | ||||
|         Log.d(LOGTAG, "doStop"); | ||||
|         super.doStop(); | ||||
|         stopBackgroundThread(); | ||||
|     } | ||||
| 
 | ||||
|     boolean cacPreviewSize(final int width, final int height) { | ||||
|         Log.i(LOGTAG, "cacPreviewSize: "+width+"x"+height); | ||||
|         if(mCameraID == null) { | ||||
|             Log.e(LOGTAG, "Camera isn't initialized!"); | ||||
|             return false; | ||||
|         } | ||||
|         CameraManager manager = (CameraManager) mView.getContext() | ||||
|                 .getSystemService(Context.CAMERA_SERVICE); | ||||
|         try { | ||||
|             CameraCharacteristics characteristics = manager | ||||
|                     .getCameraCharacteristics(mCameraID); | ||||
|             StreamConfigurationMap map = characteristics | ||||
|                     .get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP); | ||||
|             int bestWidth = 0, bestHeight = 0; | ||||
|             float aspect = (float)width / height; | ||||
|             for (Size psize : map.getOutputSizes(SurfaceTexture.class)) { | ||||
|                 int w = psize.getWidth(), h = psize.getHeight(); | ||||
|                 Log.d(LOGTAG, "trying size: "+w+"x"+h); | ||||
|                 if ( width >= w && height >= h && | ||||
|                      bestWidth <= w && bestHeight <= h && | ||||
|                      Math.abs(aspect - (float)w/h) < 0.2 ) { | ||||
|                     bestWidth = w; | ||||
|                     bestHeight = h; | ||||
|                 } | ||||
|             } | ||||
|             Log.i(LOGTAG, "best size: "+bestWidth+"x"+bestHeight); | ||||
|             if( bestWidth == 0 || bestHeight == 0 || | ||||
|                 mPreviewSize.getWidth() == bestWidth && | ||||
|                 mPreviewSize.getHeight() == bestHeight ) | ||||
|                 return false; | ||||
|             else { | ||||
|                 mPreviewSize = new Size(bestWidth, bestHeight); | ||||
|                 return true; | ||||
|             } | ||||
|         } catch (CameraAccessException e) { | ||||
|             Log.e(LOGTAG, "cacPreviewSize - Camera Access Exception"); | ||||
|         } catch (IllegalArgumentException e) { | ||||
|             Log.e(LOGTAG, "cacPreviewSize - Illegal Argument Exception"); | ||||
|         } catch (SecurityException e) { | ||||
|             Log.e(LOGTAG, "cacPreviewSize - Security Exception"); | ||||
|         } | ||||
|         return false; | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     protected void openCamera(int id) { | ||||
|         Log.i(LOGTAG, "openCamera"); | ||||
|         CameraManager manager = (CameraManager) mView.getContext().getSystemService(Context.CAMERA_SERVICE); | ||||
|         try { | ||||
|             String camList[] = manager.getCameraIdList(); | ||||
|             if(camList.length == 0) { | ||||
|                 Log.e(LOGTAG, "Error: camera isn't detected."); | ||||
|                 return; | ||||
|             } | ||||
|             if(id == CameraBridgeViewBase.CAMERA_ID_ANY) { | ||||
|                 mCameraID = camList[0]; | ||||
|             } else { | ||||
|                 for (String cameraID : camList) { | ||||
|                     CameraCharacteristics characteristics = manager.getCameraCharacteristics(cameraID); | ||||
|                     if( id == CameraBridgeViewBase.CAMERA_ID_BACK && | ||||
|                         characteristics.get(CameraCharacteristics.LENS_FACING) == CameraCharacteristics.LENS_FACING_BACK || | ||||
|                         id == CameraBridgeViewBase.CAMERA_ID_FRONT && | ||||
|                         characteristics.get(CameraCharacteristics.LENS_FACING) == CameraCharacteristics.LENS_FACING_FRONT) { | ||||
|                         mCameraID = cameraID; | ||||
|                         break; | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|             if(mCameraID != null) { | ||||
|                 if (!mCameraOpenCloseLock.tryAcquire(2500, TimeUnit.MILLISECONDS)) { | ||||
|                     throw new RuntimeException( | ||||
|                             "Time out waiting to lock camera opening."); | ||||
|                 } | ||||
|                 Log.i(LOGTAG, "Opening camera: " + mCameraID); | ||||
|                 manager.openCamera(mCameraID, mStateCallback, mBackgroundHandler); | ||||
|             } | ||||
|         } catch (CameraAccessException e) { | ||||
|             Log.e(LOGTAG, "OpenCamera - Camera Access Exception"); | ||||
|         } catch (IllegalArgumentException e) { | ||||
|             Log.e(LOGTAG, "OpenCamera - Illegal Argument Exception"); | ||||
|         } catch (SecurityException e) { | ||||
|             Log.e(LOGTAG, "OpenCamera - Security Exception"); | ||||
|         } catch (InterruptedException e) { | ||||
|             Log.e(LOGTAG, "OpenCamera - Interrupted Exception"); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     protected void closeCamera() { | ||||
|         Log.i(LOGTAG, "closeCamera"); | ||||
|         try { | ||||
|             mCameraOpenCloseLock.acquire(); | ||||
|             if (null != mCaptureSession) { | ||||
|                 mCaptureSession.close(); | ||||
|                 mCaptureSession = null; | ||||
|             } | ||||
|             if (null != mCameraDevice) { | ||||
|                 mCameraDevice.close(); | ||||
|                 mCameraDevice = null; | ||||
|             } | ||||
|         } catch (InterruptedException e) { | ||||
|             throw new RuntimeException("Interrupted while trying to lock camera closing.", e); | ||||
|         } finally { | ||||
|             mCameraOpenCloseLock.release(); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     private final CameraDevice.StateCallback mStateCallback = new CameraDevice.StateCallback() { | ||||
| 
 | ||||
|         @Override | ||||
|         public void onOpened(CameraDevice cameraDevice) { | ||||
|             mCameraDevice = cameraDevice; | ||||
|             mCameraOpenCloseLock.release(); | ||||
|             createCameraPreviewSession(); | ||||
|         } | ||||
| 
 | ||||
|         @Override | ||||
|         public void onDisconnected(CameraDevice cameraDevice) { | ||||
|             cameraDevice.close(); | ||||
|             mCameraDevice = null; | ||||
|             mCameraOpenCloseLock.release(); | ||||
|         } | ||||
| 
 | ||||
|         @Override | ||||
|         public void onError(CameraDevice cameraDevice, int error) { | ||||
|             cameraDevice.close(); | ||||
|             mCameraDevice = null; | ||||
|             mCameraOpenCloseLock.release(); | ||||
|         } | ||||
| 
 | ||||
|     }; | ||||
| 
 | ||||
|     private void createCameraPreviewSession() { | ||||
|         int w=mPreviewSize.getWidth(), h=mPreviewSize.getHeight(); | ||||
|         Log.i(LOGTAG, "createCameraPreviewSession("+w+"x"+h+")"); | ||||
|         if(w<0 || h<0) | ||||
|             return; | ||||
|         try { | ||||
|             mCameraOpenCloseLock.acquire(); | ||||
|             if (null == mCameraDevice) { | ||||
|                 mCameraOpenCloseLock.release(); | ||||
|                 Log.e(LOGTAG, "createCameraPreviewSession: camera isn't opened"); | ||||
|                 return; | ||||
|             } | ||||
|             if (null != mCaptureSession) { | ||||
|                 mCameraOpenCloseLock.release(); | ||||
|                 Log.e(LOGTAG, "createCameraPreviewSession: mCaptureSession is already started"); | ||||
|                 return; | ||||
|             } | ||||
|             if(null == mSTexture) { | ||||
|                 mCameraOpenCloseLock.release(); | ||||
|                 Log.e(LOGTAG, "createCameraPreviewSession: preview SurfaceTexture is null"); | ||||
|                 return; | ||||
|             } | ||||
|             mSTexture.setDefaultBufferSize(w, h); | ||||
| 
 | ||||
|             Surface surface = new Surface(mSTexture); | ||||
| 
 | ||||
|             mPreviewRequestBuilder = mCameraDevice | ||||
|                     .createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW); | ||||
|             mPreviewRequestBuilder.addTarget(surface); | ||||
| 
 | ||||
|             mCameraDevice.createCaptureSession(Arrays.asList(surface), | ||||
|                     new CameraCaptureSession.StateCallback() { | ||||
|                         @Override | ||||
|                         public void onConfigured( CameraCaptureSession cameraCaptureSession) { | ||||
|                             mCaptureSession = cameraCaptureSession; | ||||
|                             try { | ||||
|                                 mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE); | ||||
|                                 mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON_AUTO_FLASH); | ||||
| 
 | ||||
|                                 mCaptureSession.setRepeatingRequest(mPreviewRequestBuilder.build(), null, mBackgroundHandler); | ||||
|                                 Log.i(LOGTAG, "CameraPreviewSession has been started"); | ||||
|                             } catch (CameraAccessException e) { | ||||
|                                 Log.e(LOGTAG, "createCaptureSession failed"); | ||||
|                             } | ||||
|                             mCameraOpenCloseLock.release(); | ||||
|                         } | ||||
| 
 | ||||
|                         @Override | ||||
|                         public void onConfigureFailed( | ||||
|                                 CameraCaptureSession cameraCaptureSession) { | ||||
|                             Log.e(LOGTAG, "createCameraPreviewSession failed"); | ||||
|                             mCameraOpenCloseLock.release(); | ||||
|                         } | ||||
|                     }, mBackgroundHandler); | ||||
|         } catch (CameraAccessException e) { | ||||
|             Log.e(LOGTAG, "createCameraPreviewSession"); | ||||
|         } catch (InterruptedException e) { | ||||
|             throw new RuntimeException( | ||||
|                     "Interrupted while createCameraPreviewSession", e); | ||||
|         } | ||||
|         finally { | ||||
|             //mCameraOpenCloseLock.release();
 | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     private void startBackgroundThread() { | ||||
|         Log.i(LOGTAG, "startBackgroundThread"); | ||||
|         stopBackgroundThread(); | ||||
|         mBackgroundThread = new HandlerThread("CameraBackground"); | ||||
|         mBackgroundThread.start(); | ||||
|         mBackgroundHandler = new Handler(mBackgroundThread.getLooper()); | ||||
|     } | ||||
| 
 | ||||
|     private void stopBackgroundThread() { | ||||
|         Log.i(LOGTAG, "stopBackgroundThread"); | ||||
|         if(mBackgroundThread == null) | ||||
|             return; | ||||
|         mBackgroundThread.quitSafely(); | ||||
|         try { | ||||
|             mBackgroundThread.join(); | ||||
|             mBackgroundThread = null; | ||||
|             mBackgroundHandler = null; | ||||
|         } catch (InterruptedException e) { | ||||
|             Log.e(LOGTAG, "stopBackgroundThread"); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     protected void setCameraPreviewSize(int width, int height) { | ||||
|         Log.i(LOGTAG, "setCameraPreviewSize("+width+"x"+height+")"); | ||||
|         if(mMaxCameraWidth  > 0 && mMaxCameraWidth  < width)  width  = mMaxCameraWidth; | ||||
|         if(mMaxCameraHeight > 0 && mMaxCameraHeight < height) height = mMaxCameraHeight; | ||||
|         try { | ||||
|             mCameraOpenCloseLock.acquire(); | ||||
| 
 | ||||
|             boolean needReconfig = cacPreviewSize(width, height); | ||||
|             mCameraWidth  = mPreviewSize.getWidth(); | ||||
|             mCameraHeight = mPreviewSize.getHeight(); | ||||
| 
 | ||||
|             if( !needReconfig ) { | ||||
|                 mCameraOpenCloseLock.release(); | ||||
|                 return; | ||||
|             } | ||||
|             if (null != mCaptureSession) { | ||||
|                 Log.d(LOGTAG, "closing existing previewSession"); | ||||
|                 mCaptureSession.close(); | ||||
|                 mCaptureSession = null; | ||||
|             } | ||||
|             mCameraOpenCloseLock.release(); | ||||
|             createCameraPreviewSession(); | ||||
|         } catch (InterruptedException e) { | ||||
|             mCameraOpenCloseLock.release(); | ||||
|             throw new RuntimeException("Interrupted while setCameraPreviewSize.", e); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @ -1,495 +0,0 @@ | ||||
| package org.opencv.android; | ||||
| 
 | ||||
| import java.util.List; | ||||
| 
 | ||||
| import org.opencv.BuildConfig; | ||||
| import org.opencv.R; | ||||
| import org.opencv.core.Mat; | ||||
| import org.opencv.core.Size; | ||||
| 
 | ||||
| import android.app.Activity; | ||||
| import android.app.AlertDialog; | ||||
| import android.content.Context; | ||||
| import android.content.DialogInterface; | ||||
| import android.content.res.TypedArray; | ||||
| import android.graphics.Bitmap; | ||||
| import android.graphics.Canvas; | ||||
| import android.graphics.Rect; | ||||
| import android.util.AttributeSet; | ||||
| import android.util.Log; | ||||
| import android.view.SurfaceHolder; | ||||
| import android.view.SurfaceView; | ||||
| 
 | ||||
| /** | ||||
|  * This is a basic class, implementing the interaction with Camera and OpenCV library. | ||||
|  * The main responsibility of it - is to control when camera can be enabled, process the frame, | ||||
|  * call external listener to make any adjustments to the frame and then draw the resulting | ||||
|  * frame to the screen. | ||||
|  * The clients shall implement CvCameraViewListener. | ||||
|  */ | ||||
| public abstract class CameraBridgeViewBase extends SurfaceView implements SurfaceHolder.Callback { | ||||
| 
 | ||||
|     private static final String TAG = "CameraBridge"; | ||||
|     private static final int MAX_UNSPECIFIED = -1; | ||||
|     private static final int STOPPED = 0; | ||||
|     private static final int STARTED = 1; | ||||
| 
 | ||||
|     private int mState = STOPPED; | ||||
|     private Bitmap mCacheBitmap; | ||||
|     private CvCameraViewListener2 mListener; | ||||
|     private boolean mSurfaceExist; | ||||
|     private final Object mSyncObject = new Object(); | ||||
| 
 | ||||
|     protected int mFrameWidth; | ||||
|     protected int mFrameHeight; | ||||
|     protected int mMaxHeight; | ||||
|     protected int mMaxWidth; | ||||
|     protected float mScale = 0; | ||||
|     protected int mPreviewFormat = RGBA; | ||||
|     protected int mCameraIndex = CAMERA_ID_ANY; | ||||
|     protected boolean mEnabled; | ||||
|     protected FpsMeter mFpsMeter = null; | ||||
| 
 | ||||
|     public static final int CAMERA_ID_ANY   = -1; | ||||
|     public static final int CAMERA_ID_BACK  = 99; | ||||
|     public static final int CAMERA_ID_FRONT = 98; | ||||
|     public static final int RGBA = 1; | ||||
|     public static final int GRAY = 2; | ||||
| 
 | ||||
|     public CameraBridgeViewBase(Context context, int cameraId) { | ||||
|         super(context); | ||||
|         mCameraIndex = cameraId; | ||||
|         getHolder().addCallback(this); | ||||
|         mMaxWidth = MAX_UNSPECIFIED; | ||||
|         mMaxHeight = MAX_UNSPECIFIED; | ||||
|     } | ||||
| 
 | ||||
|     public CameraBridgeViewBase(Context context, AttributeSet attrs) { | ||||
|         super(context, attrs); | ||||
| 
 | ||||
|         int count = attrs.getAttributeCount(); | ||||
|         Log.d(TAG, "Attr count: " + Integer.valueOf(count)); | ||||
| 
 | ||||
|         TypedArray styledAttrs = getContext().obtainStyledAttributes(attrs, R.styleable.CameraBridgeViewBase); | ||||
|         if (styledAttrs.getBoolean(R.styleable.CameraBridgeViewBase_show_fps, false)) | ||||
|             enableFpsMeter(); | ||||
| 
 | ||||
|         mCameraIndex = styledAttrs.getInt(R.styleable.CameraBridgeViewBase_camera_id, -1); | ||||
| 
 | ||||
|         getHolder().addCallback(this); | ||||
|         mMaxWidth = MAX_UNSPECIFIED; | ||||
|         mMaxHeight = MAX_UNSPECIFIED; | ||||
|         styledAttrs.recycle(); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Sets the camera index | ||||
|      * @param cameraIndex new camera index | ||||
|      */ | ||||
|     public void setCameraIndex(int cameraIndex) { | ||||
|         this.mCameraIndex = cameraIndex; | ||||
|     } | ||||
| 
 | ||||
|     public interface CvCameraViewListener { | ||||
|         /** | ||||
|          * This method is invoked when camera preview has started. After this method is invoked | ||||
|          * the frames will start to be delivered to client via the onCameraFrame() callback. | ||||
|          * @param width -  the width of the frames that will be delivered | ||||
|          * @param height - the height of the frames that will be delivered | ||||
|          */ | ||||
|         public void onCameraViewStarted(int width, int height); | ||||
| 
 | ||||
|         /** | ||||
|          * This method is invoked when camera preview has been stopped for some reason. | ||||
|          * No frames will be delivered via onCameraFrame() callback after this method is called. | ||||
|          */ | ||||
|         public void onCameraViewStopped(); | ||||
| 
 | ||||
|         /** | ||||
|          * This method is invoked when delivery of the frame needs to be done. | ||||
|          * The returned values - is a modified frame which needs to be displayed on the screen. | ||||
|          * TODO: pass the parameters specifying the format of the frame (BPP, YUV or RGB and etc) | ||||
|          */ | ||||
|         public Mat onCameraFrame(Mat inputFrame); | ||||
|     } | ||||
| 
 | ||||
|     public interface CvCameraViewListener2 { | ||||
|         /** | ||||
|          * This method is invoked when camera preview has started. After this method is invoked | ||||
|          * the frames will start to be delivered to client via the onCameraFrame() callback. | ||||
|          * @param width -  the width of the frames that will be delivered | ||||
|          * @param height - the height of the frames that will be delivered | ||||
|          */ | ||||
|         public void onCameraViewStarted(int width, int height); | ||||
| 
 | ||||
|         /** | ||||
|          * This method is invoked when camera preview has been stopped for some reason. | ||||
|          * No frames will be delivered via onCameraFrame() callback after this method is called. | ||||
|          */ | ||||
|         public void onCameraViewStopped(); | ||||
| 
 | ||||
|         /** | ||||
|          * This method is invoked when delivery of the frame needs to be done. | ||||
|          * The returned values - is a modified frame which needs to be displayed on the screen. | ||||
|          * TODO: pass the parameters specifying the format of the frame (BPP, YUV or RGB and etc) | ||||
|          */ | ||||
|         public Mat onCameraFrame(CvCameraViewFrame inputFrame); | ||||
|     }; | ||||
| 
 | ||||
|     protected class CvCameraViewListenerAdapter implements CvCameraViewListener2  { | ||||
|         public CvCameraViewListenerAdapter(CvCameraViewListener oldStypeListener) { | ||||
|             mOldStyleListener = oldStypeListener; | ||||
|         } | ||||
| 
 | ||||
|         public void onCameraViewStarted(int width, int height) { | ||||
|             mOldStyleListener.onCameraViewStarted(width, height); | ||||
|         } | ||||
| 
 | ||||
|         public void onCameraViewStopped() { | ||||
|             mOldStyleListener.onCameraViewStopped(); | ||||
|         } | ||||
| 
 | ||||
|         public Mat onCameraFrame(CvCameraViewFrame inputFrame) { | ||||
|              Mat result = null; | ||||
|              switch (mPreviewFormat) { | ||||
|                 case RGBA: | ||||
|                     result = mOldStyleListener.onCameraFrame(inputFrame.rgba()); | ||||
|                     break; | ||||
|                 case GRAY: | ||||
|                     result = mOldStyleListener.onCameraFrame(inputFrame.gray()); | ||||
|                     break; | ||||
|                 default: | ||||
|                     Log.e(TAG, "Invalid frame format! Only RGBA and Gray Scale are supported!"); | ||||
|             }; | ||||
| 
 | ||||
|             return result; | ||||
|         } | ||||
| 
 | ||||
|         public void setFrameFormat(int format) { | ||||
|             mPreviewFormat = format; | ||||
|         } | ||||
| 
 | ||||
|         private int mPreviewFormat = RGBA; | ||||
|         private CvCameraViewListener mOldStyleListener; | ||||
|     }; | ||||
| 
 | ||||
|     /** | ||||
|      * This class interface is abstract representation of single frame from camera for onCameraFrame callback | ||||
|      * Attention: Do not use objects, that represents this interface out of onCameraFrame callback! | ||||
|      */ | ||||
|     public interface CvCameraViewFrame { | ||||
| 
 | ||||
|         /** | ||||
|          * This method returns RGBA Mat with frame | ||||
|          */ | ||||
|         public Mat rgba(); | ||||
| 
 | ||||
|         /** | ||||
|          * This method returns single channel gray scale Mat with frame | ||||
|          */ | ||||
|         public Mat gray(); | ||||
|     }; | ||||
| 
 | ||||
|     public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) { | ||||
|         Log.d(TAG, "call surfaceChanged event"); | ||||
|         synchronized(mSyncObject) { | ||||
|             if (!mSurfaceExist) { | ||||
|                 mSurfaceExist = true; | ||||
|                 checkCurrentState(); | ||||
|             } else { | ||||
|                 /** Surface changed. We need to stop camera and restart with new parameters */ | ||||
|                 /* Pretend that old surface has been destroyed */ | ||||
|                 mSurfaceExist = false; | ||||
|                 checkCurrentState(); | ||||
|                 /* Now use new surface. Say we have it now */ | ||||
|                 mSurfaceExist = true; | ||||
|                 checkCurrentState(); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     public void surfaceCreated(SurfaceHolder holder) { | ||||
|         /* Do nothing. Wait until surfaceChanged delivered */ | ||||
|     } | ||||
| 
 | ||||
|     public void surfaceDestroyed(SurfaceHolder holder) { | ||||
|         synchronized(mSyncObject) { | ||||
|             mSurfaceExist = false; | ||||
|             checkCurrentState(); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * This method is provided for clients, so they can enable the camera connection. | ||||
|      * The actual onCameraViewStarted callback will be delivered only after both this method is called and surface is available | ||||
|      */ | ||||
|     public void enableView() { | ||||
|         synchronized(mSyncObject) { | ||||
|             mEnabled = true; | ||||
|             checkCurrentState(); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * This method is provided for clients, so they can disable camera connection and stop | ||||
|      * the delivery of frames even though the surface view itself is not destroyed and still stays on the scren | ||||
|      */ | ||||
|     public void disableView() { | ||||
|         synchronized(mSyncObject) { | ||||
|             mEnabled = false; | ||||
|             checkCurrentState(); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * This method enables label with fps value on the screen | ||||
|      */ | ||||
|     public void enableFpsMeter() { | ||||
|         if (mFpsMeter == null) { | ||||
|             mFpsMeter = new FpsMeter(); | ||||
|             mFpsMeter.setResolution(mFrameWidth, mFrameHeight); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     public void disableFpsMeter() { | ||||
|             mFpsMeter = null; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * | ||||
|      * @param listener | ||||
|      */ | ||||
| 
 | ||||
|     public void setCvCameraViewListener(CvCameraViewListener2 listener) { | ||||
|         mListener = listener; | ||||
|     } | ||||
| 
 | ||||
|     public void setCvCameraViewListener(CvCameraViewListener listener) { | ||||
|         CvCameraViewListenerAdapter adapter = new CvCameraViewListenerAdapter(listener); | ||||
|         adapter.setFrameFormat(mPreviewFormat); | ||||
|         mListener = adapter; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * This method sets the maximum size that camera frame is allowed to be. When selecting | ||||
|      * size - the biggest size which less or equal the size set will be selected. | ||||
|      * As an example - we set setMaxFrameSize(200,200) and we have 176x152 and 320x240 sizes. The | ||||
|      * preview frame will be selected with 176x152 size. | ||||
|      * This method is useful when need to restrict the size of preview frame for some reason (for example for video recording) | ||||
|      * @param maxWidth - the maximum width allowed for camera frame. | ||||
|      * @param maxHeight - the maximum height allowed for camera frame | ||||
|      */ | ||||
|     public void setMaxFrameSize(int maxWidth, int maxHeight) { | ||||
|         mMaxWidth = maxWidth; | ||||
|         mMaxHeight = maxHeight; | ||||
|     } | ||||
| 
 | ||||
|     public void SetCaptureFormat(int format) | ||||
|     { | ||||
|         mPreviewFormat = format; | ||||
|         if (mListener instanceof CvCameraViewListenerAdapter) { | ||||
|             CvCameraViewListenerAdapter adapter = (CvCameraViewListenerAdapter) mListener; | ||||
|             adapter.setFrameFormat(mPreviewFormat); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Called when mSyncObject lock is held | ||||
|      */ | ||||
|     private void checkCurrentState() { | ||||
|         Log.d(TAG, "call checkCurrentState"); | ||||
|         int targetState; | ||||
| 
 | ||||
|         if (mEnabled && mSurfaceExist && getVisibility() == VISIBLE) { | ||||
|             targetState = STARTED; | ||||
|         } else { | ||||
|             targetState = STOPPED; | ||||
|         } | ||||
| 
 | ||||
|         if (targetState != mState) { | ||||
|             /* The state change detected. Need to exit the current state and enter target state */ | ||||
|             processExitState(mState); | ||||
|             mState = targetState; | ||||
|             processEnterState(mState); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     private void processEnterState(int state) { | ||||
|         Log.d(TAG, "call processEnterState: " + state); | ||||
|         switch(state) { | ||||
|         case STARTED: | ||||
|             onEnterStartedState(); | ||||
|             if (mListener != null) { | ||||
|                 mListener.onCameraViewStarted(mFrameWidth, mFrameHeight); | ||||
|             } | ||||
|             break; | ||||
|         case STOPPED: | ||||
|             onEnterStoppedState(); | ||||
|             if (mListener != null) { | ||||
|                 mListener.onCameraViewStopped(); | ||||
|             } | ||||
|             break; | ||||
|         }; | ||||
|     } | ||||
| 
 | ||||
|     private void processExitState(int state) { | ||||
|         Log.d(TAG, "call processExitState: " + state); | ||||
|         switch(state) { | ||||
|         case STARTED: | ||||
|             onExitStartedState(); | ||||
|             break; | ||||
|         case STOPPED: | ||||
|             onExitStoppedState(); | ||||
|             break; | ||||
|         }; | ||||
|     } | ||||
| 
 | ||||
|     private void onEnterStoppedState() { | ||||
|         /* nothing to do */ | ||||
|     } | ||||
| 
 | ||||
|     private void onExitStoppedState() { | ||||
|         /* nothing to do */ | ||||
|     } | ||||
| 
 | ||||
|     // NOTE: The order of bitmap constructor and camera connection is important for android 4.1.x
 | ||||
|     // Bitmap must be constructed before surface
 | ||||
|     private void onEnterStartedState() { | ||||
|         Log.d(TAG, "call onEnterStartedState"); | ||||
|         /* Connect camera */ | ||||
|         if (!connectCamera(getWidth(), getHeight())) { | ||||
|             AlertDialog ad = new AlertDialog.Builder(getContext()).create(); | ||||
|             ad.setCancelable(false); // This blocks the 'BACK' button
 | ||||
|             ad.setMessage("It seems that you device does not support camera (or it is locked). Application will be closed."); | ||||
|             ad.setButton(DialogInterface.BUTTON_NEUTRAL,  "OK", new DialogInterface.OnClickListener() { | ||||
|                 public void onClick(DialogInterface dialog, int which) { | ||||
|                     dialog.dismiss(); | ||||
|                     ((Activity) getContext()).finish(); | ||||
|                 } | ||||
|             }); | ||||
|             ad.show(); | ||||
| 
 | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     private void onExitStartedState() { | ||||
|         disconnectCamera(); | ||||
|         if (mCacheBitmap != null) { | ||||
|             mCacheBitmap.recycle(); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * This method shall be called by the subclasses when they have valid | ||||
|      * object and want it to be delivered to external client (via callback) and | ||||
|      * then displayed on the screen. | ||||
|      * @param frame - the current frame to be delivered | ||||
|      */ | ||||
|     protected void deliverAndDrawFrame(CvCameraViewFrame frame) { | ||||
|         Mat modified; | ||||
| 
 | ||||
|         if (mListener != null) { | ||||
|             modified = mListener.onCameraFrame(frame); | ||||
|         } else { | ||||
|             modified = frame.rgba(); | ||||
|         } | ||||
| 
 | ||||
|         boolean bmpValid = true; | ||||
|         if (modified != null) { | ||||
|             try { | ||||
|                 Utils.matToBitmap(modified, mCacheBitmap); | ||||
|             } catch(Exception e) { | ||||
|                 Log.e(TAG, "Mat type: " + modified); | ||||
|                 Log.e(TAG, "Bitmap type: " + mCacheBitmap.getWidth() + "*" + mCacheBitmap.getHeight()); | ||||
|                 Log.e(TAG, "Utils.matToBitmap() throws an exception: " + e.getMessage()); | ||||
|                 bmpValid = false; | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         if (bmpValid && mCacheBitmap != null) { | ||||
|             Canvas canvas = getHolder().lockCanvas(); | ||||
|             if (canvas != null) { | ||||
|                 canvas.drawColor(0, android.graphics.PorterDuff.Mode.CLEAR); | ||||
|                 if (BuildConfig.DEBUG) | ||||
|                     Log.d(TAG, "mStretch value: " + mScale); | ||||
| 
 | ||||
|                 if (mScale != 0) { | ||||
|                     canvas.drawBitmap(mCacheBitmap, new Rect(0,0,mCacheBitmap.getWidth(), mCacheBitmap.getHeight()), | ||||
|                          new Rect((int)((canvas.getWidth() - mScale*mCacheBitmap.getWidth()) / 2), | ||||
|                          (int)((canvas.getHeight() - mScale*mCacheBitmap.getHeight()) / 2), | ||||
|                          (int)((canvas.getWidth() - mScale*mCacheBitmap.getWidth()) / 2 + mScale*mCacheBitmap.getWidth()), | ||||
|                          (int)((canvas.getHeight() - mScale*mCacheBitmap.getHeight()) / 2 + mScale*mCacheBitmap.getHeight())), null); | ||||
|                 } else { | ||||
|                      canvas.drawBitmap(mCacheBitmap, new Rect(0,0,mCacheBitmap.getWidth(), mCacheBitmap.getHeight()), | ||||
|                          new Rect((canvas.getWidth() - mCacheBitmap.getWidth()) / 2, | ||||
|                          (canvas.getHeight() - mCacheBitmap.getHeight()) / 2, | ||||
|                          (canvas.getWidth() - mCacheBitmap.getWidth()) / 2 + mCacheBitmap.getWidth(), | ||||
|                          (canvas.getHeight() - mCacheBitmap.getHeight()) / 2 + mCacheBitmap.getHeight()), null); | ||||
|                 } | ||||
| 
 | ||||
|                 if (mFpsMeter != null) { | ||||
|                     mFpsMeter.measure(); | ||||
|                     mFpsMeter.draw(canvas, 20, 30); | ||||
|                 } | ||||
|                 getHolder().unlockCanvasAndPost(canvas); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * This method is invoked shall perform concrete operation to initialize the camera. | ||||
|      * CONTRACT: as a result of this method variables mFrameWidth and mFrameHeight MUST be | ||||
|      * initialized with the size of the Camera frames that will be delivered to external processor. | ||||
|      * @param width - the width of this SurfaceView | ||||
|      * @param height - the height of this SurfaceView | ||||
|      */ | ||||
|     protected abstract boolean connectCamera(int width, int height); | ||||
| 
 | ||||
|     /** | ||||
|      * Disconnects and release the particular camera object being connected to this surface view. | ||||
|      * Called when syncObject lock is held | ||||
|      */ | ||||
|     protected abstract void disconnectCamera(); | ||||
| 
 | ||||
|     // NOTE: On Android 4.1.x the function must be called before SurfaceTexture constructor!
 | ||||
|     protected void AllocateCache() | ||||
|     { | ||||
|         mCacheBitmap = Bitmap.createBitmap(mFrameWidth, mFrameHeight, Bitmap.Config.ARGB_8888); | ||||
|     } | ||||
| 
 | ||||
|     public interface ListItemAccessor { | ||||
|         public int getWidth(Object obj); | ||||
|         public int getHeight(Object obj); | ||||
|     }; | ||||
| 
 | ||||
|     /** | ||||
|      * This helper method can be called by subclasses to select camera preview size. | ||||
|      * It goes over the list of the supported preview sizes and selects the maximum one which | ||||
|      * fits both values set via setMaxFrameSize() and surface frame allocated for this view | ||||
|      * @param supportedSizes | ||||
|      * @param surfaceWidth | ||||
|      * @param surfaceHeight | ||||
|      * @return optimal frame size | ||||
|      */ | ||||
|     protected Size calculateCameraFrameSize(List<?> supportedSizes, ListItemAccessor accessor, int surfaceWidth, int surfaceHeight) { | ||||
|         int calcWidth = 0; | ||||
|         int calcHeight = 0; | ||||
| 
 | ||||
|         int maxAllowedWidth = (mMaxWidth != MAX_UNSPECIFIED && mMaxWidth < surfaceWidth)? mMaxWidth : surfaceWidth; | ||||
|         int maxAllowedHeight = (mMaxHeight != MAX_UNSPECIFIED && mMaxHeight < surfaceHeight)? mMaxHeight : surfaceHeight; | ||||
| 
 | ||||
|         for (Object size : supportedSizes) { | ||||
|             int width = accessor.getWidth(size); | ||||
|             int height = accessor.getHeight(size); | ||||
| 
 | ||||
|             if (width <= maxAllowedWidth && height <= maxAllowedHeight) { | ||||
|                 if (width >= calcWidth && height >= calcHeight) { | ||||
|                     calcWidth = (int) width; | ||||
|                     calcHeight = (int) height; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         return new Size(calcWidth, calcHeight); | ||||
|     } | ||||
| } | ||||
| @ -1,440 +0,0 @@ | ||||
| package org.opencv.android; | ||||
| 
 | ||||
| import java.nio.ByteBuffer; | ||||
| import java.nio.ByteOrder; | ||||
| import java.nio.FloatBuffer; | ||||
| 
 | ||||
| import javax.microedition.khronos.egl.EGLConfig; | ||||
| import javax.microedition.khronos.opengles.GL10; | ||||
| 
 | ||||
| import org.opencv.android.CameraGLSurfaceView.CameraTextureListener; | ||||
| 
 | ||||
| import android.annotation.TargetApi; | ||||
| import android.graphics.SurfaceTexture; | ||||
| import android.opengl.GLES11Ext; | ||||
| import android.opengl.GLES20; | ||||
| import android.opengl.GLSurfaceView; | ||||
| import android.util.Log; | ||||
| import android.view.View; | ||||
| 
 | ||||
| @TargetApi(15) | ||||
| public abstract class CameraGLRendererBase implements GLSurfaceView.Renderer, SurfaceTexture.OnFrameAvailableListener { | ||||
| 
 | ||||
|     protected final String LOGTAG = "CameraGLRendererBase"; | ||||
| 
 | ||||
|     // shaders
 | ||||
|     private final String vss = "" | ||||
|             + "attribute vec2 vPosition;\n" | ||||
|             + "attribute vec2 vTexCoord;\n" + "varying vec2 texCoord;\n" | ||||
|             + "void main() {\n" + "  texCoord = vTexCoord;\n" | ||||
|             + "  gl_Position = vec4 ( vPosition.x, vPosition.y, 0.0, 1.0 );\n" | ||||
|             + "}"; | ||||
| 
 | ||||
|     private final String fssOES = "" | ||||
|             + "#extension GL_OES_EGL_image_external : require\n" | ||||
|             + "precision mediump float;\n" | ||||
|             + "uniform samplerExternalOES sTexture;\n" | ||||
|             + "varying vec2 texCoord;\n" | ||||
|             + "void main() {\n" | ||||
|             + "  gl_FragColor = texture2D(sTexture,texCoord);\n" + "}"; | ||||
| 
 | ||||
|     private final String fss2D = "" | ||||
|             + "precision mediump float;\n" | ||||
|             + "uniform sampler2D sTexture;\n" | ||||
|             + "varying vec2 texCoord;\n" | ||||
|             + "void main() {\n" | ||||
|             + "  gl_FragColor = texture2D(sTexture,texCoord);\n" + "}"; | ||||
| 
 | ||||
|     // coord-s
 | ||||
|     private final float vertices[] = { | ||||
|            -1, -1, | ||||
|            -1,  1, | ||||
|             1, -1, | ||||
|             1,  1 }; | ||||
|     private final float texCoordOES[] = { | ||||
|             0,  1, | ||||
|             0,  0, | ||||
|             1,  1, | ||||
|             1,  0 }; | ||||
|     private final float texCoord2D[] = { | ||||
|             0,  0, | ||||
|             0,  1, | ||||
|             1,  0, | ||||
|             1,  1 }; | ||||
| 
 | ||||
|     private int[] texCamera = {0}, texFBO = {0}, texDraw = {0}; | ||||
|     private int[] FBO = {0}; | ||||
|     private int progOES = -1, prog2D = -1; | ||||
|     private int vPosOES, vTCOES, vPos2D, vTC2D; | ||||
| 
 | ||||
|     private FloatBuffer vert, texOES, tex2D; | ||||
| 
 | ||||
|     protected int mCameraWidth = -1, mCameraHeight = -1; | ||||
|     protected int mFBOWidth = -1, mFBOHeight = -1; | ||||
|     protected int mMaxCameraWidth = -1, mMaxCameraHeight = -1; | ||||
|     protected int mCameraIndex = CameraBridgeViewBase.CAMERA_ID_ANY; | ||||
| 
 | ||||
|     protected SurfaceTexture mSTexture; | ||||
| 
 | ||||
|     protected boolean mHaveSurface = false; | ||||
|     protected boolean mHaveFBO = false; | ||||
|     protected boolean mUpdateST = false; | ||||
|     protected boolean mEnabled = true; | ||||
|     protected boolean mIsStarted = false; | ||||
| 
 | ||||
|     protected CameraGLSurfaceView mView; | ||||
| 
 | ||||
|     protected abstract void openCamera(int id); | ||||
|     protected abstract void closeCamera(); | ||||
|     protected abstract void setCameraPreviewSize(int width, int height); // updates mCameraWidth & mCameraHeight
 | ||||
| 
 | ||||
|     public CameraGLRendererBase(CameraGLSurfaceView view) { | ||||
|         mView = view; | ||||
|         int bytes = vertices.length * Float.SIZE / Byte.SIZE; | ||||
|         vert   = ByteBuffer.allocateDirect(bytes).order(ByteOrder.nativeOrder()).asFloatBuffer(); | ||||
|         texOES = ByteBuffer.allocateDirect(bytes).order(ByteOrder.nativeOrder()).asFloatBuffer(); | ||||
|         tex2D  = ByteBuffer.allocateDirect(bytes).order(ByteOrder.nativeOrder()).asFloatBuffer(); | ||||
|         vert.put(vertices).position(0); | ||||
|         texOES.put(texCoordOES).position(0); | ||||
|         tex2D.put(texCoord2D).position(0); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public synchronized void onFrameAvailable(SurfaceTexture surfaceTexture) { | ||||
|         //Log.i(LOGTAG, "onFrameAvailable");
 | ||||
|         mUpdateST = true; | ||||
|         mView.requestRender(); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public void onDrawFrame(GL10 gl) { | ||||
|         //Log.i(LOGTAG, "onDrawFrame start");
 | ||||
| 
 | ||||
|         if (!mHaveFBO) | ||||
|             return; | ||||
| 
 | ||||
|         synchronized(this) { | ||||
|             if (mUpdateST) { | ||||
|                 mSTexture.updateTexImage(); | ||||
|                 mUpdateST = false; | ||||
|             } | ||||
| 
 | ||||
|             GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT); | ||||
| 
 | ||||
|             CameraTextureListener texListener = mView.getCameraTextureListener(); | ||||
|             if(texListener != null) { | ||||
|                 //Log.d(LOGTAG, "haveUserCallback");
 | ||||
|                 // texCamera(OES) -> texFBO
 | ||||
|                 drawTex(texCamera[0], true, FBO[0]); | ||||
| 
 | ||||
|                 // call user code (texFBO -> texDraw)
 | ||||
|                 boolean modified = texListener.onCameraTexture(texFBO[0], texDraw[0], mCameraWidth, mCameraHeight); | ||||
| 
 | ||||
|                 if(modified) { | ||||
|                     // texDraw -> screen
 | ||||
|                     drawTex(texDraw[0], false, 0); | ||||
|                 } else { | ||||
|                     // texFBO -> screen
 | ||||
|                     drawTex(texFBO[0], false, 0); | ||||
|                 } | ||||
|             } else { | ||||
|                 Log.d(LOGTAG, "texCamera(OES) -> screen"); | ||||
|                 // texCamera(OES) -> screen
 | ||||
|                 drawTex(texCamera[0], true, 0); | ||||
|             } | ||||
|             //Log.i(LOGTAG, "onDrawFrame end");
 | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public void onSurfaceChanged(GL10 gl, int surfaceWidth, int surfaceHeight) { | ||||
|         Log.i(LOGTAG, "onSurfaceChanged("+surfaceWidth+"x"+surfaceHeight+")"); | ||||
|         mHaveSurface = true; | ||||
|         updateState(); | ||||
|         setPreviewSize(surfaceWidth, surfaceHeight); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public void onSurfaceCreated(GL10 gl, EGLConfig config) { | ||||
|         Log.i(LOGTAG, "onSurfaceCreated"); | ||||
|         initShaders(); | ||||
|     } | ||||
| 
 | ||||
|     private void initShaders() { | ||||
|         String strGLVersion = GLES20.glGetString(GLES20.GL_VERSION); | ||||
|         if (strGLVersion != null) | ||||
|             Log.i(LOGTAG, "OpenGL ES version: " + strGLVersion); | ||||
| 
 | ||||
|         GLES20.glClearColor(1.0f, 1.0f, 1.0f, 1.0f); | ||||
| 
 | ||||
|         progOES = loadShader(vss, fssOES); | ||||
|         vPosOES = GLES20.glGetAttribLocation(progOES, "vPosition"); | ||||
|         vTCOES  = GLES20.glGetAttribLocation(progOES, "vTexCoord"); | ||||
|         GLES20.glEnableVertexAttribArray(vPosOES); | ||||
|         GLES20.glEnableVertexAttribArray(vTCOES); | ||||
| 
 | ||||
|         prog2D  = loadShader(vss, fss2D); | ||||
|         vPos2D = GLES20.glGetAttribLocation(prog2D, "vPosition"); | ||||
|         vTC2D  = GLES20.glGetAttribLocation(prog2D, "vTexCoord"); | ||||
|         GLES20.glEnableVertexAttribArray(vPos2D); | ||||
|         GLES20.glEnableVertexAttribArray(vTC2D); | ||||
|     } | ||||
| 
 | ||||
|     private void initSurfaceTexture() { | ||||
|         Log.d(LOGTAG, "initSurfaceTexture"); | ||||
|         deleteSurfaceTexture(); | ||||
|         initTexOES(texCamera); | ||||
|         mSTexture = new SurfaceTexture(texCamera[0]); | ||||
|         mSTexture.setOnFrameAvailableListener(this); | ||||
|     } | ||||
| 
 | ||||
|     private void deleteSurfaceTexture() { | ||||
|         Log.d(LOGTAG, "deleteSurfaceTexture"); | ||||
|         if(mSTexture != null) { | ||||
|             mSTexture.release(); | ||||
|             mSTexture = null; | ||||
|             deleteTex(texCamera); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     private void initTexOES(int[] tex) { | ||||
|         if(tex.length == 1) { | ||||
|             GLES20.glGenTextures(1, tex, 0); | ||||
|             GLES20.glBindTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, tex[0]); | ||||
|             GLES20.glTexParameteri(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE); | ||||
|             GLES20.glTexParameteri(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE); | ||||
|             GLES20.glTexParameteri(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_NEAREST); | ||||
|             GLES20.glTexParameteri(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_NEAREST); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     private static void deleteTex(int[] tex) { | ||||
|         if(tex.length == 1) { | ||||
|             GLES20.glDeleteTextures(1, tex, 0); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     private static int loadShader(String vss, String fss) { | ||||
|         Log.d("CameraGLRendererBase", "loadShader"); | ||||
|         int vshader = GLES20.glCreateShader(GLES20.GL_VERTEX_SHADER); | ||||
|         GLES20.glShaderSource(vshader, vss); | ||||
|         GLES20.glCompileShader(vshader); | ||||
|         int[] status = new int[1]; | ||||
|         GLES20.glGetShaderiv(vshader, GLES20.GL_COMPILE_STATUS, status, 0); | ||||
|         if (status[0] == 0) { | ||||
|             Log.e("CameraGLRendererBase", "Could not compile vertex shader: "+GLES20.glGetShaderInfoLog(vshader)); | ||||
|             GLES20.glDeleteShader(vshader); | ||||
|             vshader = 0; | ||||
|             return 0; | ||||
|         } | ||||
| 
 | ||||
|         int fshader = GLES20.glCreateShader(GLES20.GL_FRAGMENT_SHADER); | ||||
|         GLES20.glShaderSource(fshader, fss); | ||||
|         GLES20.glCompileShader(fshader); | ||||
|         GLES20.glGetShaderiv(fshader, GLES20.GL_COMPILE_STATUS, status, 0); | ||||
|         if (status[0] == 0) { | ||||
|             Log.e("CameraGLRendererBase", "Could not compile fragment shader:"+GLES20.glGetShaderInfoLog(fshader)); | ||||
|             GLES20.glDeleteShader(vshader); | ||||
|             GLES20.glDeleteShader(fshader); | ||||
|             fshader = 0; | ||||
|             return 0; | ||||
|         } | ||||
| 
 | ||||
|         int program = GLES20.glCreateProgram(); | ||||
|         GLES20.glAttachShader(program, vshader); | ||||
|         GLES20.glAttachShader(program, fshader); | ||||
|         GLES20.glLinkProgram(program); | ||||
|         GLES20.glDeleteShader(vshader); | ||||
|         GLES20.glDeleteShader(fshader); | ||||
|         GLES20.glGetProgramiv(program, GLES20.GL_LINK_STATUS, status, 0); | ||||
|         if (status[0] == 0) { | ||||
|             Log.e("CameraGLRendererBase", "Could not link shader program: "+GLES20.glGetProgramInfoLog(program)); | ||||
|             program = 0; | ||||
|             return 0; | ||||
|         } | ||||
|         GLES20.glValidateProgram(program); | ||||
|         GLES20.glGetProgramiv(program, GLES20.GL_VALIDATE_STATUS, status, 0); | ||||
|         if (status[0] == 0) | ||||
|         { | ||||
|             Log.e("CameraGLRendererBase", "Shader program validation error: "+GLES20.glGetProgramInfoLog(program)); | ||||
|             GLES20.glDeleteProgram(program); | ||||
|             program = 0; | ||||
|             return 0; | ||||
|         } | ||||
| 
 | ||||
|         Log.d("CameraGLRendererBase", "Shader program is built OK"); | ||||
| 
 | ||||
|         return program; | ||||
|     } | ||||
| 
 | ||||
|     private void deleteFBO() | ||||
|     { | ||||
|         Log.d(LOGTAG, "deleteFBO("+mFBOWidth+"x"+mFBOHeight+")"); | ||||
|         GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, 0); | ||||
|         GLES20.glDeleteFramebuffers(1, FBO, 0); | ||||
| 
 | ||||
|         deleteTex(texFBO); | ||||
|         deleteTex(texDraw); | ||||
|         mFBOWidth = mFBOHeight = 0; | ||||
|     } | ||||
| 
 | ||||
|     private void initFBO(int width, int height) | ||||
|     { | ||||
|         Log.d(LOGTAG, "initFBO("+width+"x"+height+")"); | ||||
| 
 | ||||
|         deleteFBO(); | ||||
| 
 | ||||
|         GLES20.glGenTextures(1, texDraw, 0); | ||||
|         GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, texDraw[0]); | ||||
|         GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, width, height, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, null); | ||||
|         GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE); | ||||
|         GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE); | ||||
|         GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_NEAREST); | ||||
|         GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_NEAREST); | ||||
| 
 | ||||
|         GLES20.glGenTextures(1, texFBO, 0); | ||||
|         GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, texFBO[0]); | ||||
|         GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, width, height, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, null); | ||||
|         GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE); | ||||
|         GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE); | ||||
|         GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_NEAREST); | ||||
|         GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_NEAREST); | ||||
| 
 | ||||
|         //int hFBO;
 | ||||
|         GLES20.glGenFramebuffers(1, FBO, 0); | ||||
|         GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, FBO[0]); | ||||
|         GLES20.glFramebufferTexture2D(GLES20.GL_FRAMEBUFFER, GLES20.GL_COLOR_ATTACHMENT0, GLES20.GL_TEXTURE_2D, texFBO[0], 0); | ||||
|         Log.d(LOGTAG, "initFBO error status: " + GLES20.glGetError()); | ||||
| 
 | ||||
|         int FBOstatus = GLES20.glCheckFramebufferStatus(GLES20.GL_FRAMEBUFFER); | ||||
|         if (FBOstatus != GLES20.GL_FRAMEBUFFER_COMPLETE) | ||||
|             Log.e(LOGTAG, "initFBO failed, status: " + FBOstatus); | ||||
| 
 | ||||
|         mFBOWidth  = width; | ||||
|         mFBOHeight = height; | ||||
|     } | ||||
| 
 | ||||
|     // draw texture to FBO or to screen if fbo == 0
 | ||||
|     private void drawTex(int tex, boolean isOES, int fbo) | ||||
|     { | ||||
|         GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, fbo); | ||||
| 
 | ||||
|         if(fbo == 0) | ||||
|             GLES20.glViewport(0, 0, mView.getWidth(), mView.getHeight()); | ||||
|         else | ||||
|             GLES20.glViewport(0, 0, mFBOWidth, mFBOHeight); | ||||
| 
 | ||||
|         GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT); | ||||
| 
 | ||||
|         if(isOES) { | ||||
|             GLES20.glUseProgram(progOES); | ||||
|             GLES20.glVertexAttribPointer(vPosOES, 2, GLES20.GL_FLOAT, false, 4*2, vert); | ||||
|             GLES20.glVertexAttribPointer(vTCOES,  2, GLES20.GL_FLOAT, false, 4*2, texOES); | ||||
|         } else { | ||||
|             GLES20.glUseProgram(prog2D); | ||||
|             GLES20.glVertexAttribPointer(vPos2D, 2, GLES20.GL_FLOAT, false, 4*2, vert); | ||||
|             GLES20.glVertexAttribPointer(vTC2D,  2, GLES20.GL_FLOAT, false, 4*2, tex2D); | ||||
|         } | ||||
| 
 | ||||
|         GLES20.glActiveTexture(GLES20.GL_TEXTURE0); | ||||
| 
 | ||||
|         if(isOES) { | ||||
|             GLES20.glBindTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, tex); | ||||
|             GLES20.glUniform1i(GLES20.glGetUniformLocation(progOES, "sTexture"), 0); | ||||
|         } else { | ||||
|             GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, tex); | ||||
|             GLES20.glUniform1i(GLES20.glGetUniformLocation(prog2D, "sTexture"), 0); | ||||
|         } | ||||
| 
 | ||||
|         GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4); | ||||
|         GLES20.glFlush(); | ||||
|     } | ||||
| 
 | ||||
|     public synchronized void enableView() { | ||||
|         Log.d(LOGTAG, "enableView"); | ||||
|         mEnabled = true; | ||||
|         updateState(); | ||||
|     } | ||||
| 
 | ||||
|     public synchronized void disableView() { | ||||
|         Log.d(LOGTAG, "disableView"); | ||||
|         mEnabled = false; | ||||
|         updateState(); | ||||
|     } | ||||
| 
 | ||||
|     protected void updateState() { | ||||
|         Log.d(LOGTAG, "updateState"); | ||||
|         Log.d(LOGTAG, "mEnabled="+mEnabled+", mHaveSurface="+mHaveSurface); | ||||
|         boolean willStart = mEnabled && mHaveSurface && mView.getVisibility() == View.VISIBLE; | ||||
|         if (willStart != mIsStarted) { | ||||
|             if(willStart) doStart(); | ||||
|             else doStop(); | ||||
|         } else { | ||||
|             Log.d(LOGTAG, "keeping State unchanged"); | ||||
|         } | ||||
|         Log.d(LOGTAG, "updateState end"); | ||||
|     } | ||||
| 
 | ||||
|     protected synchronized void doStart() { | ||||
|         Log.d(LOGTAG, "doStart"); | ||||
|         initSurfaceTexture(); | ||||
|         openCamera(mCameraIndex); | ||||
|         mIsStarted = true; | ||||
|         if(mCameraWidth>0 && mCameraHeight>0) | ||||
|             setPreviewSize(mCameraWidth, mCameraHeight); // start preview and call listener.onCameraViewStarted()
 | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     protected void doStop() { | ||||
|         Log.d(LOGTAG, "doStop"); | ||||
|         synchronized(this) { | ||||
|             mUpdateST = false; | ||||
|             mIsStarted = false; | ||||
|             mHaveFBO = false; | ||||
|             closeCamera(); | ||||
|             deleteSurfaceTexture(); | ||||
|         } | ||||
|         CameraTextureListener listener = mView.getCameraTextureListener(); | ||||
|         if(listener != null) listener.onCameraViewStopped(); | ||||
| 
 | ||||
|     } | ||||
| 
 | ||||
|     protected void setPreviewSize(int width, int height) { | ||||
|         synchronized(this) { | ||||
|             mHaveFBO = false; | ||||
|             mCameraWidth  = width; | ||||
|             mCameraHeight = height; | ||||
|             setCameraPreviewSize(width, height); // can change mCameraWidth & mCameraHeight
 | ||||
|             initFBO(mCameraWidth, mCameraHeight); | ||||
|             mHaveFBO = true; | ||||
|         } | ||||
| 
 | ||||
|         CameraTextureListener listener = mView.getCameraTextureListener(); | ||||
|         if(listener != null) listener.onCameraViewStarted(mCameraWidth, mCameraHeight); | ||||
|     } | ||||
| 
 | ||||
|     public void setCameraIndex(int cameraIndex) { | ||||
|         disableView(); | ||||
|         mCameraIndex = cameraIndex; | ||||
|         enableView(); | ||||
|     } | ||||
| 
 | ||||
|     public void setMaxCameraPreviewSize(int maxWidth, int maxHeight) { | ||||
|         disableView(); | ||||
|         mMaxCameraWidth  = maxWidth; | ||||
|         mMaxCameraHeight = maxHeight; | ||||
|         enableView(); | ||||
|     } | ||||
| 
 | ||||
|     public void onResume() { | ||||
|         Log.i(LOGTAG, "onResume"); | ||||
|     } | ||||
| 
 | ||||
|     public void onPause() { | ||||
|         Log.i(LOGTAG, "onPause"); | ||||
|         mHaveSurface = false; | ||||
|         updateState(); | ||||
|         mCameraWidth = mCameraHeight = -1; | ||||
|     } | ||||
| 
 | ||||
| } | ||||
| @ -1,119 +0,0 @@ | ||||
| package org.opencv.android; | ||||
| 
 | ||||
| import org.opencv.R; | ||||
| 
 | ||||
| import android.content.Context; | ||||
| import android.content.res.TypedArray; | ||||
| import android.opengl.GLSurfaceView; | ||||
| import android.util.AttributeSet; | ||||
| import android.util.Log; | ||||
| import android.view.SurfaceHolder; | ||||
| 
 | ||||
| public class CameraGLSurfaceView extends GLSurfaceView { | ||||
| 
 | ||||
|     private static final String LOGTAG = "CameraGLSurfaceView"; | ||||
| 
 | ||||
|     public interface CameraTextureListener { | ||||
|         /** | ||||
|          * This method is invoked when camera preview has started. After this method is invoked | ||||
|          * the frames will start to be delivered to client via the onCameraFrame() callback. | ||||
|          * @param width -  the width of the frames that will be delivered | ||||
|          * @param height - the height of the frames that will be delivered | ||||
|          */ | ||||
|         public void onCameraViewStarted(int width, int height); | ||||
| 
 | ||||
|         /** | ||||
|          * This method is invoked when camera preview has been stopped for some reason. | ||||
|          * No frames will be delivered via onCameraFrame() callback after this method is called. | ||||
|          */ | ||||
|         public void onCameraViewStopped(); | ||||
| 
 | ||||
|         /** | ||||
|          * This method is invoked when a new preview frame from Camera is ready. | ||||
|          * @param texIn -  the OpenGL texture ID that contains frame in RGBA format | ||||
|          * @param texOut - the OpenGL texture ID that can be used to store modified frame image t display | ||||
|          * @param width -  the width of the frame | ||||
|          * @param height - the height of the frame | ||||
|          * @return `true` if `texOut` should be displayed, `false` - to show `texIn` | ||||
|          */ | ||||
|         public boolean onCameraTexture(int texIn, int texOut, int width, int height); | ||||
|     }; | ||||
| 
 | ||||
|     private CameraTextureListener mTexListener; | ||||
|     private CameraGLRendererBase mRenderer; | ||||
| 
 | ||||
|     public CameraGLSurfaceView(Context context, AttributeSet attrs) { | ||||
|         super(context, attrs); | ||||
| 
 | ||||
|         TypedArray styledAttrs = getContext().obtainStyledAttributes(attrs, R.styleable.CameraBridgeViewBase); | ||||
|         int cameraIndex = styledAttrs.getInt(R.styleable.CameraBridgeViewBase_camera_id, -1); | ||||
|         styledAttrs.recycle(); | ||||
| 
 | ||||
|         if(android.os.Build.VERSION.SDK_INT >= 21) | ||||
|             mRenderer = new Camera2Renderer(this); | ||||
|         else | ||||
|             mRenderer = new CameraRenderer(this); | ||||
| 
 | ||||
|         setCameraIndex(cameraIndex); | ||||
| 
 | ||||
|         setEGLContextClientVersion(2); | ||||
|         setRenderer(mRenderer); | ||||
|         setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY); | ||||
|     } | ||||
| 
 | ||||
|     public void setCameraTextureListener(CameraTextureListener texListener) | ||||
|     { | ||||
|         mTexListener = texListener; | ||||
|     } | ||||
| 
 | ||||
|     public CameraTextureListener getCameraTextureListener() | ||||
|     { | ||||
|         return mTexListener; | ||||
|     } | ||||
| 
 | ||||
|     public void setCameraIndex(int cameraIndex) { | ||||
|         mRenderer.setCameraIndex(cameraIndex); | ||||
|     } | ||||
| 
 | ||||
|     public void setMaxCameraPreviewSize(int maxWidth, int maxHeight) { | ||||
|         mRenderer.setMaxCameraPreviewSize(maxWidth, maxHeight); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public void surfaceCreated(SurfaceHolder holder) { | ||||
|         super.surfaceCreated(holder); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public void surfaceDestroyed(SurfaceHolder holder) { | ||||
|         mRenderer.mHaveSurface = false; | ||||
|         super.surfaceDestroyed(holder); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) { | ||||
|         super.surfaceChanged(holder, format, w, h); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public void onResume() { | ||||
|         Log.i(LOGTAG, "onResume"); | ||||
|         super.onResume(); | ||||
|         mRenderer.onResume(); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public void onPause() { | ||||
|         Log.i(LOGTAG, "onPause"); | ||||
|         mRenderer.onPause(); | ||||
|         super.onPause(); | ||||
|     } | ||||
| 
 | ||||
|     public void enableView() { | ||||
|         mRenderer.enableView(); | ||||
|     } | ||||
| 
 | ||||
|     public void disableView() { | ||||
|         mRenderer.disableView(); | ||||
|     } | ||||
| } | ||||
| @ -1,166 +0,0 @@ | ||||
| package org.opencv.android; | ||||
| 
 | ||||
| import java.io.IOException; | ||||
| import java.util.List; | ||||
| 
 | ||||
| import android.annotation.TargetApi; | ||||
| import android.hardware.Camera; | ||||
| import android.hardware.Camera.Size; | ||||
| import android.os.Build; | ||||
| import android.util.Log; | ||||
| 
 | ||||
| @TargetApi(15) | ||||
| @SuppressWarnings("deprecation") | ||||
| public class CameraRenderer extends CameraGLRendererBase { | ||||
| 
 | ||||
|     public static final String LOGTAG = "CameraRenderer"; | ||||
| 
 | ||||
|     private Camera mCamera; | ||||
|     private boolean mPreviewStarted = false; | ||||
| 
 | ||||
|     CameraRenderer(CameraGLSurfaceView view) { | ||||
|         super(view); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     protected synchronized void closeCamera() { | ||||
|         Log.i(LOGTAG, "closeCamera"); | ||||
|         if(mCamera != null) { | ||||
|             mCamera.stopPreview(); | ||||
|             mPreviewStarted = false; | ||||
|             mCamera.release(); | ||||
|             mCamera = null; | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     protected synchronized void openCamera(int id) { | ||||
|         Log.i(LOGTAG, "openCamera"); | ||||
|         closeCamera(); | ||||
|         if (id == CameraBridgeViewBase.CAMERA_ID_ANY) { | ||||
|             Log.d(LOGTAG, "Trying to open camera with old open()"); | ||||
|             try { | ||||
|                 mCamera = Camera.open(); | ||||
|             } | ||||
|             catch (Exception e){ | ||||
|                 Log.e(LOGTAG, "Camera is not available (in use or does not exist): " + e.getLocalizedMessage()); | ||||
|             } | ||||
| 
 | ||||
|             if(mCamera == null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) { | ||||
|                 boolean connected = false; | ||||
|                 for (int camIdx = 0; camIdx < Camera.getNumberOfCameras(); ++camIdx) { | ||||
|                     Log.d(LOGTAG, "Trying to open camera with new open(" + camIdx + ")"); | ||||
|                     try { | ||||
|                         mCamera = Camera.open(camIdx); | ||||
|                         connected = true; | ||||
|                     } catch (RuntimeException e) { | ||||
|                         Log.e(LOGTAG, "Camera #" + camIdx + "failed to open: " + e.getLocalizedMessage()); | ||||
|                     } | ||||
|                     if (connected) break; | ||||
|                 } | ||||
|             } | ||||
|         } else { | ||||
|             if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) { | ||||
|                 int localCameraIndex = mCameraIndex; | ||||
|                 if (mCameraIndex == CameraBridgeViewBase.CAMERA_ID_BACK) { | ||||
|                     Log.i(LOGTAG, "Trying to open BACK camera"); | ||||
|                     Camera.CameraInfo cameraInfo = new Camera.CameraInfo(); | ||||
|                     for (int camIdx = 0; camIdx < Camera.getNumberOfCameras(); ++camIdx) { | ||||
|                         Camera.getCameraInfo( camIdx, cameraInfo ); | ||||
|                         if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_BACK) { | ||||
|                             localCameraIndex = camIdx; | ||||
|                             break; | ||||
|                         } | ||||
|                     } | ||||
|                 } else if (mCameraIndex == CameraBridgeViewBase.CAMERA_ID_FRONT) { | ||||
|                     Log.i(LOGTAG, "Trying to open FRONT camera"); | ||||
|                     Camera.CameraInfo cameraInfo = new Camera.CameraInfo(); | ||||
|                     for (int camIdx = 0; camIdx < Camera.getNumberOfCameras(); ++camIdx) { | ||||
|                         Camera.getCameraInfo( camIdx, cameraInfo ); | ||||
|                         if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) { | ||||
|                             localCameraIndex = camIdx; | ||||
|                             break; | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|                 if (localCameraIndex == CameraBridgeViewBase.CAMERA_ID_BACK) { | ||||
|                     Log.e(LOGTAG, "Back camera not found!"); | ||||
|                 } else if (localCameraIndex == CameraBridgeViewBase.CAMERA_ID_FRONT) { | ||||
|                     Log.e(LOGTAG, "Front camera not found!"); | ||||
|                 } else { | ||||
|                     Log.d(LOGTAG, "Trying to open camera with new open(" + localCameraIndex + ")"); | ||||
|                     try { | ||||
|                         mCamera = Camera.open(localCameraIndex); | ||||
|                     } catch (RuntimeException e) { | ||||
|                         Log.e(LOGTAG, "Camera #" + localCameraIndex + "failed to open: " + e.getLocalizedMessage()); | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         if(mCamera == null) { | ||||
|             Log.e(LOGTAG, "Error: can't open camera"); | ||||
|             return; | ||||
|         } | ||||
|         Camera.Parameters params = mCamera.getParameters(); | ||||
|         List<String> FocusModes = params.getSupportedFocusModes(); | ||||
|         if (FocusModes != null && FocusModes.contains(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO)) | ||||
|         { | ||||
|             params.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO); | ||||
|         } | ||||
|         mCamera.setParameters(params); | ||||
| 
 | ||||
|         try { | ||||
|             mCamera.setPreviewTexture(mSTexture); | ||||
|         } catch (IOException ioe) { | ||||
|             Log.e(LOGTAG, "setPreviewTexture() failed: " + ioe.getMessage()); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public synchronized void setCameraPreviewSize(int width, int height) { | ||||
|         Log.i(LOGTAG, "setCameraPreviewSize: "+width+"x"+height); | ||||
|         if(mCamera == null) { | ||||
|             Log.e(LOGTAG, "Camera isn't initialized!"); | ||||
|             return; | ||||
|         } | ||||
| 
 | ||||
|         if(mMaxCameraWidth  > 0 && mMaxCameraWidth  < width)  width  = mMaxCameraWidth; | ||||
|         if(mMaxCameraHeight > 0 && mMaxCameraHeight < height) height = mMaxCameraHeight; | ||||
| 
 | ||||
|         Camera.Parameters param = mCamera.getParameters(); | ||||
|         List<Size> psize = param.getSupportedPreviewSizes(); | ||||
|         int bestWidth = 0, bestHeight = 0; | ||||
|         if (psize.size() > 0) { | ||||
|             float aspect = (float)width / height; | ||||
|             for (Size size : psize) { | ||||
|                 int w = size.width, h = size.height; | ||||
|                 Log.d(LOGTAG, "checking camera preview size: "+w+"x"+h); | ||||
|                 if ( w <= width && h <= height && | ||||
|                      w >= bestWidth && h >= bestHeight && | ||||
|                      Math.abs(aspect - (float)w/h) < 0.2 ) { | ||||
|                     bestWidth = w; | ||||
|                     bestHeight = h; | ||||
|                 } | ||||
|             } | ||||
|             if(bestWidth <= 0 || bestHeight <= 0) { | ||||
|                 bestWidth  = psize.get(0).width; | ||||
|                 bestHeight = psize.get(0).height; | ||||
|                 Log.e(LOGTAG, "Error: best size was not selected, using "+bestWidth+" x "+bestHeight); | ||||
|             } else { | ||||
|                 Log.i(LOGTAG, "Selected best size: "+bestWidth+" x "+bestHeight); | ||||
|             } | ||||
| 
 | ||||
|             if(mPreviewStarted) { | ||||
|                 mCamera.stopPreview(); | ||||
|                 mPreviewStarted = false; | ||||
|             } | ||||
|             mCameraWidth  = bestWidth; | ||||
|             mCameraHeight = bestHeight; | ||||
|             param.setPreviewSize(bestWidth, bestHeight); | ||||
|         } | ||||
|         param.set("orientation", "landscape"); | ||||
|         mCamera.setParameters(param); | ||||
|         mCamera.startPreview(); | ||||
|         mPreviewStarted = true; | ||||
|     } | ||||
| } | ||||
| @ -1,66 +0,0 @@ | ||||
| package org.opencv.android; | ||||
| 
 | ||||
| import java.text.DecimalFormat; | ||||
| 
 | ||||
| import org.opencv.core.Core; | ||||
| 
 | ||||
| import android.graphics.Canvas; | ||||
| import android.graphics.Color; | ||||
| import android.graphics.Paint; | ||||
| import android.util.Log; | ||||
| 
 | ||||
| public class FpsMeter { | ||||
|     private static final String TAG               = "FpsMeter"; | ||||
|     private static final int    STEP              = 20; | ||||
|     private static final DecimalFormat FPS_FORMAT = new DecimalFormat("0.00"); | ||||
| 
 | ||||
|     private int                 mFramesCouner; | ||||
|     private double              mFrequency; | ||||
|     private long                mprevFrameTime; | ||||
|     private String              mStrfps; | ||||
|     Paint                       mPaint; | ||||
|     boolean                     mIsInitialized = false; | ||||
|     int                         mWidth = 0; | ||||
|     int                         mHeight = 0; | ||||
| 
 | ||||
|     public void init() { | ||||
|         mFramesCouner = 0; | ||||
|         mFrequency = Core.getTickFrequency(); | ||||
|         mprevFrameTime = Core.getTickCount(); | ||||
|         mStrfps = ""; | ||||
| 
 | ||||
|         mPaint = new Paint(); | ||||
|         mPaint.setColor(Color.BLUE); | ||||
|         mPaint.setTextSize(20); | ||||
|     } | ||||
| 
 | ||||
|     public void measure() { | ||||
|         if (!mIsInitialized) { | ||||
|             init(); | ||||
|             mIsInitialized = true; | ||||
|         } else { | ||||
|             mFramesCouner++; | ||||
|             if (mFramesCouner % STEP == 0) { | ||||
|                 long time = Core.getTickCount(); | ||||
|                 double fps = STEP * mFrequency / (time - mprevFrameTime); | ||||
|                 mprevFrameTime = time; | ||||
|                 if (mWidth != 0 && mHeight != 0) | ||||
|                     mStrfps = FPS_FORMAT.format(fps) + " FPS@" + Integer.valueOf(mWidth) + "x" + Integer.valueOf(mHeight); | ||||
|                 else | ||||
|                     mStrfps = FPS_FORMAT.format(fps) + " FPS"; | ||||
|                 Log.i(TAG, mStrfps); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     public void setResolution(int width, int height) { | ||||
|         mWidth = width; | ||||
|         mHeight = height; | ||||
|     } | ||||
| 
 | ||||
|     public void draw(Canvas canvas, float offsetx, float offsety) { | ||||
|         Log.d(TAG, mStrfps); | ||||
|         canvas.drawText(mStrfps, offsetx, offsety, mPaint); | ||||
|     } | ||||
| 
 | ||||
| } | ||||
| @ -1,34 +0,0 @@ | ||||
| package org.opencv.android; | ||||
| 
 | ||||
| /** | ||||
|  * Installation callback interface. | ||||
|  */ | ||||
| public interface InstallCallbackInterface | ||||
| { | ||||
|     /** | ||||
|      * New package installation is required. | ||||
|      */ | ||||
|     static final int NEW_INSTALLATION = 0; | ||||
|     /** | ||||
|      * Current package installation is in progress. | ||||
|      */ | ||||
|     static final int INSTALLATION_PROGRESS = 1; | ||||
| 
 | ||||
|     /** | ||||
|      * Target package name. | ||||
|      * @return Return target package name. | ||||
|      */ | ||||
|     public String getPackageName(); | ||||
|     /** | ||||
|      * Installation is approved. | ||||
|      */ | ||||
|     public void install(); | ||||
|     /** | ||||
|      * Installation is canceled. | ||||
|      */ | ||||
|     public void cancel(); | ||||
|     /** | ||||
|      * Wait for package installation. | ||||
|      */ | ||||
|     public void wait_install(); | ||||
| }; | ||||
| @ -1,379 +0,0 @@ | ||||
| package org.opencv.android; | ||||
| 
 | ||||
| import java.util.List; | ||||
| 
 | ||||
| import android.content.Context; | ||||
| import android.graphics.ImageFormat; | ||||
| import android.graphics.SurfaceTexture; | ||||
| import android.hardware.Camera; | ||||
| import android.hardware.Camera.PreviewCallback; | ||||
| import android.os.Build; | ||||
| import android.util.AttributeSet; | ||||
| import android.util.Log; | ||||
| import android.view.ViewGroup.LayoutParams; | ||||
| 
 | ||||
| import org.opencv.BuildConfig; | ||||
| import org.opencv.core.CvType; | ||||
| import org.opencv.core.Mat; | ||||
| import org.opencv.core.Size; | ||||
| import org.opencv.imgproc.Imgproc; | ||||
| 
 | ||||
| /** | ||||
|  * This class is an implementation of the Bridge View between OpenCV and Java Camera. | ||||
|  * This class relays on the functionality available in base class and only implements | ||||
|  * required functions: | ||||
|  * connectCamera - opens Java camera and sets the PreviewCallback to be delivered. | ||||
|  * disconnectCamera - closes the camera and stops preview. | ||||
|  * When frame is delivered via callback from Camera - it processed via OpenCV to be | ||||
|  * converted to RGBA32 and then passed to the external callback for modifications if required. | ||||
|  */ | ||||
| public class JavaCameraView extends CameraBridgeViewBase implements PreviewCallback { | ||||
| 
 | ||||
|     private static final int MAGIC_TEXTURE_ID = 10; | ||||
|     private static final String TAG = "JavaCameraView"; | ||||
| 
 | ||||
|     private byte mBuffer[]; | ||||
|     private Mat[] mFrameChain; | ||||
|     private int mChainIdx = 0; | ||||
|     private Thread mThread; | ||||
|     private boolean mStopThread; | ||||
| 
 | ||||
|     protected Camera mCamera; | ||||
|     protected JavaCameraFrame[] mCameraFrame; | ||||
|     private SurfaceTexture mSurfaceTexture; | ||||
|     private int mPreviewFormat = ImageFormat.NV21; | ||||
| 
 | ||||
|     public static class JavaCameraSizeAccessor implements ListItemAccessor { | ||||
| 
 | ||||
|         @Override | ||||
|         public int getWidth(Object obj) { | ||||
|             Camera.Size size = (Camera.Size) obj; | ||||
|             return size.width; | ||||
|         } | ||||
| 
 | ||||
|         @Override | ||||
|         public int getHeight(Object obj) { | ||||
|             Camera.Size size = (Camera.Size) obj; | ||||
|             return size.height; | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     public JavaCameraView(Context context, int cameraId) { | ||||
|         super(context, cameraId); | ||||
|     } | ||||
| 
 | ||||
|     public JavaCameraView(Context context, AttributeSet attrs) { | ||||
|         super(context, attrs); | ||||
|     } | ||||
| 
 | ||||
|     protected boolean initializeCamera(int width, int height) { | ||||
|         Log.d(TAG, "Initialize java camera"); | ||||
|         boolean result = true; | ||||
|         synchronized (this) { | ||||
|             mCamera = null; | ||||
| 
 | ||||
|             if (mCameraIndex == CAMERA_ID_ANY) { | ||||
|                 Log.d(TAG, "Trying to open camera with old open()"); | ||||
|                 try { | ||||
|                     mCamera = Camera.open(); | ||||
|                 } | ||||
|                 catch (Exception e){ | ||||
|                     Log.e(TAG, "Camera is not available (in use or does not exist): " + e.getLocalizedMessage()); | ||||
|                 } | ||||
| 
 | ||||
|                 if(mCamera == null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) { | ||||
|                     boolean connected = false; | ||||
|                     for (int camIdx = 0; camIdx < Camera.getNumberOfCameras(); ++camIdx) { | ||||
|                         Log.d(TAG, "Trying to open camera with new open(" + Integer.valueOf(camIdx) + ")"); | ||||
|                         try { | ||||
|                             mCamera = Camera.open(camIdx); | ||||
|                             connected = true; | ||||
|                         } catch (RuntimeException e) { | ||||
|                             Log.e(TAG, "Camera #" + camIdx + "failed to open: " + e.getLocalizedMessage()); | ||||
|                         } | ||||
|                         if (connected) break; | ||||
|                     } | ||||
|                 } | ||||
|             } else { | ||||
|                 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) { | ||||
|                     int localCameraIndex = mCameraIndex; | ||||
|                     if (mCameraIndex == CAMERA_ID_BACK) { | ||||
|                         Log.i(TAG, "Trying to open back camera"); | ||||
|                         Camera.CameraInfo cameraInfo = new Camera.CameraInfo(); | ||||
|                         for (int camIdx = 0; camIdx < Camera.getNumberOfCameras(); ++camIdx) { | ||||
|                             Camera.getCameraInfo( camIdx, cameraInfo ); | ||||
|                             if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_BACK) { | ||||
|                                 localCameraIndex = camIdx; | ||||
|                                 break; | ||||
|                             } | ||||
|                         } | ||||
|                     } else if (mCameraIndex == CAMERA_ID_FRONT) { | ||||
|                         Log.i(TAG, "Trying to open front camera"); | ||||
|                         Camera.CameraInfo cameraInfo = new Camera.CameraInfo(); | ||||
|                         for (int camIdx = 0; camIdx < Camera.getNumberOfCameras(); ++camIdx) { | ||||
|                             Camera.getCameraInfo( camIdx, cameraInfo ); | ||||
|                             if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) { | ||||
|                                 localCameraIndex = camIdx; | ||||
|                                 break; | ||||
|                             } | ||||
|                         } | ||||
|                     } | ||||
|                     if (localCameraIndex == CAMERA_ID_BACK) { | ||||
|                         Log.e(TAG, "Back camera not found!"); | ||||
|                     } else if (localCameraIndex == CAMERA_ID_FRONT) { | ||||
|                         Log.e(TAG, "Front camera not found!"); | ||||
|                     } else { | ||||
|                         Log.d(TAG, "Trying to open camera with new open(" + Integer.valueOf(localCameraIndex) + ")"); | ||||
|                         try { | ||||
|                             mCamera = Camera.open(localCameraIndex); | ||||
|                         } catch (RuntimeException e) { | ||||
|                             Log.e(TAG, "Camera #" + localCameraIndex + "failed to open: " + e.getLocalizedMessage()); | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
| 
 | ||||
|             if (mCamera == null) | ||||
|                 return false; | ||||
| 
 | ||||
|             /* Now set camera parameters */ | ||||
|             try { | ||||
|                 Camera.Parameters params = mCamera.getParameters(); | ||||
|                 Log.d(TAG, "getSupportedPreviewSizes()"); | ||||
|                 List<android.hardware.Camera.Size> sizes = params.getSupportedPreviewSizes(); | ||||
| 
 | ||||
|                 if (sizes != null) { | ||||
|                     /* Select the size that fits surface considering maximum size allowed */ | ||||
|                     Size frameSize = calculateCameraFrameSize(sizes, new JavaCameraSizeAccessor(), width, height); | ||||
| 
 | ||||
|                     /* Image format NV21 causes issues in the Android emulators */ | ||||
|                     if (Build.FINGERPRINT.startsWith("generic") | ||||
|                             || Build.FINGERPRINT.startsWith("unknown") | ||||
|                             || Build.MODEL.contains("google_sdk") | ||||
|                             || Build.MODEL.contains("Emulator") | ||||
|                             || Build.MODEL.contains("Android SDK built for x86") | ||||
|                             || Build.MANUFACTURER.contains("Genymotion") | ||||
|                             || (Build.BRAND.startsWith("generic") && Build.DEVICE.startsWith("generic")) | ||||
|                             || "google_sdk".equals(Build.PRODUCT)) | ||||
|                         params.setPreviewFormat(ImageFormat.YV12);  // "generic" or "android" = android emulator
 | ||||
|                     else | ||||
|                         params.setPreviewFormat(ImageFormat.NV21); | ||||
| 
 | ||||
|                     mPreviewFormat = params.getPreviewFormat(); | ||||
| 
 | ||||
|                     Log.d(TAG, "Set preview size to " + Integer.valueOf((int)frameSize.width) + "x" + Integer.valueOf((int)frameSize.height)); | ||||
|                     params.setPreviewSize((int)frameSize.width, (int)frameSize.height); | ||||
| 
 | ||||
|                     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH && !android.os.Build.MODEL.equals("GT-I9100")) | ||||
|                         params.setRecordingHint(true); | ||||
| 
 | ||||
|                     List<String> FocusModes = params.getSupportedFocusModes(); | ||||
|                     if (FocusModes != null && FocusModes.contains(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO)) | ||||
|                     { | ||||
|                         params.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO); | ||||
|                     } | ||||
| 
 | ||||
|                     mCamera.setParameters(params); | ||||
|                     params = mCamera.getParameters(); | ||||
| 
 | ||||
|                     mFrameWidth = params.getPreviewSize().width; | ||||
|                     mFrameHeight = params.getPreviewSize().height; | ||||
| 
 | ||||
|                     if ((getLayoutParams().width == LayoutParams.MATCH_PARENT) && (getLayoutParams().height == LayoutParams.MATCH_PARENT)) | ||||
|                         mScale = Math.min(((float)height)/mFrameHeight, ((float)width)/mFrameWidth); | ||||
|                     else | ||||
|                         mScale = 0; | ||||
| 
 | ||||
|                     if (mFpsMeter != null) { | ||||
|                         mFpsMeter.setResolution(mFrameWidth, mFrameHeight); | ||||
|                     } | ||||
| 
 | ||||
|                     int size = mFrameWidth * mFrameHeight; | ||||
|                     size  = size * ImageFormat.getBitsPerPixel(params.getPreviewFormat()) / 8; | ||||
|                     mBuffer = new byte[size]; | ||||
| 
 | ||||
|                     mCamera.addCallbackBuffer(mBuffer); | ||||
|                     mCamera.setPreviewCallbackWithBuffer(this); | ||||
| 
 | ||||
|                     mFrameChain = new Mat[2]; | ||||
|                     mFrameChain[0] = new Mat(mFrameHeight + (mFrameHeight/2), mFrameWidth, CvType.CV_8UC1); | ||||
|                     mFrameChain[1] = new Mat(mFrameHeight + (mFrameHeight/2), mFrameWidth, CvType.CV_8UC1); | ||||
| 
 | ||||
|                     AllocateCache(); | ||||
| 
 | ||||
|                     mCameraFrame = new JavaCameraFrame[2]; | ||||
|                     mCameraFrame[0] = new JavaCameraFrame(mFrameChain[0], mFrameWidth, mFrameHeight); | ||||
|                     mCameraFrame[1] = new JavaCameraFrame(mFrameChain[1], mFrameWidth, mFrameHeight); | ||||
| 
 | ||||
|                     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { | ||||
|                         mSurfaceTexture = new SurfaceTexture(MAGIC_TEXTURE_ID); | ||||
|                         mCamera.setPreviewTexture(mSurfaceTexture); | ||||
|                     } else | ||||
|                        mCamera.setPreviewDisplay(null); | ||||
| 
 | ||||
|                     /* Finally we are ready to start the preview */ | ||||
|                     Log.d(TAG, "startPreview"); | ||||
|                     mCamera.startPreview(); | ||||
|                 } | ||||
|                 else | ||||
|                     result = false; | ||||
|             } catch (Exception e) { | ||||
|                 result = false; | ||||
|                 e.printStackTrace(); | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         return result; | ||||
|     } | ||||
| 
 | ||||
|     protected void releaseCamera() { | ||||
|         synchronized (this) { | ||||
|             if (mCamera != null) { | ||||
|                 mCamera.stopPreview(); | ||||
|                 mCamera.setPreviewCallback(null); | ||||
| 
 | ||||
|                 mCamera.release(); | ||||
|             } | ||||
|             mCamera = null; | ||||
|             if (mFrameChain != null) { | ||||
|                 mFrameChain[0].release(); | ||||
|                 mFrameChain[1].release(); | ||||
|             } | ||||
|             if (mCameraFrame != null) { | ||||
|                 mCameraFrame[0].release(); | ||||
|                 mCameraFrame[1].release(); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     private boolean mCameraFrameReady = false; | ||||
| 
 | ||||
|     @Override | ||||
|     protected boolean connectCamera(int width, int height) { | ||||
| 
 | ||||
|         /* 1. We need to instantiate camera | ||||
|          * 2. We need to start thread which will be getting frames | ||||
|          */ | ||||
|         /* First step - initialize camera connection */ | ||||
|         Log.d(TAG, "Connecting to camera"); | ||||
|         if (!initializeCamera(width, height)) | ||||
|             return false; | ||||
| 
 | ||||
|         mCameraFrameReady = false; | ||||
| 
 | ||||
|         /* now we can start update thread */ | ||||
|         Log.d(TAG, "Starting processing thread"); | ||||
|         mStopThread = false; | ||||
|         mThread = new Thread(new CameraWorker()); | ||||
|         mThread.start(); | ||||
| 
 | ||||
|         return true; | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     protected void disconnectCamera() { | ||||
|         /* 1. We need to stop thread which updating the frames | ||||
|          * 2. Stop camera and release it | ||||
|          */ | ||||
|         Log.d(TAG, "Disconnecting from camera"); | ||||
|         try { | ||||
|             mStopThread = true; | ||||
|             Log.d(TAG, "Notify thread"); | ||||
|             synchronized (this) { | ||||
|                 this.notify(); | ||||
|             } | ||||
|             Log.d(TAG, "Waiting for thread"); | ||||
|             if (mThread != null) | ||||
|                 mThread.join(); | ||||
|         } catch (InterruptedException e) { | ||||
|             e.printStackTrace(); | ||||
|         } finally { | ||||
|             mThread =  null; | ||||
|         } | ||||
| 
 | ||||
|         /* Now release camera */ | ||||
|         releaseCamera(); | ||||
| 
 | ||||
|         mCameraFrameReady = false; | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public void onPreviewFrame(byte[] frame, Camera arg1) { | ||||
|         if (BuildConfig.DEBUG) | ||||
|             Log.d(TAG, "Preview Frame received. Frame size: " + frame.length); | ||||
|         synchronized (this) { | ||||
|             mFrameChain[mChainIdx].put(0, 0, frame); | ||||
|             mCameraFrameReady = true; | ||||
|             this.notify(); | ||||
|         } | ||||
|         if (mCamera != null) | ||||
|             mCamera.addCallbackBuffer(mBuffer); | ||||
|     } | ||||
| 
 | ||||
|     private class JavaCameraFrame implements CvCameraViewFrame { | ||||
|         @Override | ||||
|         public Mat gray() { | ||||
|             return mYuvFrameData.submat(0, mHeight, 0, mWidth); | ||||
|         } | ||||
| 
 | ||||
|         @Override | ||||
|         public Mat rgba() { | ||||
|             if (mPreviewFormat == ImageFormat.NV21) | ||||
|                 Imgproc.cvtColor(mYuvFrameData, mRgba, Imgproc.COLOR_YUV2RGBA_NV21, 4); | ||||
|             else if (mPreviewFormat == ImageFormat.YV12) | ||||
|                 Imgproc.cvtColor(mYuvFrameData, mRgba, Imgproc.COLOR_YUV2RGB_I420, 4);  // COLOR_YUV2RGBA_YV12 produces inverted colors
 | ||||
|             else | ||||
|                 throw new IllegalArgumentException("Preview Format can be NV21 or YV12"); | ||||
| 
 | ||||
|             return mRgba; | ||||
|         } | ||||
| 
 | ||||
|         public JavaCameraFrame(Mat Yuv420sp, int width, int height) { | ||||
|             super(); | ||||
|             mWidth = width; | ||||
|             mHeight = height; | ||||
|             mYuvFrameData = Yuv420sp; | ||||
|             mRgba = new Mat(); | ||||
|         } | ||||
| 
 | ||||
|         public void release() { | ||||
|             mRgba.release(); | ||||
|         } | ||||
| 
 | ||||
|         private Mat mYuvFrameData; | ||||
|         private Mat mRgba; | ||||
|         private int mWidth; | ||||
|         private int mHeight; | ||||
|     }; | ||||
| 
 | ||||
|     private class CameraWorker implements Runnable { | ||||
| 
 | ||||
|         @Override | ||||
|         public void run() { | ||||
|             do { | ||||
|                 boolean hasFrame = false; | ||||
|                 synchronized (JavaCameraView.this) { | ||||
|                     try { | ||||
|                         while (!mCameraFrameReady && !mStopThread) { | ||||
|                             JavaCameraView.this.wait(); | ||||
|                         } | ||||
|                     } catch (InterruptedException e) { | ||||
|                         e.printStackTrace(); | ||||
|                     } | ||||
|                     if (mCameraFrameReady) | ||||
|                     { | ||||
|                         mChainIdx = 1 - mChainIdx; | ||||
|                         mCameraFrameReady = false; | ||||
|                         hasFrame = true; | ||||
|                     } | ||||
|                 } | ||||
| 
 | ||||
|                 if (!mStopThread && hasFrame) { | ||||
|                     if (!mFrameChain[1 - mChainIdx].empty()) | ||||
|                         deliverAndDrawFrame(mCameraFrame[1 - mChainIdx]); | ||||
|                 } | ||||
|             } while (!mStopThread); | ||||
|             Log.d(TAG, "Finish processing thread"); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @ -1,40 +0,0 @@ | ||||
| package org.opencv.android; | ||||
| 
 | ||||
| /** | ||||
|  * Interface for callback object in case of asynchronous initialization of OpenCV. | ||||
|  */ | ||||
| public interface LoaderCallbackInterface | ||||
| { | ||||
|     /** | ||||
|      * OpenCV initialization finished successfully. | ||||
|      */ | ||||
|     static final int SUCCESS = 0; | ||||
|     /** | ||||
|      * Google Play Market cannot be invoked. | ||||
|      */ | ||||
|     static final int MARKET_ERROR = 2; | ||||
|     /** | ||||
|      * OpenCV library installation has been canceled by the user. | ||||
|      */ | ||||
|     static final int INSTALL_CANCELED = 3; | ||||
|     /** | ||||
|      * This version of OpenCV Manager Service is incompatible with the app. Possibly, a service update is required. | ||||
|      */ | ||||
|     static final int INCOMPATIBLE_MANAGER_VERSION = 4; | ||||
|     /** | ||||
|      * OpenCV library initialization has failed. | ||||
|      */ | ||||
|     static final int INIT_FAILED = 0xff; | ||||
| 
 | ||||
|     /** | ||||
|      * Callback method, called after OpenCV library initialization. | ||||
|      * @param status status of initialization (see initialization status constants). | ||||
|      */ | ||||
|     public void onManagerConnected(int status); | ||||
| 
 | ||||
|     /** | ||||
|      * Callback method, called in case the package installation is needed. | ||||
|      * @param callback answer object with approve and cancel methods and the package description. | ||||
|      */ | ||||
|     public void onPackageInstall(final int operation, InstallCallbackInterface callback); | ||||
| }; | ||||
| @ -1,132 +0,0 @@ | ||||
| package org.opencv.android; | ||||
| 
 | ||||
| import android.content.Context; | ||||
| 
 | ||||
| /** | ||||
|  * Helper class provides common initialization methods for OpenCV library. | ||||
|  */ | ||||
| public class OpenCVLoader | ||||
| { | ||||
|     /** | ||||
|      * OpenCV Library version 2.4.2. | ||||
|      */ | ||||
|     public static final String OPENCV_VERSION_2_4_2 = "2.4.2"; | ||||
| 
 | ||||
|     /** | ||||
|      * OpenCV Library version 2.4.3. | ||||
|      */ | ||||
|     public static final String OPENCV_VERSION_2_4_3 = "2.4.3"; | ||||
| 
 | ||||
|     /** | ||||
|      * OpenCV Library version 2.4.4. | ||||
|      */ | ||||
|     public static final String OPENCV_VERSION_2_4_4 = "2.4.4"; | ||||
| 
 | ||||
|     /** | ||||
|      * OpenCV Library version 2.4.5. | ||||
|      */ | ||||
|     public static final String OPENCV_VERSION_2_4_5 = "2.4.5"; | ||||
| 
 | ||||
|     /** | ||||
|      * OpenCV Library version 2.4.6. | ||||
|      */ | ||||
|     public static final String OPENCV_VERSION_2_4_6 = "2.4.6"; | ||||
| 
 | ||||
|     /** | ||||
|      * OpenCV Library version 2.4.7. | ||||
|      */ | ||||
|     public static final String OPENCV_VERSION_2_4_7 = "2.4.7"; | ||||
| 
 | ||||
|     /** | ||||
|      * OpenCV Library version 2.4.8. | ||||
|      */ | ||||
|     public static final String OPENCV_VERSION_2_4_8 = "2.4.8"; | ||||
| 
 | ||||
|     /** | ||||
|      * OpenCV Library version 2.4.9. | ||||
|      */ | ||||
|     public static final String OPENCV_VERSION_2_4_9 = "2.4.9"; | ||||
| 
 | ||||
|     /** | ||||
|      * OpenCV Library version 2.4.10. | ||||
|      */ | ||||
|     public static final String OPENCV_VERSION_2_4_10 = "2.4.10"; | ||||
| 
 | ||||
|     /** | ||||
|      * OpenCV Library version 2.4.11. | ||||
|      */ | ||||
|     public static final String OPENCV_VERSION_2_4_11 = "2.4.11"; | ||||
| 
 | ||||
|     /** | ||||
|      * OpenCV Library version 2.4.12. | ||||
|      */ | ||||
|     public static final String OPENCV_VERSION_2_4_12 = "2.4.12"; | ||||
| 
 | ||||
|     /** | ||||
|      * OpenCV Library version 2.4.13. | ||||
|      */ | ||||
|     public static final String OPENCV_VERSION_2_4_13 = "2.4.13"; | ||||
| 
 | ||||
|     /** | ||||
|      * OpenCV Library version 3.0.0. | ||||
|      */ | ||||
|     public static final String OPENCV_VERSION_3_0_0 = "3.0.0"; | ||||
| 
 | ||||
|     /** | ||||
|      * OpenCV Library version 3.1.0. | ||||
|      */ | ||||
|     public static final String OPENCV_VERSION_3_1_0 = "3.1.0"; | ||||
| 
 | ||||
|     /** | ||||
|      * OpenCV Library version 3.2.0. | ||||
|      */ | ||||
|     public static final String OPENCV_VERSION_3_2_0 = "3.2.0"; | ||||
| 
 | ||||
|     /** | ||||
|      * OpenCV Library version 3.3.0. | ||||
|      */ | ||||
|     public static final String OPENCV_VERSION_3_3_0 = "3.3.0"; | ||||
| 
 | ||||
|     /** | ||||
|      * OpenCV Library version 3.4.0. | ||||
|      */ | ||||
|     public static final String OPENCV_VERSION_3_4_0 = "3.4.0"; | ||||
| 
 | ||||
|     /** | ||||
|      * Current OpenCV Library version | ||||
|      */ | ||||
|     public static final String OPENCV_VERSION = "3.4.0"; | ||||
| 
 | ||||
| 
 | ||||
|     /** | ||||
|      * Loads and initializes OpenCV library from current application package. Roughly, it's an analog of system.loadLibrary("opencv_java"). | ||||
|      * @return Returns true is initialization of OpenCV was successful. | ||||
|      */ | ||||
|     public static boolean initDebug() | ||||
|     { | ||||
|         return StaticHelper.initOpenCV(false); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Loads and initializes OpenCV library from current application package. Roughly, it's an analog of system.loadLibrary("opencv_java"). | ||||
|      * @param InitCuda load and initialize CUDA runtime libraries. | ||||
|      * @return Returns true is initialization of OpenCV was successful. | ||||
|      */ | ||||
|     public static boolean initDebug(boolean InitCuda) | ||||
|     { | ||||
|         return StaticHelper.initOpenCV(InitCuda); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Loads and initializes OpenCV library using OpenCV Engine service. | ||||
|      * @param Version OpenCV library version. | ||||
|      * @param AppContext application context for connecting to the service. | ||||
|      * @param Callback object, that implements LoaderCallbackInterface for handling the connection status. | ||||
|      * @return Returns true if initialization of OpenCV is successful. | ||||
|      */ | ||||
|     public static boolean initAsync(String Version, Context AppContext, | ||||
|             LoaderCallbackInterface Callback) | ||||
|     { | ||||
|         return AsyncServiceHelper.initOpenCV(Version, AppContext, Callback); | ||||
|     } | ||||
| } | ||||
| @ -1,104 +0,0 @@ | ||||
| package org.opencv.android; | ||||
| 
 | ||||
| import org.opencv.core.Core; | ||||
| 
 | ||||
| import java.util.StringTokenizer; | ||||
| import android.util.Log; | ||||
| 
 | ||||
| class StaticHelper { | ||||
| 
 | ||||
|     public static boolean initOpenCV(boolean InitCuda) | ||||
|     { | ||||
|         boolean result; | ||||
|         String libs = ""; | ||||
| 
 | ||||
|         if(InitCuda) | ||||
|         { | ||||
|             loadLibrary("cudart"); | ||||
|             loadLibrary("nppc"); | ||||
|             loadLibrary("nppi"); | ||||
|             loadLibrary("npps"); | ||||
|             loadLibrary("cufft"); | ||||
|             loadLibrary("cublas"); | ||||
|         } | ||||
| 
 | ||||
|         Log.d(TAG, "Trying to get library list"); | ||||
| 
 | ||||
|         try | ||||
|         { | ||||
|             System.loadLibrary("opencv_info"); | ||||
|             libs = getLibraryList(); | ||||
|         } | ||||
|         catch(UnsatisfiedLinkError e) | ||||
|         { | ||||
|             Log.e(TAG, "OpenCV error: Cannot load info library for OpenCV"); | ||||
|         } | ||||
| 
 | ||||
|         Log.d(TAG, "Library list: \"" + libs + "\""); | ||||
|         Log.d(TAG, "First attempt to load libs"); | ||||
|         if (initOpenCVLibs(libs)) | ||||
|         { | ||||
|             Log.d(TAG, "First attempt to load libs is OK"); | ||||
|             String eol = System.getProperty("line.separator"); | ||||
|             for (String str : Core.getBuildInformation().split(eol)) | ||||
|                 Log.i(TAG, str); | ||||
| 
 | ||||
|             result = true; | ||||
|         } | ||||
|         else | ||||
|         { | ||||
|             Log.d(TAG, "First attempt to load libs fails"); | ||||
|             result = false; | ||||
|         } | ||||
| 
 | ||||
|         return result; | ||||
|     } | ||||
| 
 | ||||
|     private static boolean loadLibrary(String Name) | ||||
|     { | ||||
|         boolean result = true; | ||||
| 
 | ||||
|         Log.d(TAG, "Trying to load library " + Name); | ||||
|         try | ||||
|         { | ||||
|             System.loadLibrary(Name); | ||||
|             Log.d(TAG, "Library " + Name + " loaded"); | ||||
|         } | ||||
|         catch(UnsatisfiedLinkError e) | ||||
|         { | ||||
|             Log.d(TAG, "Cannot load library \"" + Name + "\""); | ||||
|             e.printStackTrace(); | ||||
|             result &= false; | ||||
|         } | ||||
| 
 | ||||
|         return result; | ||||
|     } | ||||
| 
 | ||||
|     private static boolean initOpenCVLibs(String Libs) | ||||
|     { | ||||
|         Log.d(TAG, "Trying to init OpenCV libs"); | ||||
| 
 | ||||
|         boolean result = true; | ||||
| 
 | ||||
|         if ((null != Libs) && (Libs.length() != 0)) | ||||
|         { | ||||
|             Log.d(TAG, "Trying to load libs by dependency list"); | ||||
|             StringTokenizer splitter = new StringTokenizer(Libs, ";"); | ||||
|             while(splitter.hasMoreTokens()) | ||||
|             { | ||||
|                 result &= loadLibrary(splitter.nextToken()); | ||||
|             } | ||||
|         } | ||||
|         else | ||||
|         { | ||||
|             // If dependencies list is not defined or empty.
 | ||||
|             result &= loadLibrary("opencv_java3"); | ||||
|         } | ||||
| 
 | ||||
|         return result; | ||||
|     } | ||||
| 
 | ||||
|     private static final String TAG = "OpenCV/StaticHelper"; | ||||
| 
 | ||||
|     private static native String getLibraryList(); | ||||
| } | ||||
| @ -1,139 +0,0 @@ | ||||
| package org.opencv.android; | ||||
| 
 | ||||
| import android.content.Context; | ||||
| import android.graphics.Bitmap; | ||||
| 
 | ||||
| import org.opencv.core.CvException; | ||||
| import org.opencv.core.CvType; | ||||
| import org.opencv.core.Mat; | ||||
| import org.opencv.imgcodecs.Imgcodecs; | ||||
| 
 | ||||
| import java.io.ByteArrayOutputStream; | ||||
| import java.io.File; | ||||
| import java.io.FileOutputStream; | ||||
| import java.io.IOException; | ||||
| import java.io.InputStream; | ||||
| 
 | ||||
| public class Utils { | ||||
| 
 | ||||
|     public static String exportResource(Context context, int resourceId) { | ||||
|         return exportResource(context, resourceId, "OpenCV_data"); | ||||
|     } | ||||
| 
 | ||||
|     public static String exportResource(Context context, int resourceId, String dirname) { | ||||
|         String fullname = context.getResources().getString(resourceId); | ||||
|         String resName = fullname.substring(fullname.lastIndexOf("/") + 1); | ||||
|         try { | ||||
|             InputStream is = context.getResources().openRawResource(resourceId); | ||||
|             File resDir = context.getDir(dirname, Context.MODE_PRIVATE); | ||||
|             File resFile = new File(resDir, resName); | ||||
| 
 | ||||
|             FileOutputStream os = new FileOutputStream(resFile); | ||||
| 
 | ||||
|             byte[] buffer = new byte[4096]; | ||||
|             int bytesRead; | ||||
|             while ((bytesRead = is.read(buffer)) != -1) { | ||||
|                 os.write(buffer, 0, bytesRead); | ||||
|             } | ||||
|             is.close(); | ||||
|             os.close(); | ||||
| 
 | ||||
|             return resFile.getAbsolutePath(); | ||||
|         } catch (IOException e) { | ||||
|             e.printStackTrace(); | ||||
|             throw new CvException("Failed to export resource " + resName | ||||
|                     + ". Exception thrown: " + e); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     public static Mat loadResource(Context context, int resourceId) throws IOException | ||||
|     { | ||||
|         return loadResource(context, resourceId, -1); | ||||
|     } | ||||
| 
 | ||||
|     public static Mat loadResource(Context context, int resourceId, int flags) throws IOException | ||||
|     { | ||||
|         InputStream is = context.getResources().openRawResource(resourceId); | ||||
|         ByteArrayOutputStream os = new ByteArrayOutputStream(is.available()); | ||||
| 
 | ||||
|         byte[] buffer = new byte[4096]; | ||||
|         int bytesRead; | ||||
|         while ((bytesRead = is.read(buffer)) != -1) { | ||||
|             os.write(buffer, 0, bytesRead); | ||||
|         } | ||||
|         is.close(); | ||||
| 
 | ||||
|         Mat encoded = new Mat(1, os.size(), CvType.CV_8U); | ||||
|         encoded.put(0, 0, os.toByteArray()); | ||||
|         os.close(); | ||||
| 
 | ||||
|         Mat decoded = Imgcodecs.imdecode(encoded, flags); | ||||
|         encoded.release(); | ||||
| 
 | ||||
|         return decoded; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Converts Android Bitmap to OpenCV Mat. | ||||
|      * <p> | ||||
|      * This function converts an Android Bitmap image to the OpenCV Mat. | ||||
|      * <br>'ARGB_8888' and 'RGB_565' input Bitmap formats are supported. | ||||
|      * <br>The output Mat is always created of the same size as the input Bitmap and of the 'CV_8UC4' type, | ||||
|      * it keeps the image in RGBA format. | ||||
|      * <br>This function throws an exception if the conversion fails. | ||||
|      * @param bmp is a valid input Bitmap object of the type 'ARGB_8888' or 'RGB_565'. | ||||
|      * @param mat is a valid output Mat object, it will be reallocated if needed, so it may be empty. | ||||
|      * @param unPremultiplyAlpha is a flag, that determines, whether the bitmap needs to be converted from alpha premultiplied format (like Android keeps 'ARGB_8888' ones) to regular one; this flag is ignored for 'RGB_565' bitmaps. | ||||
|      */ | ||||
|     public static void bitmapToMat(Bitmap bmp, Mat mat, boolean unPremultiplyAlpha) { | ||||
|         if (bmp == null) | ||||
|             throw new java.lang.IllegalArgumentException("bmp == null"); | ||||
|         if (mat == null) | ||||
|             throw new java.lang.IllegalArgumentException("mat == null"); | ||||
|         nBitmapToMat2(bmp, mat.nativeObj, unPremultiplyAlpha); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Short form of the bitmapToMat(bmp, mat, unPremultiplyAlpha=false). | ||||
|      * @param bmp is a valid input Bitmap object of the type 'ARGB_8888' or 'RGB_565'. | ||||
|      * @param mat is a valid output Mat object, it will be reallocated if needed, so Mat may be empty. | ||||
|      */ | ||||
|     public static void bitmapToMat(Bitmap bmp, Mat mat) { | ||||
|         bitmapToMat(bmp, mat, false); | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     /** | ||||
|      * Converts OpenCV Mat to Android Bitmap. | ||||
|      * <p> | ||||
|      * <br>This function converts an image in the OpenCV Mat representation to the Android Bitmap. | ||||
|      * <br>The input Mat object has to be of the types 'CV_8UC1' (gray-scale), 'CV_8UC3' (RGB) or 'CV_8UC4' (RGBA). | ||||
|      * <br>The output Bitmap object has to be of the same size as the input Mat and of the types 'ARGB_8888' or 'RGB_565'. | ||||
|      * <br>This function throws an exception if the conversion fails. | ||||
|      * | ||||
|      * @param mat is a valid input Mat object of types 'CV_8UC1', 'CV_8UC3' or 'CV_8UC4'. | ||||
|      * @param bmp is a valid Bitmap object of the same size as the Mat and of type 'ARGB_8888' or 'RGB_565'. | ||||
|      * @param premultiplyAlpha is a flag, that determines, whether the Mat needs to be converted to alpha premultiplied format (like Android keeps 'ARGB_8888' bitmaps); the flag is ignored for 'RGB_565' bitmaps. | ||||
|      */ | ||||
|     public static void matToBitmap(Mat mat, Bitmap bmp, boolean premultiplyAlpha) { | ||||
|         if (mat == null) | ||||
|             throw new java.lang.IllegalArgumentException("mat == null"); | ||||
|         if (bmp == null) | ||||
|             throw new java.lang.IllegalArgumentException("bmp == null"); | ||||
|         nMatToBitmap2(mat.nativeObj, bmp, premultiplyAlpha); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Short form of the <b>matToBitmap(mat, bmp, premultiplyAlpha=false)</b> | ||||
|      * @param mat is a valid input Mat object of the types 'CV_8UC1', 'CV_8UC3' or 'CV_8UC4'. | ||||
|      * @param bmp is a valid Bitmap object of the same size as the Mat and of type 'ARGB_8888' or 'RGB_565'. | ||||
|      */ | ||||
|     public static void matToBitmap(Mat mat, Bitmap bmp) { | ||||
|         matToBitmap(mat, bmp, false); | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     private static native void nBitmapToMat2(Bitmap b, long m_addr, boolean unPremultiplyAlpha); | ||||
| 
 | ||||
|     private static native void nMatToBitmap2(long m_addr, Bitmap b, boolean premultiplyAlpha); | ||||
| } | ||||
									
										
											File diff suppressed because it is too large
											Load Diff
										
									
								
							
						| @ -1,331 +0,0 @@ | ||||
| 
 | ||||
| //
 | ||||
| // This file is auto-generated. Please don't modify it!
 | ||||
| //
 | ||||
| package org.opencv.calib3d; | ||||
| 
 | ||||
| import org.opencv.core.Rect; | ||||
| 
 | ||||
| // C++: class StereoBM
 | ||||
| //javadoc: StereoBM
 | ||||
| 
 | ||||
| public class StereoBM extends StereoMatcher { | ||||
| 
 | ||||
|     protected StereoBM(long addr) { super(addr); } | ||||
| 
 | ||||
| 
 | ||||
|     public static final int | ||||
|             PREFILTER_NORMALIZED_RESPONSE = 0, | ||||
|             PREFILTER_XSOBEL = 1; | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++: static Ptr_StereoBM create(int numDisparities = 0, int blockSize = 21)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoBM::create(numDisparities, blockSize)
 | ||||
|     public static StereoBM create(int numDisparities, int blockSize) | ||||
|     { | ||||
|          | ||||
|         StereoBM retVal = new StereoBM(create_0(numDisparities, blockSize)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: StereoBM::create()
 | ||||
|     public static StereoBM create() | ||||
|     { | ||||
|          | ||||
|         StereoBM retVal = new StereoBM(create_1()); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  Rect getROI1()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoBM::getROI1()
 | ||||
|     public  Rect getROI1() | ||||
|     { | ||||
|          | ||||
|         Rect retVal = new Rect(getROI1_0(nativeObj)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  Rect getROI2()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoBM::getROI2()
 | ||||
|     public  Rect getROI2() | ||||
|     { | ||||
|          | ||||
|         Rect retVal = new Rect(getROI2_0(nativeObj)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int getPreFilterCap()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoBM::getPreFilterCap()
 | ||||
|     public  int getPreFilterCap() | ||||
|     { | ||||
|          | ||||
|         int retVal = getPreFilterCap_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int getPreFilterSize()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoBM::getPreFilterSize()
 | ||||
|     public  int getPreFilterSize() | ||||
|     { | ||||
|          | ||||
|         int retVal = getPreFilterSize_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int getPreFilterType()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoBM::getPreFilterType()
 | ||||
|     public  int getPreFilterType() | ||||
|     { | ||||
|          | ||||
|         int retVal = getPreFilterType_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int getSmallerBlockSize()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoBM::getSmallerBlockSize()
 | ||||
|     public  int getSmallerBlockSize() | ||||
|     { | ||||
|          | ||||
|         int retVal = getSmallerBlockSize_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int getTextureThreshold()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoBM::getTextureThreshold()
 | ||||
|     public  int getTextureThreshold() | ||||
|     { | ||||
|          | ||||
|         int retVal = getTextureThreshold_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int getUniquenessRatio()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoBM::getUniquenessRatio()
 | ||||
|     public  int getUniquenessRatio() | ||||
|     { | ||||
|          | ||||
|         int retVal = getUniquenessRatio_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setPreFilterCap(int preFilterCap)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoBM::setPreFilterCap(preFilterCap)
 | ||||
|     public  void setPreFilterCap(int preFilterCap) | ||||
|     { | ||||
|          | ||||
|         setPreFilterCap_0(nativeObj, preFilterCap); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setPreFilterSize(int preFilterSize)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoBM::setPreFilterSize(preFilterSize)
 | ||||
|     public  void setPreFilterSize(int preFilterSize) | ||||
|     { | ||||
|          | ||||
|         setPreFilterSize_0(nativeObj, preFilterSize); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setPreFilterType(int preFilterType)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoBM::setPreFilterType(preFilterType)
 | ||||
|     public  void setPreFilterType(int preFilterType) | ||||
|     { | ||||
|          | ||||
|         setPreFilterType_0(nativeObj, preFilterType); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setROI1(Rect roi1)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoBM::setROI1(roi1)
 | ||||
|     public  void setROI1(Rect roi1) | ||||
|     { | ||||
|          | ||||
|         setROI1_0(nativeObj, roi1.x, roi1.y, roi1.width, roi1.height); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setROI2(Rect roi2)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoBM::setROI2(roi2)
 | ||||
|     public  void setROI2(Rect roi2) | ||||
|     { | ||||
|          | ||||
|         setROI2_0(nativeObj, roi2.x, roi2.y, roi2.width, roi2.height); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setSmallerBlockSize(int blockSize)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoBM::setSmallerBlockSize(blockSize)
 | ||||
|     public  void setSmallerBlockSize(int blockSize) | ||||
|     { | ||||
|          | ||||
|         setSmallerBlockSize_0(nativeObj, blockSize); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setTextureThreshold(int textureThreshold)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoBM::setTextureThreshold(textureThreshold)
 | ||||
|     public  void setTextureThreshold(int textureThreshold) | ||||
|     { | ||||
|          | ||||
|         setTextureThreshold_0(nativeObj, textureThreshold); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setUniquenessRatio(int uniquenessRatio)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoBM::setUniquenessRatio(uniquenessRatio)
 | ||||
|     public  void setUniquenessRatio(int uniquenessRatio) | ||||
|     { | ||||
|          | ||||
|         setUniquenessRatio_0(nativeObj, uniquenessRatio); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     @Override | ||||
|     protected void finalize() throws Throwable { | ||||
|         delete(nativeObj); | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     // C++: static Ptr_StereoBM create(int numDisparities = 0, int blockSize = 21)
 | ||||
|     private static native long create_0(int numDisparities, int blockSize); | ||||
|     private static native long create_1(); | ||||
| 
 | ||||
|     // C++:  Rect getROI1()
 | ||||
|     private static native double[] getROI1_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  Rect getROI2()
 | ||||
|     private static native double[] getROI2_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  int getPreFilterCap()
 | ||||
|     private static native int getPreFilterCap_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  int getPreFilterSize()
 | ||||
|     private static native int getPreFilterSize_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  int getPreFilterType()
 | ||||
|     private static native int getPreFilterType_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  int getSmallerBlockSize()
 | ||||
|     private static native int getSmallerBlockSize_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  int getTextureThreshold()
 | ||||
|     private static native int getTextureThreshold_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  int getUniquenessRatio()
 | ||||
|     private static native int getUniquenessRatio_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  void setPreFilterCap(int preFilterCap)
 | ||||
|     private static native void setPreFilterCap_0(long nativeObj, int preFilterCap); | ||||
| 
 | ||||
|     // C++:  void setPreFilterSize(int preFilterSize)
 | ||||
|     private static native void setPreFilterSize_0(long nativeObj, int preFilterSize); | ||||
| 
 | ||||
|     // C++:  void setPreFilterType(int preFilterType)
 | ||||
|     private static native void setPreFilterType_0(long nativeObj, int preFilterType); | ||||
| 
 | ||||
|     // C++:  void setROI1(Rect roi1)
 | ||||
|     private static native void setROI1_0(long nativeObj, int roi1_x, int roi1_y, int roi1_width, int roi1_height); | ||||
| 
 | ||||
|     // C++:  void setROI2(Rect roi2)
 | ||||
|     private static native void setROI2_0(long nativeObj, int roi2_x, int roi2_y, int roi2_width, int roi2_height); | ||||
| 
 | ||||
|     // C++:  void setSmallerBlockSize(int blockSize)
 | ||||
|     private static native void setSmallerBlockSize_0(long nativeObj, int blockSize); | ||||
| 
 | ||||
|     // C++:  void setTextureThreshold(int textureThreshold)
 | ||||
|     private static native void setTextureThreshold_0(long nativeObj, int textureThreshold); | ||||
| 
 | ||||
|     // C++:  void setUniquenessRatio(int uniquenessRatio)
 | ||||
|     private static native void setUniquenessRatio_0(long nativeObj, int uniquenessRatio); | ||||
| 
 | ||||
|     // native support for java finalize()
 | ||||
|     private static native void delete(long nativeObj); | ||||
| 
 | ||||
| } | ||||
| @ -1,254 +0,0 @@ | ||||
| 
 | ||||
| //
 | ||||
| // This file is auto-generated. Please don't modify it!
 | ||||
| //
 | ||||
| package org.opencv.calib3d; | ||||
| 
 | ||||
| import org.opencv.core.Algorithm; | ||||
| import org.opencv.core.Mat; | ||||
| 
 | ||||
| // C++: class StereoMatcher
 | ||||
| //javadoc: StereoMatcher
 | ||||
| 
 | ||||
| public class StereoMatcher extends Algorithm { | ||||
| 
 | ||||
|     protected StereoMatcher(long addr) { super(addr); } | ||||
| 
 | ||||
| 
 | ||||
|     public static final int | ||||
|             DISP_SHIFT = 4, | ||||
|             DISP_SCALE = (1 << DISP_SHIFT); | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int getBlockSize()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoMatcher::getBlockSize()
 | ||||
|     public  int getBlockSize() | ||||
|     { | ||||
|          | ||||
|         int retVal = getBlockSize_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int getDisp12MaxDiff()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoMatcher::getDisp12MaxDiff()
 | ||||
|     public  int getDisp12MaxDiff() | ||||
|     { | ||||
|          | ||||
|         int retVal = getDisp12MaxDiff_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int getMinDisparity()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoMatcher::getMinDisparity()
 | ||||
|     public  int getMinDisparity() | ||||
|     { | ||||
|          | ||||
|         int retVal = getMinDisparity_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int getNumDisparities()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoMatcher::getNumDisparities()
 | ||||
|     public  int getNumDisparities() | ||||
|     { | ||||
|          | ||||
|         int retVal = getNumDisparities_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int getSpeckleRange()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoMatcher::getSpeckleRange()
 | ||||
|     public  int getSpeckleRange() | ||||
|     { | ||||
|          | ||||
|         int retVal = getSpeckleRange_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int getSpeckleWindowSize()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoMatcher::getSpeckleWindowSize()
 | ||||
|     public  int getSpeckleWindowSize() | ||||
|     { | ||||
|          | ||||
|         int retVal = getSpeckleWindowSize_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void compute(Mat left, Mat right, Mat& disparity)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoMatcher::compute(left, right, disparity)
 | ||||
|     public  void compute(Mat left, Mat right, Mat disparity) | ||||
|     { | ||||
|          | ||||
|         compute_0(nativeObj, left.nativeObj, right.nativeObj, disparity.nativeObj); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setBlockSize(int blockSize)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoMatcher::setBlockSize(blockSize)
 | ||||
|     public  void setBlockSize(int blockSize) | ||||
|     { | ||||
|          | ||||
|         setBlockSize_0(nativeObj, blockSize); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setDisp12MaxDiff(int disp12MaxDiff)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoMatcher::setDisp12MaxDiff(disp12MaxDiff)
 | ||||
|     public  void setDisp12MaxDiff(int disp12MaxDiff) | ||||
|     { | ||||
|          | ||||
|         setDisp12MaxDiff_0(nativeObj, disp12MaxDiff); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setMinDisparity(int minDisparity)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoMatcher::setMinDisparity(minDisparity)
 | ||||
|     public  void setMinDisparity(int minDisparity) | ||||
|     { | ||||
|          | ||||
|         setMinDisparity_0(nativeObj, minDisparity); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setNumDisparities(int numDisparities)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoMatcher::setNumDisparities(numDisparities)
 | ||||
|     public  void setNumDisparities(int numDisparities) | ||||
|     { | ||||
|          | ||||
|         setNumDisparities_0(nativeObj, numDisparities); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setSpeckleRange(int speckleRange)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoMatcher::setSpeckleRange(speckleRange)
 | ||||
|     public  void setSpeckleRange(int speckleRange) | ||||
|     { | ||||
|          | ||||
|         setSpeckleRange_0(nativeObj, speckleRange); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setSpeckleWindowSize(int speckleWindowSize)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoMatcher::setSpeckleWindowSize(speckleWindowSize)
 | ||||
|     public  void setSpeckleWindowSize(int speckleWindowSize) | ||||
|     { | ||||
|          | ||||
|         setSpeckleWindowSize_0(nativeObj, speckleWindowSize); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     @Override | ||||
|     protected void finalize() throws Throwable { | ||||
|         delete(nativeObj); | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     // C++:  int getBlockSize()
 | ||||
|     private static native int getBlockSize_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  int getDisp12MaxDiff()
 | ||||
|     private static native int getDisp12MaxDiff_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  int getMinDisparity()
 | ||||
|     private static native int getMinDisparity_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  int getNumDisparities()
 | ||||
|     private static native int getNumDisparities_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  int getSpeckleRange()
 | ||||
|     private static native int getSpeckleRange_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  int getSpeckleWindowSize()
 | ||||
|     private static native int getSpeckleWindowSize_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  void compute(Mat left, Mat right, Mat& disparity)
 | ||||
|     private static native void compute_0(long nativeObj, long left_nativeObj, long right_nativeObj, long disparity_nativeObj); | ||||
| 
 | ||||
|     // C++:  void setBlockSize(int blockSize)
 | ||||
|     private static native void setBlockSize_0(long nativeObj, int blockSize); | ||||
| 
 | ||||
|     // C++:  void setDisp12MaxDiff(int disp12MaxDiff)
 | ||||
|     private static native void setDisp12MaxDiff_0(long nativeObj, int disp12MaxDiff); | ||||
| 
 | ||||
|     // C++:  void setMinDisparity(int minDisparity)
 | ||||
|     private static native void setMinDisparity_0(long nativeObj, int minDisparity); | ||||
| 
 | ||||
|     // C++:  void setNumDisparities(int numDisparities)
 | ||||
|     private static native void setNumDisparities_0(long nativeObj, int numDisparities); | ||||
| 
 | ||||
|     // C++:  void setSpeckleRange(int speckleRange)
 | ||||
|     private static native void setSpeckleRange_0(long nativeObj, int speckleRange); | ||||
| 
 | ||||
|     // C++:  void setSpeckleWindowSize(int speckleWindowSize)
 | ||||
|     private static native void setSpeckleWindowSize_0(long nativeObj, int speckleWindowSize); | ||||
| 
 | ||||
|     // native support for java finalize()
 | ||||
|     private static native void delete(long nativeObj); | ||||
| 
 | ||||
| } | ||||
| @ -1,231 +0,0 @@ | ||||
| 
 | ||||
| //
 | ||||
| // This file is auto-generated. Please don't modify it!
 | ||||
| //
 | ||||
| package org.opencv.calib3d; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| // C++: class StereoSGBM
 | ||||
| //javadoc: StereoSGBM
 | ||||
| 
 | ||||
| public class StereoSGBM extends StereoMatcher { | ||||
| 
 | ||||
|     protected StereoSGBM(long addr) { super(addr); } | ||||
| 
 | ||||
| 
 | ||||
|     public static final int | ||||
|             MODE_SGBM = 0, | ||||
|             MODE_HH = 1, | ||||
|             MODE_SGBM_3WAY = 2, | ||||
|             MODE_HH4 = 3; | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++: static Ptr_StereoSGBM create(int minDisparity = 0, int numDisparities = 16, int blockSize = 3, int P1 = 0, int P2 = 0, int disp12MaxDiff = 0, int preFilterCap = 0, int uniquenessRatio = 0, int speckleWindowSize = 0, int speckleRange = 0, int mode = StereoSGBM::MODE_SGBM)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoSGBM::create(minDisparity, numDisparities, blockSize, P1, P2, disp12MaxDiff, preFilterCap, uniquenessRatio, speckleWindowSize, speckleRange, mode)
 | ||||
|     public static StereoSGBM create(int minDisparity, int numDisparities, int blockSize, int P1, int P2, int disp12MaxDiff, int preFilterCap, int uniquenessRatio, int speckleWindowSize, int speckleRange, int mode) | ||||
|     { | ||||
|          | ||||
|         StereoSGBM retVal = new StereoSGBM(create_0(minDisparity, numDisparities, blockSize, P1, P2, disp12MaxDiff, preFilterCap, uniquenessRatio, speckleWindowSize, speckleRange, mode)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: StereoSGBM::create()
 | ||||
|     public static StereoSGBM create() | ||||
|     { | ||||
|          | ||||
|         StereoSGBM retVal = new StereoSGBM(create_1()); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int getMode()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoSGBM::getMode()
 | ||||
|     public  int getMode() | ||||
|     { | ||||
|          | ||||
|         int retVal = getMode_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int getP1()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoSGBM::getP1()
 | ||||
|     public  int getP1() | ||||
|     { | ||||
|          | ||||
|         int retVal = getP1_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int getP2()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoSGBM::getP2()
 | ||||
|     public  int getP2() | ||||
|     { | ||||
|          | ||||
|         int retVal = getP2_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int getPreFilterCap()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoSGBM::getPreFilterCap()
 | ||||
|     public  int getPreFilterCap() | ||||
|     { | ||||
|          | ||||
|         int retVal = getPreFilterCap_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int getUniquenessRatio()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoSGBM::getUniquenessRatio()
 | ||||
|     public  int getUniquenessRatio() | ||||
|     { | ||||
|          | ||||
|         int retVal = getUniquenessRatio_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setMode(int mode)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoSGBM::setMode(mode)
 | ||||
|     public  void setMode(int mode) | ||||
|     { | ||||
|          | ||||
|         setMode_0(nativeObj, mode); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setP1(int P1)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoSGBM::setP1(P1)
 | ||||
|     public  void setP1(int P1) | ||||
|     { | ||||
|          | ||||
|         setP1_0(nativeObj, P1); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setP2(int P2)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoSGBM::setP2(P2)
 | ||||
|     public  void setP2(int P2) | ||||
|     { | ||||
|          | ||||
|         setP2_0(nativeObj, P2); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setPreFilterCap(int preFilterCap)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoSGBM::setPreFilterCap(preFilterCap)
 | ||||
|     public  void setPreFilterCap(int preFilterCap) | ||||
|     { | ||||
|          | ||||
|         setPreFilterCap_0(nativeObj, preFilterCap); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setUniquenessRatio(int uniquenessRatio)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: StereoSGBM::setUniquenessRatio(uniquenessRatio)
 | ||||
|     public  void setUniquenessRatio(int uniquenessRatio) | ||||
|     { | ||||
|          | ||||
|         setUniquenessRatio_0(nativeObj, uniquenessRatio); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     @Override | ||||
|     protected void finalize() throws Throwable { | ||||
|         delete(nativeObj); | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     // C++: static Ptr_StereoSGBM create(int minDisparity = 0, int numDisparities = 16, int blockSize = 3, int P1 = 0, int P2 = 0, int disp12MaxDiff = 0, int preFilterCap = 0, int uniquenessRatio = 0, int speckleWindowSize = 0, int speckleRange = 0, int mode = StereoSGBM::MODE_SGBM)
 | ||||
|     private static native long create_0(int minDisparity, int numDisparities, int blockSize, int P1, int P2, int disp12MaxDiff, int preFilterCap, int uniquenessRatio, int speckleWindowSize, int speckleRange, int mode); | ||||
|     private static native long create_1(); | ||||
| 
 | ||||
|     // C++:  int getMode()
 | ||||
|     private static native int getMode_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  int getP1()
 | ||||
|     private static native int getP1_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  int getP2()
 | ||||
|     private static native int getP2_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  int getPreFilterCap()
 | ||||
|     private static native int getPreFilterCap_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  int getUniquenessRatio()
 | ||||
|     private static native int getUniquenessRatio_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  void setMode(int mode)
 | ||||
|     private static native void setMode_0(long nativeObj, int mode); | ||||
| 
 | ||||
|     // C++:  void setP1(int P1)
 | ||||
|     private static native void setP1_0(long nativeObj, int P1); | ||||
| 
 | ||||
|     // C++:  void setP2(int P2)
 | ||||
|     private static native void setP2_0(long nativeObj, int P2); | ||||
| 
 | ||||
|     // C++:  void setPreFilterCap(int preFilterCap)
 | ||||
|     private static native void setPreFilterCap_0(long nativeObj, int preFilterCap); | ||||
| 
 | ||||
|     // C++:  void setUniquenessRatio(int uniquenessRatio)
 | ||||
|     private static native void setUniquenessRatio_0(long nativeObj, int uniquenessRatio); | ||||
| 
 | ||||
|     // native support for java finalize()
 | ||||
|     private static native void delete(long nativeObj); | ||||
| 
 | ||||
| } | ||||
| @ -1,111 +0,0 @@ | ||||
| 
 | ||||
| //
 | ||||
| // This file is auto-generated. Please don't modify it!
 | ||||
| //
 | ||||
| package org.opencv.core; | ||||
| 
 | ||||
| import java.lang.String; | ||||
| 
 | ||||
| // C++: class Algorithm
 | ||||
| //javadoc: Algorithm
 | ||||
| 
 | ||||
| public class Algorithm { | ||||
| 
 | ||||
|     protected final long nativeObj; | ||||
|     protected Algorithm(long addr) { nativeObj = addr; } | ||||
| 
 | ||||
|     public long getNativeObjAddr() { return nativeObj; } | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  String getDefaultName()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Algorithm::getDefaultName()
 | ||||
|     public  String getDefaultName() | ||||
|     { | ||||
|          | ||||
|         String retVal = getDefaultName_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  bool empty()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Algorithm::empty()
 | ||||
|     public  boolean empty() | ||||
|     { | ||||
|          | ||||
|         boolean retVal = empty_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void clear()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Algorithm::clear()
 | ||||
|     public  void clear() | ||||
|     { | ||||
|          | ||||
|         clear_0(nativeObj); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void read(FileNode fn)
 | ||||
|     //
 | ||||
| 
 | ||||
|     // Unknown type 'FileNode' (I), skipping the function
 | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void save(String filename)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Algorithm::save(filename)
 | ||||
|     public  void save(String filename) | ||||
|     { | ||||
|          | ||||
|         save_0(nativeObj, filename); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void write(Ptr_FileStorage fs, String name = String())
 | ||||
|     //
 | ||||
| 
 | ||||
|     // Unknown type 'Ptr_FileStorage' (I), skipping the function
 | ||||
| 
 | ||||
| 
 | ||||
|     @Override | ||||
|     protected void finalize() throws Throwable { | ||||
|         delete(nativeObj); | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     // C++:  String getDefaultName()
 | ||||
|     private static native String getDefaultName_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  bool empty()
 | ||||
|     private static native boolean empty_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  void clear()
 | ||||
|     private static native void clear_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  void save(String filename)
 | ||||
|     private static native void save_0(long nativeObj, String filename); | ||||
| 
 | ||||
|     // native support for java finalize()
 | ||||
|     private static native void delete(long nativeObj); | ||||
| 
 | ||||
| } | ||||
									
										
											File diff suppressed because it is too large
											Load Diff
										
									
								
							
						| @ -1,15 +0,0 @@ | ||||
| package org.opencv.core; | ||||
| 
 | ||||
| public class CvException extends RuntimeException { | ||||
| 
 | ||||
|     private static final long serialVersionUID = 1L; | ||||
| 
 | ||||
|     public CvException(String msg) { | ||||
|         super(msg); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public String toString() { | ||||
|         return "CvException [" + super.toString() + "]"; | ||||
|     } | ||||
| } | ||||
| @ -1,136 +0,0 @@ | ||||
| package org.opencv.core; | ||||
| 
 | ||||
| public final class CvType { | ||||
| 
 | ||||
|     // type depth constants
 | ||||
|     public static final int | ||||
|             CV_8U = 0, CV_8S = 1, | ||||
|             CV_16U = 2, CV_16S = 3, | ||||
|             CV_32S = 4, | ||||
|             CV_32F = 5, | ||||
|             CV_64F = 6, | ||||
|             CV_USRTYPE1 = 7; | ||||
| 
 | ||||
|     // predefined type constants
 | ||||
|     public static final int | ||||
|             CV_8UC1 = CV_8UC(1), CV_8UC2 = CV_8UC(2), CV_8UC3 = CV_8UC(3), CV_8UC4 = CV_8UC(4), | ||||
|             CV_8SC1 = CV_8SC(1), CV_8SC2 = CV_8SC(2), CV_8SC3 = CV_8SC(3), CV_8SC4 = CV_8SC(4), | ||||
|             CV_16UC1 = CV_16UC(1), CV_16UC2 = CV_16UC(2), CV_16UC3 = CV_16UC(3), CV_16UC4 = CV_16UC(4), | ||||
|             CV_16SC1 = CV_16SC(1), CV_16SC2 = CV_16SC(2), CV_16SC3 = CV_16SC(3), CV_16SC4 = CV_16SC(4), | ||||
|             CV_32SC1 = CV_32SC(1), CV_32SC2 = CV_32SC(2), CV_32SC3 = CV_32SC(3), CV_32SC4 = CV_32SC(4), | ||||
|             CV_32FC1 = CV_32FC(1), CV_32FC2 = CV_32FC(2), CV_32FC3 = CV_32FC(3), CV_32FC4 = CV_32FC(4), | ||||
|             CV_64FC1 = CV_64FC(1), CV_64FC2 = CV_64FC(2), CV_64FC3 = CV_64FC(3), CV_64FC4 = CV_64FC(4); | ||||
| 
 | ||||
|     private static final int CV_CN_MAX = 512, CV_CN_SHIFT = 3, CV_DEPTH_MAX = (1 << CV_CN_SHIFT); | ||||
| 
 | ||||
|     public static final int makeType(int depth, int channels) { | ||||
|         if (channels <= 0 || channels >= CV_CN_MAX) { | ||||
|             throw new java.lang.UnsupportedOperationException( | ||||
|                     "Channels count should be 1.." + (CV_CN_MAX - 1)); | ||||
|         } | ||||
|         if (depth < 0 || depth >= CV_DEPTH_MAX) { | ||||
|             throw new java.lang.UnsupportedOperationException( | ||||
|                     "Data type depth should be 0.." + (CV_DEPTH_MAX - 1)); | ||||
|         } | ||||
|         return (depth & (CV_DEPTH_MAX - 1)) + ((channels - 1) << CV_CN_SHIFT); | ||||
|     } | ||||
| 
 | ||||
|     public static final int CV_8UC(int ch) { | ||||
|         return makeType(CV_8U, ch); | ||||
|     } | ||||
| 
 | ||||
|     public static final int CV_8SC(int ch) { | ||||
|         return makeType(CV_8S, ch); | ||||
|     } | ||||
| 
 | ||||
|     public static final int CV_16UC(int ch) { | ||||
|         return makeType(CV_16U, ch); | ||||
|     } | ||||
| 
 | ||||
|     public static final int CV_16SC(int ch) { | ||||
|         return makeType(CV_16S, ch); | ||||
|     } | ||||
| 
 | ||||
|     public static final int CV_32SC(int ch) { | ||||
|         return makeType(CV_32S, ch); | ||||
|     } | ||||
| 
 | ||||
|     public static final int CV_32FC(int ch) { | ||||
|         return makeType(CV_32F, ch); | ||||
|     } | ||||
| 
 | ||||
|     public static final int CV_64FC(int ch) { | ||||
|         return makeType(CV_64F, ch); | ||||
|     } | ||||
| 
 | ||||
|     public static final int channels(int type) { | ||||
|         return (type >> CV_CN_SHIFT) + 1; | ||||
|     } | ||||
| 
 | ||||
|     public static final int depth(int type) { | ||||
|         return type & (CV_DEPTH_MAX - 1); | ||||
|     } | ||||
| 
 | ||||
|     public static final boolean isInteger(int type) { | ||||
|         return depth(type) < CV_32F; | ||||
|     } | ||||
| 
 | ||||
|     public static final int ELEM_SIZE(int type) { | ||||
|         switch (depth(type)) { | ||||
|         case CV_8U: | ||||
|         case CV_8S: | ||||
|             return channels(type); | ||||
|         case CV_16U: | ||||
|         case CV_16S: | ||||
|             return 2 * channels(type); | ||||
|         case CV_32S: | ||||
|         case CV_32F: | ||||
|             return 4 * channels(type); | ||||
|         case CV_64F: | ||||
|             return 8 * channels(type); | ||||
|         default: | ||||
|             throw new java.lang.UnsupportedOperationException( | ||||
|                     "Unsupported CvType value: " + type); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     public static final String typeToString(int type) { | ||||
|         String s; | ||||
|         switch (depth(type)) { | ||||
|         case CV_8U: | ||||
|             s = "CV_8U"; | ||||
|             break; | ||||
|         case CV_8S: | ||||
|             s = "CV_8S"; | ||||
|             break; | ||||
|         case CV_16U: | ||||
|             s = "CV_16U"; | ||||
|             break; | ||||
|         case CV_16S: | ||||
|             s = "CV_16S"; | ||||
|             break; | ||||
|         case CV_32S: | ||||
|             s = "CV_32S"; | ||||
|             break; | ||||
|         case CV_32F: | ||||
|             s = "CV_32F"; | ||||
|             break; | ||||
|         case CV_64F: | ||||
|             s = "CV_64F"; | ||||
|             break; | ||||
|         case CV_USRTYPE1: | ||||
|             s = "CV_USRTYPE1"; | ||||
|             break; | ||||
|         default: | ||||
|             throw new java.lang.UnsupportedOperationException( | ||||
|                     "Unsupported CvType value: " + type); | ||||
|         } | ||||
| 
 | ||||
|         int ch = channels(type); | ||||
|         if (ch <= 4) | ||||
|             return s + "C" + ch; | ||||
|         else | ||||
|             return s + "C(" + ch + ")"; | ||||
|     } | ||||
| 
 | ||||
| } | ||||
| @ -1,58 +0,0 @@ | ||||
| package org.opencv.core; | ||||
| 
 | ||||
| //C++: class DMatch
 | ||||
| 
 | ||||
| /** | ||||
|  * Structure for matching: query descriptor index, train descriptor index, train | ||||
|  * image index and distance between descriptors. | ||||
|  */ | ||||
| public class DMatch { | ||||
| 
 | ||||
|     /** | ||||
|      * Query descriptor index. | ||||
|      */ | ||||
|     public int queryIdx; | ||||
|     /** | ||||
|      * Train descriptor index. | ||||
|      */ | ||||
|     public int trainIdx; | ||||
|     /** | ||||
|      * Train image index. | ||||
|      */ | ||||
|     public int imgIdx; | ||||
| 
 | ||||
|     // javadoc: DMatch::distance
 | ||||
|     public float distance; | ||||
| 
 | ||||
|     // javadoc: DMatch::DMatch()
 | ||||
|     public DMatch() { | ||||
|         this(-1, -1, Float.MAX_VALUE); | ||||
|     } | ||||
| 
 | ||||
|     // javadoc: DMatch::DMatch(_queryIdx, _trainIdx, _distance)
 | ||||
|     public DMatch(int _queryIdx, int _trainIdx, float _distance) { | ||||
|         queryIdx = _queryIdx; | ||||
|         trainIdx = _trainIdx; | ||||
|         imgIdx = -1; | ||||
|         distance = _distance; | ||||
|     } | ||||
| 
 | ||||
|     // javadoc: DMatch::DMatch(_queryIdx, _trainIdx, _imgIdx, _distance)
 | ||||
|     public DMatch(int _queryIdx, int _trainIdx, int _imgIdx, float _distance) { | ||||
|         queryIdx = _queryIdx; | ||||
|         trainIdx = _trainIdx; | ||||
|         imgIdx = _imgIdx; | ||||
|         distance = _distance; | ||||
|     } | ||||
| 
 | ||||
|     public boolean lessThan(DMatch it) { | ||||
|         return distance < it.distance; | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public String toString() { | ||||
|         return "DMatch [queryIdx=" + queryIdx + ", trainIdx=" + trainIdx | ||||
|                 + ", imgIdx=" + imgIdx + ", distance=" + distance + "]"; | ||||
|     } | ||||
| 
 | ||||
| } | ||||
| @ -1,83 +0,0 @@ | ||||
| package org.opencv.core; | ||||
| 
 | ||||
| import org.opencv.core.Point; | ||||
| 
 | ||||
| //javadoc: KeyPoint
 | ||||
| public class KeyPoint { | ||||
| 
 | ||||
|     /** | ||||
|      * Coordinates of the keypoint. | ||||
|      */ | ||||
|     public Point pt; | ||||
|     /** | ||||
|      * Diameter of the useful keypoint adjacent area. | ||||
|      */ | ||||
|     public float size; | ||||
|     /** | ||||
|      * Computed orientation of the keypoint (-1 if not applicable). | ||||
|      */ | ||||
|     public float angle; | ||||
|     /** | ||||
|      * The response, by which the strongest keypoints have been selected. Can | ||||
|      * be used for further sorting or subsampling. | ||||
|      */ | ||||
|     public float response; | ||||
|     /** | ||||
|      * Octave (pyramid layer), from which the keypoint has been extracted. | ||||
|      */ | ||||
|     public int octave; | ||||
|     /** | ||||
|      * Object ID, that can be used to cluster keypoints by an object they | ||||
|      * belong to. | ||||
|      */ | ||||
|     public int class_id; | ||||
| 
 | ||||
|     // javadoc:KeyPoint::KeyPoint(x,y,_size,_angle,_response,_octave,_class_id)
 | ||||
|     public KeyPoint(float x, float y, float _size, float _angle, float _response, int _octave, int _class_id) | ||||
|     { | ||||
|         pt = new Point(x, y); | ||||
|         size = _size; | ||||
|         angle = _angle; | ||||
|         response = _response; | ||||
|         octave = _octave; | ||||
|         class_id = _class_id; | ||||
|     } | ||||
| 
 | ||||
|     // javadoc: KeyPoint::KeyPoint()
 | ||||
|     public KeyPoint() | ||||
|     { | ||||
|         this(0, 0, 0, -1, 0, 0, -1); | ||||
|     } | ||||
| 
 | ||||
|     // javadoc: KeyPoint::KeyPoint(x, y, _size, _angle, _response, _octave)
 | ||||
|     public KeyPoint(float x, float y, float _size, float _angle, float _response, int _octave) | ||||
|     { | ||||
|         this(x, y, _size, _angle, _response, _octave, -1); | ||||
|     } | ||||
| 
 | ||||
|     // javadoc: KeyPoint::KeyPoint(x, y, _size, _angle, _response)
 | ||||
|     public KeyPoint(float x, float y, float _size, float _angle, float _response) | ||||
|     { | ||||
|         this(x, y, _size, _angle, _response, 0, -1); | ||||
|     } | ||||
| 
 | ||||
|     // javadoc: KeyPoint::KeyPoint(x, y, _size, _angle)
 | ||||
|     public KeyPoint(float x, float y, float _size, float _angle) | ||||
|     { | ||||
|         this(x, y, _size, _angle, 0, 0, -1); | ||||
|     } | ||||
| 
 | ||||
|     // javadoc: KeyPoint::KeyPoint(x, y, _size)
 | ||||
|     public KeyPoint(float x, float y, float _size) | ||||
|     { | ||||
|         this(x, y, _size, -1, 0, 0, -1); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public String toString() { | ||||
|         return "KeyPoint [pt=" + pt + ", size=" + size + ", angle=" + angle | ||||
|                 + ", response=" + response + ", octave=" + octave | ||||
|                 + ", class_id=" + class_id + "]"; | ||||
|     } | ||||
| 
 | ||||
| } | ||||
									
										
											File diff suppressed because it is too large
											Load Diff
										
									
								
							
						| @ -1,79 +0,0 @@ | ||||
| package org.opencv.core; | ||||
| 
 | ||||
| import java.util.Arrays; | ||||
| import java.util.List; | ||||
| 
 | ||||
| public class MatOfByte extends Mat { | ||||
|     // 8UC(x)
 | ||||
|     private static final int _depth = CvType.CV_8U; | ||||
|     private static final int _channels = 1; | ||||
| 
 | ||||
|     public MatOfByte() { | ||||
|         super(); | ||||
|     } | ||||
| 
 | ||||
|     protected MatOfByte(long addr) { | ||||
|         super(addr); | ||||
|         if( !empty() && checkVector(_channels, _depth) < 0 ) | ||||
|             throw new IllegalArgumentException("Incompatible Mat"); | ||||
|         //FIXME: do we need release() here?
 | ||||
|     } | ||||
| 
 | ||||
|     public static MatOfByte fromNativeAddr(long addr) { | ||||
|         return new MatOfByte(addr); | ||||
|     } | ||||
| 
 | ||||
|     public MatOfByte(Mat m) { | ||||
|         super(m, Range.all()); | ||||
|         if( !empty() && checkVector(_channels, _depth) < 0 ) | ||||
|             throw new IllegalArgumentException("Incompatible Mat"); | ||||
|         //FIXME: do we need release() here?
 | ||||
|     } | ||||
| 
 | ||||
|     public MatOfByte(byte...a) { | ||||
|         super(); | ||||
|         fromArray(a); | ||||
|     } | ||||
| 
 | ||||
|     public void alloc(int elemNumber) { | ||||
|         if(elemNumber>0) | ||||
|             super.create(elemNumber, 1, CvType.makeType(_depth, _channels)); | ||||
|     } | ||||
| 
 | ||||
|     public void fromArray(byte...a) { | ||||
|         if(a==null || a.length==0) | ||||
|             return; | ||||
|         int num = a.length / _channels; | ||||
|         alloc(num); | ||||
|         put(0, 0, a); //TODO: check ret val!
 | ||||
|     } | ||||
| 
 | ||||
|     public byte[] toArray() { | ||||
|         int num = checkVector(_channels, _depth); | ||||
|         if(num < 0) | ||||
|             throw new RuntimeException("Native Mat has unexpected type or size: " + toString()); | ||||
|         byte[] a = new byte[num * _channels]; | ||||
|         if(num == 0) | ||||
|             return a; | ||||
|         get(0, 0, a); //TODO: check ret val!
 | ||||
|         return a; | ||||
|     } | ||||
| 
 | ||||
|     public void fromList(List<Byte> lb) { | ||||
|         if(lb==null || lb.size()==0) | ||||
|             return; | ||||
|         Byte ab[] = lb.toArray(new Byte[0]); | ||||
|         byte a[] = new byte[ab.length]; | ||||
|         for(int i=0; i<ab.length; i++) | ||||
|             a[i] = ab[i]; | ||||
|         fromArray(a); | ||||
|     } | ||||
| 
 | ||||
|     public List<Byte> toList() { | ||||
|         byte[] a = toArray(); | ||||
|         Byte ab[] = new Byte[a.length]; | ||||
|         for(int i=0; i<a.length; i++) | ||||
|             ab[i] = a[i]; | ||||
|         return Arrays.asList(ab); | ||||
|     } | ||||
| } | ||||
| @ -1,83 +0,0 @@ | ||||
| package org.opencv.core; | ||||
| 
 | ||||
| import java.util.Arrays; | ||||
| import java.util.List; | ||||
| 
 | ||||
| import org.opencv.core.DMatch; | ||||
| 
 | ||||
| public class MatOfDMatch extends Mat { | ||||
|     // 32FC4
 | ||||
|     private static final int _depth = CvType.CV_32F; | ||||
|     private static final int _channels = 4; | ||||
| 
 | ||||
|     public MatOfDMatch() { | ||||
|         super(); | ||||
|     } | ||||
| 
 | ||||
|     protected MatOfDMatch(long addr) { | ||||
|         super(addr); | ||||
|         if( !empty() && checkVector(_channels, _depth) < 0 ) | ||||
|             throw new IllegalArgumentException("Incompatible Mat: " + toString()); | ||||
|         //FIXME: do we need release() here?
 | ||||
|     } | ||||
| 
 | ||||
|     public static MatOfDMatch fromNativeAddr(long addr) { | ||||
|         return new MatOfDMatch(addr); | ||||
|     } | ||||
| 
 | ||||
|     public MatOfDMatch(Mat m) { | ||||
|         super(m, Range.all()); | ||||
|         if( !empty() && checkVector(_channels, _depth) < 0 ) | ||||
|             throw new IllegalArgumentException("Incompatible Mat: " + toString()); | ||||
|         //FIXME: do we need release() here?
 | ||||
|     } | ||||
| 
 | ||||
|     public MatOfDMatch(DMatch...ap) { | ||||
|         super(); | ||||
|         fromArray(ap); | ||||
|     } | ||||
| 
 | ||||
|     public void alloc(int elemNumber) { | ||||
|         if(elemNumber>0) | ||||
|             super.create(elemNumber, 1, CvType.makeType(_depth, _channels)); | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     public void fromArray(DMatch...a) { | ||||
|         if(a==null || a.length==0) | ||||
|             return; | ||||
|         int num = a.length; | ||||
|         alloc(num); | ||||
|         float buff[] = new float[num * _channels]; | ||||
|         for(int i=0; i<num; i++) { | ||||
|             DMatch m = a[i]; | ||||
|             buff[_channels*i+0] = m.queryIdx; | ||||
|             buff[_channels*i+1] = m.trainIdx; | ||||
|             buff[_channels*i+2] = m.imgIdx; | ||||
|             buff[_channels*i+3] = m.distance; | ||||
|         } | ||||
|         put(0, 0, buff); //TODO: check ret val!
 | ||||
|     } | ||||
| 
 | ||||
|     public DMatch[] toArray() { | ||||
|         int num = (int) total(); | ||||
|         DMatch[] a = new DMatch[num]; | ||||
|         if(num == 0) | ||||
|             return a; | ||||
|         float buff[] = new float[num * _channels]; | ||||
|         get(0, 0, buff); //TODO: check ret val!
 | ||||
|         for(int i=0; i<num; i++) | ||||
|             a[i] = new DMatch((int) buff[_channels*i+0], (int) buff[_channels*i+1], (int) buff[_channels*i+2], buff[_channels*i+3]); | ||||
|         return a; | ||||
|     } | ||||
| 
 | ||||
|     public void fromList(List<DMatch> ldm) { | ||||
|         DMatch adm[] = ldm.toArray(new DMatch[0]); | ||||
|         fromArray(adm); | ||||
|     } | ||||
| 
 | ||||
|     public List<DMatch> toList() { | ||||
|         DMatch[] adm = toArray(); | ||||
|         return Arrays.asList(adm); | ||||
|     } | ||||
| } | ||||
| @ -1,79 +0,0 @@ | ||||
| package org.opencv.core; | ||||
| 
 | ||||
| import java.util.Arrays; | ||||
| import java.util.List; | ||||
| 
 | ||||
| public class MatOfDouble extends Mat { | ||||
|     // 64FC(x)
 | ||||
|     private static final int _depth = CvType.CV_64F; | ||||
|     private static final int _channels = 1; | ||||
| 
 | ||||
|     public MatOfDouble() { | ||||
|         super(); | ||||
|     } | ||||
| 
 | ||||
|     protected MatOfDouble(long addr) { | ||||
|         super(addr); | ||||
|         if( !empty() && checkVector(_channels, _depth) < 0 ) | ||||
|             throw new IllegalArgumentException("Incompatible Mat"); | ||||
|         //FIXME: do we need release() here?
 | ||||
|     } | ||||
| 
 | ||||
|     public static MatOfDouble fromNativeAddr(long addr) { | ||||
|         return new MatOfDouble(addr); | ||||
|     } | ||||
| 
 | ||||
|     public MatOfDouble(Mat m) { | ||||
|         super(m, Range.all()); | ||||
|         if( !empty() && checkVector(_channels, _depth) < 0 ) | ||||
|             throw new IllegalArgumentException("Incompatible Mat"); | ||||
|         //FIXME: do we need release() here?
 | ||||
|     } | ||||
| 
 | ||||
|     public MatOfDouble(double...a) { | ||||
|         super(); | ||||
|         fromArray(a); | ||||
|     } | ||||
| 
 | ||||
|     public void alloc(int elemNumber) { | ||||
|         if(elemNumber>0) | ||||
|             super.create(elemNumber, 1, CvType.makeType(_depth, _channels)); | ||||
|     } | ||||
| 
 | ||||
|     public void fromArray(double...a) { | ||||
|         if(a==null || a.length==0) | ||||
|             return; | ||||
|         int num = a.length / _channels; | ||||
|         alloc(num); | ||||
|         put(0, 0, a); //TODO: check ret val!
 | ||||
|     } | ||||
| 
 | ||||
|     public double[] toArray() { | ||||
|         int num = checkVector(_channels, _depth); | ||||
|         if(num < 0) | ||||
|             throw new RuntimeException("Native Mat has unexpected type or size: " + toString()); | ||||
|         double[] a = new double[num * _channels]; | ||||
|         if(num == 0) | ||||
|             return a; | ||||
|         get(0, 0, a); //TODO: check ret val!
 | ||||
|         return a; | ||||
|     } | ||||
| 
 | ||||
|     public void fromList(List<Double> lb) { | ||||
|         if(lb==null || lb.size()==0) | ||||
|             return; | ||||
|         Double ab[] = lb.toArray(new Double[0]); | ||||
|         double a[] = new double[ab.length]; | ||||
|         for(int i=0; i<ab.length; i++) | ||||
|             a[i] = ab[i]; | ||||
|         fromArray(a); | ||||
|     } | ||||
| 
 | ||||
|     public List<Double> toList() { | ||||
|         double[] a = toArray(); | ||||
|         Double ab[] = new Double[a.length]; | ||||
|         for(int i=0; i<a.length; i++) | ||||
|             ab[i] = a[i]; | ||||
|         return Arrays.asList(ab); | ||||
|     } | ||||
| } | ||||
| @ -1,79 +0,0 @@ | ||||
| package org.opencv.core; | ||||
| 
 | ||||
| import java.util.Arrays; | ||||
| import java.util.List; | ||||
| 
 | ||||
| public class MatOfFloat extends Mat { | ||||
|     // 32FC1
 | ||||
|     private static final int _depth = CvType.CV_32F; | ||||
|     private static final int _channels = 1; | ||||
| 
 | ||||
|     public MatOfFloat() { | ||||
|         super(); | ||||
|     } | ||||
| 
 | ||||
|     protected MatOfFloat(long addr) { | ||||
|         super(addr); | ||||
|         if( !empty() && checkVector(_channels, _depth) < 0 ) | ||||
|             throw new IllegalArgumentException("Incompatible Mat"); | ||||
|         //FIXME: do we need release() here?
 | ||||
|     } | ||||
| 
 | ||||
|     public static MatOfFloat fromNativeAddr(long addr) { | ||||
|         return new MatOfFloat(addr); | ||||
|     } | ||||
| 
 | ||||
|     public MatOfFloat(Mat m) { | ||||
|         super(m, Range.all()); | ||||
|         if( !empty() && checkVector(_channels, _depth) < 0 ) | ||||
|             throw new IllegalArgumentException("Incompatible Mat"); | ||||
|         //FIXME: do we need release() here?
 | ||||
|     } | ||||
| 
 | ||||
|     public MatOfFloat(float...a) { | ||||
|         super(); | ||||
|         fromArray(a); | ||||
|     } | ||||
| 
 | ||||
|     public void alloc(int elemNumber) { | ||||
|         if(elemNumber>0) | ||||
|             super.create(elemNumber, 1, CvType.makeType(_depth, _channels)); | ||||
|     } | ||||
| 
 | ||||
|     public void fromArray(float...a) { | ||||
|         if(a==null || a.length==0) | ||||
|             return; | ||||
|         int num = a.length / _channels; | ||||
|         alloc(num); | ||||
|         put(0, 0, a); //TODO: check ret val!
 | ||||
|     } | ||||
| 
 | ||||
|     public float[] toArray() { | ||||
|         int num = checkVector(_channels, _depth); | ||||
|         if(num < 0) | ||||
|             throw new RuntimeException("Native Mat has unexpected type or size: " + toString()); | ||||
|         float[] a = new float[num * _channels]; | ||||
|         if(num == 0) | ||||
|             return a; | ||||
|         get(0, 0, a); //TODO: check ret val!
 | ||||
|         return a; | ||||
|     } | ||||
| 
 | ||||
|     public void fromList(List<Float> lb) { | ||||
|         if(lb==null || lb.size()==0) | ||||
|             return; | ||||
|         Float ab[] = lb.toArray(new Float[0]); | ||||
|         float a[] = new float[ab.length]; | ||||
|         for(int i=0; i<ab.length; i++) | ||||
|             a[i] = ab[i]; | ||||
|         fromArray(a); | ||||
|     } | ||||
| 
 | ||||
|     public List<Float> toList() { | ||||
|         float[] a = toArray(); | ||||
|         Float ab[] = new Float[a.length]; | ||||
|         for(int i=0; i<a.length; i++) | ||||
|             ab[i] = a[i]; | ||||
|         return Arrays.asList(ab); | ||||
|     } | ||||
| } | ||||
| @ -1,79 +0,0 @@ | ||||
| package org.opencv.core; | ||||
| 
 | ||||
| import java.util.Arrays; | ||||
| import java.util.List; | ||||
| 
 | ||||
| public class MatOfFloat4 extends Mat { | ||||
|     // 32FC4
 | ||||
|     private static final int _depth = CvType.CV_32F; | ||||
|     private static final int _channels = 4; | ||||
| 
 | ||||
|     public MatOfFloat4() { | ||||
|         super(); | ||||
|     } | ||||
| 
 | ||||
|     protected MatOfFloat4(long addr) { | ||||
|         super(addr); | ||||
|         if( !empty() && checkVector(_channels, _depth) < 0 ) | ||||
|             throw new IllegalArgumentException("Incompatible Mat"); | ||||
|         //FIXME: do we need release() here?
 | ||||
|     } | ||||
| 
 | ||||
|     public static MatOfFloat4 fromNativeAddr(long addr) { | ||||
|         return new MatOfFloat4(addr); | ||||
|     } | ||||
| 
 | ||||
|     public MatOfFloat4(Mat m) { | ||||
|         super(m, Range.all()); | ||||
|         if( !empty() && checkVector(_channels, _depth) < 0 ) | ||||
|             throw new IllegalArgumentException("Incompatible Mat"); | ||||
|         //FIXME: do we need release() here?
 | ||||
|     } | ||||
| 
 | ||||
|     public MatOfFloat4(float...a) { | ||||
|         super(); | ||||
|         fromArray(a); | ||||
|     } | ||||
| 
 | ||||
|     public void alloc(int elemNumber) { | ||||
|         if(elemNumber>0) | ||||
|             super.create(elemNumber, 1, CvType.makeType(_depth, _channels)); | ||||
|     } | ||||
| 
 | ||||
|     public void fromArray(float...a) { | ||||
|         if(a==null || a.length==0) | ||||
|             return; | ||||
|         int num = a.length / _channels; | ||||
|         alloc(num); | ||||
|         put(0, 0, a); //TODO: check ret val!
 | ||||
|     } | ||||
| 
 | ||||
|     public float[] toArray() { | ||||
|         int num = checkVector(_channels, _depth); | ||||
|         if(num < 0) | ||||
|             throw new RuntimeException("Native Mat has unexpected type or size: " + toString()); | ||||
|         float[] a = new float[num * _channels]; | ||||
|         if(num == 0) | ||||
|             return a; | ||||
|         get(0, 0, a); //TODO: check ret val!
 | ||||
|         return a; | ||||
|     } | ||||
| 
 | ||||
|     public void fromList(List<Float> lb) { | ||||
|         if(lb==null || lb.size()==0) | ||||
|             return; | ||||
|         Float ab[] = lb.toArray(new Float[0]); | ||||
|         float a[] = new float[ab.length]; | ||||
|         for(int i=0; i<ab.length; i++) | ||||
|             a[i] = ab[i]; | ||||
|         fromArray(a); | ||||
|     } | ||||
| 
 | ||||
|     public List<Float> toList() { | ||||
|         float[] a = toArray(); | ||||
|         Float ab[] = new Float[a.length]; | ||||
|         for(int i=0; i<a.length; i++) | ||||
|             ab[i] = a[i]; | ||||
|         return Arrays.asList(ab); | ||||
|     } | ||||
| } | ||||
| @ -1,79 +0,0 @@ | ||||
| package org.opencv.core; | ||||
| 
 | ||||
| import java.util.Arrays; | ||||
| import java.util.List; | ||||
| 
 | ||||
| public class MatOfFloat6 extends Mat { | ||||
|     // 32FC6
 | ||||
|     private static final int _depth = CvType.CV_32F; | ||||
|     private static final int _channels = 6; | ||||
| 
 | ||||
|     public MatOfFloat6() { | ||||
|         super(); | ||||
|     } | ||||
| 
 | ||||
|     protected MatOfFloat6(long addr) { | ||||
|         super(addr); | ||||
|         if( !empty() && checkVector(_channels, _depth) < 0 ) | ||||
|             throw new IllegalArgumentException("Incompatible Mat"); | ||||
|         //FIXME: do we need release() here?
 | ||||
|     } | ||||
| 
 | ||||
|     public static MatOfFloat6 fromNativeAddr(long addr) { | ||||
|         return new MatOfFloat6(addr); | ||||
|     } | ||||
| 
 | ||||
|     public MatOfFloat6(Mat m) { | ||||
|         super(m, Range.all()); | ||||
|         if( !empty() && checkVector(_channels, _depth) < 0 ) | ||||
|             throw new IllegalArgumentException("Incompatible Mat"); | ||||
|         //FIXME: do we need release() here?
 | ||||
|     } | ||||
| 
 | ||||
|     public MatOfFloat6(float...a) { | ||||
|         super(); | ||||
|         fromArray(a); | ||||
|     } | ||||
| 
 | ||||
|     public void alloc(int elemNumber) { | ||||
|         if(elemNumber>0) | ||||
|             super.create(elemNumber, 1, CvType.makeType(_depth, _channels)); | ||||
|     } | ||||
| 
 | ||||
|     public void fromArray(float...a) { | ||||
|         if(a==null || a.length==0) | ||||
|             return; | ||||
|         int num = a.length / _channels; | ||||
|         alloc(num); | ||||
|         put(0, 0, a); //TODO: check ret val!
 | ||||
|     } | ||||
| 
 | ||||
|     public float[] toArray() { | ||||
|         int num = checkVector(_channels, _depth); | ||||
|         if(num < 0) | ||||
|             throw new RuntimeException("Native Mat has unexpected type or size: " + toString()); | ||||
|         float[] a = new float[num * _channels]; | ||||
|         if(num == 0) | ||||
|             return a; | ||||
|         get(0, 0, a); //TODO: check ret val!
 | ||||
|         return a; | ||||
|     } | ||||
| 
 | ||||
|     public void fromList(List<Float> lb) { | ||||
|         if(lb==null || lb.size()==0) | ||||
|             return; | ||||
|         Float ab[] = lb.toArray(new Float[0]); | ||||
|         float a[] = new float[ab.length]; | ||||
|         for(int i=0; i<ab.length; i++) | ||||
|             a[i] = ab[i]; | ||||
|         fromArray(a); | ||||
|     } | ||||
| 
 | ||||
|     public List<Float> toList() { | ||||
|         float[] a = toArray(); | ||||
|         Float ab[] = new Float[a.length]; | ||||
|         for(int i=0; i<a.length; i++) | ||||
|             ab[i] = a[i]; | ||||
|         return Arrays.asList(ab); | ||||
|     } | ||||
| } | ||||
| @ -1,80 +0,0 @@ | ||||
| package org.opencv.core; | ||||
| 
 | ||||
| import java.util.Arrays; | ||||
| import java.util.List; | ||||
| 
 | ||||
| 
 | ||||
| public class MatOfInt extends Mat { | ||||
|     // 32SC1
 | ||||
|     private static final int _depth = CvType.CV_32S; | ||||
|     private static final int _channels = 1; | ||||
| 
 | ||||
|     public MatOfInt() { | ||||
|         super(); | ||||
|     } | ||||
| 
 | ||||
|     protected MatOfInt(long addr) { | ||||
|         super(addr); | ||||
|         if( !empty() && checkVector(_channels, _depth) < 0 ) | ||||
|             throw new IllegalArgumentException("Incompatible Mat"); | ||||
|         //FIXME: do we need release() here?
 | ||||
|     } | ||||
| 
 | ||||
|     public static MatOfInt fromNativeAddr(long addr) { | ||||
|         return new MatOfInt(addr); | ||||
|     } | ||||
| 
 | ||||
|     public MatOfInt(Mat m) { | ||||
|         super(m, Range.all()); | ||||
|         if( !empty() && checkVector(_channels, _depth) < 0 ) | ||||
|             throw new IllegalArgumentException("Incompatible Mat"); | ||||
|         //FIXME: do we need release() here?
 | ||||
|     } | ||||
| 
 | ||||
|     public MatOfInt(int...a) { | ||||
|         super(); | ||||
|         fromArray(a); | ||||
|     } | ||||
| 
 | ||||
|     public void alloc(int elemNumber) { | ||||
|         if(elemNumber>0) | ||||
|             super.create(elemNumber, 1, CvType.makeType(_depth, _channels)); | ||||
|     } | ||||
| 
 | ||||
|     public void fromArray(int...a) { | ||||
|         if(a==null || a.length==0) | ||||
|             return; | ||||
|         int num = a.length / _channels; | ||||
|         alloc(num); | ||||
|         put(0, 0, a); //TODO: check ret val!
 | ||||
|     } | ||||
| 
 | ||||
|     public int[] toArray() { | ||||
|         int num = checkVector(_channels, _depth); | ||||
|         if(num < 0) | ||||
|             throw new RuntimeException("Native Mat has unexpected type or size: " + toString()); | ||||
|         int[] a = new int[num * _channels]; | ||||
|         if(num == 0) | ||||
|             return a; | ||||
|         get(0, 0, a); //TODO: check ret val!
 | ||||
|         return a; | ||||
|     } | ||||
| 
 | ||||
|     public void fromList(List<Integer> lb) { | ||||
|         if(lb==null || lb.size()==0) | ||||
|             return; | ||||
|         Integer ab[] = lb.toArray(new Integer[0]); | ||||
|         int a[] = new int[ab.length]; | ||||
|         for(int i=0; i<ab.length; i++) | ||||
|             a[i] = ab[i]; | ||||
|         fromArray(a); | ||||
|     } | ||||
| 
 | ||||
|     public List<Integer> toList() { | ||||
|         int[] a = toArray(); | ||||
|         Integer ab[] = new Integer[a.length]; | ||||
|         for(int i=0; i<a.length; i++) | ||||
|             ab[i] = a[i]; | ||||
|         return Arrays.asList(ab); | ||||
|     } | ||||
| } | ||||
| @ -1,80 +0,0 @@ | ||||
| package org.opencv.core; | ||||
| 
 | ||||
| import java.util.Arrays; | ||||
| import java.util.List; | ||||
| 
 | ||||
| 
 | ||||
| public class MatOfInt4 extends Mat { | ||||
|     // 32SC4
 | ||||
|     private static final int _depth = CvType.CV_32S; | ||||
|     private static final int _channels = 4; | ||||
| 
 | ||||
|     public MatOfInt4() { | ||||
|         super(); | ||||
|     } | ||||
| 
 | ||||
|     protected MatOfInt4(long addr) { | ||||
|         super(addr); | ||||
|         if( !empty() && checkVector(_channels, _depth) < 0 ) | ||||
|             throw new IllegalArgumentException("Incompatible Mat"); | ||||
|         //FIXME: do we need release() here?
 | ||||
|     } | ||||
| 
 | ||||
|     public static MatOfInt4 fromNativeAddr(long addr) { | ||||
|         return new MatOfInt4(addr); | ||||
|     } | ||||
| 
 | ||||
|     public MatOfInt4(Mat m) { | ||||
|         super(m, Range.all()); | ||||
|         if( !empty() && checkVector(_channels, _depth) < 0 ) | ||||
|             throw new IllegalArgumentException("Incompatible Mat"); | ||||
|         //FIXME: do we need release() here?
 | ||||
|     } | ||||
| 
 | ||||
|     public MatOfInt4(int...a) { | ||||
|         super(); | ||||
|         fromArray(a); | ||||
|     } | ||||
| 
 | ||||
|     public void alloc(int elemNumber) { | ||||
|         if(elemNumber>0) | ||||
|             super.create(elemNumber, 1, CvType.makeType(_depth, _channels)); | ||||
|     } | ||||
| 
 | ||||
|     public void fromArray(int...a) { | ||||
|         if(a==null || a.length==0) | ||||
|             return; | ||||
|         int num = a.length / _channels; | ||||
|         alloc(num); | ||||
|         put(0, 0, a); //TODO: check ret val!
 | ||||
|     } | ||||
| 
 | ||||
|     public int[] toArray() { | ||||
|         int num = checkVector(_channels, _depth); | ||||
|         if(num < 0) | ||||
|             throw new RuntimeException("Native Mat has unexpected type or size: " + toString()); | ||||
|         int[] a = new int[num * _channels]; | ||||
|         if(num == 0) | ||||
|             return a; | ||||
|         get(0, 0, a); //TODO: check ret val!
 | ||||
|         return a; | ||||
|     } | ||||
| 
 | ||||
|     public void fromList(List<Integer> lb) { | ||||
|         if(lb==null || lb.size()==0) | ||||
|             return; | ||||
|         Integer ab[] = lb.toArray(new Integer[0]); | ||||
|         int a[] = new int[ab.length]; | ||||
|         for(int i=0; i<ab.length; i++) | ||||
|             a[i] = ab[i]; | ||||
|         fromArray(a); | ||||
|     } | ||||
| 
 | ||||
|     public List<Integer> toList() { | ||||
|         int[] a = toArray(); | ||||
|         Integer ab[] = new Integer[a.length]; | ||||
|         for(int i=0; i<a.length; i++) | ||||
|             ab[i] = a[i]; | ||||
|         return Arrays.asList(ab); | ||||
|     } | ||||
| } | ||||
| @ -1,86 +0,0 @@ | ||||
| package org.opencv.core; | ||||
| 
 | ||||
| import java.util.Arrays; | ||||
| import java.util.List; | ||||
| 
 | ||||
| import org.opencv.core.KeyPoint; | ||||
| 
 | ||||
| public class MatOfKeyPoint extends Mat { | ||||
|     // 32FC7
 | ||||
|     private static final int _depth = CvType.CV_32F; | ||||
|     private static final int _channels = 7; | ||||
| 
 | ||||
|     public MatOfKeyPoint() { | ||||
|         super(); | ||||
|     } | ||||
| 
 | ||||
|     protected MatOfKeyPoint(long addr) { | ||||
|         super(addr); | ||||
|         if( !empty() && checkVector(_channels, _depth) < 0 ) | ||||
|             throw new IllegalArgumentException("Incompatible Mat"); | ||||
|         //FIXME: do we need release() here?
 | ||||
|     } | ||||
| 
 | ||||
|     public static MatOfKeyPoint fromNativeAddr(long addr) { | ||||
|         return new MatOfKeyPoint(addr); | ||||
|     } | ||||
| 
 | ||||
|     public MatOfKeyPoint(Mat m) { | ||||
|         super(m, Range.all()); | ||||
|         if( !empty() && checkVector(_channels, _depth) < 0 ) | ||||
|             throw new IllegalArgumentException("Incompatible Mat"); | ||||
|         //FIXME: do we need release() here?
 | ||||
|     } | ||||
| 
 | ||||
|     public MatOfKeyPoint(KeyPoint...a) { | ||||
|         super(); | ||||
|         fromArray(a); | ||||
|     } | ||||
| 
 | ||||
|     public void alloc(int elemNumber) { | ||||
|         if(elemNumber>0) | ||||
|             super.create(elemNumber, 1, CvType.makeType(_depth, _channels)); | ||||
|     } | ||||
| 
 | ||||
|     public void fromArray(KeyPoint...a) { | ||||
|         if(a==null || a.length==0) | ||||
|             return; | ||||
|         int num = a.length; | ||||
|         alloc(num); | ||||
|         float buff[] = new float[num * _channels]; | ||||
|         for(int i=0; i<num; i++) { | ||||
|             KeyPoint kp = a[i]; | ||||
|             buff[_channels*i+0] = (float) kp.pt.x; | ||||
|             buff[_channels*i+1] = (float) kp.pt.y; | ||||
|             buff[_channels*i+2] = kp.size; | ||||
|             buff[_channels*i+3] = kp.angle; | ||||
|             buff[_channels*i+4] = kp.response; | ||||
|             buff[_channels*i+5] = kp.octave; | ||||
|             buff[_channels*i+6] = kp.class_id; | ||||
|         } | ||||
|         put(0, 0, buff); //TODO: check ret val!
 | ||||
|     } | ||||
| 
 | ||||
|     public KeyPoint[] toArray() { | ||||
|         int num = (int) total(); | ||||
|         KeyPoint[] a = new KeyPoint[num]; | ||||
|         if(num == 0) | ||||
|             return a; | ||||
|         float buff[] = new float[num * _channels]; | ||||
|         get(0, 0, buff); //TODO: check ret val!
 | ||||
|         for(int i=0; i<num; i++) | ||||
|             a[i] = new KeyPoint( buff[_channels*i+0], buff[_channels*i+1], buff[_channels*i+2], buff[_channels*i+3], | ||||
|                                  buff[_channels*i+4], (int) buff[_channels*i+5], (int) buff[_channels*i+6] ); | ||||
|         return a; | ||||
|     } | ||||
| 
 | ||||
|     public void fromList(List<KeyPoint> lkp) { | ||||
|         KeyPoint akp[] = lkp.toArray(new KeyPoint[0]); | ||||
|         fromArray(akp); | ||||
|     } | ||||
| 
 | ||||
|     public List<KeyPoint> toList() { | ||||
|         KeyPoint[] akp = toArray(); | ||||
|         return Arrays.asList(akp); | ||||
|     } | ||||
| } | ||||
| @ -1,78 +0,0 @@ | ||||
| package org.opencv.core; | ||||
| 
 | ||||
| import java.util.Arrays; | ||||
| import java.util.List; | ||||
| 
 | ||||
| public class MatOfPoint extends Mat { | ||||
|     // 32SC2
 | ||||
|     private static final int _depth = CvType.CV_32S; | ||||
|     private static final int _channels = 2; | ||||
| 
 | ||||
|     public MatOfPoint() { | ||||
|         super(); | ||||
|     } | ||||
| 
 | ||||
|     protected MatOfPoint(long addr) { | ||||
|         super(addr); | ||||
|         if( !empty() && checkVector(_channels, _depth) < 0 ) | ||||
|             throw new IllegalArgumentException("Incompatible Mat"); | ||||
|         //FIXME: do we need release() here?
 | ||||
|     } | ||||
| 
 | ||||
|     public static MatOfPoint fromNativeAddr(long addr) { | ||||
|         return new MatOfPoint(addr); | ||||
|     } | ||||
| 
 | ||||
|     public MatOfPoint(Mat m) { | ||||
|         super(m, Range.all()); | ||||
|         if( !empty() && checkVector(_channels, _depth) < 0 ) | ||||
|             throw new IllegalArgumentException("Incompatible Mat"); | ||||
|         //FIXME: do we need release() here?
 | ||||
|     } | ||||
| 
 | ||||
|     public MatOfPoint(Point...a) { | ||||
|         super(); | ||||
|         fromArray(a); | ||||
|     } | ||||
| 
 | ||||
|     public void alloc(int elemNumber) { | ||||
|         if(elemNumber>0) | ||||
|             super.create(elemNumber, 1, CvType.makeType(_depth, _channels)); | ||||
|     } | ||||
| 
 | ||||
|     public void fromArray(Point...a) { | ||||
|         if(a==null || a.length==0) | ||||
|             return; | ||||
|         int num = a.length; | ||||
|         alloc(num); | ||||
|         int buff[] = new int[num * _channels]; | ||||
|         for(int i=0; i<num; i++) { | ||||
|             Point p = a[i]; | ||||
|             buff[_channels*i+0] = (int) p.x; | ||||
|             buff[_channels*i+1] = (int) p.y; | ||||
|         } | ||||
|         put(0, 0, buff); //TODO: check ret val!
 | ||||
|     } | ||||
| 
 | ||||
|     public Point[] toArray() { | ||||
|         int num = (int) total(); | ||||
|         Point[] ap = new Point[num]; | ||||
|         if(num == 0) | ||||
|             return ap; | ||||
|         int buff[] = new int[num * _channels]; | ||||
|         get(0, 0, buff); //TODO: check ret val!
 | ||||
|         for(int i=0; i<num; i++) | ||||
|             ap[i] = new Point(buff[i*_channels], buff[i*_channels+1]); | ||||
|         return ap; | ||||
|     } | ||||
| 
 | ||||
|     public void fromList(List<Point> lp) { | ||||
|         Point ap[] = lp.toArray(new Point[0]); | ||||
|         fromArray(ap); | ||||
|     } | ||||
| 
 | ||||
|     public List<Point> toList() { | ||||
|         Point[] ap = toArray(); | ||||
|         return Arrays.asList(ap); | ||||
|     } | ||||
| } | ||||
| @ -1,78 +0,0 @@ | ||||
| package org.opencv.core; | ||||
| 
 | ||||
| import java.util.Arrays; | ||||
| import java.util.List; | ||||
| 
 | ||||
| public class MatOfPoint2f extends Mat { | ||||
|     // 32FC2
 | ||||
|     private static final int _depth = CvType.CV_32F; | ||||
|     private static final int _channels = 2; | ||||
| 
 | ||||
|     public MatOfPoint2f() { | ||||
|         super(); | ||||
|     } | ||||
| 
 | ||||
|     protected MatOfPoint2f(long addr) { | ||||
|         super(addr); | ||||
|         if( !empty() && checkVector(_channels, _depth) < 0 ) | ||||
|             throw new IllegalArgumentException("Incompatible Mat"); | ||||
|         //FIXME: do we need release() here?
 | ||||
|     } | ||||
| 
 | ||||
|     public static MatOfPoint2f fromNativeAddr(long addr) { | ||||
|         return new MatOfPoint2f(addr); | ||||
|     } | ||||
| 
 | ||||
|     public MatOfPoint2f(Mat m) { | ||||
|         super(m, Range.all()); | ||||
|         if( !empty() && checkVector(_channels, _depth) < 0 ) | ||||
|             throw new IllegalArgumentException("Incompatible Mat"); | ||||
|         //FIXME: do we need release() here?
 | ||||
|     } | ||||
| 
 | ||||
|     public MatOfPoint2f(Point...a) { | ||||
|         super(); | ||||
|         fromArray(a); | ||||
|     } | ||||
| 
 | ||||
|     public void alloc(int elemNumber) { | ||||
|         if(elemNumber>0) | ||||
|             super.create(elemNumber, 1, CvType.makeType(_depth, _channels)); | ||||
|     } | ||||
| 
 | ||||
|     public void fromArray(Point...a) { | ||||
|         if(a==null || a.length==0) | ||||
|             return; | ||||
|         int num = a.length; | ||||
|         alloc(num); | ||||
|         float buff[] = new float[num * _channels]; | ||||
|         for(int i=0; i<num; i++) { | ||||
|             Point p = a[i]; | ||||
|             buff[_channels*i+0] = (float) p.x; | ||||
|             buff[_channels*i+1] = (float) p.y; | ||||
|         } | ||||
|         put(0, 0, buff); //TODO: check ret val!
 | ||||
|     } | ||||
| 
 | ||||
|     public Point[] toArray() { | ||||
|         int num = (int) total(); | ||||
|         Point[] ap = new Point[num]; | ||||
|         if(num == 0) | ||||
|             return ap; | ||||
|         float buff[] = new float[num * _channels]; | ||||
|         get(0, 0, buff); //TODO: check ret val!
 | ||||
|         for(int i=0; i<num; i++) | ||||
|             ap[i] = new Point(buff[i*_channels], buff[i*_channels+1]); | ||||
|         return ap; | ||||
|     } | ||||
| 
 | ||||
|     public void fromList(List<Point> lp) { | ||||
|         Point ap[] = lp.toArray(new Point[0]); | ||||
|         fromArray(ap); | ||||
|     } | ||||
| 
 | ||||
|     public List<Point> toList() { | ||||
|         Point[] ap = toArray(); | ||||
|         return Arrays.asList(ap); | ||||
|     } | ||||
| } | ||||
| @ -1,79 +0,0 @@ | ||||
| package org.opencv.core; | ||||
| 
 | ||||
| import java.util.Arrays; | ||||
| import java.util.List; | ||||
| 
 | ||||
| public class MatOfPoint3 extends Mat { | ||||
|     // 32SC3
 | ||||
|     private static final int _depth = CvType.CV_32S; | ||||
|     private static final int _channels = 3; | ||||
| 
 | ||||
|     public MatOfPoint3() { | ||||
|         super(); | ||||
|     } | ||||
| 
 | ||||
|     protected MatOfPoint3(long addr) { | ||||
|         super(addr); | ||||
|         if( !empty() && checkVector(_channels, _depth) < 0 ) | ||||
|             throw new IllegalArgumentException("Incompatible Mat"); | ||||
|         //FIXME: do we need release() here?
 | ||||
|     } | ||||
| 
 | ||||
|     public static MatOfPoint3 fromNativeAddr(long addr) { | ||||
|         return new MatOfPoint3(addr); | ||||
|     } | ||||
| 
 | ||||
|     public MatOfPoint3(Mat m) { | ||||
|         super(m, Range.all()); | ||||
|         if( !empty() && checkVector(_channels, _depth) < 0 ) | ||||
|             throw new IllegalArgumentException("Incompatible Mat"); | ||||
|         //FIXME: do we need release() here?
 | ||||
|     } | ||||
| 
 | ||||
|     public MatOfPoint3(Point3...a) { | ||||
|         super(); | ||||
|         fromArray(a); | ||||
|     } | ||||
| 
 | ||||
|     public void alloc(int elemNumber) { | ||||
|         if(elemNumber>0) | ||||
|             super.create(elemNumber, 1, CvType.makeType(_depth, _channels)); | ||||
|     } | ||||
| 
 | ||||
|     public void fromArray(Point3...a) { | ||||
|         if(a==null || a.length==0) | ||||
|             return; | ||||
|         int num = a.length; | ||||
|         alloc(num); | ||||
|         int buff[] = new int[num * _channels]; | ||||
|         for(int i=0; i<num; i++) { | ||||
|             Point3 p = a[i]; | ||||
|             buff[_channels*i+0] = (int) p.x; | ||||
|             buff[_channels*i+1] = (int) p.y; | ||||
|             buff[_channels*i+2] = (int) p.z; | ||||
|         } | ||||
|         put(0, 0, buff); //TODO: check ret val!
 | ||||
|     } | ||||
| 
 | ||||
|     public Point3[] toArray() { | ||||
|         int num = (int) total(); | ||||
|         Point3[] ap = new Point3[num]; | ||||
|         if(num == 0) | ||||
|             return ap; | ||||
|         int buff[] = new int[num * _channels]; | ||||
|         get(0, 0, buff); //TODO: check ret val!
 | ||||
|         for(int i=0; i<num; i++) | ||||
|             ap[i] = new Point3(buff[i*_channels], buff[i*_channels+1], buff[i*_channels+2]); | ||||
|         return ap; | ||||
|     } | ||||
| 
 | ||||
|     public void fromList(List<Point3> lp) { | ||||
|         Point3 ap[] = lp.toArray(new Point3[0]); | ||||
|         fromArray(ap); | ||||
|     } | ||||
| 
 | ||||
|     public List<Point3> toList() { | ||||
|         Point3[] ap = toArray(); | ||||
|         return Arrays.asList(ap); | ||||
|     } | ||||
| } | ||||
| @ -1,79 +0,0 @@ | ||||
| package org.opencv.core; | ||||
| 
 | ||||
| import java.util.Arrays; | ||||
| import java.util.List; | ||||
| 
 | ||||
| public class MatOfPoint3f extends Mat { | ||||
|     // 32FC3
 | ||||
|     private static final int _depth = CvType.CV_32F; | ||||
|     private static final int _channels = 3; | ||||
| 
 | ||||
|     public MatOfPoint3f() { | ||||
|         super(); | ||||
|     } | ||||
| 
 | ||||
|     protected MatOfPoint3f(long addr) { | ||||
|         super(addr); | ||||
|         if( !empty() && checkVector(_channels, _depth) < 0 ) | ||||
|             throw new IllegalArgumentException("Incompatible Mat"); | ||||
|         //FIXME: do we need release() here?
 | ||||
|     } | ||||
| 
 | ||||
|     public static MatOfPoint3f fromNativeAddr(long addr) { | ||||
|         return new MatOfPoint3f(addr); | ||||
|     } | ||||
| 
 | ||||
|     public MatOfPoint3f(Mat m) { | ||||
|         super(m, Range.all()); | ||||
|         if( !empty() && checkVector(_channels, _depth) < 0 ) | ||||
|             throw new IllegalArgumentException("Incompatible Mat"); | ||||
|         //FIXME: do we need release() here?
 | ||||
|     } | ||||
| 
 | ||||
|     public MatOfPoint3f(Point3...a) { | ||||
|         super(); | ||||
|         fromArray(a); | ||||
|     } | ||||
| 
 | ||||
|     public void alloc(int elemNumber) { | ||||
|         if(elemNumber>0) | ||||
|             super.create(elemNumber, 1, CvType.makeType(_depth, _channels)); | ||||
|     } | ||||
| 
 | ||||
|     public void fromArray(Point3...a) { | ||||
|         if(a==null || a.length==0) | ||||
|             return; | ||||
|         int num = a.length; | ||||
|         alloc(num); | ||||
|         float buff[] = new float[num * _channels]; | ||||
|         for(int i=0; i<num; i++) { | ||||
|             Point3 p = a[i]; | ||||
|             buff[_channels*i+0] = (float) p.x; | ||||
|             buff[_channels*i+1] = (float) p.y; | ||||
|             buff[_channels*i+2] = (float) p.z; | ||||
|         } | ||||
|         put(0, 0, buff); //TODO: check ret val!
 | ||||
|     } | ||||
| 
 | ||||
|     public Point3[] toArray() { | ||||
|         int num = (int) total(); | ||||
|         Point3[] ap = new Point3[num]; | ||||
|         if(num == 0) | ||||
|             return ap; | ||||
|         float buff[] = new float[num * _channels]; | ||||
|         get(0, 0, buff); //TODO: check ret val!
 | ||||
|         for(int i=0; i<num; i++) | ||||
|             ap[i] = new Point3(buff[i*_channels], buff[i*_channels+1], buff[i*_channels+2]); | ||||
|         return ap; | ||||
|     } | ||||
| 
 | ||||
|     public void fromList(List<Point3> lp) { | ||||
|         Point3 ap[] = lp.toArray(new Point3[0]); | ||||
|         fromArray(ap); | ||||
|     } | ||||
| 
 | ||||
|     public List<Point3> toList() { | ||||
|         Point3[] ap = toArray(); | ||||
|         return Arrays.asList(ap); | ||||
|     } | ||||
| } | ||||
| @ -1,81 +0,0 @@ | ||||
| package org.opencv.core; | ||||
| 
 | ||||
| import java.util.Arrays; | ||||
| import java.util.List; | ||||
| 
 | ||||
| 
 | ||||
| public class MatOfRect extends Mat { | ||||
|     // 32SC4
 | ||||
|     private static final int _depth = CvType.CV_32S; | ||||
|     private static final int _channels = 4; | ||||
| 
 | ||||
|     public MatOfRect() { | ||||
|         super(); | ||||
|     } | ||||
| 
 | ||||
|     protected MatOfRect(long addr) { | ||||
|         super(addr); | ||||
|         if( !empty() && checkVector(_channels, _depth) < 0 ) | ||||
|             throw new IllegalArgumentException("Incompatible Mat"); | ||||
|         //FIXME: do we need release() here?
 | ||||
|     } | ||||
| 
 | ||||
|     public static MatOfRect fromNativeAddr(long addr) { | ||||
|         return new MatOfRect(addr); | ||||
|     } | ||||
| 
 | ||||
|     public MatOfRect(Mat m) { | ||||
|         super(m, Range.all()); | ||||
|         if( !empty() && checkVector(_channels, _depth) < 0 ) | ||||
|             throw new IllegalArgumentException("Incompatible Mat"); | ||||
|         //FIXME: do we need release() here?
 | ||||
|     } | ||||
| 
 | ||||
|     public MatOfRect(Rect...a) { | ||||
|         super(); | ||||
|         fromArray(a); | ||||
|     } | ||||
| 
 | ||||
|     public void alloc(int elemNumber) { | ||||
|         if(elemNumber>0) | ||||
|             super.create(elemNumber, 1, CvType.makeType(_depth, _channels)); | ||||
|     } | ||||
| 
 | ||||
|     public void fromArray(Rect...a) { | ||||
|         if(a==null || a.length==0) | ||||
|             return; | ||||
|         int num = a.length; | ||||
|         alloc(num); | ||||
|         int buff[] = new int[num * _channels]; | ||||
|         for(int i=0; i<num; i++) { | ||||
|             Rect r = a[i]; | ||||
|             buff[_channels*i+0] = (int) r.x; | ||||
|             buff[_channels*i+1] = (int) r.y; | ||||
|             buff[_channels*i+2] = (int) r.width; | ||||
|             buff[_channels*i+3] = (int) r.height; | ||||
|         } | ||||
|         put(0, 0, buff); //TODO: check ret val!
 | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     public Rect[] toArray() { | ||||
|         int num = (int) total(); | ||||
|         Rect[] a = new Rect[num]; | ||||
|         if(num == 0) | ||||
|             return a; | ||||
|         int buff[] = new int[num * _channels]; | ||||
|         get(0, 0, buff); //TODO: check ret val!
 | ||||
|         for(int i=0; i<num; i++) | ||||
|             a[i] = new Rect(buff[i*_channels], buff[i*_channels+1], buff[i*_channels+2], buff[i*_channels+3]); | ||||
|         return a; | ||||
|     } | ||||
|     public void fromList(List<Rect> lr) { | ||||
|         Rect ap[] = lr.toArray(new Rect[0]); | ||||
|         fromArray(ap); | ||||
|     } | ||||
| 
 | ||||
|     public List<Rect> toList() { | ||||
|         Rect[] ar = toArray(); | ||||
|         return Arrays.asList(ar); | ||||
|     } | ||||
| } | ||||
| @ -1,81 +0,0 @@ | ||||
| package org.opencv.core; | ||||
| 
 | ||||
| import java.util.Arrays; | ||||
| import java.util.List; | ||||
| 
 | ||||
| 
 | ||||
| public class MatOfRect2d extends Mat { | ||||
|     // 64FC4
 | ||||
|     private static final int _depth = CvType.CV_64F; | ||||
|     private static final int _channels = 4; | ||||
| 
 | ||||
|     public MatOfRect2d() { | ||||
|         super(); | ||||
|     } | ||||
| 
 | ||||
|     protected MatOfRect2d(long addr) { | ||||
|         super(addr); | ||||
|         if( !empty() && checkVector(_channels, _depth) < 0 ) | ||||
|             throw new IllegalArgumentException("Incompatible Mat"); | ||||
|         //FIXME: do we need release() here?
 | ||||
|     } | ||||
| 
 | ||||
|     public static MatOfRect2d fromNativeAddr(long addr) { | ||||
|         return new MatOfRect2d(addr); | ||||
|     } | ||||
| 
 | ||||
|     public MatOfRect2d(Mat m) { | ||||
|         super(m, Range.all()); | ||||
|         if( !empty() && checkVector(_channels, _depth) < 0 ) | ||||
|             throw new IllegalArgumentException("Incompatible Mat"); | ||||
|         //FIXME: do we need release() here?
 | ||||
|     } | ||||
| 
 | ||||
|     public MatOfRect2d(Rect2d...a) { | ||||
|         super(); | ||||
|         fromArray(a); | ||||
|     } | ||||
| 
 | ||||
|     public void alloc(int elemNumber) { | ||||
|         if(elemNumber>0) | ||||
|             super.create(elemNumber, 1, CvType.makeType(_depth, _channels)); | ||||
|     } | ||||
| 
 | ||||
|     public void fromArray(Rect2d...a) { | ||||
|         if(a==null || a.length==0) | ||||
|             return; | ||||
|         int num = a.length; | ||||
|         alloc(num); | ||||
|         double buff[] = new double[num * _channels]; | ||||
|         for(int i=0; i<num; i++) { | ||||
|             Rect2d r = a[i]; | ||||
|             buff[_channels*i+0] = (double) r.x; | ||||
|             buff[_channels*i+1] = (double) r.y; | ||||
|             buff[_channels*i+2] = (double) r.width; | ||||
|             buff[_channels*i+3] = (double) r.height; | ||||
|         } | ||||
|         put(0, 0, buff); //TODO: check ret val!
 | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     public Rect2d[] toArray() { | ||||
|         int num = (int) total(); | ||||
|         Rect2d[] a = new Rect2d[num]; | ||||
|         if(num == 0) | ||||
|             return a; | ||||
|         double buff[] = new double[num * _channels]; | ||||
|         get(0, 0, buff); //TODO: check ret val!
 | ||||
|         for(int i=0; i<num; i++) | ||||
|             a[i] = new Rect2d(buff[i*_channels], buff[i*_channels+1], buff[i*_channels+2], buff[i*_channels+3]); | ||||
|         return a; | ||||
|     } | ||||
|     public void fromList(List<Rect2d> lr) { | ||||
|         Rect2d ap[] = lr.toArray(new Rect2d[0]); | ||||
|         fromArray(ap); | ||||
|     } | ||||
| 
 | ||||
|     public List<Rect2d> toList() { | ||||
|         Rect2d[] ar = toArray(); | ||||
|         return Arrays.asList(ar); | ||||
|     } | ||||
| } | ||||
| @ -1,68 +0,0 @@ | ||||
| package org.opencv.core; | ||||
| 
 | ||||
| //javadoc:Point_
 | ||||
| public class Point { | ||||
| 
 | ||||
|     public double x, y; | ||||
| 
 | ||||
|     public Point(double x, double y) { | ||||
|         this.x = x; | ||||
|         this.y = y; | ||||
|     } | ||||
| 
 | ||||
|     public Point() { | ||||
|         this(0, 0); | ||||
|     } | ||||
| 
 | ||||
|     public Point(double[] vals) { | ||||
|         this(); | ||||
|         set(vals); | ||||
|     } | ||||
| 
 | ||||
|     public void set(double[] vals) { | ||||
|         if (vals != null) { | ||||
|             x = vals.length > 0 ? vals[0] : 0; | ||||
|             y = vals.length > 1 ? vals[1] : 0; | ||||
|         } else { | ||||
|             x = 0; | ||||
|             y = 0; | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     public Point clone() { | ||||
|         return new Point(x, y); | ||||
|     } | ||||
| 
 | ||||
|     public double dot(Point p) { | ||||
|         return x * p.x + y * p.y; | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public int hashCode() { | ||||
|         final int prime = 31; | ||||
|         int result = 1; | ||||
|         long temp; | ||||
|         temp = Double.doubleToLongBits(x); | ||||
|         result = prime * result + (int) (temp ^ (temp >>> 32)); | ||||
|         temp = Double.doubleToLongBits(y); | ||||
|         result = prime * result + (int) (temp ^ (temp >>> 32)); | ||||
|         return result; | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public boolean equals(Object obj) { | ||||
|         if (this == obj) return true; | ||||
|         if (!(obj instanceof Point)) return false; | ||||
|         Point it = (Point) obj; | ||||
|         return x == it.x && y == it.y; | ||||
|     } | ||||
| 
 | ||||
|     public boolean inside(Rect r) { | ||||
|         return r.contains(this); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public String toString() { | ||||
|         return "{" + x + ", " + y + "}"; | ||||
|     } | ||||
| } | ||||
| @ -1,79 +0,0 @@ | ||||
| package org.opencv.core; | ||||
| 
 | ||||
| //javadoc:Point3_
 | ||||
| public class Point3 { | ||||
| 
 | ||||
|     public double x, y, z; | ||||
| 
 | ||||
|     public Point3(double x, double y, double z) { | ||||
|         this.x = x; | ||||
|         this.y = y; | ||||
|         this.z = z; | ||||
|     } | ||||
| 
 | ||||
|     public Point3() { | ||||
|         this(0, 0, 0); | ||||
|     } | ||||
| 
 | ||||
|     public Point3(Point p) { | ||||
|         x = p.x; | ||||
|         y = p.y; | ||||
|         z = 0; | ||||
|     } | ||||
| 
 | ||||
|     public Point3(double[] vals) { | ||||
|         this(); | ||||
|         set(vals); | ||||
|     } | ||||
| 
 | ||||
|     public void set(double[] vals) { | ||||
|         if (vals != null) { | ||||
|             x = vals.length > 0 ? vals[0] : 0; | ||||
|             y = vals.length > 1 ? vals[1] : 0; | ||||
|             z = vals.length > 2 ? vals[2] : 0; | ||||
|         } else { | ||||
|             x = 0; | ||||
|             y = 0; | ||||
|             z = 0; | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     public Point3 clone() { | ||||
|         return new Point3(x, y, z); | ||||
|     } | ||||
| 
 | ||||
|     public double dot(Point3 p) { | ||||
|         return x * p.x + y * p.y + z * p.z; | ||||
|     } | ||||
| 
 | ||||
|     public Point3 cross(Point3 p) { | ||||
|         return new Point3(y * p.z - z * p.y, z * p.x - x * p.z, x * p.y - y * p.x); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public int hashCode() { | ||||
|         final int prime = 31; | ||||
|         int result = 1; | ||||
|         long temp; | ||||
|         temp = Double.doubleToLongBits(x); | ||||
|         result = prime * result + (int) (temp ^ (temp >>> 32)); | ||||
|         temp = Double.doubleToLongBits(y); | ||||
|         result = prime * result + (int) (temp ^ (temp >>> 32)); | ||||
|         temp = Double.doubleToLongBits(z); | ||||
|         result = prime * result + (int) (temp ^ (temp >>> 32)); | ||||
|         return result; | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public boolean equals(Object obj) { | ||||
|         if (this == obj) return true; | ||||
|         if (!(obj instanceof Point3)) return false; | ||||
|         Point3 it = (Point3) obj; | ||||
|         return x == it.x && y == it.y && z == it.z; | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public String toString() { | ||||
|         return "{" + x + ", " + y + ", " + z + "}"; | ||||
|     } | ||||
| } | ||||
| @ -1,82 +0,0 @@ | ||||
| package org.opencv.core; | ||||
| 
 | ||||
| //javadoc:Range
 | ||||
| public class Range { | ||||
| 
 | ||||
|     public int start, end; | ||||
| 
 | ||||
|     public Range(int s, int e) { | ||||
|         this.start = s; | ||||
|         this.end = e; | ||||
|     } | ||||
| 
 | ||||
|     public Range() { | ||||
|         this(0, 0); | ||||
|     } | ||||
| 
 | ||||
|     public Range(double[] vals) { | ||||
|         set(vals); | ||||
|     } | ||||
| 
 | ||||
|     public void set(double[] vals) { | ||||
|         if (vals != null) { | ||||
|             start = vals.length > 0 ? (int) vals[0] : 0; | ||||
|             end = vals.length > 1 ? (int) vals[1] : 0; | ||||
|         } else { | ||||
|             start = 0; | ||||
|             end = 0; | ||||
|         } | ||||
| 
 | ||||
|     } | ||||
| 
 | ||||
|     public int size() { | ||||
|         return empty() ? 0 : end - start; | ||||
|     } | ||||
| 
 | ||||
|     public boolean empty() { | ||||
|         return end <= start; | ||||
|     } | ||||
| 
 | ||||
|     public static Range all() { | ||||
|         return new Range(Integer.MIN_VALUE, Integer.MAX_VALUE); | ||||
|     } | ||||
| 
 | ||||
|     public Range intersection(Range r1) { | ||||
|         Range r = new Range(Math.max(r1.start, this.start), Math.min(r1.end, this.end)); | ||||
|         r.end = Math.max(r.end, r.start); | ||||
|         return r; | ||||
|     } | ||||
| 
 | ||||
|     public Range shift(int delta) { | ||||
|         return new Range(start + delta, end + delta); | ||||
|     } | ||||
| 
 | ||||
|     public Range clone() { | ||||
|         return new Range(start, end); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public int hashCode() { | ||||
|         final int prime = 31; | ||||
|         int result = 1; | ||||
|         long temp; | ||||
|         temp = Double.doubleToLongBits(start); | ||||
|         result = prime * result + (int) (temp ^ (temp >>> 32)); | ||||
|         temp = Double.doubleToLongBits(end); | ||||
|         result = prime * result + (int) (temp ^ (temp >>> 32)); | ||||
|         return result; | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public boolean equals(Object obj) { | ||||
|         if (this == obj) return true; | ||||
|         if (!(obj instanceof Range)) return false; | ||||
|         Range it = (Range) obj; | ||||
|         return start == it.start && end == it.end; | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public String toString() { | ||||
|         return "[" + start + ", " + end + ")"; | ||||
|     } | ||||
| } | ||||
| @ -1,104 +0,0 @@ | ||||
| package org.opencv.core; | ||||
| 
 | ||||
| //javadoc:Rect_
 | ||||
| public class Rect { | ||||
| 
 | ||||
|     public int x, y, width, height; | ||||
| 
 | ||||
|     public Rect(int x, int y, int width, int height) { | ||||
|         this.x = x; | ||||
|         this.y = y; | ||||
|         this.width = width; | ||||
|         this.height = height; | ||||
|     } | ||||
| 
 | ||||
|     public Rect() { | ||||
|         this(0, 0, 0, 0); | ||||
|     } | ||||
| 
 | ||||
|     public Rect(Point p1, Point p2) { | ||||
|         x = (int) (p1.x < p2.x ? p1.x : p2.x); | ||||
|         y = (int) (p1.y < p2.y ? p1.y : p2.y); | ||||
|         width = (int) (p1.x > p2.x ? p1.x : p2.x) - x; | ||||
|         height = (int) (p1.y > p2.y ? p1.y : p2.y) - y; | ||||
|     } | ||||
| 
 | ||||
|     public Rect(Point p, Size s) { | ||||
|         this((int) p.x, (int) p.y, (int) s.width, (int) s.height); | ||||
|     } | ||||
| 
 | ||||
|     public Rect(double[] vals) { | ||||
|         set(vals); | ||||
|     } | ||||
| 
 | ||||
|     public void set(double[] vals) { | ||||
|         if (vals != null) { | ||||
|             x = vals.length > 0 ? (int) vals[0] : 0; | ||||
|             y = vals.length > 1 ? (int) vals[1] : 0; | ||||
|             width = vals.length > 2 ? (int) vals[2] : 0; | ||||
|             height = vals.length > 3 ? (int) vals[3] : 0; | ||||
|         } else { | ||||
|             x = 0; | ||||
|             y = 0; | ||||
|             width = 0; | ||||
|             height = 0; | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     public Rect clone() { | ||||
|         return new Rect(x, y, width, height); | ||||
|     } | ||||
| 
 | ||||
|     public Point tl() { | ||||
|         return new Point(x, y); | ||||
|     } | ||||
| 
 | ||||
|     public Point br() { | ||||
|         return new Point(x + width, y + height); | ||||
|     } | ||||
| 
 | ||||
|     public Size size() { | ||||
|         return new Size(width, height); | ||||
|     } | ||||
| 
 | ||||
|     public double area() { | ||||
|         return width * height; | ||||
|     } | ||||
| 
 | ||||
|     public boolean empty() { | ||||
|         return width <= 0 || height <= 0; | ||||
|     } | ||||
| 
 | ||||
|     public boolean contains(Point p) { | ||||
|         return x <= p.x && p.x < x + width && y <= p.y && p.y < y + height; | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public int hashCode() { | ||||
|         final int prime = 31; | ||||
|         int result = 1; | ||||
|         long temp; | ||||
|         temp = Double.doubleToLongBits(height); | ||||
|         result = prime * result + (int) (temp ^ (temp >>> 32)); | ||||
|         temp = Double.doubleToLongBits(width); | ||||
|         result = prime * result + (int) (temp ^ (temp >>> 32)); | ||||
|         temp = Double.doubleToLongBits(x); | ||||
|         result = prime * result + (int) (temp ^ (temp >>> 32)); | ||||
|         temp = Double.doubleToLongBits(y); | ||||
|         result = prime * result + (int) (temp ^ (temp >>> 32)); | ||||
|         return result; | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public boolean equals(Object obj) { | ||||
|         if (this == obj) return true; | ||||
|         if (!(obj instanceof Rect)) return false; | ||||
|         Rect it = (Rect) obj; | ||||
|         return x == it.x && y == it.y && width == it.width && height == it.height; | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public String toString() { | ||||
|         return "{" + x + ", " + y + ", " + width + "x" + height + "}"; | ||||
|     } | ||||
| } | ||||
| @ -1,104 +0,0 @@ | ||||
| package org.opencv.core; | ||||
| 
 | ||||
| //javadoc:Rect2d_
 | ||||
| public class Rect2d { | ||||
| 
 | ||||
|     public double x, y, width, height; | ||||
| 
 | ||||
|     public Rect2d(double x, double y, double width, double height) { | ||||
|         this.x = x; | ||||
|         this.y = y; | ||||
|         this.width = width; | ||||
|         this.height = height; | ||||
|     } | ||||
| 
 | ||||
|     public Rect2d() { | ||||
|         this(0, 0, 0, 0); | ||||
|     } | ||||
| 
 | ||||
|     public Rect2d(Point p1, Point p2) { | ||||
|         x = (double) (p1.x < p2.x ? p1.x : p2.x); | ||||
|         y = (double) (p1.y < p2.y ? p1.y : p2.y); | ||||
|         width = (double) (p1.x > p2.x ? p1.x : p2.x) - x; | ||||
|         height = (double) (p1.y > p2.y ? p1.y : p2.y) - y; | ||||
|     } | ||||
| 
 | ||||
|     public Rect2d(Point p, Size s) { | ||||
|         this((double) p.x, (double) p.y, (double) s.width, (double) s.height); | ||||
|     } | ||||
| 
 | ||||
|     public Rect2d(double[] vals) { | ||||
|         set(vals); | ||||
|     } | ||||
| 
 | ||||
|     public void set(double[] vals) { | ||||
|         if (vals != null) { | ||||
|             x = vals.length > 0 ? (double) vals[0] : 0; | ||||
|             y = vals.length > 1 ? (double) vals[1] : 0; | ||||
|             width = vals.length > 2 ? (double) vals[2] : 0; | ||||
|             height = vals.length > 3 ? (double) vals[3] : 0; | ||||
|         } else { | ||||
|             x = 0; | ||||
|             y = 0; | ||||
|             width = 0; | ||||
|             height = 0; | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     public Rect2d clone() { | ||||
|         return new Rect2d(x, y, width, height); | ||||
|     } | ||||
| 
 | ||||
|     public Point tl() { | ||||
|         return new Point(x, y); | ||||
|     } | ||||
| 
 | ||||
|     public Point br() { | ||||
|         return new Point(x + width, y + height); | ||||
|     } | ||||
| 
 | ||||
|     public Size size() { | ||||
|         return new Size(width, height); | ||||
|     } | ||||
| 
 | ||||
|     public double area() { | ||||
|         return width * height; | ||||
|     } | ||||
| 
 | ||||
|     public boolean empty() { | ||||
|         return width <= 0 || height <= 0; | ||||
|     } | ||||
| 
 | ||||
|     public boolean contains(Point p) { | ||||
|         return x <= p.x && p.x < x + width && y <= p.y && p.y < y + height; | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public int hashCode() { | ||||
|         final int prime = 31; | ||||
|         int result = 1; | ||||
|         long temp; | ||||
|         temp = Double.doubleToLongBits(height); | ||||
|         result = prime * result + (int) (temp ^ (temp >>> 32)); | ||||
|         temp = Double.doubleToLongBits(width); | ||||
|         result = prime * result + (int) (temp ^ (temp >>> 32)); | ||||
|         temp = Double.doubleToLongBits(x); | ||||
|         result = prime * result + (int) (temp ^ (temp >>> 32)); | ||||
|         temp = Double.doubleToLongBits(y); | ||||
|         result = prime * result + (int) (temp ^ (temp >>> 32)); | ||||
|         return result; | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public boolean equals(Object obj) { | ||||
|         if (this == obj) return true; | ||||
|         if (!(obj instanceof Rect2d)) return false; | ||||
|         Rect2d it = (Rect2d) obj; | ||||
|         return x == it.x && y == it.y && width == it.width && height == it.height; | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public String toString() { | ||||
|         return "{" + x + ", " + y + ", " + width + "x" + height + "}"; | ||||
|     } | ||||
| } | ||||
| @ -1,113 +0,0 @@ | ||||
| package org.opencv.core; | ||||
| 
 | ||||
| //javadoc:RotatedRect_
 | ||||
| public class RotatedRect { | ||||
| 
 | ||||
|     public Point center; | ||||
|     public Size size; | ||||
|     public double angle; | ||||
| 
 | ||||
|     public RotatedRect() { | ||||
|         this.center = new Point(); | ||||
|         this.size = new Size(); | ||||
|         this.angle = 0; | ||||
|     } | ||||
| 
 | ||||
|     public RotatedRect(Point c, Size s, double a) { | ||||
|         this.center = c.clone(); | ||||
|         this.size = s.clone(); | ||||
|         this.angle = a; | ||||
|     } | ||||
| 
 | ||||
|     public RotatedRect(double[] vals) { | ||||
|         this(); | ||||
|         set(vals); | ||||
|     } | ||||
| 
 | ||||
|     public void set(double[] vals) { | ||||
|         if (vals != null) { | ||||
|             center.x = vals.length > 0 ? (double) vals[0] : 0; | ||||
|             center.y = vals.length > 1 ? (double) vals[1] : 0; | ||||
|             size.width = vals.length > 2 ? (double) vals[2] : 0; | ||||
|             size.height = vals.length > 3 ? (double) vals[3] : 0; | ||||
|             angle = vals.length > 4 ? (double) vals[4] : 0; | ||||
|         } else { | ||||
|             center.x = 0; | ||||
|             center.x = 0; | ||||
|             size.width = 0; | ||||
|             size.height = 0; | ||||
|             angle = 0; | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     public void points(Point pt[]) | ||||
|     { | ||||
|         double _angle = angle * Math.PI / 180.0; | ||||
|         double b = (double) Math.cos(_angle) * 0.5f; | ||||
|         double a = (double) Math.sin(_angle) * 0.5f; | ||||
| 
 | ||||
|         pt[0] = new Point( | ||||
|                 center.x - a * size.height - b * size.width, | ||||
|                 center.y + b * size.height - a * size.width); | ||||
| 
 | ||||
|         pt[1] = new Point( | ||||
|                 center.x + a * size.height - b * size.width, | ||||
|                 center.y - b * size.height - a * size.width); | ||||
| 
 | ||||
|         pt[2] = new Point( | ||||
|                 2 * center.x - pt[0].x, | ||||
|                 2 * center.y - pt[0].y); | ||||
| 
 | ||||
|         pt[3] = new Point( | ||||
|                 2 * center.x - pt[1].x, | ||||
|                 2 * center.y - pt[1].y); | ||||
|     } | ||||
| 
 | ||||
|     public Rect boundingRect() | ||||
|     { | ||||
|         Point pt[] = new Point[4]; | ||||
|         points(pt); | ||||
|         Rect r = new Rect((int) Math.floor(Math.min(Math.min(Math.min(pt[0].x, pt[1].x), pt[2].x), pt[3].x)), | ||||
|                 (int) Math.floor(Math.min(Math.min(Math.min(pt[0].y, pt[1].y), pt[2].y), pt[3].y)), | ||||
|                 (int) Math.ceil(Math.max(Math.max(Math.max(pt[0].x, pt[1].x), pt[2].x), pt[3].x)), | ||||
|                 (int) Math.ceil(Math.max(Math.max(Math.max(pt[0].y, pt[1].y), pt[2].y), pt[3].y))); | ||||
|         r.width -= r.x - 1; | ||||
|         r.height -= r.y - 1; | ||||
|         return r; | ||||
|     } | ||||
| 
 | ||||
|     public RotatedRect clone() { | ||||
|         return new RotatedRect(center, size, angle); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public int hashCode() { | ||||
|         final int prime = 31; | ||||
|         int result = 1; | ||||
|         long temp; | ||||
|         temp = Double.doubleToLongBits(center.x); | ||||
|         result = prime * result + (int) (temp ^ (temp >>> 32)); | ||||
|         temp = Double.doubleToLongBits(center.y); | ||||
|         result = prime * result + (int) (temp ^ (temp >>> 32)); | ||||
|         temp = Double.doubleToLongBits(size.width); | ||||
|         result = prime * result + (int) (temp ^ (temp >>> 32)); | ||||
|         temp = Double.doubleToLongBits(size.height); | ||||
|         result = prime * result + (int) (temp ^ (temp >>> 32)); | ||||
|         temp = Double.doubleToLongBits(angle); | ||||
|         result = prime * result + (int) (temp ^ (temp >>> 32)); | ||||
|         return result; | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public boolean equals(Object obj) { | ||||
|         if (this == obj) return true; | ||||
|         if (!(obj instanceof RotatedRect)) return false; | ||||
|         RotatedRect it = (RotatedRect) obj; | ||||
|         return center.equals(it.center) && size.equals(it.size) && angle == it.angle; | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public String toString() { | ||||
|         return "{ " + center + " " + size + " * " + angle + " }"; | ||||
|     } | ||||
| } | ||||
| @ -1,90 +0,0 @@ | ||||
| package org.opencv.core; | ||||
| 
 | ||||
| //javadoc:Scalar_
 | ||||
| public class Scalar { | ||||
| 
 | ||||
|     public double val[]; | ||||
| 
 | ||||
|     public Scalar(double v0, double v1, double v2, double v3) { | ||||
|         val = new double[] { v0, v1, v2, v3 }; | ||||
|     } | ||||
| 
 | ||||
|     public Scalar(double v0, double v1, double v2) { | ||||
|         val = new double[] { v0, v1, v2, 0 }; | ||||
|     } | ||||
| 
 | ||||
|     public Scalar(double v0, double v1) { | ||||
|         val = new double[] { v0, v1, 0, 0 }; | ||||
|     } | ||||
| 
 | ||||
|     public Scalar(double v0) { | ||||
|         val = new double[] { v0, 0, 0, 0 }; | ||||
|     } | ||||
| 
 | ||||
|     public Scalar(double[] vals) { | ||||
|         if (vals != null && vals.length == 4) | ||||
|             val = vals.clone(); | ||||
|         else { | ||||
|             val = new double[4]; | ||||
|             set(vals); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     public void set(double[] vals) { | ||||
|         if (vals != null) { | ||||
|             val[0] = vals.length > 0 ? vals[0] : 0; | ||||
|             val[1] = vals.length > 1 ? vals[1] : 0; | ||||
|             val[2] = vals.length > 2 ? vals[2] : 0; | ||||
|             val[3] = vals.length > 3 ? vals[3] : 0; | ||||
|         } else | ||||
|             val[0] = val[1] = val[2] = val[3] = 0; | ||||
|     } | ||||
| 
 | ||||
|     public static Scalar all(double v) { | ||||
|         return new Scalar(v, v, v, v); | ||||
|     } | ||||
| 
 | ||||
|     public Scalar clone() { | ||||
|         return new Scalar(val); | ||||
|     } | ||||
| 
 | ||||
|     public Scalar mul(Scalar it, double scale) { | ||||
|         return new Scalar(val[0] * it.val[0] * scale, val[1] * it.val[1] * scale, | ||||
|                 val[2] * it.val[2] * scale, val[3] * it.val[3] * scale); | ||||
|     } | ||||
| 
 | ||||
|     public Scalar mul(Scalar it) { | ||||
|         return mul(it, 1); | ||||
|     } | ||||
| 
 | ||||
|     public Scalar conj() { | ||||
|         return new Scalar(val[0], -val[1], -val[2], -val[3]); | ||||
|     } | ||||
| 
 | ||||
|     public boolean isReal() { | ||||
|         return val[1] == 0 && val[2] == 0 && val[3] == 0; | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public int hashCode() { | ||||
|         final int prime = 31; | ||||
|         int result = 1; | ||||
|         result = prime * result + java.util.Arrays.hashCode(val); | ||||
|         return result; | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public boolean equals(Object obj) { | ||||
|         if (this == obj) return true; | ||||
|         if (!(obj instanceof Scalar)) return false; | ||||
|         Scalar it = (Scalar) obj; | ||||
|         if (!java.util.Arrays.equals(val, it.val)) return false; | ||||
|         return true; | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public String toString() { | ||||
|         return "[" + val[0] + ", " + val[1] + ", " + val[2] + ", " + val[3] + "]"; | ||||
|     } | ||||
| 
 | ||||
| } | ||||
| @ -1,73 +0,0 @@ | ||||
| package org.opencv.core; | ||||
| 
 | ||||
| //javadoc:Size_
 | ||||
| public class Size { | ||||
| 
 | ||||
|     public double width, height; | ||||
| 
 | ||||
|     public Size(double width, double height) { | ||||
|         this.width = width; | ||||
|         this.height = height; | ||||
|     } | ||||
| 
 | ||||
|     public Size() { | ||||
|         this(0, 0); | ||||
|     } | ||||
| 
 | ||||
|     public Size(Point p) { | ||||
|         width = p.x; | ||||
|         height = p.y; | ||||
|     } | ||||
| 
 | ||||
|     public Size(double[] vals) { | ||||
|         set(vals); | ||||
|     } | ||||
| 
 | ||||
|     public void set(double[] vals) { | ||||
|         if (vals != null) { | ||||
|             width = vals.length > 0 ? vals[0] : 0; | ||||
|             height = vals.length > 1 ? vals[1] : 0; | ||||
|         } else { | ||||
|             width = 0; | ||||
|             height = 0; | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     public double area() { | ||||
|         return width * height; | ||||
|     } | ||||
| 
 | ||||
|     public boolean empty() { | ||||
|         return width <= 0 || height <= 0; | ||||
|     } | ||||
| 
 | ||||
|     public Size clone() { | ||||
|         return new Size(width, height); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public int hashCode() { | ||||
|         final int prime = 31; | ||||
|         int result = 1; | ||||
|         long temp; | ||||
|         temp = Double.doubleToLongBits(height); | ||||
|         result = prime * result + (int) (temp ^ (temp >>> 32)); | ||||
|         temp = Double.doubleToLongBits(width); | ||||
|         result = prime * result + (int) (temp ^ (temp >>> 32)); | ||||
|         return result; | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public boolean equals(Object obj) { | ||||
|         if (this == obj) return true; | ||||
|         if (!(obj instanceof Size)) return false; | ||||
|         Size it = (Size) obj; | ||||
|         return width == it.width && height == it.height; | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public String toString() { | ||||
|         return (int)width + "x" + (int)height; | ||||
|     } | ||||
| 
 | ||||
| } | ||||
| @ -1,92 +0,0 @@ | ||||
| package org.opencv.core; | ||||
| 
 | ||||
| //javadoc:TermCriteria
 | ||||
| public class TermCriteria { | ||||
| 
 | ||||
|     /** | ||||
|      * The maximum number of iterations or elements to compute | ||||
|      */ | ||||
|     public static final int COUNT = 1; | ||||
|     /** | ||||
|      * The maximum number of iterations or elements to compute | ||||
|      */ | ||||
|     public static final int MAX_ITER = COUNT; | ||||
|     /** | ||||
|      * The desired accuracy threshold or change in parameters at which the iterative algorithm is terminated. | ||||
|      */ | ||||
|     public static final int EPS = 2; | ||||
| 
 | ||||
|     public int type; | ||||
|     public int maxCount; | ||||
|     public double epsilon; | ||||
| 
 | ||||
|     /** | ||||
|      * Termination criteria for iterative algorithms. | ||||
|      * | ||||
|      * @param type | ||||
|      *            the type of termination criteria: COUNT, EPS or COUNT + EPS. | ||||
|      * @param maxCount | ||||
|      *            the maximum number of iterations/elements. | ||||
|      * @param epsilon | ||||
|      *            the desired accuracy. | ||||
|      */ | ||||
|     public TermCriteria(int type, int maxCount, double epsilon) { | ||||
|         this.type = type; | ||||
|         this.maxCount = maxCount; | ||||
|         this.epsilon = epsilon; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Termination criteria for iterative algorithms. | ||||
|      */ | ||||
|     public TermCriteria() { | ||||
|         this(0, 0, 0.0); | ||||
|     } | ||||
| 
 | ||||
|     public TermCriteria(double[] vals) { | ||||
|         set(vals); | ||||
|     } | ||||
| 
 | ||||
|     public void set(double[] vals) { | ||||
|         if (vals != null) { | ||||
|             type = vals.length > 0 ? (int) vals[0] : 0; | ||||
|             maxCount = vals.length > 1 ? (int) vals[1] : 0; | ||||
|             epsilon = vals.length > 2 ? (double) vals[2] : 0; | ||||
|         } else { | ||||
|             type = 0; | ||||
|             maxCount = 0; | ||||
|             epsilon = 0; | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     public TermCriteria clone() { | ||||
|         return new TermCriteria(type, maxCount, epsilon); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public int hashCode() { | ||||
|         final int prime = 31; | ||||
|         int result = 1; | ||||
|         long temp; | ||||
|         temp = Double.doubleToLongBits(type); | ||||
|         result = prime * result + (int) (temp ^ (temp >>> 32)); | ||||
|         temp = Double.doubleToLongBits(maxCount); | ||||
|         result = prime * result + (int) (temp ^ (temp >>> 32)); | ||||
|         temp = Double.doubleToLongBits(epsilon); | ||||
|         result = prime * result + (int) (temp ^ (temp >>> 32)); | ||||
|         return result; | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public boolean equals(Object obj) { | ||||
|         if (this == obj) return true; | ||||
|         if (!(obj instanceof TermCriteria)) return false; | ||||
|         TermCriteria it = (TermCriteria) obj; | ||||
|         return type == it.type && maxCount == it.maxCount && epsilon == it.epsilon; | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public String toString() { | ||||
|         return "{ type: " + type + ", maxCount: " + maxCount + ", epsilon: " + epsilon + "}"; | ||||
|     } | ||||
| } | ||||
| @ -1,182 +0,0 @@ | ||||
| 
 | ||||
| //
 | ||||
| // This file is auto-generated. Please don't modify it!
 | ||||
| //
 | ||||
| package org.opencv.core; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| // C++: class TickMeter
 | ||||
| //javadoc: TickMeter
 | ||||
| 
 | ||||
| public class TickMeter { | ||||
| 
 | ||||
|     protected final long nativeObj; | ||||
|     protected TickMeter(long addr) { nativeObj = addr; } | ||||
| 
 | ||||
|     public long getNativeObjAddr() { return nativeObj; } | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:   TickMeter()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: TickMeter::TickMeter()
 | ||||
|     public   TickMeter() | ||||
|     { | ||||
|          | ||||
|         nativeObj = TickMeter_0(); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  double getTimeMicro()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: TickMeter::getTimeMicro()
 | ||||
|     public  double getTimeMicro() | ||||
|     { | ||||
|          | ||||
|         double retVal = getTimeMicro_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  double getTimeMilli()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: TickMeter::getTimeMilli()
 | ||||
|     public  double getTimeMilli() | ||||
|     { | ||||
|          | ||||
|         double retVal = getTimeMilli_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  double getTimeSec()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: TickMeter::getTimeSec()
 | ||||
|     public  double getTimeSec() | ||||
|     { | ||||
|          | ||||
|         double retVal = getTimeSec_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int64 getCounter()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: TickMeter::getCounter()
 | ||||
|     public  long getCounter() | ||||
|     { | ||||
|          | ||||
|         long retVal = getCounter_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int64 getTimeTicks()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: TickMeter::getTimeTicks()
 | ||||
|     public  long getTimeTicks() | ||||
|     { | ||||
|          | ||||
|         long retVal = getTimeTicks_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void reset()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: TickMeter::reset()
 | ||||
|     public  void reset() | ||||
|     { | ||||
|          | ||||
|         reset_0(nativeObj); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void start()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: TickMeter::start()
 | ||||
|     public  void start() | ||||
|     { | ||||
|          | ||||
|         start_0(nativeObj); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void stop()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: TickMeter::stop()
 | ||||
|     public  void stop() | ||||
|     { | ||||
|          | ||||
|         stop_0(nativeObj); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     @Override | ||||
|     protected void finalize() throws Throwable { | ||||
|         delete(nativeObj); | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     // C++:   TickMeter()
 | ||||
|     private static native long TickMeter_0(); | ||||
| 
 | ||||
|     // C++:  double getTimeMicro()
 | ||||
|     private static native double getTimeMicro_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  double getTimeMilli()
 | ||||
|     private static native double getTimeMilli_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  double getTimeSec()
 | ||||
|     private static native double getTimeSec_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  int64 getCounter()
 | ||||
|     private static native long getCounter_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  int64 getTimeTicks()
 | ||||
|     private static native long getTimeTicks_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  void reset()
 | ||||
|     private static native void reset_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  void start()
 | ||||
|     private static native void start_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  void stop()
 | ||||
|     private static native void stop_0(long nativeObj); | ||||
| 
 | ||||
|     // native support for java finalize()
 | ||||
|     private static native void delete(long nativeObj); | ||||
| 
 | ||||
| } | ||||
| @ -1,212 +0,0 @@ | ||||
| 
 | ||||
| //
 | ||||
| // This file is auto-generated. Please don't modify it!
 | ||||
| //
 | ||||
| package org.opencv.dnn; | ||||
| 
 | ||||
| import java.lang.String; | ||||
| 
 | ||||
| // C++: class DictValue
 | ||||
| //javadoc: DictValue
 | ||||
| 
 | ||||
| public class DictValue { | ||||
| 
 | ||||
|     protected final long nativeObj; | ||||
|     protected DictValue(long addr) { nativeObj = addr; } | ||||
| 
 | ||||
|     public long getNativeObjAddr() { return nativeObj; } | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:   DictValue(String s)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: DictValue::DictValue(s)
 | ||||
|     public   DictValue(String s) | ||||
|     { | ||||
|          | ||||
|         nativeObj = DictValue_0(s); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:   DictValue(double p)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: DictValue::DictValue(p)
 | ||||
|     public   DictValue(double p) | ||||
|     { | ||||
|          | ||||
|         nativeObj = DictValue_1(p); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:   DictValue(int i)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: DictValue::DictValue(i)
 | ||||
|     public   DictValue(int i) | ||||
|     { | ||||
|          | ||||
|         nativeObj = DictValue_2(i); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  String getStringValue(int idx = -1)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: DictValue::getStringValue(idx)
 | ||||
|     public  String getStringValue(int idx) | ||||
|     { | ||||
|          | ||||
|         String retVal = getStringValue_0(nativeObj, idx); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: DictValue::getStringValue()
 | ||||
|     public  String getStringValue() | ||||
|     { | ||||
|          | ||||
|         String retVal = getStringValue_1(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  bool isInt()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: DictValue::isInt()
 | ||||
|     public  boolean isInt() | ||||
|     { | ||||
|          | ||||
|         boolean retVal = isInt_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  bool isReal()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: DictValue::isReal()
 | ||||
|     public  boolean isReal() | ||||
|     { | ||||
|          | ||||
|         boolean retVal = isReal_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  bool isString()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: DictValue::isString()
 | ||||
|     public  boolean isString() | ||||
|     { | ||||
|          | ||||
|         boolean retVal = isString_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  double getRealValue(int idx = -1)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: DictValue::getRealValue(idx)
 | ||||
|     public  double getRealValue(int idx) | ||||
|     { | ||||
|          | ||||
|         double retVal = getRealValue_0(nativeObj, idx); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: DictValue::getRealValue()
 | ||||
|     public  double getRealValue() | ||||
|     { | ||||
|          | ||||
|         double retVal = getRealValue_1(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int getIntValue(int idx = -1)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: DictValue::getIntValue(idx)
 | ||||
|     public  int getIntValue(int idx) | ||||
|     { | ||||
|          | ||||
|         int retVal = getIntValue_0(nativeObj, idx); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: DictValue::getIntValue()
 | ||||
|     public  int getIntValue() | ||||
|     { | ||||
|          | ||||
|         int retVal = getIntValue_1(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     @Override | ||||
|     protected void finalize() throws Throwable { | ||||
|         delete(nativeObj); | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     // C++:   DictValue(String s)
 | ||||
|     private static native long DictValue_0(String s); | ||||
| 
 | ||||
|     // C++:   DictValue(double p)
 | ||||
|     private static native long DictValue_1(double p); | ||||
| 
 | ||||
|     // C++:   DictValue(int i)
 | ||||
|     private static native long DictValue_2(int i); | ||||
| 
 | ||||
|     // C++:  String getStringValue(int idx = -1)
 | ||||
|     private static native String getStringValue_0(long nativeObj, int idx); | ||||
|     private static native String getStringValue_1(long nativeObj); | ||||
| 
 | ||||
|     // C++:  bool isInt()
 | ||||
|     private static native boolean isInt_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  bool isReal()
 | ||||
|     private static native boolean isReal_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  bool isString()
 | ||||
|     private static native boolean isString_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  double getRealValue(int idx = -1)
 | ||||
|     private static native double getRealValue_0(long nativeObj, int idx); | ||||
|     private static native double getRealValue_1(long nativeObj); | ||||
| 
 | ||||
|     // C++:  int getIntValue(int idx = -1)
 | ||||
|     private static native int getIntValue_0(long nativeObj, int idx); | ||||
|     private static native int getIntValue_1(long nativeObj); | ||||
| 
 | ||||
|     // native support for java finalize()
 | ||||
|     private static native void delete(long nativeObj); | ||||
| 
 | ||||
| } | ||||
| @ -1,279 +0,0 @@ | ||||
| 
 | ||||
| //
 | ||||
| // This file is auto-generated. Please don't modify it!
 | ||||
| //
 | ||||
| package org.opencv.dnn; | ||||
| 
 | ||||
| import java.lang.String; | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
| import org.opencv.core.Mat; | ||||
| import org.opencv.core.MatOfFloat; | ||||
| import org.opencv.core.MatOfInt; | ||||
| import org.opencv.core.MatOfRect; | ||||
| import org.opencv.core.Scalar; | ||||
| import org.opencv.core.Size; | ||||
| import org.opencv.utils.Converters; | ||||
| 
 | ||||
| // C++: class Dnn
 | ||||
| //javadoc: Dnn
 | ||||
| 
 | ||||
| public class Dnn { | ||||
| 
 | ||||
|     public static final int | ||||
|             DNN_BACKEND_DEFAULT = 0, | ||||
|             DNN_BACKEND_HALIDE = 1, | ||||
|             DNN_TARGET_CPU = 0, | ||||
|             DNN_TARGET_OPENCL = 1; | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  Mat blobFromImage(Mat image, double scalefactor = 1.0, Size size = Size(), Scalar mean = Scalar(), bool swapRB = true, bool crop = true)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: blobFromImage(image, scalefactor, size, mean, swapRB, crop)
 | ||||
|     public static Mat blobFromImage(Mat image, double scalefactor, Size size, Scalar mean, boolean swapRB, boolean crop) | ||||
|     { | ||||
|          | ||||
|         Mat retVal = new Mat(blobFromImage_0(image.nativeObj, scalefactor, size.width, size.height, mean.val[0], mean.val[1], mean.val[2], mean.val[3], swapRB, crop)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: blobFromImage(image)
 | ||||
|     public static Mat blobFromImage(Mat image) | ||||
|     { | ||||
|          | ||||
|         Mat retVal = new Mat(blobFromImage_1(image.nativeObj)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  Mat blobFromImages(vector_Mat images, double scalefactor = 1.0, Size size = Size(), Scalar mean = Scalar(), bool swapRB = true, bool crop = true)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: blobFromImages(images, scalefactor, size, mean, swapRB, crop)
 | ||||
|     public static Mat blobFromImages(List<Mat> images, double scalefactor, Size size, Scalar mean, boolean swapRB, boolean crop) | ||||
|     { | ||||
|         Mat images_mat = Converters.vector_Mat_to_Mat(images); | ||||
|         Mat retVal = new Mat(blobFromImages_0(images_mat.nativeObj, scalefactor, size.width, size.height, mean.val[0], mean.val[1], mean.val[2], mean.val[3], swapRB, crop)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: blobFromImages(images)
 | ||||
|     public static Mat blobFromImages(List<Mat> images) | ||||
|     { | ||||
|         Mat images_mat = Converters.vector_Mat_to_Mat(images); | ||||
|         Mat retVal = new Mat(blobFromImages_1(images_mat.nativeObj)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  Mat readTorchBlob(String filename, bool isBinary = true)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: readTorchBlob(filename, isBinary)
 | ||||
|     public static Mat readTorchBlob(String filename, boolean isBinary) | ||||
|     { | ||||
|          | ||||
|         Mat retVal = new Mat(readTorchBlob_0(filename, isBinary)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: readTorchBlob(filename)
 | ||||
|     public static Mat readTorchBlob(String filename) | ||||
|     { | ||||
|          | ||||
|         Mat retVal = new Mat(readTorchBlob_1(filename)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  Net readNetFromCaffe(String prototxt, String caffeModel = String())
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: readNetFromCaffe(prototxt, caffeModel)
 | ||||
|     public static Net readNetFromCaffe(String prototxt, String caffeModel) | ||||
|     { | ||||
|          | ||||
|         Net retVal = new Net(readNetFromCaffe_0(prototxt, caffeModel)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: readNetFromCaffe(prototxt)
 | ||||
|     public static Net readNetFromCaffe(String prototxt) | ||||
|     { | ||||
|          | ||||
|         Net retVal = new Net(readNetFromCaffe_1(prototxt)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  Net readNetFromDarknet(String cfgFile, String darknetModel = String())
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: readNetFromDarknet(cfgFile, darknetModel)
 | ||||
|     public static Net readNetFromDarknet(String cfgFile, String darknetModel) | ||||
|     { | ||||
|          | ||||
|         Net retVal = new Net(readNetFromDarknet_0(cfgFile, darknetModel)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: readNetFromDarknet(cfgFile)
 | ||||
|     public static Net readNetFromDarknet(String cfgFile) | ||||
|     { | ||||
|          | ||||
|         Net retVal = new Net(readNetFromDarknet_1(cfgFile)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  Net readNetFromTensorflow(String model, String config = String())
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: readNetFromTensorflow(model, config)
 | ||||
|     public static Net readNetFromTensorflow(String model, String config) | ||||
|     { | ||||
|          | ||||
|         Net retVal = new Net(readNetFromTensorflow_0(model, config)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: readNetFromTensorflow(model)
 | ||||
|     public static Net readNetFromTensorflow(String model) | ||||
|     { | ||||
|          | ||||
|         Net retVal = new Net(readNetFromTensorflow_1(model)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  Net readNetFromTorch(String model, bool isBinary = true)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: readNetFromTorch(model, isBinary)
 | ||||
|     public static Net readNetFromTorch(String model, boolean isBinary) | ||||
|     { | ||||
|          | ||||
|         Net retVal = new Net(readNetFromTorch_0(model, isBinary)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: readNetFromTorch(model)
 | ||||
|     public static Net readNetFromTorch(String model) | ||||
|     { | ||||
|          | ||||
|         Net retVal = new Net(readNetFromTorch_1(model)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void NMSBoxes(vector_Rect bboxes, vector_float scores, float score_threshold, float nms_threshold, vector_int& indices, float eta = 1.f, int top_k = 0)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: NMSBoxes(bboxes, scores, score_threshold, nms_threshold, indices, eta, top_k)
 | ||||
|     public static void NMSBoxes(MatOfRect bboxes, MatOfFloat scores, float score_threshold, float nms_threshold, MatOfInt indices, float eta, int top_k) | ||||
|     { | ||||
|         Mat bboxes_mat = bboxes; | ||||
|         Mat scores_mat = scores; | ||||
|         Mat indices_mat = indices; | ||||
|         NMSBoxes_0(bboxes_mat.nativeObj, scores_mat.nativeObj, score_threshold, nms_threshold, indices_mat.nativeObj, eta, top_k); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: NMSBoxes(bboxes, scores, score_threshold, nms_threshold, indices)
 | ||||
|     public static void NMSBoxes(MatOfRect bboxes, MatOfFloat scores, float score_threshold, float nms_threshold, MatOfInt indices) | ||||
|     { | ||||
|         Mat bboxes_mat = bboxes; | ||||
|         Mat scores_mat = scores; | ||||
|         Mat indices_mat = indices; | ||||
|         NMSBoxes_1(bboxes_mat.nativeObj, scores_mat.nativeObj, score_threshold, nms_threshold, indices_mat.nativeObj); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void shrinkCaffeModel(String src, String dst, vector_String layersTypes = std::vector<String>())
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: shrinkCaffeModel(src, dst, layersTypes)
 | ||||
|     public static void shrinkCaffeModel(String src, String dst, List<String> layersTypes) | ||||
|     { | ||||
|          | ||||
|         shrinkCaffeModel_0(src, dst, layersTypes); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: shrinkCaffeModel(src, dst)
 | ||||
|     public static void shrinkCaffeModel(String src, String dst) | ||||
|     { | ||||
|          | ||||
|         shrinkCaffeModel_1(src, dst); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     // C++:  Mat blobFromImage(Mat image, double scalefactor = 1.0, Size size = Size(), Scalar mean = Scalar(), bool swapRB = true, bool crop = true)
 | ||||
|     private static native long blobFromImage_0(long image_nativeObj, double scalefactor, double size_width, double size_height, double mean_val0, double mean_val1, double mean_val2, double mean_val3, boolean swapRB, boolean crop); | ||||
|     private static native long blobFromImage_1(long image_nativeObj); | ||||
| 
 | ||||
|     // C++:  Mat blobFromImages(vector_Mat images, double scalefactor = 1.0, Size size = Size(), Scalar mean = Scalar(), bool swapRB = true, bool crop = true)
 | ||||
|     private static native long blobFromImages_0(long images_mat_nativeObj, double scalefactor, double size_width, double size_height, double mean_val0, double mean_val1, double mean_val2, double mean_val3, boolean swapRB, boolean crop); | ||||
|     private static native long blobFromImages_1(long images_mat_nativeObj); | ||||
| 
 | ||||
|     // C++:  Mat readTorchBlob(String filename, bool isBinary = true)
 | ||||
|     private static native long readTorchBlob_0(String filename, boolean isBinary); | ||||
|     private static native long readTorchBlob_1(String filename); | ||||
| 
 | ||||
|     // C++:  Net readNetFromCaffe(String prototxt, String caffeModel = String())
 | ||||
|     private static native long readNetFromCaffe_0(String prototxt, String caffeModel); | ||||
|     private static native long readNetFromCaffe_1(String prototxt); | ||||
| 
 | ||||
|     // C++:  Net readNetFromDarknet(String cfgFile, String darknetModel = String())
 | ||||
|     private static native long readNetFromDarknet_0(String cfgFile, String darknetModel); | ||||
|     private static native long readNetFromDarknet_1(String cfgFile); | ||||
| 
 | ||||
|     // C++:  Net readNetFromTensorflow(String model, String config = String())
 | ||||
|     private static native long readNetFromTensorflow_0(String model, String config); | ||||
|     private static native long readNetFromTensorflow_1(String model); | ||||
| 
 | ||||
|     // C++:  Net readNetFromTorch(String model, bool isBinary = true)
 | ||||
|     private static native long readNetFromTorch_0(String model, boolean isBinary); | ||||
|     private static native long readNetFromTorch_1(String model); | ||||
| 
 | ||||
|     // C++:  void NMSBoxes(vector_Rect bboxes, vector_float scores, float score_threshold, float nms_threshold, vector_int& indices, float eta = 1.f, int top_k = 0)
 | ||||
|     private static native void NMSBoxes_0(long bboxes_mat_nativeObj, long scores_mat_nativeObj, float score_threshold, float nms_threshold, long indices_mat_nativeObj, float eta, int top_k); | ||||
|     private static native void NMSBoxes_1(long bboxes_mat_nativeObj, long scores_mat_nativeObj, float score_threshold, float nms_threshold, long indices_mat_nativeObj); | ||||
| 
 | ||||
|     // C++:  void shrinkCaffeModel(String src, String dst, vector_String layersTypes = std::vector<String>())
 | ||||
|     private static native void shrinkCaffeModel_0(String src, String dst, List<String> layersTypes); | ||||
|     private static native void shrinkCaffeModel_1(String src, String dst); | ||||
| 
 | ||||
| } | ||||
| @ -1,176 +0,0 @@ | ||||
| 
 | ||||
| //
 | ||||
| // This file is auto-generated. Please don't modify it!
 | ||||
| //
 | ||||
| package org.opencv.dnn; | ||||
| 
 | ||||
| import java.lang.String; | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
| import org.opencv.core.Algorithm; | ||||
| import org.opencv.core.Mat; | ||||
| import org.opencv.utils.Converters; | ||||
| 
 | ||||
| // C++: class Layer
 | ||||
| //javadoc: Layer
 | ||||
| 
 | ||||
| public class Layer extends Algorithm { | ||||
| 
 | ||||
|     protected Layer(long addr) { super(addr); } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  vector_Mat finalize(vector_Mat inputs)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Layer::finalize(inputs)
 | ||||
|     public  List<Mat> finalize(List<Mat> inputs) | ||||
|     { | ||||
|         Mat inputs_mat = Converters.vector_Mat_to_Mat(inputs); | ||||
|         List<Mat> retVal = new ArrayList<Mat>(); | ||||
|         Mat retValMat = new Mat(finalize_0(nativeObj, inputs_mat.nativeObj)); | ||||
|         Converters.Mat_to_vector_Mat(retValMat, retVal); | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void finalize(vector_Mat inputs, vector_Mat& outputs)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Layer::finalize(inputs, outputs)
 | ||||
|     public  void finalize(List<Mat> inputs, List<Mat> outputs) | ||||
|     { | ||||
|         Mat inputs_mat = Converters.vector_Mat_to_Mat(inputs); | ||||
|         Mat outputs_mat = new Mat(); | ||||
|         finalize_1(nativeObj, inputs_mat.nativeObj, outputs_mat.nativeObj); | ||||
|         Converters.Mat_to_vector_Mat(outputs_mat, outputs); | ||||
|         outputs_mat.release(); | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void run(vector_Mat inputs, vector_Mat& outputs, vector_Mat& internals)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Layer::run(inputs, outputs, internals)
 | ||||
|     public  void run(List<Mat> inputs, List<Mat> outputs, List<Mat> internals) | ||||
|     { | ||||
|         Mat inputs_mat = Converters.vector_Mat_to_Mat(inputs); | ||||
|         Mat outputs_mat = new Mat(); | ||||
|         Mat internals_mat = Converters.vector_Mat_to_Mat(internals); | ||||
|         run_0(nativeObj, inputs_mat.nativeObj, outputs_mat.nativeObj, internals_mat.nativeObj); | ||||
|         Converters.Mat_to_vector_Mat(outputs_mat, outputs); | ||||
|         outputs_mat.release(); | ||||
|         Converters.Mat_to_vector_Mat(internals_mat, internals); | ||||
|         internals_mat.release(); | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++: vector_Mat Layer::blobs
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Layer::get_blobs()
 | ||||
|     public  List<Mat> get_blobs() | ||||
|     { | ||||
|         List<Mat> retVal = new ArrayList<Mat>(); | ||||
|         Mat retValMat = new Mat(get_blobs_0(nativeObj)); | ||||
|         Converters.Mat_to_vector_Mat(retValMat, retVal); | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++: void Layer::blobs
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Layer::set_blobs(blobs)
 | ||||
|     public  void set_blobs(List<Mat> blobs) | ||||
|     { | ||||
|         Mat blobs_mat = Converters.vector_Mat_to_Mat(blobs); | ||||
|         set_blobs_0(nativeObj, blobs_mat.nativeObj); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++: String Layer::name
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Layer::get_name()
 | ||||
|     public  String get_name() | ||||
|     { | ||||
|          | ||||
|         String retVal = get_name_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++: String Layer::type
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Layer::get_type()
 | ||||
|     public  String get_type() | ||||
|     { | ||||
|          | ||||
|         String retVal = get_type_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++: int Layer::preferableTarget
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Layer::get_preferableTarget()
 | ||||
|     public  int get_preferableTarget() | ||||
|     { | ||||
|          | ||||
|         int retVal = get_preferableTarget_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     @Override | ||||
|     protected void finalize() throws Throwable { | ||||
|         delete(nativeObj); | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     // C++:  vector_Mat finalize(vector_Mat inputs)
 | ||||
|     private static native long finalize_0(long nativeObj, long inputs_mat_nativeObj); | ||||
| 
 | ||||
|     // C++:  void finalize(vector_Mat inputs, vector_Mat& outputs)
 | ||||
|     private static native void finalize_1(long nativeObj, long inputs_mat_nativeObj, long outputs_mat_nativeObj); | ||||
| 
 | ||||
|     // C++:  void run(vector_Mat inputs, vector_Mat& outputs, vector_Mat& internals)
 | ||||
|     private static native void run_0(long nativeObj, long inputs_mat_nativeObj, long outputs_mat_nativeObj, long internals_mat_nativeObj); | ||||
| 
 | ||||
|     // C++: vector_Mat Layer::blobs
 | ||||
|     private static native long get_blobs_0(long nativeObj); | ||||
| 
 | ||||
|     // C++: void Layer::blobs
 | ||||
|     private static native void set_blobs_0(long nativeObj, long blobs_mat_nativeObj); | ||||
| 
 | ||||
|     // C++: String Layer::name
 | ||||
|     private static native String get_name_0(long nativeObj); | ||||
| 
 | ||||
|     // C++: String Layer::type
 | ||||
|     private static native String get_type_0(long nativeObj); | ||||
| 
 | ||||
|     // C++: int Layer::preferableTarget
 | ||||
|     private static native int get_preferableTarget_0(long nativeObj); | ||||
| 
 | ||||
|     // native support for java finalize()
 | ||||
|     private static native void delete(long nativeObj); | ||||
| 
 | ||||
| } | ||||
| @ -1,601 +0,0 @@ | ||||
| 
 | ||||
| //
 | ||||
| // This file is auto-generated. Please don't modify it!
 | ||||
| //
 | ||||
| package org.opencv.dnn; | ||||
| 
 | ||||
| import java.lang.String; | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
| import org.opencv.core.Mat; | ||||
| import org.opencv.core.MatOfDouble; | ||||
| import org.opencv.core.MatOfInt; | ||||
| import org.opencv.dnn.DictValue; | ||||
| import org.opencv.utils.Converters; | ||||
| 
 | ||||
| // C++: class Net
 | ||||
| //javadoc: Net
 | ||||
| 
 | ||||
| public class Net { | ||||
| 
 | ||||
|     protected final long nativeObj; | ||||
|     protected Net(long addr) { nativeObj = addr; } | ||||
| 
 | ||||
|     public long getNativeObjAddr() { return nativeObj; } | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:   Net()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Net::Net()
 | ||||
|     public   Net() | ||||
|     { | ||||
|          | ||||
|         nativeObj = Net_0(); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  Mat forward(String outputName = String())
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Net::forward(outputName)
 | ||||
|     public  Mat forward(String outputName) | ||||
|     { | ||||
|          | ||||
|         Mat retVal = new Mat(forward_0(nativeObj, outputName)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: Net::forward()
 | ||||
|     public  Mat forward() | ||||
|     { | ||||
|          | ||||
|         Mat retVal = new Mat(forward_1(nativeObj)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  Mat getParam(LayerId layer, int numParam = 0)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Net::getParam(layer, numParam)
 | ||||
|     public  Mat getParam(DictValue layer, int numParam) | ||||
|     { | ||||
|          | ||||
|         Mat retVal = new Mat(getParam_0(nativeObj, layer.getNativeObjAddr(), numParam)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: Net::getParam(layer)
 | ||||
|     public  Mat getParam(DictValue layer) | ||||
|     { | ||||
|          | ||||
|         Mat retVal = new Mat(getParam_1(nativeObj, layer.getNativeObjAddr())); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  Ptr_Layer getLayer(LayerId layerId)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Net::getLayer(layerId)
 | ||||
|     public  Layer getLayer(DictValue layerId) | ||||
|     { | ||||
|          | ||||
|         Layer retVal = new Layer(getLayer_0(nativeObj, layerId.getNativeObjAddr())); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  bool empty()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Net::empty()
 | ||||
|     public  boolean empty() | ||||
|     { | ||||
|          | ||||
|         boolean retVal = empty_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int getLayerId(String layer)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Net::getLayerId(layer)
 | ||||
|     public  int getLayerId(String layer) | ||||
|     { | ||||
|          | ||||
|         int retVal = getLayerId_0(nativeObj, layer); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int getLayersCount(String layerType)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Net::getLayersCount(layerType)
 | ||||
|     public  int getLayersCount(String layerType) | ||||
|     { | ||||
|          | ||||
|         int retVal = getLayersCount_0(nativeObj, layerType); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int64 getFLOPS(MatShape netInputShape)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Net::getFLOPS(netInputShape)
 | ||||
|     public  long getFLOPS(MatOfInt netInputShape) | ||||
|     { | ||||
|         Mat netInputShape_mat = netInputShape; | ||||
|         long retVal = getFLOPS_0(nativeObj, netInputShape_mat.nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int64 getFLOPS(int layerId, MatShape netInputShape)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Net::getFLOPS(layerId, netInputShape)
 | ||||
|     public  long getFLOPS(int layerId, MatOfInt netInputShape) | ||||
|     { | ||||
|         Mat netInputShape_mat = netInputShape; | ||||
|         long retVal = getFLOPS_1(nativeObj, layerId, netInputShape_mat.nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int64 getFLOPS(int layerId, vector_MatShape netInputShapes)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Net::getFLOPS(layerId, netInputShapes)
 | ||||
|     public  long getFLOPS(int layerId, List<MatOfInt> netInputShapes) | ||||
|     { | ||||
|          | ||||
|         long retVal = getFLOPS_2(nativeObj, layerId, netInputShapes); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int64 getFLOPS(vector_MatShape netInputShapes)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Net::getFLOPS(netInputShapes)
 | ||||
|     public  long getFLOPS(List<MatOfInt> netInputShapes) | ||||
|     { | ||||
|          | ||||
|         long retVal = getFLOPS_3(nativeObj, netInputShapes); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int64 getPerfProfile(vector_double& timings)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Net::getPerfProfile(timings)
 | ||||
|     public  long getPerfProfile(MatOfDouble timings) | ||||
|     { | ||||
|         Mat timings_mat = timings; | ||||
|         long retVal = getPerfProfile_0(nativeObj, timings_mat.nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  vector_String getLayerNames()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Net::getLayerNames()
 | ||||
|     public  List<String> getLayerNames() | ||||
|     { | ||||
|          | ||||
|         List<String> retVal = getLayerNames_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  vector_int getUnconnectedOutLayers()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Net::getUnconnectedOutLayers()
 | ||||
|     public  MatOfInt getUnconnectedOutLayers() | ||||
|     { | ||||
|          | ||||
|         MatOfInt retVal = MatOfInt.fromNativeAddr(getUnconnectedOutLayers_0(nativeObj)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void connect(String outPin, String inpPin)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Net::connect(outPin, inpPin)
 | ||||
|     public  void connect(String outPin, String inpPin) | ||||
|     { | ||||
|          | ||||
|         connect_0(nativeObj, outPin, inpPin); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void deleteLayer(LayerId layer)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Net::deleteLayer(layer)
 | ||||
|     public  void deleteLayer(DictValue layer) | ||||
|     { | ||||
|          | ||||
|         deleteLayer_0(nativeObj, layer.getNativeObjAddr()); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void enableFusion(bool fusion)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Net::enableFusion(fusion)
 | ||||
|     public  void enableFusion(boolean fusion) | ||||
|     { | ||||
|          | ||||
|         enableFusion_0(nativeObj, fusion); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void forward(vector_Mat& outputBlobs, String outputName = String())
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Net::forward(outputBlobs, outputName)
 | ||||
|     public  void forward(List<Mat> outputBlobs, String outputName) | ||||
|     { | ||||
|         Mat outputBlobs_mat = new Mat(); | ||||
|         forward_2(nativeObj, outputBlobs_mat.nativeObj, outputName); | ||||
|         Converters.Mat_to_vector_Mat(outputBlobs_mat, outputBlobs); | ||||
|         outputBlobs_mat.release(); | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: Net::forward(outputBlobs)
 | ||||
|     public  void forward(List<Mat> outputBlobs) | ||||
|     { | ||||
|         Mat outputBlobs_mat = new Mat(); | ||||
|         forward_3(nativeObj, outputBlobs_mat.nativeObj); | ||||
|         Converters.Mat_to_vector_Mat(outputBlobs_mat, outputBlobs); | ||||
|         outputBlobs_mat.release(); | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void forward(vector_Mat& outputBlobs, vector_String outBlobNames)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Net::forward(outputBlobs, outBlobNames)
 | ||||
|     public  void forward(List<Mat> outputBlobs, List<String> outBlobNames) | ||||
|     { | ||||
|         Mat outputBlobs_mat = new Mat(); | ||||
|         forward_4(nativeObj, outputBlobs_mat.nativeObj, outBlobNames); | ||||
|         Converters.Mat_to_vector_Mat(outputBlobs_mat, outputBlobs); | ||||
|         outputBlobs_mat.release(); | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void forward(vector_vector_Mat& outputBlobs, vector_String outBlobNames)
 | ||||
|     //
 | ||||
| 
 | ||||
|     // Unknown type 'vector_vector_Mat' (O), skipping the function
 | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void getLayerTypes(vector_String& layersTypes)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Net::getLayerTypes(layersTypes)
 | ||||
|     public  void getLayerTypes(List<String> layersTypes) | ||||
|     { | ||||
|          | ||||
|         getLayerTypes_0(nativeObj, layersTypes); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void getLayersShapes(MatShape netInputShape, vector_int& layersIds, vector_vector_MatShape& inLayersShapes, vector_vector_MatShape& outLayersShapes)
 | ||||
|     //
 | ||||
| 
 | ||||
|     // Unknown type 'vector_vector_MatShape' (O), skipping the function
 | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void getLayersShapes(vector_MatShape netInputShapes, vector_int& layersIds, vector_vector_MatShape& inLayersShapes, vector_vector_MatShape& outLayersShapes)
 | ||||
|     //
 | ||||
| 
 | ||||
|     // Unknown type 'vector_vector_MatShape' (O), skipping the function
 | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void getMemoryConsumption(MatShape netInputShape, size_t& weights, size_t& blobs)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Net::getMemoryConsumption(netInputShape, weights, blobs)
 | ||||
|     public  void getMemoryConsumption(MatOfInt netInputShape, long[] weights, long[] blobs) | ||||
|     { | ||||
|         Mat netInputShape_mat = netInputShape; | ||||
|         double[] weights_out = new double[1]; | ||||
|         double[] blobs_out = new double[1]; | ||||
|         getMemoryConsumption_0(nativeObj, netInputShape_mat.nativeObj, weights_out, blobs_out); | ||||
|         if(weights!=null) weights[0] = (long)weights_out[0]; | ||||
|         if(blobs!=null) blobs[0] = (long)blobs_out[0]; | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void getMemoryConsumption(int layerId, MatShape netInputShape, size_t& weights, size_t& blobs)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Net::getMemoryConsumption(layerId, netInputShape, weights, blobs)
 | ||||
|     public  void getMemoryConsumption(int layerId, MatOfInt netInputShape, long[] weights, long[] blobs) | ||||
|     { | ||||
|         Mat netInputShape_mat = netInputShape; | ||||
|         double[] weights_out = new double[1]; | ||||
|         double[] blobs_out = new double[1]; | ||||
|         getMemoryConsumption_1(nativeObj, layerId, netInputShape_mat.nativeObj, weights_out, blobs_out); | ||||
|         if(weights!=null) weights[0] = (long)weights_out[0]; | ||||
|         if(blobs!=null) blobs[0] = (long)blobs_out[0]; | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void getMemoryConsumption(int layerId, vector_MatShape netInputShapes, size_t& weights, size_t& blobs)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Net::getMemoryConsumption(layerId, netInputShapes, weights, blobs)
 | ||||
|     public  void getMemoryConsumption(int layerId, List<MatOfInt> netInputShapes, long[] weights, long[] blobs) | ||||
|     { | ||||
|         double[] weights_out = new double[1]; | ||||
|         double[] blobs_out = new double[1]; | ||||
|         getMemoryConsumption_2(nativeObj, layerId, netInputShapes, weights_out, blobs_out); | ||||
|         if(weights!=null) weights[0] = (long)weights_out[0]; | ||||
|         if(blobs!=null) blobs[0] = (long)blobs_out[0]; | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setHalideScheduler(String scheduler)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Net::setHalideScheduler(scheduler)
 | ||||
|     public  void setHalideScheduler(String scheduler) | ||||
|     { | ||||
|          | ||||
|         setHalideScheduler_0(nativeObj, scheduler); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setInput(Mat blob, String name = "")
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Net::setInput(blob, name)
 | ||||
|     public  void setInput(Mat blob, String name) | ||||
|     { | ||||
|          | ||||
|         setInput_0(nativeObj, blob.nativeObj, name); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: Net::setInput(blob)
 | ||||
|     public  void setInput(Mat blob) | ||||
|     { | ||||
|          | ||||
|         setInput_1(nativeObj, blob.nativeObj); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setInputsNames(vector_String inputBlobNames)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Net::setInputsNames(inputBlobNames)
 | ||||
|     public  void setInputsNames(List<String> inputBlobNames) | ||||
|     { | ||||
|          | ||||
|         setInputsNames_0(nativeObj, inputBlobNames); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setParam(LayerId layer, int numParam, Mat blob)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Net::setParam(layer, numParam, blob)
 | ||||
|     public  void setParam(DictValue layer, int numParam, Mat blob) | ||||
|     { | ||||
|          | ||||
|         setParam_0(nativeObj, layer.getNativeObjAddr(), numParam, blob.nativeObj); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setPreferableBackend(int backendId)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Net::setPreferableBackend(backendId)
 | ||||
|     public  void setPreferableBackend(int backendId) | ||||
|     { | ||||
|          | ||||
|         setPreferableBackend_0(nativeObj, backendId); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setPreferableTarget(int targetId)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Net::setPreferableTarget(targetId)
 | ||||
|     public  void setPreferableTarget(int targetId) | ||||
|     { | ||||
|          | ||||
|         setPreferableTarget_0(nativeObj, targetId); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     @Override | ||||
|     protected void finalize() throws Throwable { | ||||
|         delete(nativeObj); | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     // C++:   Net()
 | ||||
|     private static native long Net_0(); | ||||
| 
 | ||||
|     // C++:  Mat forward(String outputName = String())
 | ||||
|     private static native long forward_0(long nativeObj, String outputName); | ||||
|     private static native long forward_1(long nativeObj); | ||||
| 
 | ||||
|     // C++:  Mat getParam(LayerId layer, int numParam = 0)
 | ||||
|     private static native long getParam_0(long nativeObj, long layer_nativeObj, int numParam); | ||||
|     private static native long getParam_1(long nativeObj, long layer_nativeObj); | ||||
| 
 | ||||
|     // C++:  Ptr_Layer getLayer(LayerId layerId)
 | ||||
|     private static native long getLayer_0(long nativeObj, long layerId_nativeObj); | ||||
| 
 | ||||
|     // C++:  bool empty()
 | ||||
|     private static native boolean empty_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  int getLayerId(String layer)
 | ||||
|     private static native int getLayerId_0(long nativeObj, String layer); | ||||
| 
 | ||||
|     // C++:  int getLayersCount(String layerType)
 | ||||
|     private static native int getLayersCount_0(long nativeObj, String layerType); | ||||
| 
 | ||||
|     // C++:  int64 getFLOPS(MatShape netInputShape)
 | ||||
|     private static native long getFLOPS_0(long nativeObj, long netInputShape_mat_nativeObj); | ||||
| 
 | ||||
|     // C++:  int64 getFLOPS(int layerId, MatShape netInputShape)
 | ||||
|     private static native long getFLOPS_1(long nativeObj, int layerId, long netInputShape_mat_nativeObj); | ||||
| 
 | ||||
|     // C++:  int64 getFLOPS(int layerId, vector_MatShape netInputShapes)
 | ||||
|     private static native long getFLOPS_2(long nativeObj, int layerId, List<MatOfInt> netInputShapes); | ||||
| 
 | ||||
|     // C++:  int64 getFLOPS(vector_MatShape netInputShapes)
 | ||||
|     private static native long getFLOPS_3(long nativeObj, List<MatOfInt> netInputShapes); | ||||
| 
 | ||||
|     // C++:  int64 getPerfProfile(vector_double& timings)
 | ||||
|     private static native long getPerfProfile_0(long nativeObj, long timings_mat_nativeObj); | ||||
| 
 | ||||
|     // C++:  vector_String getLayerNames()
 | ||||
|     private static native List<String> getLayerNames_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  vector_int getUnconnectedOutLayers()
 | ||||
|     private static native long getUnconnectedOutLayers_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  void connect(String outPin, String inpPin)
 | ||||
|     private static native void connect_0(long nativeObj, String outPin, String inpPin); | ||||
| 
 | ||||
|     // C++:  void deleteLayer(LayerId layer)
 | ||||
|     private static native void deleteLayer_0(long nativeObj, long layer_nativeObj); | ||||
| 
 | ||||
|     // C++:  void enableFusion(bool fusion)
 | ||||
|     private static native void enableFusion_0(long nativeObj, boolean fusion); | ||||
| 
 | ||||
|     // C++:  void forward(vector_Mat& outputBlobs, String outputName = String())
 | ||||
|     private static native void forward_2(long nativeObj, long outputBlobs_mat_nativeObj, String outputName); | ||||
|     private static native void forward_3(long nativeObj, long outputBlobs_mat_nativeObj); | ||||
| 
 | ||||
|     // C++:  void forward(vector_Mat& outputBlobs, vector_String outBlobNames)
 | ||||
|     private static native void forward_4(long nativeObj, long outputBlobs_mat_nativeObj, List<String> outBlobNames); | ||||
| 
 | ||||
|     // C++:  void getLayerTypes(vector_String& layersTypes)
 | ||||
|     private static native void getLayerTypes_0(long nativeObj, List<String> layersTypes); | ||||
| 
 | ||||
|     // C++:  void getMemoryConsumption(MatShape netInputShape, size_t& weights, size_t& blobs)
 | ||||
|     private static native void getMemoryConsumption_0(long nativeObj, long netInputShape_mat_nativeObj, double[] weights_out, double[] blobs_out); | ||||
| 
 | ||||
|     // C++:  void getMemoryConsumption(int layerId, MatShape netInputShape, size_t& weights, size_t& blobs)
 | ||||
|     private static native void getMemoryConsumption_1(long nativeObj, int layerId, long netInputShape_mat_nativeObj, double[] weights_out, double[] blobs_out); | ||||
| 
 | ||||
|     // C++:  void getMemoryConsumption(int layerId, vector_MatShape netInputShapes, size_t& weights, size_t& blobs)
 | ||||
|     private static native void getMemoryConsumption_2(long nativeObj, int layerId, List<MatOfInt> netInputShapes, double[] weights_out, double[] blobs_out); | ||||
| 
 | ||||
|     // C++:  void setHalideScheduler(String scheduler)
 | ||||
|     private static native void setHalideScheduler_0(long nativeObj, String scheduler); | ||||
| 
 | ||||
|     // C++:  void setInput(Mat blob, String name = "")
 | ||||
|     private static native void setInput_0(long nativeObj, long blob_nativeObj, String name); | ||||
|     private static native void setInput_1(long nativeObj, long blob_nativeObj); | ||||
| 
 | ||||
|     // C++:  void setInputsNames(vector_String inputBlobNames)
 | ||||
|     private static native void setInputsNames_0(long nativeObj, List<String> inputBlobNames); | ||||
| 
 | ||||
|     // C++:  void setParam(LayerId layer, int numParam, Mat blob)
 | ||||
|     private static native void setParam_0(long nativeObj, long layer_nativeObj, int numParam, long blob_nativeObj); | ||||
| 
 | ||||
|     // C++:  void setPreferableBackend(int backendId)
 | ||||
|     private static native void setPreferableBackend_0(long nativeObj, int backendId); | ||||
| 
 | ||||
|     // C++:  void setPreferableTarget(int targetId)
 | ||||
|     private static native void setPreferableTarget_0(long nativeObj, int targetId); | ||||
| 
 | ||||
|     // native support for java finalize()
 | ||||
|     private static native void delete(long nativeObj); | ||||
| 
 | ||||
| } | ||||
| @ -1,316 +0,0 @@ | ||||
| 
 | ||||
| //
 | ||||
| // This file is auto-generated. Please don't modify it!
 | ||||
| //
 | ||||
| package org.opencv.features2d; | ||||
| 
 | ||||
| import java.lang.String; | ||||
| 
 | ||||
| // C++: class AKAZE
 | ||||
| //javadoc: AKAZE
 | ||||
| 
 | ||||
| public class AKAZE extends Feature2D { | ||||
| 
 | ||||
|     protected AKAZE(long addr) { super(addr); } | ||||
| 
 | ||||
| 
 | ||||
|     public static final int | ||||
|             DESCRIPTOR_KAZE_UPRIGHT = 2, | ||||
|             DESCRIPTOR_KAZE = 3, | ||||
|             DESCRIPTOR_MLDB_UPRIGHT = 4, | ||||
|             DESCRIPTOR_MLDB = 5; | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++: static Ptr_AKAZE create(int descriptor_type = AKAZE::DESCRIPTOR_MLDB, int descriptor_size = 0, int descriptor_channels = 3, float threshold = 0.001f, int nOctaves = 4, int nOctaveLayers = 4, int diffusivity = KAZE::DIFF_PM_G2)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: AKAZE::create(descriptor_type, descriptor_size, descriptor_channels, threshold, nOctaves, nOctaveLayers, diffusivity)
 | ||||
|     public static AKAZE create(int descriptor_type, int descriptor_size, int descriptor_channels, float threshold, int nOctaves, int nOctaveLayers, int diffusivity) | ||||
|     { | ||||
|          | ||||
|         AKAZE retVal = new AKAZE(create_0(descriptor_type, descriptor_size, descriptor_channels, threshold, nOctaves, nOctaveLayers, diffusivity)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: AKAZE::create()
 | ||||
|     public static AKAZE create() | ||||
|     { | ||||
|          | ||||
|         AKAZE retVal = new AKAZE(create_1()); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  String getDefaultName()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: AKAZE::getDefaultName()
 | ||||
|     public  String getDefaultName() | ||||
|     { | ||||
|          | ||||
|         String retVal = getDefaultName_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  double getThreshold()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: AKAZE::getThreshold()
 | ||||
|     public  double getThreshold() | ||||
|     { | ||||
|          | ||||
|         double retVal = getThreshold_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int getDescriptorChannels()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: AKAZE::getDescriptorChannels()
 | ||||
|     public  int getDescriptorChannels() | ||||
|     { | ||||
|          | ||||
|         int retVal = getDescriptorChannels_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int getDescriptorSize()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: AKAZE::getDescriptorSize()
 | ||||
|     public  int getDescriptorSize() | ||||
|     { | ||||
|          | ||||
|         int retVal = getDescriptorSize_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int getDescriptorType()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: AKAZE::getDescriptorType()
 | ||||
|     public  int getDescriptorType() | ||||
|     { | ||||
|          | ||||
|         int retVal = getDescriptorType_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int getDiffusivity()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: AKAZE::getDiffusivity()
 | ||||
|     public  int getDiffusivity() | ||||
|     { | ||||
|          | ||||
|         int retVal = getDiffusivity_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int getNOctaveLayers()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: AKAZE::getNOctaveLayers()
 | ||||
|     public  int getNOctaveLayers() | ||||
|     { | ||||
|          | ||||
|         int retVal = getNOctaveLayers_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int getNOctaves()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: AKAZE::getNOctaves()
 | ||||
|     public  int getNOctaves() | ||||
|     { | ||||
|          | ||||
|         int retVal = getNOctaves_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setDescriptorChannels(int dch)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: AKAZE::setDescriptorChannels(dch)
 | ||||
|     public  void setDescriptorChannels(int dch) | ||||
|     { | ||||
|          | ||||
|         setDescriptorChannels_0(nativeObj, dch); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setDescriptorSize(int dsize)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: AKAZE::setDescriptorSize(dsize)
 | ||||
|     public  void setDescriptorSize(int dsize) | ||||
|     { | ||||
|          | ||||
|         setDescriptorSize_0(nativeObj, dsize); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setDescriptorType(int dtype)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: AKAZE::setDescriptorType(dtype)
 | ||||
|     public  void setDescriptorType(int dtype) | ||||
|     { | ||||
|          | ||||
|         setDescriptorType_0(nativeObj, dtype); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setDiffusivity(int diff)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: AKAZE::setDiffusivity(diff)
 | ||||
|     public  void setDiffusivity(int diff) | ||||
|     { | ||||
|          | ||||
|         setDiffusivity_0(nativeObj, diff); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setNOctaveLayers(int octaveLayers)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: AKAZE::setNOctaveLayers(octaveLayers)
 | ||||
|     public  void setNOctaveLayers(int octaveLayers) | ||||
|     { | ||||
|          | ||||
|         setNOctaveLayers_0(nativeObj, octaveLayers); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setNOctaves(int octaves)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: AKAZE::setNOctaves(octaves)
 | ||||
|     public  void setNOctaves(int octaves) | ||||
|     { | ||||
|          | ||||
|         setNOctaves_0(nativeObj, octaves); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setThreshold(double threshold)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: AKAZE::setThreshold(threshold)
 | ||||
|     public  void setThreshold(double threshold) | ||||
|     { | ||||
|          | ||||
|         setThreshold_0(nativeObj, threshold); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     @Override | ||||
|     protected void finalize() throws Throwable { | ||||
|         delete(nativeObj); | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     // C++: static Ptr_AKAZE create(int descriptor_type = AKAZE::DESCRIPTOR_MLDB, int descriptor_size = 0, int descriptor_channels = 3, float threshold = 0.001f, int nOctaves = 4, int nOctaveLayers = 4, int diffusivity = KAZE::DIFF_PM_G2)
 | ||||
|     private static native long create_0(int descriptor_type, int descriptor_size, int descriptor_channels, float threshold, int nOctaves, int nOctaveLayers, int diffusivity); | ||||
|     private static native long create_1(); | ||||
| 
 | ||||
|     // C++:  String getDefaultName()
 | ||||
|     private static native String getDefaultName_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  double getThreshold()
 | ||||
|     private static native double getThreshold_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  int getDescriptorChannels()
 | ||||
|     private static native int getDescriptorChannels_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  int getDescriptorSize()
 | ||||
|     private static native int getDescriptorSize_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  int getDescriptorType()
 | ||||
|     private static native int getDescriptorType_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  int getDiffusivity()
 | ||||
|     private static native int getDiffusivity_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  int getNOctaveLayers()
 | ||||
|     private static native int getNOctaveLayers_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  int getNOctaves()
 | ||||
|     private static native int getNOctaves_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  void setDescriptorChannels(int dch)
 | ||||
|     private static native void setDescriptorChannels_0(long nativeObj, int dch); | ||||
| 
 | ||||
|     // C++:  void setDescriptorSize(int dsize)
 | ||||
|     private static native void setDescriptorSize_0(long nativeObj, int dsize); | ||||
| 
 | ||||
|     // C++:  void setDescriptorType(int dtype)
 | ||||
|     private static native void setDescriptorType_0(long nativeObj, int dtype); | ||||
| 
 | ||||
|     // C++:  void setDiffusivity(int diff)
 | ||||
|     private static native void setDiffusivity_0(long nativeObj, int diff); | ||||
| 
 | ||||
|     // C++:  void setNOctaveLayers(int octaveLayers)
 | ||||
|     private static native void setNOctaveLayers_0(long nativeObj, int octaveLayers); | ||||
| 
 | ||||
|     // C++:  void setNOctaves(int octaves)
 | ||||
|     private static native void setNOctaves_0(long nativeObj, int octaves); | ||||
| 
 | ||||
|     // C++:  void setThreshold(double threshold)
 | ||||
|     private static native void setThreshold_0(long nativeObj, double threshold); | ||||
| 
 | ||||
|     // native support for java finalize()
 | ||||
|     private static native void delete(long nativeObj); | ||||
| 
 | ||||
| } | ||||
| @ -1,182 +0,0 @@ | ||||
| 
 | ||||
| //
 | ||||
| // This file is auto-generated. Please don't modify it!
 | ||||
| //
 | ||||
| package org.opencv.features2d; | ||||
| 
 | ||||
| import java.lang.String; | ||||
| 
 | ||||
| // C++: class AgastFeatureDetector
 | ||||
| //javadoc: AgastFeatureDetector
 | ||||
| 
 | ||||
| public class AgastFeatureDetector extends Feature2D { | ||||
| 
 | ||||
|     protected AgastFeatureDetector(long addr) { super(addr); } | ||||
| 
 | ||||
| 
 | ||||
|     public static final int | ||||
|             AGAST_5_8 = 0, | ||||
|             AGAST_7_12d = 1, | ||||
|             AGAST_7_12s = 2, | ||||
|             OAST_9_16 = 3, | ||||
|             THRESHOLD = 10000, | ||||
|             NONMAX_SUPPRESSION = 10001; | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++: static Ptr_AgastFeatureDetector create(int threshold = 10, bool nonmaxSuppression = true, int type = AgastFeatureDetector::OAST_9_16)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: AgastFeatureDetector::create(threshold, nonmaxSuppression, type)
 | ||||
|     public static AgastFeatureDetector create(int threshold, boolean nonmaxSuppression, int type) | ||||
|     { | ||||
|          | ||||
|         AgastFeatureDetector retVal = new AgastFeatureDetector(create_0(threshold, nonmaxSuppression, type)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: AgastFeatureDetector::create()
 | ||||
|     public static AgastFeatureDetector create() | ||||
|     { | ||||
|          | ||||
|         AgastFeatureDetector retVal = new AgastFeatureDetector(create_1()); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  String getDefaultName()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: AgastFeatureDetector::getDefaultName()
 | ||||
|     public  String getDefaultName() | ||||
|     { | ||||
|          | ||||
|         String retVal = getDefaultName_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  bool getNonmaxSuppression()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: AgastFeatureDetector::getNonmaxSuppression()
 | ||||
|     public  boolean getNonmaxSuppression() | ||||
|     { | ||||
|          | ||||
|         boolean retVal = getNonmaxSuppression_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int getThreshold()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: AgastFeatureDetector::getThreshold()
 | ||||
|     public  int getThreshold() | ||||
|     { | ||||
|          | ||||
|         int retVal = getThreshold_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int getType()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: AgastFeatureDetector::getType()
 | ||||
|     public  int getType() | ||||
|     { | ||||
|          | ||||
|         int retVal = getType_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setNonmaxSuppression(bool f)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: AgastFeatureDetector::setNonmaxSuppression(f)
 | ||||
|     public  void setNonmaxSuppression(boolean f) | ||||
|     { | ||||
|          | ||||
|         setNonmaxSuppression_0(nativeObj, f); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setThreshold(int threshold)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: AgastFeatureDetector::setThreshold(threshold)
 | ||||
|     public  void setThreshold(int threshold) | ||||
|     { | ||||
|          | ||||
|         setThreshold_0(nativeObj, threshold); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setType(int type)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: AgastFeatureDetector::setType(type)
 | ||||
|     public  void setType(int type) | ||||
|     { | ||||
|          | ||||
|         setType_0(nativeObj, type); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     @Override | ||||
|     protected void finalize() throws Throwable { | ||||
|         delete(nativeObj); | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     // C++: static Ptr_AgastFeatureDetector create(int threshold = 10, bool nonmaxSuppression = true, int type = AgastFeatureDetector::OAST_9_16)
 | ||||
|     private static native long create_0(int threshold, boolean nonmaxSuppression, int type); | ||||
|     private static native long create_1(); | ||||
| 
 | ||||
|     // C++:  String getDefaultName()
 | ||||
|     private static native String getDefaultName_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  bool getNonmaxSuppression()
 | ||||
|     private static native boolean getNonmaxSuppression_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  int getThreshold()
 | ||||
|     private static native int getThreshold_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  int getType()
 | ||||
|     private static native int getType_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  void setNonmaxSuppression(bool f)
 | ||||
|     private static native void setNonmaxSuppression_0(long nativeObj, boolean f); | ||||
| 
 | ||||
|     // C++:  void setThreshold(int threshold)
 | ||||
|     private static native void setThreshold_0(long nativeObj, int threshold); | ||||
| 
 | ||||
|     // C++:  void setType(int type)
 | ||||
|     private static native void setType_0(long nativeObj, int type); | ||||
| 
 | ||||
|     // native support for java finalize()
 | ||||
|     private static native void delete(long nativeObj); | ||||
| 
 | ||||
| } | ||||
| @ -1,81 +0,0 @@ | ||||
| 
 | ||||
| //
 | ||||
| // This file is auto-generated. Please don't modify it!
 | ||||
| //
 | ||||
| package org.opencv.features2d; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| // C++: class BFMatcher
 | ||||
| //javadoc: BFMatcher
 | ||||
| 
 | ||||
| public class BFMatcher extends DescriptorMatcher { | ||||
| 
 | ||||
|     protected BFMatcher(long addr) { super(addr); } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:   BFMatcher(int normType = NORM_L2, bool crossCheck = false)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: BFMatcher::BFMatcher(normType, crossCheck)
 | ||||
|     public   BFMatcher(int normType, boolean crossCheck) | ||||
|     { | ||||
|          | ||||
|         super( BFMatcher_0(normType, crossCheck) ); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: BFMatcher::BFMatcher()
 | ||||
|     public   BFMatcher() | ||||
|     { | ||||
|          | ||||
|         super( BFMatcher_1() ); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++: static Ptr_BFMatcher create(int normType = NORM_L2, bool crossCheck = false)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: BFMatcher::create(normType, crossCheck)
 | ||||
|     public static BFMatcher create(int normType, boolean crossCheck) | ||||
|     { | ||||
|          | ||||
|         BFMatcher retVal = new BFMatcher(create_0(normType, crossCheck)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: BFMatcher::create()
 | ||||
|     public static BFMatcher create() | ||||
|     { | ||||
|          | ||||
|         BFMatcher retVal = new BFMatcher(create_1()); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     @Override | ||||
|     protected void finalize() throws Throwable { | ||||
|         delete(nativeObj); | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     // C++:   BFMatcher(int normType = NORM_L2, bool crossCheck = false)
 | ||||
|     private static native long BFMatcher_0(int normType, boolean crossCheck); | ||||
|     private static native long BFMatcher_1(); | ||||
| 
 | ||||
|     // C++: static Ptr_BFMatcher create(int normType = NORM_L2, bool crossCheck = false)
 | ||||
|     private static native long create_0(int normType, boolean crossCheck); | ||||
|     private static native long create_1(); | ||||
| 
 | ||||
|     // native support for java finalize()
 | ||||
|     private static native void delete(long nativeObj); | ||||
| 
 | ||||
| } | ||||
| @ -1,125 +0,0 @@ | ||||
| 
 | ||||
| //
 | ||||
| // This file is auto-generated. Please don't modify it!
 | ||||
| //
 | ||||
| package org.opencv.features2d; | ||||
| 
 | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
| import org.opencv.core.Mat; | ||||
| import org.opencv.core.MatOfKeyPoint; | ||||
| import org.opencv.utils.Converters; | ||||
| 
 | ||||
| // C++: class BOWImgDescriptorExtractor
 | ||||
| //javadoc: BOWImgDescriptorExtractor
 | ||||
| 
 | ||||
| public class BOWImgDescriptorExtractor { | ||||
| 
 | ||||
|     protected final long nativeObj; | ||||
|     protected BOWImgDescriptorExtractor(long addr) { nativeObj = addr; } | ||||
| 
 | ||||
|     public long getNativeObjAddr() { return nativeObj; } | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:   BOWImgDescriptorExtractor(Ptr_DescriptorExtractor dextractor, Ptr_DescriptorMatcher dmatcher)
 | ||||
|     //
 | ||||
| 
 | ||||
|     // Unknown type 'Ptr_DescriptorExtractor' (I), skipping the function
 | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  Mat getVocabulary()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: BOWImgDescriptorExtractor::getVocabulary()
 | ||||
|     public  Mat getVocabulary() | ||||
|     { | ||||
|          | ||||
|         Mat retVal = new Mat(getVocabulary_0(nativeObj)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int descriptorSize()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: BOWImgDescriptorExtractor::descriptorSize()
 | ||||
|     public  int descriptorSize() | ||||
|     { | ||||
|          | ||||
|         int retVal = descriptorSize_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int descriptorType()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: BOWImgDescriptorExtractor::descriptorType()
 | ||||
|     public  int descriptorType() | ||||
|     { | ||||
|          | ||||
|         int retVal = descriptorType_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void compute2(Mat image, vector_KeyPoint keypoints, Mat& imgDescriptor)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: BOWImgDescriptorExtractor::compute2(image, keypoints, imgDescriptor)
 | ||||
|     public  void compute(Mat image, MatOfKeyPoint keypoints, Mat imgDescriptor) | ||||
|     { | ||||
|         Mat keypoints_mat = keypoints; | ||||
|         compute_0(nativeObj, image.nativeObj, keypoints_mat.nativeObj, imgDescriptor.nativeObj); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setVocabulary(Mat vocabulary)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: BOWImgDescriptorExtractor::setVocabulary(vocabulary)
 | ||||
|     public  void setVocabulary(Mat vocabulary) | ||||
|     { | ||||
|          | ||||
|         setVocabulary_0(nativeObj, vocabulary.nativeObj); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     @Override | ||||
|     protected void finalize() throws Throwable { | ||||
|         delete(nativeObj); | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     // C++:  Mat getVocabulary()
 | ||||
|     private static native long getVocabulary_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  int descriptorSize()
 | ||||
|     private static native int descriptorSize_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  int descriptorType()
 | ||||
|     private static native int descriptorType_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  void compute2(Mat image, vector_KeyPoint keypoints, Mat& imgDescriptor)
 | ||||
|     private static native void compute_0(long nativeObj, long image_nativeObj, long keypoints_mat_nativeObj, long imgDescriptor_nativeObj); | ||||
| 
 | ||||
|     // C++:  void setVocabulary(Mat vocabulary)
 | ||||
|     private static native void setVocabulary_0(long nativeObj, long vocabulary_nativeObj); | ||||
| 
 | ||||
|     // native support for java finalize()
 | ||||
|     private static native void delete(long nativeObj); | ||||
| 
 | ||||
| } | ||||
| @ -1,89 +0,0 @@ | ||||
| 
 | ||||
| //
 | ||||
| // This file is auto-generated. Please don't modify it!
 | ||||
| //
 | ||||
| package org.opencv.features2d; | ||||
| 
 | ||||
| import org.opencv.core.Mat; | ||||
| import org.opencv.core.TermCriteria; | ||||
| 
 | ||||
| // C++: class BOWKMeansTrainer
 | ||||
| //javadoc: BOWKMeansTrainer
 | ||||
| 
 | ||||
| public class BOWKMeansTrainer extends BOWTrainer { | ||||
| 
 | ||||
|     protected BOWKMeansTrainer(long addr) { super(addr); } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:   BOWKMeansTrainer(int clusterCount, TermCriteria termcrit = TermCriteria(), int attempts = 3, int flags = KMEANS_PP_CENTERS)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: BOWKMeansTrainer::BOWKMeansTrainer(clusterCount, termcrit, attempts, flags)
 | ||||
|     public   BOWKMeansTrainer(int clusterCount, TermCriteria termcrit, int attempts, int flags) | ||||
|     { | ||||
|          | ||||
|         super( BOWKMeansTrainer_0(clusterCount, termcrit.type, termcrit.maxCount, termcrit.epsilon, attempts, flags) ); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: BOWKMeansTrainer::BOWKMeansTrainer(clusterCount)
 | ||||
|     public   BOWKMeansTrainer(int clusterCount) | ||||
|     { | ||||
|          | ||||
|         super( BOWKMeansTrainer_1(clusterCount) ); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  Mat cluster(Mat descriptors)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: BOWKMeansTrainer::cluster(descriptors)
 | ||||
|     public  Mat cluster(Mat descriptors) | ||||
|     { | ||||
|          | ||||
|         Mat retVal = new Mat(cluster_0(nativeObj, descriptors.nativeObj)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  Mat cluster()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: BOWKMeansTrainer::cluster()
 | ||||
|     public  Mat cluster() | ||||
|     { | ||||
|          | ||||
|         Mat retVal = new Mat(cluster_1(nativeObj)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     @Override | ||||
|     protected void finalize() throws Throwable { | ||||
|         delete(nativeObj); | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     // C++:   BOWKMeansTrainer(int clusterCount, TermCriteria termcrit = TermCriteria(), int attempts = 3, int flags = KMEANS_PP_CENTERS)
 | ||||
|     private static native long BOWKMeansTrainer_0(int clusterCount, int termcrit_type, int termcrit_maxCount, double termcrit_epsilon, int attempts, int flags); | ||||
|     private static native long BOWKMeansTrainer_1(int clusterCount); | ||||
| 
 | ||||
|     // C++:  Mat cluster(Mat descriptors)
 | ||||
|     private static native long cluster_0(long nativeObj, long descriptors_nativeObj); | ||||
| 
 | ||||
|     // C++:  Mat cluster()
 | ||||
|     private static native long cluster_1(long nativeObj); | ||||
| 
 | ||||
|     // native support for java finalize()
 | ||||
|     private static native void delete(long nativeObj); | ||||
| 
 | ||||
| } | ||||
| @ -1,134 +0,0 @@ | ||||
| 
 | ||||
| //
 | ||||
| // This file is auto-generated. Please don't modify it!
 | ||||
| //
 | ||||
| package org.opencv.features2d; | ||||
| 
 | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
| import org.opencv.core.Mat; | ||||
| import org.opencv.utils.Converters; | ||||
| 
 | ||||
| // C++: class BOWTrainer
 | ||||
| //javadoc: BOWTrainer
 | ||||
| 
 | ||||
| public class BOWTrainer { | ||||
| 
 | ||||
|     protected final long nativeObj; | ||||
|     protected BOWTrainer(long addr) { nativeObj = addr; } | ||||
| 
 | ||||
|     public long getNativeObjAddr() { return nativeObj; } | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  Mat cluster(Mat descriptors)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: BOWTrainer::cluster(descriptors)
 | ||||
|     public  Mat cluster(Mat descriptors) | ||||
|     { | ||||
|          | ||||
|         Mat retVal = new Mat(cluster_0(nativeObj, descriptors.nativeObj)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  Mat cluster()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: BOWTrainer::cluster()
 | ||||
|     public  Mat cluster() | ||||
|     { | ||||
|          | ||||
|         Mat retVal = new Mat(cluster_1(nativeObj)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int descriptorsCount()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: BOWTrainer::descriptorsCount()
 | ||||
|     public  int descriptorsCount() | ||||
|     { | ||||
|          | ||||
|         int retVal = descriptorsCount_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  vector_Mat getDescriptors()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: BOWTrainer::getDescriptors()
 | ||||
|     public  List<Mat> getDescriptors() | ||||
|     { | ||||
|         List<Mat> retVal = new ArrayList<Mat>(); | ||||
|         Mat retValMat = new Mat(getDescriptors_0(nativeObj)); | ||||
|         Converters.Mat_to_vector_Mat(retValMat, retVal); | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void add(Mat descriptors)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: BOWTrainer::add(descriptors)
 | ||||
|     public  void add(Mat descriptors) | ||||
|     { | ||||
|          | ||||
|         add_0(nativeObj, descriptors.nativeObj); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void clear()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: BOWTrainer::clear()
 | ||||
|     public  void clear() | ||||
|     { | ||||
|          | ||||
|         clear_0(nativeObj); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     @Override | ||||
|     protected void finalize() throws Throwable { | ||||
|         delete(nativeObj); | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     // C++:  Mat cluster(Mat descriptors)
 | ||||
|     private static native long cluster_0(long nativeObj, long descriptors_nativeObj); | ||||
| 
 | ||||
|     // C++:  Mat cluster()
 | ||||
|     private static native long cluster_1(long nativeObj); | ||||
| 
 | ||||
|     // C++:  int descriptorsCount()
 | ||||
|     private static native int descriptorsCount_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  vector_Mat getDescriptors()
 | ||||
|     private static native long getDescriptors_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  void add(Mat descriptors)
 | ||||
|     private static native void add_0(long nativeObj, long descriptors_nativeObj); | ||||
| 
 | ||||
|     // C++:  void clear()
 | ||||
|     private static native void clear_0(long nativeObj); | ||||
| 
 | ||||
|     // native support for java finalize()
 | ||||
|     private static native void delete(long nativeObj); | ||||
| 
 | ||||
| } | ||||
| @ -1,137 +0,0 @@ | ||||
| 
 | ||||
| //
 | ||||
| // This file is auto-generated. Please don't modify it!
 | ||||
| //
 | ||||
| package org.opencv.features2d; | ||||
| 
 | ||||
| import java.lang.String; | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
| import org.opencv.core.Mat; | ||||
| import org.opencv.core.MatOfFloat; | ||||
| import org.opencv.core.MatOfInt; | ||||
| import org.opencv.utils.Converters; | ||||
| 
 | ||||
| // C++: class BRISK
 | ||||
| //javadoc: BRISK
 | ||||
| 
 | ||||
| public class BRISK extends Feature2D { | ||||
| 
 | ||||
|     protected BRISK(long addr) { super(addr); } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++: static Ptr_BRISK create(int thresh, int octaves, vector_float radiusList, vector_int numberList, float dMax = 5.85f, float dMin = 8.2f, vector_int indexChange = std::vector<int>())
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: BRISK::create(thresh, octaves, radiusList, numberList, dMax, dMin, indexChange)
 | ||||
|     public static BRISK create(int thresh, int octaves, MatOfFloat radiusList, MatOfInt numberList, float dMax, float dMin, MatOfInt indexChange) | ||||
|     { | ||||
|         Mat radiusList_mat = radiusList; | ||||
|         Mat numberList_mat = numberList; | ||||
|         Mat indexChange_mat = indexChange; | ||||
|         BRISK retVal = new BRISK(create_0(thresh, octaves, radiusList_mat.nativeObj, numberList_mat.nativeObj, dMax, dMin, indexChange_mat.nativeObj)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: BRISK::create(thresh, octaves, radiusList, numberList)
 | ||||
|     public static BRISK create(int thresh, int octaves, MatOfFloat radiusList, MatOfInt numberList) | ||||
|     { | ||||
|         Mat radiusList_mat = radiusList; | ||||
|         Mat numberList_mat = numberList; | ||||
|         BRISK retVal = new BRISK(create_1(thresh, octaves, radiusList_mat.nativeObj, numberList_mat.nativeObj)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++: static Ptr_BRISK create(int thresh = 30, int octaves = 3, float patternScale = 1.0f)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: BRISK::create(thresh, octaves, patternScale)
 | ||||
|     public static BRISK create(int thresh, int octaves, float patternScale) | ||||
|     { | ||||
|          | ||||
|         BRISK retVal = new BRISK(create_2(thresh, octaves, patternScale)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: BRISK::create()
 | ||||
|     public static BRISK create() | ||||
|     { | ||||
|          | ||||
|         BRISK retVal = new BRISK(create_3()); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++: static Ptr_BRISK create(vector_float radiusList, vector_int numberList, float dMax = 5.85f, float dMin = 8.2f, vector_int indexChange = std::vector<int>())
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: BRISK::create(radiusList, numberList, dMax, dMin, indexChange)
 | ||||
|     public static BRISK create(MatOfFloat radiusList, MatOfInt numberList, float dMax, float dMin, MatOfInt indexChange) | ||||
|     { | ||||
|         Mat radiusList_mat = radiusList; | ||||
|         Mat numberList_mat = numberList; | ||||
|         Mat indexChange_mat = indexChange; | ||||
|         BRISK retVal = new BRISK(create_4(radiusList_mat.nativeObj, numberList_mat.nativeObj, dMax, dMin, indexChange_mat.nativeObj)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: BRISK::create(radiusList, numberList)
 | ||||
|     public static BRISK create(MatOfFloat radiusList, MatOfInt numberList) | ||||
|     { | ||||
|         Mat radiusList_mat = radiusList; | ||||
|         Mat numberList_mat = numberList; | ||||
|         BRISK retVal = new BRISK(create_5(radiusList_mat.nativeObj, numberList_mat.nativeObj)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  String getDefaultName()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: BRISK::getDefaultName()
 | ||||
|     public  String getDefaultName() | ||||
|     { | ||||
|          | ||||
|         String retVal = getDefaultName_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     @Override | ||||
|     protected void finalize() throws Throwable { | ||||
|         delete(nativeObj); | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     // C++: static Ptr_BRISK create(int thresh, int octaves, vector_float radiusList, vector_int numberList, float dMax = 5.85f, float dMin = 8.2f, vector_int indexChange = std::vector<int>())
 | ||||
|     private static native long create_0(int thresh, int octaves, long radiusList_mat_nativeObj, long numberList_mat_nativeObj, float dMax, float dMin, long indexChange_mat_nativeObj); | ||||
|     private static native long create_1(int thresh, int octaves, long radiusList_mat_nativeObj, long numberList_mat_nativeObj); | ||||
| 
 | ||||
|     // C++: static Ptr_BRISK create(int thresh = 30, int octaves = 3, float patternScale = 1.0f)
 | ||||
|     private static native long create_2(int thresh, int octaves, float patternScale); | ||||
|     private static native long create_3(); | ||||
| 
 | ||||
|     // C++: static Ptr_BRISK create(vector_float radiusList, vector_int numberList, float dMax = 5.85f, float dMin = 8.2f, vector_int indexChange = std::vector<int>())
 | ||||
|     private static native long create_4(long radiusList_mat_nativeObj, long numberList_mat_nativeObj, float dMax, float dMin, long indexChange_mat_nativeObj); | ||||
|     private static native long create_5(long radiusList_mat_nativeObj, long numberList_mat_nativeObj); | ||||
| 
 | ||||
|     // C++:  String getDefaultName()
 | ||||
|     private static native String getDefaultName_0(long nativeObj); | ||||
| 
 | ||||
|     // native support for java finalize()
 | ||||
|     private static native void delete(long nativeObj); | ||||
| 
 | ||||
| } | ||||
| @ -1,197 +0,0 @@ | ||||
| 
 | ||||
| //
 | ||||
| // This file is auto-generated. Please don't modify it!
 | ||||
| //
 | ||||
| package org.opencv.features2d; | ||||
| 
 | ||||
| import java.lang.String; | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
| import org.opencv.core.Mat; | ||||
| import org.opencv.core.MatOfKeyPoint; | ||||
| import org.opencv.utils.Converters; | ||||
| 
 | ||||
| // C++: class javaDescriptorExtractor
 | ||||
| //javadoc: javaDescriptorExtractor
 | ||||
| @Deprecated | ||||
| public class DescriptorExtractor { | ||||
| 
 | ||||
|     protected final long nativeObj; | ||||
|     protected DescriptorExtractor(long addr) { nativeObj = addr; } | ||||
| 
 | ||||
|     public long getNativeObjAddr() { return nativeObj; } | ||||
| 
 | ||||
|     private static final int | ||||
|             OPPONENTEXTRACTOR = 1000; | ||||
| 
 | ||||
| 
 | ||||
|     public static final int | ||||
|             SIFT = 1, | ||||
|             SURF = 2, | ||||
|             ORB = 3, | ||||
|             BRIEF = 4, | ||||
|             BRISK = 5, | ||||
|             FREAK = 6, | ||||
|             AKAZE = 7, | ||||
|             OPPONENT_SIFT = OPPONENTEXTRACTOR + SIFT, | ||||
|             OPPONENT_SURF = OPPONENTEXTRACTOR + SURF, | ||||
|             OPPONENT_ORB = OPPONENTEXTRACTOR + ORB, | ||||
|             OPPONENT_BRIEF = OPPONENTEXTRACTOR + BRIEF, | ||||
|             OPPONENT_BRISK = OPPONENTEXTRACTOR + BRISK, | ||||
|             OPPONENT_FREAK = OPPONENTEXTRACTOR + FREAK, | ||||
|             OPPONENT_AKAZE = OPPONENTEXTRACTOR + AKAZE; | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++: static Ptr_javaDescriptorExtractor create(int extractorType)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: javaDescriptorExtractor::create(extractorType)
 | ||||
|     public static DescriptorExtractor create(int extractorType) | ||||
|     { | ||||
|          | ||||
|         DescriptorExtractor retVal = new DescriptorExtractor(create_0(extractorType)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  bool empty()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: javaDescriptorExtractor::empty()
 | ||||
|     public  boolean empty() | ||||
|     { | ||||
|          | ||||
|         boolean retVal = empty_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int descriptorSize()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: javaDescriptorExtractor::descriptorSize()
 | ||||
|     public  int descriptorSize() | ||||
|     { | ||||
|          | ||||
|         int retVal = descriptorSize_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int descriptorType()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: javaDescriptorExtractor::descriptorType()
 | ||||
|     public  int descriptorType() | ||||
|     { | ||||
|          | ||||
|         int retVal = descriptorType_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void compute(Mat image, vector_KeyPoint& keypoints, Mat descriptors)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: javaDescriptorExtractor::compute(image, keypoints, descriptors)
 | ||||
|     public  void compute(Mat image, MatOfKeyPoint keypoints, Mat descriptors) | ||||
|     { | ||||
|         Mat keypoints_mat = keypoints; | ||||
|         compute_0(nativeObj, image.nativeObj, keypoints_mat.nativeObj, descriptors.nativeObj); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void compute(vector_Mat images, vector_vector_KeyPoint& keypoints, vector_Mat& descriptors)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: javaDescriptorExtractor::compute(images, keypoints, descriptors)
 | ||||
|     public  void compute(List<Mat> images, List<MatOfKeyPoint> keypoints, List<Mat> descriptors) | ||||
|     { | ||||
|         Mat images_mat = Converters.vector_Mat_to_Mat(images); | ||||
|         List<Mat> keypoints_tmplm = new ArrayList<Mat>((keypoints != null) ? keypoints.size() : 0); | ||||
|         Mat keypoints_mat = Converters.vector_vector_KeyPoint_to_Mat(keypoints, keypoints_tmplm); | ||||
|         Mat descriptors_mat = new Mat(); | ||||
|         compute_1(nativeObj, images_mat.nativeObj, keypoints_mat.nativeObj, descriptors_mat.nativeObj); | ||||
|         Converters.Mat_to_vector_vector_KeyPoint(keypoints_mat, keypoints); | ||||
|         keypoints_mat.release(); | ||||
|         Converters.Mat_to_vector_Mat(descriptors_mat, descriptors); | ||||
|         descriptors_mat.release(); | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void read(String fileName)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: javaDescriptorExtractor::read(fileName)
 | ||||
|     public  void read(String fileName) | ||||
|     { | ||||
|          | ||||
|         read_0(nativeObj, fileName); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void write(String fileName)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: javaDescriptorExtractor::write(fileName)
 | ||||
|     public  void write(String fileName) | ||||
|     { | ||||
|          | ||||
|         write_0(nativeObj, fileName); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     @Override | ||||
|     protected void finalize() throws Throwable { | ||||
|         delete(nativeObj); | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     // C++: static Ptr_javaDescriptorExtractor create(int extractorType)
 | ||||
|     private static native long create_0(int extractorType); | ||||
| 
 | ||||
|     // C++:  bool empty()
 | ||||
|     private static native boolean empty_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  int descriptorSize()
 | ||||
|     private static native int descriptorSize_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  int descriptorType()
 | ||||
|     private static native int descriptorType_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  void compute(Mat image, vector_KeyPoint& keypoints, Mat descriptors)
 | ||||
|     private static native void compute_0(long nativeObj, long image_nativeObj, long keypoints_mat_nativeObj, long descriptors_nativeObj); | ||||
| 
 | ||||
|     // C++:  void compute(vector_Mat images, vector_vector_KeyPoint& keypoints, vector_Mat& descriptors)
 | ||||
|     private static native void compute_1(long nativeObj, long images_mat_nativeObj, long keypoints_mat_nativeObj, long descriptors_mat_nativeObj); | ||||
| 
 | ||||
|     // C++:  void read(String fileName)
 | ||||
|     private static native void read_0(long nativeObj, String fileName); | ||||
| 
 | ||||
|     // C++:  void write(String fileName)
 | ||||
|     private static native void write_0(long nativeObj, String fileName); | ||||
| 
 | ||||
|     // native support for java finalize()
 | ||||
|     private static native void delete(long nativeObj); | ||||
| 
 | ||||
| } | ||||
| @ -1,426 +0,0 @@ | ||||
| 
 | ||||
| //
 | ||||
| // This file is auto-generated. Please don't modify it!
 | ||||
| //
 | ||||
| package org.opencv.features2d; | ||||
| 
 | ||||
| import java.lang.String; | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
| import org.opencv.core.Algorithm; | ||||
| import org.opencv.core.Mat; | ||||
| import org.opencv.core.MatOfDMatch; | ||||
| import org.opencv.utils.Converters; | ||||
| 
 | ||||
| // C++: class DescriptorMatcher
 | ||||
| //javadoc: DescriptorMatcher
 | ||||
| 
 | ||||
| public class DescriptorMatcher extends Algorithm { | ||||
| 
 | ||||
|     protected DescriptorMatcher(long addr) { super(addr); } | ||||
| 
 | ||||
| 
 | ||||
|     public static final int | ||||
|             FLANNBASED = 1, | ||||
|             BRUTEFORCE = 2, | ||||
|             BRUTEFORCE_L1 = 3, | ||||
|             BRUTEFORCE_HAMMING = 4, | ||||
|             BRUTEFORCE_HAMMINGLUT = 5, | ||||
|             BRUTEFORCE_SL2 = 6; | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  Ptr_DescriptorMatcher clone(bool emptyTrainData = false)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: DescriptorMatcher::clone(emptyTrainData)
 | ||||
|     public  DescriptorMatcher clone(boolean emptyTrainData) | ||||
|     { | ||||
|          | ||||
|         DescriptorMatcher retVal = new DescriptorMatcher(clone_0(nativeObj, emptyTrainData)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: DescriptorMatcher::clone()
 | ||||
|     public  DescriptorMatcher clone() | ||||
|     { | ||||
|          | ||||
|         DescriptorMatcher retVal = new DescriptorMatcher(clone_1(nativeObj)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++: static Ptr_DescriptorMatcher create(String descriptorMatcherType)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: DescriptorMatcher::create(descriptorMatcherType)
 | ||||
|     public static DescriptorMatcher create(String descriptorMatcherType) | ||||
|     { | ||||
|          | ||||
|         DescriptorMatcher retVal = new DescriptorMatcher(create_0(descriptorMatcherType)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++: static Ptr_DescriptorMatcher create(int matcherType)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: DescriptorMatcher::create(matcherType)
 | ||||
|     public static DescriptorMatcher create(int matcherType) | ||||
|     { | ||||
|          | ||||
|         DescriptorMatcher retVal = new DescriptorMatcher(create_1(matcherType)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  bool empty()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: DescriptorMatcher::empty()
 | ||||
|     public  boolean empty() | ||||
|     { | ||||
|          | ||||
|         boolean retVal = empty_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  bool isMaskSupported()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: DescriptorMatcher::isMaskSupported()
 | ||||
|     public  boolean isMaskSupported() | ||||
|     { | ||||
|          | ||||
|         boolean retVal = isMaskSupported_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  vector_Mat getTrainDescriptors()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: DescriptorMatcher::getTrainDescriptors()
 | ||||
|     public  List<Mat> getTrainDescriptors() | ||||
|     { | ||||
|         List<Mat> retVal = new ArrayList<Mat>(); | ||||
|         Mat retValMat = new Mat(getTrainDescriptors_0(nativeObj)); | ||||
|         Converters.Mat_to_vector_Mat(retValMat, retVal); | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void add(vector_Mat descriptors)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: DescriptorMatcher::add(descriptors)
 | ||||
|     public  void add(List<Mat> descriptors) | ||||
|     { | ||||
|         Mat descriptors_mat = Converters.vector_Mat_to_Mat(descriptors); | ||||
|         add_0(nativeObj, descriptors_mat.nativeObj); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void clear()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: DescriptorMatcher::clear()
 | ||||
|     public  void clear() | ||||
|     { | ||||
|          | ||||
|         clear_0(nativeObj); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void knnMatch(Mat queryDescriptors, Mat trainDescriptors, vector_vector_DMatch& matches, int k, Mat mask = Mat(), bool compactResult = false)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: DescriptorMatcher::knnMatch(queryDescriptors, trainDescriptors, matches, k, mask, compactResult)
 | ||||
|     public  void knnMatch(Mat queryDescriptors, Mat trainDescriptors, List<MatOfDMatch> matches, int k, Mat mask, boolean compactResult) | ||||
|     { | ||||
|         Mat matches_mat = new Mat(); | ||||
|         knnMatch_0(nativeObj, queryDescriptors.nativeObj, trainDescriptors.nativeObj, matches_mat.nativeObj, k, mask.nativeObj, compactResult); | ||||
|         Converters.Mat_to_vector_vector_DMatch(matches_mat, matches); | ||||
|         matches_mat.release(); | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: DescriptorMatcher::knnMatch(queryDescriptors, trainDescriptors, matches, k)
 | ||||
|     public  void knnMatch(Mat queryDescriptors, Mat trainDescriptors, List<MatOfDMatch> matches, int k) | ||||
|     { | ||||
|         Mat matches_mat = new Mat(); | ||||
|         knnMatch_1(nativeObj, queryDescriptors.nativeObj, trainDescriptors.nativeObj, matches_mat.nativeObj, k); | ||||
|         Converters.Mat_to_vector_vector_DMatch(matches_mat, matches); | ||||
|         matches_mat.release(); | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void knnMatch(Mat queryDescriptors, vector_vector_DMatch& matches, int k, vector_Mat masks = vector_Mat(), bool compactResult = false)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: DescriptorMatcher::knnMatch(queryDescriptors, matches, k, masks, compactResult)
 | ||||
|     public  void knnMatch(Mat queryDescriptors, List<MatOfDMatch> matches, int k, List<Mat> masks, boolean compactResult) | ||||
|     { | ||||
|         Mat matches_mat = new Mat(); | ||||
|         Mat masks_mat = Converters.vector_Mat_to_Mat(masks); | ||||
|         knnMatch_2(nativeObj, queryDescriptors.nativeObj, matches_mat.nativeObj, k, masks_mat.nativeObj, compactResult); | ||||
|         Converters.Mat_to_vector_vector_DMatch(matches_mat, matches); | ||||
|         matches_mat.release(); | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: DescriptorMatcher::knnMatch(queryDescriptors, matches, k)
 | ||||
|     public  void knnMatch(Mat queryDescriptors, List<MatOfDMatch> matches, int k) | ||||
|     { | ||||
|         Mat matches_mat = new Mat(); | ||||
|         knnMatch_3(nativeObj, queryDescriptors.nativeObj, matches_mat.nativeObj, k); | ||||
|         Converters.Mat_to_vector_vector_DMatch(matches_mat, matches); | ||||
|         matches_mat.release(); | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void match(Mat queryDescriptors, Mat trainDescriptors, vector_DMatch& matches, Mat mask = Mat())
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: DescriptorMatcher::match(queryDescriptors, trainDescriptors, matches, mask)
 | ||||
|     public  void match(Mat queryDescriptors, Mat trainDescriptors, MatOfDMatch matches, Mat mask) | ||||
|     { | ||||
|         Mat matches_mat = matches; | ||||
|         match_0(nativeObj, queryDescriptors.nativeObj, trainDescriptors.nativeObj, matches_mat.nativeObj, mask.nativeObj); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: DescriptorMatcher::match(queryDescriptors, trainDescriptors, matches)
 | ||||
|     public  void match(Mat queryDescriptors, Mat trainDescriptors, MatOfDMatch matches) | ||||
|     { | ||||
|         Mat matches_mat = matches; | ||||
|         match_1(nativeObj, queryDescriptors.nativeObj, trainDescriptors.nativeObj, matches_mat.nativeObj); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void match(Mat queryDescriptors, vector_DMatch& matches, vector_Mat masks = vector_Mat())
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: DescriptorMatcher::match(queryDescriptors, matches, masks)
 | ||||
|     public  void match(Mat queryDescriptors, MatOfDMatch matches, List<Mat> masks) | ||||
|     { | ||||
|         Mat matches_mat = matches; | ||||
|         Mat masks_mat = Converters.vector_Mat_to_Mat(masks); | ||||
|         match_2(nativeObj, queryDescriptors.nativeObj, matches_mat.nativeObj, masks_mat.nativeObj); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: DescriptorMatcher::match(queryDescriptors, matches)
 | ||||
|     public  void match(Mat queryDescriptors, MatOfDMatch matches) | ||||
|     { | ||||
|         Mat matches_mat = matches; | ||||
|         match_3(nativeObj, queryDescriptors.nativeObj, matches_mat.nativeObj); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void radiusMatch(Mat queryDescriptors, Mat trainDescriptors, vector_vector_DMatch& matches, float maxDistance, Mat mask = Mat(), bool compactResult = false)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: DescriptorMatcher::radiusMatch(queryDescriptors, trainDescriptors, matches, maxDistance, mask, compactResult)
 | ||||
|     public  void radiusMatch(Mat queryDescriptors, Mat trainDescriptors, List<MatOfDMatch> matches, float maxDistance, Mat mask, boolean compactResult) | ||||
|     { | ||||
|         Mat matches_mat = new Mat(); | ||||
|         radiusMatch_0(nativeObj, queryDescriptors.nativeObj, trainDescriptors.nativeObj, matches_mat.nativeObj, maxDistance, mask.nativeObj, compactResult); | ||||
|         Converters.Mat_to_vector_vector_DMatch(matches_mat, matches); | ||||
|         matches_mat.release(); | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: DescriptorMatcher::radiusMatch(queryDescriptors, trainDescriptors, matches, maxDistance)
 | ||||
|     public  void radiusMatch(Mat queryDescriptors, Mat trainDescriptors, List<MatOfDMatch> matches, float maxDistance) | ||||
|     { | ||||
|         Mat matches_mat = new Mat(); | ||||
|         radiusMatch_1(nativeObj, queryDescriptors.nativeObj, trainDescriptors.nativeObj, matches_mat.nativeObj, maxDistance); | ||||
|         Converters.Mat_to_vector_vector_DMatch(matches_mat, matches); | ||||
|         matches_mat.release(); | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void radiusMatch(Mat queryDescriptors, vector_vector_DMatch& matches, float maxDistance, vector_Mat masks = vector_Mat(), bool compactResult = false)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: DescriptorMatcher::radiusMatch(queryDescriptors, matches, maxDistance, masks, compactResult)
 | ||||
|     public  void radiusMatch(Mat queryDescriptors, List<MatOfDMatch> matches, float maxDistance, List<Mat> masks, boolean compactResult) | ||||
|     { | ||||
|         Mat matches_mat = new Mat(); | ||||
|         Mat masks_mat = Converters.vector_Mat_to_Mat(masks); | ||||
|         radiusMatch_2(nativeObj, queryDescriptors.nativeObj, matches_mat.nativeObj, maxDistance, masks_mat.nativeObj, compactResult); | ||||
|         Converters.Mat_to_vector_vector_DMatch(matches_mat, matches); | ||||
|         matches_mat.release(); | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: DescriptorMatcher::radiusMatch(queryDescriptors, matches, maxDistance)
 | ||||
|     public  void radiusMatch(Mat queryDescriptors, List<MatOfDMatch> matches, float maxDistance) | ||||
|     { | ||||
|         Mat matches_mat = new Mat(); | ||||
|         radiusMatch_3(nativeObj, queryDescriptors.nativeObj, matches_mat.nativeObj, maxDistance); | ||||
|         Converters.Mat_to_vector_vector_DMatch(matches_mat, matches); | ||||
|         matches_mat.release(); | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void read(FileNode arg1)
 | ||||
|     //
 | ||||
| 
 | ||||
|     // Unknown type 'FileNode' (I), skipping the function
 | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void read(String fileName)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: DescriptorMatcher::read(fileName)
 | ||||
|     public  void read(String fileName) | ||||
|     { | ||||
|          | ||||
|         read_0(nativeObj, fileName); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void train()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: DescriptorMatcher::train()
 | ||||
|     public  void train() | ||||
|     { | ||||
|          | ||||
|         train_0(nativeObj); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void write(Ptr_FileStorage fs, String name = String())
 | ||||
|     //
 | ||||
| 
 | ||||
|     // Unknown type 'Ptr_FileStorage' (I), skipping the function
 | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void write(String fileName)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: DescriptorMatcher::write(fileName)
 | ||||
|     public  void write(String fileName) | ||||
|     { | ||||
|          | ||||
|         write_0(nativeObj, fileName); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     @Override | ||||
|     protected void finalize() throws Throwable { | ||||
|         delete(nativeObj); | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     // C++:  Ptr_DescriptorMatcher clone(bool emptyTrainData = false)
 | ||||
|     private static native long clone_0(long nativeObj, boolean emptyTrainData); | ||||
|     private static native long clone_1(long nativeObj); | ||||
| 
 | ||||
|     // C++: static Ptr_DescriptorMatcher create(String descriptorMatcherType)
 | ||||
|     private static native long create_0(String descriptorMatcherType); | ||||
| 
 | ||||
|     // C++: static Ptr_DescriptorMatcher create(int matcherType)
 | ||||
|     private static native long create_1(int matcherType); | ||||
| 
 | ||||
|     // C++:  bool empty()
 | ||||
|     private static native boolean empty_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  bool isMaskSupported()
 | ||||
|     private static native boolean isMaskSupported_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  vector_Mat getTrainDescriptors()
 | ||||
|     private static native long getTrainDescriptors_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  void add(vector_Mat descriptors)
 | ||||
|     private static native void add_0(long nativeObj, long descriptors_mat_nativeObj); | ||||
| 
 | ||||
|     // C++:  void clear()
 | ||||
|     private static native void clear_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  void knnMatch(Mat queryDescriptors, Mat trainDescriptors, vector_vector_DMatch& matches, int k, Mat mask = Mat(), bool compactResult = false)
 | ||||
|     private static native void knnMatch_0(long nativeObj, long queryDescriptors_nativeObj, long trainDescriptors_nativeObj, long matches_mat_nativeObj, int k, long mask_nativeObj, boolean compactResult); | ||||
|     private static native void knnMatch_1(long nativeObj, long queryDescriptors_nativeObj, long trainDescriptors_nativeObj, long matches_mat_nativeObj, int k); | ||||
| 
 | ||||
|     // C++:  void knnMatch(Mat queryDescriptors, vector_vector_DMatch& matches, int k, vector_Mat masks = vector_Mat(), bool compactResult = false)
 | ||||
|     private static native void knnMatch_2(long nativeObj, long queryDescriptors_nativeObj, long matches_mat_nativeObj, int k, long masks_mat_nativeObj, boolean compactResult); | ||||
|     private static native void knnMatch_3(long nativeObj, long queryDescriptors_nativeObj, long matches_mat_nativeObj, int k); | ||||
| 
 | ||||
|     // C++:  void match(Mat queryDescriptors, Mat trainDescriptors, vector_DMatch& matches, Mat mask = Mat())
 | ||||
|     private static native void match_0(long nativeObj, long queryDescriptors_nativeObj, long trainDescriptors_nativeObj, long matches_mat_nativeObj, long mask_nativeObj); | ||||
|     private static native void match_1(long nativeObj, long queryDescriptors_nativeObj, long trainDescriptors_nativeObj, long matches_mat_nativeObj); | ||||
| 
 | ||||
|     // C++:  void match(Mat queryDescriptors, vector_DMatch& matches, vector_Mat masks = vector_Mat())
 | ||||
|     private static native void match_2(long nativeObj, long queryDescriptors_nativeObj, long matches_mat_nativeObj, long masks_mat_nativeObj); | ||||
|     private static native void match_3(long nativeObj, long queryDescriptors_nativeObj, long matches_mat_nativeObj); | ||||
| 
 | ||||
|     // C++:  void radiusMatch(Mat queryDescriptors, Mat trainDescriptors, vector_vector_DMatch& matches, float maxDistance, Mat mask = Mat(), bool compactResult = false)
 | ||||
|     private static native void radiusMatch_0(long nativeObj, long queryDescriptors_nativeObj, long trainDescriptors_nativeObj, long matches_mat_nativeObj, float maxDistance, long mask_nativeObj, boolean compactResult); | ||||
|     private static native void radiusMatch_1(long nativeObj, long queryDescriptors_nativeObj, long trainDescriptors_nativeObj, long matches_mat_nativeObj, float maxDistance); | ||||
| 
 | ||||
|     // C++:  void radiusMatch(Mat queryDescriptors, vector_vector_DMatch& matches, float maxDistance, vector_Mat masks = vector_Mat(), bool compactResult = false)
 | ||||
|     private static native void radiusMatch_2(long nativeObj, long queryDescriptors_nativeObj, long matches_mat_nativeObj, float maxDistance, long masks_mat_nativeObj, boolean compactResult); | ||||
|     private static native void radiusMatch_3(long nativeObj, long queryDescriptors_nativeObj, long matches_mat_nativeObj, float maxDistance); | ||||
| 
 | ||||
|     // C++:  void read(String fileName)
 | ||||
|     private static native void read_0(long nativeObj, String fileName); | ||||
| 
 | ||||
|     // C++:  void train()
 | ||||
|     private static native void train_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  void write(String fileName)
 | ||||
|     private static native void write_0(long nativeObj, String fileName); | ||||
| 
 | ||||
|     // native support for java finalize()
 | ||||
|     private static native void delete(long nativeObj); | ||||
| 
 | ||||
| } | ||||
| @ -1,182 +0,0 @@ | ||||
| 
 | ||||
| //
 | ||||
| // This file is auto-generated. Please don't modify it!
 | ||||
| //
 | ||||
| package org.opencv.features2d; | ||||
| 
 | ||||
| import java.lang.String; | ||||
| 
 | ||||
| // C++: class FastFeatureDetector
 | ||||
| //javadoc: FastFeatureDetector
 | ||||
| 
 | ||||
| public class FastFeatureDetector extends Feature2D { | ||||
| 
 | ||||
|     protected FastFeatureDetector(long addr) { super(addr); } | ||||
| 
 | ||||
| 
 | ||||
|     public static final int | ||||
|             TYPE_5_8 = 0, | ||||
|             TYPE_7_12 = 1, | ||||
|             TYPE_9_16 = 2, | ||||
|             THRESHOLD = 10000, | ||||
|             NONMAX_SUPPRESSION = 10001, | ||||
|             FAST_N = 10002; | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++: static Ptr_FastFeatureDetector create(int threshold = 10, bool nonmaxSuppression = true, int type = FastFeatureDetector::TYPE_9_16)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: FastFeatureDetector::create(threshold, nonmaxSuppression, type)
 | ||||
|     public static FastFeatureDetector create(int threshold, boolean nonmaxSuppression, int type) | ||||
|     { | ||||
|          | ||||
|         FastFeatureDetector retVal = new FastFeatureDetector(create_0(threshold, nonmaxSuppression, type)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: FastFeatureDetector::create()
 | ||||
|     public static FastFeatureDetector create() | ||||
|     { | ||||
|          | ||||
|         FastFeatureDetector retVal = new FastFeatureDetector(create_1()); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  String getDefaultName()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: FastFeatureDetector::getDefaultName()
 | ||||
|     public  String getDefaultName() | ||||
|     { | ||||
|          | ||||
|         String retVal = getDefaultName_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  bool getNonmaxSuppression()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: FastFeatureDetector::getNonmaxSuppression()
 | ||||
|     public  boolean getNonmaxSuppression() | ||||
|     { | ||||
|          | ||||
|         boolean retVal = getNonmaxSuppression_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int getThreshold()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: FastFeatureDetector::getThreshold()
 | ||||
|     public  int getThreshold() | ||||
|     { | ||||
|          | ||||
|         int retVal = getThreshold_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int getType()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: FastFeatureDetector::getType()
 | ||||
|     public  int getType() | ||||
|     { | ||||
|          | ||||
|         int retVal = getType_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setNonmaxSuppression(bool f)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: FastFeatureDetector::setNonmaxSuppression(f)
 | ||||
|     public  void setNonmaxSuppression(boolean f) | ||||
|     { | ||||
|          | ||||
|         setNonmaxSuppression_0(nativeObj, f); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setThreshold(int threshold)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: FastFeatureDetector::setThreshold(threshold)
 | ||||
|     public  void setThreshold(int threshold) | ||||
|     { | ||||
|          | ||||
|         setThreshold_0(nativeObj, threshold); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setType(int type)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: FastFeatureDetector::setType(type)
 | ||||
|     public  void setType(int type) | ||||
|     { | ||||
|          | ||||
|         setType_0(nativeObj, type); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     @Override | ||||
|     protected void finalize() throws Throwable { | ||||
|         delete(nativeObj); | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     // C++: static Ptr_FastFeatureDetector create(int threshold = 10, bool nonmaxSuppression = true, int type = FastFeatureDetector::TYPE_9_16)
 | ||||
|     private static native long create_0(int threshold, boolean nonmaxSuppression, int type); | ||||
|     private static native long create_1(); | ||||
| 
 | ||||
|     // C++:  String getDefaultName()
 | ||||
|     private static native String getDefaultName_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  bool getNonmaxSuppression()
 | ||||
|     private static native boolean getNonmaxSuppression_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  int getThreshold()
 | ||||
|     private static native int getThreshold_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  int getType()
 | ||||
|     private static native int getType_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  void setNonmaxSuppression(bool f)
 | ||||
|     private static native void setNonmaxSuppression_0(long nativeObj, boolean f); | ||||
| 
 | ||||
|     // C++:  void setThreshold(int threshold)
 | ||||
|     private static native void setThreshold_0(long nativeObj, int threshold); | ||||
| 
 | ||||
|     // C++:  void setType(int type)
 | ||||
|     private static native void setType_0(long nativeObj, int type); | ||||
| 
 | ||||
|     // native support for java finalize()
 | ||||
|     private static native void delete(long nativeObj); | ||||
| 
 | ||||
| } | ||||
| @ -1,292 +0,0 @@ | ||||
| 
 | ||||
| //
 | ||||
| // This file is auto-generated. Please don't modify it!
 | ||||
| //
 | ||||
| package org.opencv.features2d; | ||||
| 
 | ||||
| import java.lang.String; | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
| import org.opencv.core.Algorithm; | ||||
| import org.opencv.core.Mat; | ||||
| import org.opencv.core.MatOfKeyPoint; | ||||
| import org.opencv.utils.Converters; | ||||
| 
 | ||||
| // C++: class Feature2D
 | ||||
| //javadoc: Feature2D
 | ||||
| 
 | ||||
| public class Feature2D extends Algorithm { | ||||
| 
 | ||||
|     protected Feature2D(long addr) { super(addr); } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  String getDefaultName()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Feature2D::getDefaultName()
 | ||||
|     public  String getDefaultName() | ||||
|     { | ||||
|          | ||||
|         String retVal = getDefaultName_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  bool empty()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Feature2D::empty()
 | ||||
|     public  boolean empty() | ||||
|     { | ||||
|          | ||||
|         boolean retVal = empty_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int defaultNorm()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Feature2D::defaultNorm()
 | ||||
|     public  int defaultNorm() | ||||
|     { | ||||
|          | ||||
|         int retVal = defaultNorm_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int descriptorSize()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Feature2D::descriptorSize()
 | ||||
|     public  int descriptorSize() | ||||
|     { | ||||
|          | ||||
|         int retVal = descriptorSize_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int descriptorType()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Feature2D::descriptorType()
 | ||||
|     public  int descriptorType() | ||||
|     { | ||||
|          | ||||
|         int retVal = descriptorType_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void compute(Mat image, vector_KeyPoint& keypoints, Mat& descriptors)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Feature2D::compute(image, keypoints, descriptors)
 | ||||
|     public  void compute(Mat image, MatOfKeyPoint keypoints, Mat descriptors) | ||||
|     { | ||||
|         Mat keypoints_mat = keypoints; | ||||
|         compute_0(nativeObj, image.nativeObj, keypoints_mat.nativeObj, descriptors.nativeObj); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void compute(vector_Mat images, vector_vector_KeyPoint& keypoints, vector_Mat& descriptors)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Feature2D::compute(images, keypoints, descriptors)
 | ||||
|     public  void compute(List<Mat> images, List<MatOfKeyPoint> keypoints, List<Mat> descriptors) | ||||
|     { | ||||
|         Mat images_mat = Converters.vector_Mat_to_Mat(images); | ||||
|         List<Mat> keypoints_tmplm = new ArrayList<Mat>((keypoints != null) ? keypoints.size() : 0); | ||||
|         Mat keypoints_mat = Converters.vector_vector_KeyPoint_to_Mat(keypoints, keypoints_tmplm); | ||||
|         Mat descriptors_mat = new Mat(); | ||||
|         compute_1(nativeObj, images_mat.nativeObj, keypoints_mat.nativeObj, descriptors_mat.nativeObj); | ||||
|         Converters.Mat_to_vector_vector_KeyPoint(keypoints_mat, keypoints); | ||||
|         keypoints_mat.release(); | ||||
|         Converters.Mat_to_vector_Mat(descriptors_mat, descriptors); | ||||
|         descriptors_mat.release(); | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void detect(Mat image, vector_KeyPoint& keypoints, Mat mask = Mat())
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Feature2D::detect(image, keypoints, mask)
 | ||||
|     public  void detect(Mat image, MatOfKeyPoint keypoints, Mat mask) | ||||
|     { | ||||
|         Mat keypoints_mat = keypoints; | ||||
|         detect_0(nativeObj, image.nativeObj, keypoints_mat.nativeObj, mask.nativeObj); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: Feature2D::detect(image, keypoints)
 | ||||
|     public  void detect(Mat image, MatOfKeyPoint keypoints) | ||||
|     { | ||||
|         Mat keypoints_mat = keypoints; | ||||
|         detect_1(nativeObj, image.nativeObj, keypoints_mat.nativeObj); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void detect(vector_Mat images, vector_vector_KeyPoint& keypoints, vector_Mat masks = vector_Mat())
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Feature2D::detect(images, keypoints, masks)
 | ||||
|     public  void detect(List<Mat> images, List<MatOfKeyPoint> keypoints, List<Mat> masks) | ||||
|     { | ||||
|         Mat images_mat = Converters.vector_Mat_to_Mat(images); | ||||
|         Mat keypoints_mat = new Mat(); | ||||
|         Mat masks_mat = Converters.vector_Mat_to_Mat(masks); | ||||
|         detect_2(nativeObj, images_mat.nativeObj, keypoints_mat.nativeObj, masks_mat.nativeObj); | ||||
|         Converters.Mat_to_vector_vector_KeyPoint(keypoints_mat, keypoints); | ||||
|         keypoints_mat.release(); | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: Feature2D::detect(images, keypoints)
 | ||||
|     public  void detect(List<Mat> images, List<MatOfKeyPoint> keypoints) | ||||
|     { | ||||
|         Mat images_mat = Converters.vector_Mat_to_Mat(images); | ||||
|         Mat keypoints_mat = new Mat(); | ||||
|         detect_3(nativeObj, images_mat.nativeObj, keypoints_mat.nativeObj); | ||||
|         Converters.Mat_to_vector_vector_KeyPoint(keypoints_mat, keypoints); | ||||
|         keypoints_mat.release(); | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void detectAndCompute(Mat image, Mat mask, vector_KeyPoint& keypoints, Mat& descriptors, bool useProvidedKeypoints = false)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Feature2D::detectAndCompute(image, mask, keypoints, descriptors, useProvidedKeypoints)
 | ||||
|     public  void detectAndCompute(Mat image, Mat mask, MatOfKeyPoint keypoints, Mat descriptors, boolean useProvidedKeypoints) | ||||
|     { | ||||
|         Mat keypoints_mat = keypoints; | ||||
|         detectAndCompute_0(nativeObj, image.nativeObj, mask.nativeObj, keypoints_mat.nativeObj, descriptors.nativeObj, useProvidedKeypoints); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: Feature2D::detectAndCompute(image, mask, keypoints, descriptors)
 | ||||
|     public  void detectAndCompute(Mat image, Mat mask, MatOfKeyPoint keypoints, Mat descriptors) | ||||
|     { | ||||
|         Mat keypoints_mat = keypoints; | ||||
|         detectAndCompute_1(nativeObj, image.nativeObj, mask.nativeObj, keypoints_mat.nativeObj, descriptors.nativeObj); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void read(FileNode arg1)
 | ||||
|     //
 | ||||
| 
 | ||||
|     // Unknown type 'FileNode' (I), skipping the function
 | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void read(String fileName)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Feature2D::read(fileName)
 | ||||
|     public  void read(String fileName) | ||||
|     { | ||||
|          | ||||
|         read_0(nativeObj, fileName); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void write(Ptr_FileStorage fs, String name = String())
 | ||||
|     //
 | ||||
| 
 | ||||
|     // Unknown type 'Ptr_FileStorage' (I), skipping the function
 | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void write(String fileName)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: Feature2D::write(fileName)
 | ||||
|     public  void write(String fileName) | ||||
|     { | ||||
|          | ||||
|         write_0(nativeObj, fileName); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     @Override | ||||
|     protected void finalize() throws Throwable { | ||||
|         delete(nativeObj); | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     // C++:  String getDefaultName()
 | ||||
|     private static native String getDefaultName_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  bool empty()
 | ||||
|     private static native boolean empty_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  int defaultNorm()
 | ||||
|     private static native int defaultNorm_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  int descriptorSize()
 | ||||
|     private static native int descriptorSize_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  int descriptorType()
 | ||||
|     private static native int descriptorType_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  void compute(Mat image, vector_KeyPoint& keypoints, Mat& descriptors)
 | ||||
|     private static native void compute_0(long nativeObj, long image_nativeObj, long keypoints_mat_nativeObj, long descriptors_nativeObj); | ||||
| 
 | ||||
|     // C++:  void compute(vector_Mat images, vector_vector_KeyPoint& keypoints, vector_Mat& descriptors)
 | ||||
|     private static native void compute_1(long nativeObj, long images_mat_nativeObj, long keypoints_mat_nativeObj, long descriptors_mat_nativeObj); | ||||
| 
 | ||||
|     // C++:  void detect(Mat image, vector_KeyPoint& keypoints, Mat mask = Mat())
 | ||||
|     private static native void detect_0(long nativeObj, long image_nativeObj, long keypoints_mat_nativeObj, long mask_nativeObj); | ||||
|     private static native void detect_1(long nativeObj, long image_nativeObj, long keypoints_mat_nativeObj); | ||||
| 
 | ||||
|     // C++:  void detect(vector_Mat images, vector_vector_KeyPoint& keypoints, vector_Mat masks = vector_Mat())
 | ||||
|     private static native void detect_2(long nativeObj, long images_mat_nativeObj, long keypoints_mat_nativeObj, long masks_mat_nativeObj); | ||||
|     private static native void detect_3(long nativeObj, long images_mat_nativeObj, long keypoints_mat_nativeObj); | ||||
| 
 | ||||
|     // C++:  void detectAndCompute(Mat image, Mat mask, vector_KeyPoint& keypoints, Mat& descriptors, bool useProvidedKeypoints = false)
 | ||||
|     private static native void detectAndCompute_0(long nativeObj, long image_nativeObj, long mask_nativeObj, long keypoints_mat_nativeObj, long descriptors_nativeObj, boolean useProvidedKeypoints); | ||||
|     private static native void detectAndCompute_1(long nativeObj, long image_nativeObj, long mask_nativeObj, long keypoints_mat_nativeObj, long descriptors_nativeObj); | ||||
| 
 | ||||
|     // C++:  void read(String fileName)
 | ||||
|     private static native void read_0(long nativeObj, String fileName); | ||||
| 
 | ||||
|     // C++:  void write(String fileName)
 | ||||
|     private static native void write_0(long nativeObj, String fileName); | ||||
| 
 | ||||
|     // native support for java finalize()
 | ||||
|     private static native void delete(long nativeObj); | ||||
| 
 | ||||
| } | ||||
| @ -1,219 +0,0 @@ | ||||
| 
 | ||||
| //
 | ||||
| // This file is auto-generated. Please don't modify it!
 | ||||
| //
 | ||||
| package org.opencv.features2d; | ||||
| 
 | ||||
| import java.lang.String; | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
| import org.opencv.core.Mat; | ||||
| import org.opencv.core.MatOfKeyPoint; | ||||
| import org.opencv.utils.Converters; | ||||
| 
 | ||||
| // C++: class javaFeatureDetector
 | ||||
| //javadoc: javaFeatureDetector
 | ||||
| @Deprecated | ||||
| public class FeatureDetector { | ||||
| 
 | ||||
|     protected final long nativeObj; | ||||
|     protected FeatureDetector(long addr) { nativeObj = addr; } | ||||
| 
 | ||||
|     public long getNativeObjAddr() { return nativeObj; } | ||||
| 
 | ||||
|     private static final int | ||||
|             GRIDDETECTOR = 1000, | ||||
|             PYRAMIDDETECTOR = 2000, | ||||
|             DYNAMICDETECTOR = 3000; | ||||
| 
 | ||||
| 
 | ||||
|     public static final int | ||||
|             FAST = 1, | ||||
|             STAR = 2, | ||||
|             SIFT = 3, | ||||
|             SURF = 4, | ||||
|             ORB = 5, | ||||
|             MSER = 6, | ||||
|             GFTT = 7, | ||||
|             HARRIS = 8, | ||||
|             SIMPLEBLOB = 9, | ||||
|             DENSE = 10, | ||||
|             BRISK = 11, | ||||
|             AKAZE = 12, | ||||
|             GRID_FAST = GRIDDETECTOR + FAST, | ||||
|             GRID_STAR = GRIDDETECTOR + STAR, | ||||
|             GRID_SIFT = GRIDDETECTOR + SIFT, | ||||
|             GRID_SURF = GRIDDETECTOR + SURF, | ||||
|             GRID_ORB = GRIDDETECTOR + ORB, | ||||
|             GRID_MSER = GRIDDETECTOR + MSER, | ||||
|             GRID_GFTT = GRIDDETECTOR + GFTT, | ||||
|             GRID_HARRIS = GRIDDETECTOR + HARRIS, | ||||
|             GRID_SIMPLEBLOB = GRIDDETECTOR + SIMPLEBLOB, | ||||
|             GRID_DENSE = GRIDDETECTOR + DENSE, | ||||
|             GRID_BRISK = GRIDDETECTOR + BRISK, | ||||
|             GRID_AKAZE = GRIDDETECTOR + AKAZE, | ||||
|             PYRAMID_FAST = PYRAMIDDETECTOR + FAST, | ||||
|             PYRAMID_STAR = PYRAMIDDETECTOR + STAR, | ||||
|             PYRAMID_SIFT = PYRAMIDDETECTOR + SIFT, | ||||
|             PYRAMID_SURF = PYRAMIDDETECTOR + SURF, | ||||
|             PYRAMID_ORB = PYRAMIDDETECTOR + ORB, | ||||
|             PYRAMID_MSER = PYRAMIDDETECTOR + MSER, | ||||
|             PYRAMID_GFTT = PYRAMIDDETECTOR + GFTT, | ||||
|             PYRAMID_HARRIS = PYRAMIDDETECTOR + HARRIS, | ||||
|             PYRAMID_SIMPLEBLOB = PYRAMIDDETECTOR + SIMPLEBLOB, | ||||
|             PYRAMID_DENSE = PYRAMIDDETECTOR + DENSE, | ||||
|             PYRAMID_BRISK = PYRAMIDDETECTOR + BRISK, | ||||
|             PYRAMID_AKAZE = PYRAMIDDETECTOR + AKAZE, | ||||
|             DYNAMIC_FAST = DYNAMICDETECTOR + FAST, | ||||
|             DYNAMIC_STAR = DYNAMICDETECTOR + STAR, | ||||
|             DYNAMIC_SIFT = DYNAMICDETECTOR + SIFT, | ||||
|             DYNAMIC_SURF = DYNAMICDETECTOR + SURF, | ||||
|             DYNAMIC_ORB = DYNAMICDETECTOR + ORB, | ||||
|             DYNAMIC_MSER = DYNAMICDETECTOR + MSER, | ||||
|             DYNAMIC_GFTT = DYNAMICDETECTOR + GFTT, | ||||
|             DYNAMIC_HARRIS = DYNAMICDETECTOR + HARRIS, | ||||
|             DYNAMIC_SIMPLEBLOB = DYNAMICDETECTOR + SIMPLEBLOB, | ||||
|             DYNAMIC_DENSE = DYNAMICDETECTOR + DENSE, | ||||
|             DYNAMIC_BRISK = DYNAMICDETECTOR + BRISK, | ||||
|             DYNAMIC_AKAZE = DYNAMICDETECTOR + AKAZE; | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++: static Ptr_javaFeatureDetector create(int detectorType)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: javaFeatureDetector::create(detectorType)
 | ||||
|     @Deprecated | ||||
|     public static FeatureDetector create(int detectorType) | ||||
|     { | ||||
|          | ||||
|         FeatureDetector retVal = new FeatureDetector(create_0(detectorType)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  bool empty()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: javaFeatureDetector::empty()
 | ||||
|     public  boolean empty() | ||||
|     { | ||||
|          | ||||
|         boolean retVal = empty_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void detect(Mat image, vector_KeyPoint& keypoints, Mat mask = Mat())
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: javaFeatureDetector::detect(image, keypoints, mask)
 | ||||
|     public  void detect(Mat image, MatOfKeyPoint keypoints, Mat mask) | ||||
|     { | ||||
|         Mat keypoints_mat = keypoints; | ||||
|         detect_0(nativeObj, image.nativeObj, keypoints_mat.nativeObj, mask.nativeObj); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: javaFeatureDetector::detect(image, keypoints)
 | ||||
|     public  void detect(Mat image, MatOfKeyPoint keypoints) | ||||
|     { | ||||
|         Mat keypoints_mat = keypoints; | ||||
|         detect_1(nativeObj, image.nativeObj, keypoints_mat.nativeObj); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void detect(vector_Mat images, vector_vector_KeyPoint& keypoints, vector_Mat masks = std::vector<Mat>())
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: javaFeatureDetector::detect(images, keypoints, masks)
 | ||||
|     public  void detect(List<Mat> images, List<MatOfKeyPoint> keypoints, List<Mat> masks) | ||||
|     { | ||||
|         Mat images_mat = Converters.vector_Mat_to_Mat(images); | ||||
|         Mat keypoints_mat = new Mat(); | ||||
|         Mat masks_mat = Converters.vector_Mat_to_Mat(masks); | ||||
|         detect_2(nativeObj, images_mat.nativeObj, keypoints_mat.nativeObj, masks_mat.nativeObj); | ||||
|         Converters.Mat_to_vector_vector_KeyPoint(keypoints_mat, keypoints); | ||||
|         keypoints_mat.release(); | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: javaFeatureDetector::detect(images, keypoints)
 | ||||
|     public  void detect(List<Mat> images, List<MatOfKeyPoint> keypoints) | ||||
|     { | ||||
|         Mat images_mat = Converters.vector_Mat_to_Mat(images); | ||||
|         Mat keypoints_mat = new Mat(); | ||||
|         detect_3(nativeObj, images_mat.nativeObj, keypoints_mat.nativeObj); | ||||
|         Converters.Mat_to_vector_vector_KeyPoint(keypoints_mat, keypoints); | ||||
|         keypoints_mat.release(); | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void read(String fileName)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: javaFeatureDetector::read(fileName)
 | ||||
|     public  void read(String fileName) | ||||
|     { | ||||
|          | ||||
|         read_0(nativeObj, fileName); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void write(String fileName)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: javaFeatureDetector::write(fileName)
 | ||||
|     public  void write(String fileName) | ||||
|     { | ||||
|          | ||||
|         write_0(nativeObj, fileName); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     @Override | ||||
|     protected void finalize() throws Throwable { | ||||
|         delete(nativeObj); | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     // C++: static Ptr_javaFeatureDetector create(int detectorType)
 | ||||
|     private static native long create_0(int detectorType); | ||||
| 
 | ||||
|     // C++:  bool empty()
 | ||||
|     private static native boolean empty_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  void detect(Mat image, vector_KeyPoint& keypoints, Mat mask = Mat())
 | ||||
|     private static native void detect_0(long nativeObj, long image_nativeObj, long keypoints_mat_nativeObj, long mask_nativeObj); | ||||
|     private static native void detect_1(long nativeObj, long image_nativeObj, long keypoints_mat_nativeObj); | ||||
| 
 | ||||
|     // C++:  void detect(vector_Mat images, vector_vector_KeyPoint& keypoints, vector_Mat masks = std::vector<Mat>())
 | ||||
|     private static native void detect_2(long nativeObj, long images_mat_nativeObj, long keypoints_mat_nativeObj, long masks_mat_nativeObj); | ||||
|     private static native void detect_3(long nativeObj, long images_mat_nativeObj, long keypoints_mat_nativeObj); | ||||
| 
 | ||||
|     // C++:  void read(String fileName)
 | ||||
|     private static native void read_0(long nativeObj, String fileName); | ||||
| 
 | ||||
|     // C++:  void write(String fileName)
 | ||||
|     private static native void write_0(long nativeObj, String fileName); | ||||
| 
 | ||||
|     // native support for java finalize()
 | ||||
|     private static native void delete(long nativeObj); | ||||
| 
 | ||||
| } | ||||
| @ -1,158 +0,0 @@ | ||||
| 
 | ||||
| //
 | ||||
| // This file is auto-generated. Please don't modify it!
 | ||||
| //
 | ||||
| package org.opencv.features2d; | ||||
| 
 | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
| import org.opencv.core.Mat; | ||||
| import org.opencv.core.MatOfByte; | ||||
| import org.opencv.core.MatOfDMatch; | ||||
| import org.opencv.core.MatOfKeyPoint; | ||||
| import org.opencv.core.Scalar; | ||||
| import org.opencv.utils.Converters; | ||||
| 
 | ||||
| // C++: class Features2d
 | ||||
| //javadoc: Features2d
 | ||||
| 
 | ||||
| public class Features2d { | ||||
| 
 | ||||
|     public static final int | ||||
|             DRAW_OVER_OUTIMG = 1, | ||||
|             NOT_DRAW_SINGLE_POINTS = 2, | ||||
|             DRAW_RICH_KEYPOINTS = 4; | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void drawKeypoints(Mat image, vector_KeyPoint keypoints, Mat& outImage, Scalar color = Scalar::all(-1), int flags = DrawMatchesFlags::DEFAULT)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: drawKeypoints(image, keypoints, outImage, color, flags)
 | ||||
|     public static void drawKeypoints(Mat image, MatOfKeyPoint keypoints, Mat outImage, Scalar color, int flags) | ||||
|     { | ||||
|         Mat keypoints_mat = keypoints; | ||||
|         drawKeypoints_0(image.nativeObj, keypoints_mat.nativeObj, outImage.nativeObj, color.val[0], color.val[1], color.val[2], color.val[3], flags); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: drawKeypoints(image, keypoints, outImage)
 | ||||
|     public static void drawKeypoints(Mat image, MatOfKeyPoint keypoints, Mat outImage) | ||||
|     { | ||||
|         Mat keypoints_mat = keypoints; | ||||
|         drawKeypoints_1(image.nativeObj, keypoints_mat.nativeObj, outImage.nativeObj); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void drawMatches(Mat img1, vector_KeyPoint keypoints1, Mat img2, vector_KeyPoint keypoints2, vector_DMatch matches1to2, Mat& outImg, Scalar matchColor = Scalar::all(-1), Scalar singlePointColor = Scalar::all(-1), vector_char matchesMask = std::vector<char>(), int flags = DrawMatchesFlags::DEFAULT)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: drawMatches(img1, keypoints1, img2, keypoints2, matches1to2, outImg, matchColor, singlePointColor, matchesMask, flags)
 | ||||
|     public static void drawMatches(Mat img1, MatOfKeyPoint keypoints1, Mat img2, MatOfKeyPoint keypoints2, MatOfDMatch matches1to2, Mat outImg, Scalar matchColor, Scalar singlePointColor, MatOfByte matchesMask, int flags) | ||||
|     { | ||||
|         Mat keypoints1_mat = keypoints1; | ||||
|         Mat keypoints2_mat = keypoints2; | ||||
|         Mat matches1to2_mat = matches1to2; | ||||
|         Mat matchesMask_mat = matchesMask; | ||||
|         drawMatches_0(img1.nativeObj, keypoints1_mat.nativeObj, img2.nativeObj, keypoints2_mat.nativeObj, matches1to2_mat.nativeObj, outImg.nativeObj, matchColor.val[0], matchColor.val[1], matchColor.val[2], matchColor.val[3], singlePointColor.val[0], singlePointColor.val[1], singlePointColor.val[2], singlePointColor.val[3], matchesMask_mat.nativeObj, flags); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: drawMatches(img1, keypoints1, img2, keypoints2, matches1to2, outImg)
 | ||||
|     public static void drawMatches(Mat img1, MatOfKeyPoint keypoints1, Mat img2, MatOfKeyPoint keypoints2, MatOfDMatch matches1to2, Mat outImg) | ||||
|     { | ||||
|         Mat keypoints1_mat = keypoints1; | ||||
|         Mat keypoints2_mat = keypoints2; | ||||
|         Mat matches1to2_mat = matches1to2; | ||||
|         drawMatches_1(img1.nativeObj, keypoints1_mat.nativeObj, img2.nativeObj, keypoints2_mat.nativeObj, matches1to2_mat.nativeObj, outImg.nativeObj); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void drawMatches(Mat img1, vector_KeyPoint keypoints1, Mat img2, vector_KeyPoint keypoints2, vector_vector_DMatch matches1to2, Mat outImg, Scalar matchColor = Scalar::all(-1), Scalar singlePointColor = Scalar::all(-1), vector_vector_char matchesMask = std::vector<std::vector<char> >(), int flags = 0)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: drawMatches(img1, keypoints1, img2, keypoints2, matches1to2, outImg, matchColor, singlePointColor, matchesMask, flags)
 | ||||
|     public static void drawMatches2(Mat img1, MatOfKeyPoint keypoints1, Mat img2, MatOfKeyPoint keypoints2, List<MatOfDMatch> matches1to2, Mat outImg, Scalar matchColor, Scalar singlePointColor, List<MatOfByte> matchesMask, int flags) | ||||
|     { | ||||
|         Mat keypoints1_mat = keypoints1; | ||||
|         Mat keypoints2_mat = keypoints2; | ||||
|         List<Mat> matches1to2_tmplm = new ArrayList<Mat>((matches1to2 != null) ? matches1to2.size() : 0); | ||||
|         Mat matches1to2_mat = Converters.vector_vector_DMatch_to_Mat(matches1to2, matches1to2_tmplm); | ||||
|         List<Mat> matchesMask_tmplm = new ArrayList<Mat>((matchesMask != null) ? matchesMask.size() : 0); | ||||
|         Mat matchesMask_mat = Converters.vector_vector_char_to_Mat(matchesMask, matchesMask_tmplm); | ||||
|         drawMatches2_0(img1.nativeObj, keypoints1_mat.nativeObj, img2.nativeObj, keypoints2_mat.nativeObj, matches1to2_mat.nativeObj, outImg.nativeObj, matchColor.val[0], matchColor.val[1], matchColor.val[2], matchColor.val[3], singlePointColor.val[0], singlePointColor.val[1], singlePointColor.val[2], singlePointColor.val[3], matchesMask_mat.nativeObj, flags); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: drawMatches(img1, keypoints1, img2, keypoints2, matches1to2, outImg)
 | ||||
|     public static void drawMatches2(Mat img1, MatOfKeyPoint keypoints1, Mat img2, MatOfKeyPoint keypoints2, List<MatOfDMatch> matches1to2, Mat outImg) | ||||
|     { | ||||
|         Mat keypoints1_mat = keypoints1; | ||||
|         Mat keypoints2_mat = keypoints2; | ||||
|         List<Mat> matches1to2_tmplm = new ArrayList<Mat>((matches1to2 != null) ? matches1to2.size() : 0); | ||||
|         Mat matches1to2_mat = Converters.vector_vector_DMatch_to_Mat(matches1to2, matches1to2_tmplm); | ||||
|         drawMatches2_1(img1.nativeObj, keypoints1_mat.nativeObj, img2.nativeObj, keypoints2_mat.nativeObj, matches1to2_mat.nativeObj, outImg.nativeObj); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void drawMatches(Mat img1, vector_KeyPoint keypoints1, Mat img2, vector_KeyPoint keypoints2, vector_vector_DMatch matches1to2, Mat& outImg, Scalar matchColor = Scalar::all(-1), Scalar singlePointColor = Scalar::all(-1), vector_vector_char matchesMask = std::vector<std::vector<char> >(), int flags = DrawMatchesFlags::DEFAULT)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: drawMatches(img1, keypoints1, img2, keypoints2, matches1to2, outImg, matchColor, singlePointColor, matchesMask, flags)
 | ||||
|     public static void drawMatchesKnn(Mat img1, MatOfKeyPoint keypoints1, Mat img2, MatOfKeyPoint keypoints2, List<MatOfDMatch> matches1to2, Mat outImg, Scalar matchColor, Scalar singlePointColor, List<MatOfByte> matchesMask, int flags) | ||||
|     { | ||||
|         Mat keypoints1_mat = keypoints1; | ||||
|         Mat keypoints2_mat = keypoints2; | ||||
|         List<Mat> matches1to2_tmplm = new ArrayList<Mat>((matches1to2 != null) ? matches1to2.size() : 0); | ||||
|         Mat matches1to2_mat = Converters.vector_vector_DMatch_to_Mat(matches1to2, matches1to2_tmplm); | ||||
|         List<Mat> matchesMask_tmplm = new ArrayList<Mat>((matchesMask != null) ? matchesMask.size() : 0); | ||||
|         Mat matchesMask_mat = Converters.vector_vector_char_to_Mat(matchesMask, matchesMask_tmplm); | ||||
|         drawMatchesKnn_0(img1.nativeObj, keypoints1_mat.nativeObj, img2.nativeObj, keypoints2_mat.nativeObj, matches1to2_mat.nativeObj, outImg.nativeObj, matchColor.val[0], matchColor.val[1], matchColor.val[2], matchColor.val[3], singlePointColor.val[0], singlePointColor.val[1], singlePointColor.val[2], singlePointColor.val[3], matchesMask_mat.nativeObj, flags); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: drawMatches(img1, keypoints1, img2, keypoints2, matches1to2, outImg)
 | ||||
|     public static void drawMatchesKnn(Mat img1, MatOfKeyPoint keypoints1, Mat img2, MatOfKeyPoint keypoints2, List<MatOfDMatch> matches1to2, Mat outImg) | ||||
|     { | ||||
|         Mat keypoints1_mat = keypoints1; | ||||
|         Mat keypoints2_mat = keypoints2; | ||||
|         List<Mat> matches1to2_tmplm = new ArrayList<Mat>((matches1to2 != null) ? matches1to2.size() : 0); | ||||
|         Mat matches1to2_mat = Converters.vector_vector_DMatch_to_Mat(matches1to2, matches1to2_tmplm); | ||||
|         drawMatchesKnn_1(img1.nativeObj, keypoints1_mat.nativeObj, img2.nativeObj, keypoints2_mat.nativeObj, matches1to2_mat.nativeObj, outImg.nativeObj); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     // C++:  void drawKeypoints(Mat image, vector_KeyPoint keypoints, Mat& outImage, Scalar color = Scalar::all(-1), int flags = DrawMatchesFlags::DEFAULT)
 | ||||
|     private static native void drawKeypoints_0(long image_nativeObj, long keypoints_mat_nativeObj, long outImage_nativeObj, double color_val0, double color_val1, double color_val2, double color_val3, int flags); | ||||
|     private static native void drawKeypoints_1(long image_nativeObj, long keypoints_mat_nativeObj, long outImage_nativeObj); | ||||
| 
 | ||||
|     // C++:  void drawMatches(Mat img1, vector_KeyPoint keypoints1, Mat img2, vector_KeyPoint keypoints2, vector_DMatch matches1to2, Mat& outImg, Scalar matchColor = Scalar::all(-1), Scalar singlePointColor = Scalar::all(-1), vector_char matchesMask = std::vector<char>(), int flags = DrawMatchesFlags::DEFAULT)
 | ||||
|     private static native void drawMatches_0(long img1_nativeObj, long keypoints1_mat_nativeObj, long img2_nativeObj, long keypoints2_mat_nativeObj, long matches1to2_mat_nativeObj, long outImg_nativeObj, double matchColor_val0, double matchColor_val1, double matchColor_val2, double matchColor_val3, double singlePointColor_val0, double singlePointColor_val1, double singlePointColor_val2, double singlePointColor_val3, long matchesMask_mat_nativeObj, int flags); | ||||
|     private static native void drawMatches_1(long img1_nativeObj, long keypoints1_mat_nativeObj, long img2_nativeObj, long keypoints2_mat_nativeObj, long matches1to2_mat_nativeObj, long outImg_nativeObj); | ||||
| 
 | ||||
|     // C++:  void drawMatches(Mat img1, vector_KeyPoint keypoints1, Mat img2, vector_KeyPoint keypoints2, vector_vector_DMatch matches1to2, Mat outImg, Scalar matchColor = Scalar::all(-1), Scalar singlePointColor = Scalar::all(-1), vector_vector_char matchesMask = std::vector<std::vector<char> >(), int flags = 0)
 | ||||
|     private static native void drawMatches2_0(long img1_nativeObj, long keypoints1_mat_nativeObj, long img2_nativeObj, long keypoints2_mat_nativeObj, long matches1to2_mat_nativeObj, long outImg_nativeObj, double matchColor_val0, double matchColor_val1, double matchColor_val2, double matchColor_val3, double singlePointColor_val0, double singlePointColor_val1, double singlePointColor_val2, double singlePointColor_val3, long matchesMask_mat_nativeObj, int flags); | ||||
|     private static native void drawMatches2_1(long img1_nativeObj, long keypoints1_mat_nativeObj, long img2_nativeObj, long keypoints2_mat_nativeObj, long matches1to2_mat_nativeObj, long outImg_nativeObj); | ||||
| 
 | ||||
|     // C++:  void drawMatches(Mat img1, vector_KeyPoint keypoints1, Mat img2, vector_KeyPoint keypoints2, vector_vector_DMatch matches1to2, Mat& outImg, Scalar matchColor = Scalar::all(-1), Scalar singlePointColor = Scalar::all(-1), vector_vector_char matchesMask = std::vector<std::vector<char> >(), int flags = DrawMatchesFlags::DEFAULT)
 | ||||
|     private static native void drawMatchesKnn_0(long img1_nativeObj, long keypoints1_mat_nativeObj, long img2_nativeObj, long keypoints2_mat_nativeObj, long matches1to2_mat_nativeObj, long outImg_nativeObj, double matchColor_val0, double matchColor_val1, double matchColor_val2, double matchColor_val3, double singlePointColor_val0, double singlePointColor_val1, double singlePointColor_val2, double singlePointColor_val3, long matchesMask_mat_nativeObj, int flags); | ||||
|     private static native void drawMatchesKnn_1(long img1_nativeObj, long keypoints1_mat_nativeObj, long img2_nativeObj, long keypoints2_mat_nativeObj, long matches1to2_mat_nativeObj, long outImg_nativeObj); | ||||
| 
 | ||||
| } | ||||
| @ -1,61 +0,0 @@ | ||||
| 
 | ||||
| //
 | ||||
| // This file is auto-generated. Please don't modify it!
 | ||||
| //
 | ||||
| package org.opencv.features2d; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| // C++: class FlannBasedMatcher
 | ||||
| //javadoc: FlannBasedMatcher
 | ||||
| 
 | ||||
| public class FlannBasedMatcher extends DescriptorMatcher { | ||||
| 
 | ||||
|     protected FlannBasedMatcher(long addr) { super(addr); } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:   FlannBasedMatcher(Ptr_flann_IndexParams indexParams = makePtr<flann::KDTreeIndexParams>(), Ptr_flann_SearchParams searchParams = makePtr<flann::SearchParams>())
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: FlannBasedMatcher::FlannBasedMatcher()
 | ||||
|     public   FlannBasedMatcher() | ||||
|     { | ||||
|          | ||||
|         super( FlannBasedMatcher_0() ); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++: static Ptr_FlannBasedMatcher create()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: FlannBasedMatcher::create()
 | ||||
|     public static FlannBasedMatcher create() | ||||
|     { | ||||
|          | ||||
|         FlannBasedMatcher retVal = new FlannBasedMatcher(create_0()); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     @Override | ||||
|     protected void finalize() throws Throwable { | ||||
|         delete(nativeObj); | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     // C++:   FlannBasedMatcher(Ptr_flann_IndexParams indexParams = makePtr<flann::KDTreeIndexParams>(), Ptr_flann_SearchParams searchParams = makePtr<flann::SearchParams>())
 | ||||
|     private static native long FlannBasedMatcher_0(); | ||||
| 
 | ||||
|     // C++: static Ptr_FlannBasedMatcher create()
 | ||||
|     private static native long create_0(); | ||||
| 
 | ||||
|     // native support for java finalize()
 | ||||
|     private static native void delete(long nativeObj); | ||||
| 
 | ||||
| } | ||||
| @ -1,302 +0,0 @@ | ||||
| 
 | ||||
| //
 | ||||
| // This file is auto-generated. Please don't modify it!
 | ||||
| //
 | ||||
| package org.opencv.features2d; | ||||
| 
 | ||||
| import java.lang.String; | ||||
| 
 | ||||
| // C++: class GFTTDetector
 | ||||
| //javadoc: GFTTDetector
 | ||||
| 
 | ||||
| public class GFTTDetector extends Feature2D { | ||||
| 
 | ||||
|     protected GFTTDetector(long addr) { super(addr); } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++: static Ptr_GFTTDetector create(int maxCorners, double qualityLevel, double minDistance, int blockSize, int gradiantSize, bool useHarrisDetector = false, double k = 0.04)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: GFTTDetector::create(maxCorners, qualityLevel, minDistance, blockSize, gradiantSize, useHarrisDetector, k)
 | ||||
|     public static GFTTDetector create(int maxCorners, double qualityLevel, double minDistance, int blockSize, int gradiantSize, boolean useHarrisDetector, double k) | ||||
|     { | ||||
|          | ||||
|         GFTTDetector retVal = new GFTTDetector(create_0(maxCorners, qualityLevel, minDistance, blockSize, gradiantSize, useHarrisDetector, k)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: GFTTDetector::create(maxCorners, qualityLevel, minDistance, blockSize, gradiantSize)
 | ||||
|     public static GFTTDetector create(int maxCorners, double qualityLevel, double minDistance, int blockSize, int gradiantSize) | ||||
|     { | ||||
|          | ||||
|         GFTTDetector retVal = new GFTTDetector(create_1(maxCorners, qualityLevel, minDistance, blockSize, gradiantSize)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++: static Ptr_GFTTDetector create(int maxCorners = 1000, double qualityLevel = 0.01, double minDistance = 1, int blockSize = 3, bool useHarrisDetector = false, double k = 0.04)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: GFTTDetector::create(maxCorners, qualityLevel, minDistance, blockSize, useHarrisDetector, k)
 | ||||
|     public static GFTTDetector create(int maxCorners, double qualityLevel, double minDistance, int blockSize, boolean useHarrisDetector, double k) | ||||
|     { | ||||
|          | ||||
|         GFTTDetector retVal = new GFTTDetector(create_2(maxCorners, qualityLevel, minDistance, blockSize, useHarrisDetector, k)); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
|     //javadoc: GFTTDetector::create()
 | ||||
|     public static GFTTDetector create() | ||||
|     { | ||||
|          | ||||
|         GFTTDetector retVal = new GFTTDetector(create_3()); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  String getDefaultName()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: GFTTDetector::getDefaultName()
 | ||||
|     public  String getDefaultName() | ||||
|     { | ||||
|          | ||||
|         String retVal = getDefaultName_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  bool getHarrisDetector()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: GFTTDetector::getHarrisDetector()
 | ||||
|     public  boolean getHarrisDetector() | ||||
|     { | ||||
|          | ||||
|         boolean retVal = getHarrisDetector_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  double getK()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: GFTTDetector::getK()
 | ||||
|     public  double getK() | ||||
|     { | ||||
|          | ||||
|         double retVal = getK_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  double getMinDistance()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: GFTTDetector::getMinDistance()
 | ||||
|     public  double getMinDistance() | ||||
|     { | ||||
|          | ||||
|         double retVal = getMinDistance_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  double getQualityLevel()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: GFTTDetector::getQualityLevel()
 | ||||
|     public  double getQualityLevel() | ||||
|     { | ||||
|          | ||||
|         double retVal = getQualityLevel_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int getBlockSize()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: GFTTDetector::getBlockSize()
 | ||||
|     public  int getBlockSize() | ||||
|     { | ||||
|          | ||||
|         int retVal = getBlockSize_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  int getMaxFeatures()
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: GFTTDetector::getMaxFeatures()
 | ||||
|     public  int getMaxFeatures() | ||||
|     { | ||||
|          | ||||
|         int retVal = getMaxFeatures_0(nativeObj); | ||||
|          | ||||
|         return retVal; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setBlockSize(int blockSize)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: GFTTDetector::setBlockSize(blockSize)
 | ||||
|     public  void setBlockSize(int blockSize) | ||||
|     { | ||||
|          | ||||
|         setBlockSize_0(nativeObj, blockSize); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setHarrisDetector(bool val)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: GFTTDetector::setHarrisDetector(val)
 | ||||
|     public  void setHarrisDetector(boolean val) | ||||
|     { | ||||
|          | ||||
|         setHarrisDetector_0(nativeObj, val); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setK(double k)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: GFTTDetector::setK(k)
 | ||||
|     public  void setK(double k) | ||||
|     { | ||||
|          | ||||
|         setK_0(nativeObj, k); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setMaxFeatures(int maxFeatures)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: GFTTDetector::setMaxFeatures(maxFeatures)
 | ||||
|     public  void setMaxFeatures(int maxFeatures) | ||||
|     { | ||||
|          | ||||
|         setMaxFeatures_0(nativeObj, maxFeatures); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setMinDistance(double minDistance)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: GFTTDetector::setMinDistance(minDistance)
 | ||||
|     public  void setMinDistance(double minDistance) | ||||
|     { | ||||
|          | ||||
|         setMinDistance_0(nativeObj, minDistance); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //
 | ||||
|     // C++:  void setQualityLevel(double qlevel)
 | ||||
|     //
 | ||||
| 
 | ||||
|     //javadoc: GFTTDetector::setQualityLevel(qlevel)
 | ||||
|     public  void setQualityLevel(double qlevel) | ||||
|     { | ||||
|          | ||||
|         setQualityLevel_0(nativeObj, qlevel); | ||||
|          | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     @Override | ||||
|     protected void finalize() throws Throwable { | ||||
|         delete(nativeObj); | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     // C++: static Ptr_GFTTDetector create(int maxCorners, double qualityLevel, double minDistance, int blockSize, int gradiantSize, bool useHarrisDetector = false, double k = 0.04)
 | ||||
|     private static native long create_0(int maxCorners, double qualityLevel, double minDistance, int blockSize, int gradiantSize, boolean useHarrisDetector, double k); | ||||
|     private static native long create_1(int maxCorners, double qualityLevel, double minDistance, int blockSize, int gradiantSize); | ||||
| 
 | ||||
|     // C++: static Ptr_GFTTDetector create(int maxCorners = 1000, double qualityLevel = 0.01, double minDistance = 1, int blockSize = 3, bool useHarrisDetector = false, double k = 0.04)
 | ||||
|     private static native long create_2(int maxCorners, double qualityLevel, double minDistance, int blockSize, boolean useHarrisDetector, double k); | ||||
|     private static native long create_3(); | ||||
| 
 | ||||
|     // C++:  String getDefaultName()
 | ||||
|     private static native String getDefaultName_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  bool getHarrisDetector()
 | ||||
|     private static native boolean getHarrisDetector_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  double getK()
 | ||||
|     private static native double getK_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  double getMinDistance()
 | ||||
|     private static native double getMinDistance_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  double getQualityLevel()
 | ||||
|     private static native double getQualityLevel_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  int getBlockSize()
 | ||||
|     private static native int getBlockSize_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  int getMaxFeatures()
 | ||||
|     private static native int getMaxFeatures_0(long nativeObj); | ||||
| 
 | ||||
|     // C++:  void setBlockSize(int blockSize)
 | ||||
|     private static native void setBlockSize_0(long nativeObj, int blockSize); | ||||
| 
 | ||||
|     // C++:  void setHarrisDetector(bool val)
 | ||||
|     private static native void setHarrisDetector_0(long nativeObj, boolean val); | ||||
| 
 | ||||
|     // C++:  void setK(double k)
 | ||||
|     private static native void setK_0(long nativeObj, double k); | ||||
| 
 | ||||
|     // C++:  void setMaxFeatures(int maxFeatures)
 | ||||
|     private static native void setMaxFeatures_0(long nativeObj, int maxFeatures); | ||||
| 
 | ||||
|     // C++:  void setMinDistance(double minDistance)
 | ||||
|     private static native void setMinDistance_0(long nativeObj, double minDistance); | ||||
| 
 | ||||
|     // C++:  void setQualityLevel(double qlevel)
 | ||||
|     private static native void setQualityLevel_0(long nativeObj, double qlevel); | ||||
| 
 | ||||
|     // native support for java finalize()
 | ||||
|     private static native void delete(long nativeObj); | ||||
| 
 | ||||
| } | ||||
Some files were not shown because too many files have changed in this diff Show More
					Loading…
					
					
				
		Reference in new issue