Java OpenCV Android完全使用c++;

Java OpenCV Android完全使用c++;,java,android,c++,ios,opencv,Java,Android,C++,Ios,Opencv,我注意到github中的大多数Android示例都使用java中的opencv。我现在在iOS中有一个可用的应用程序,我尽力将opencv调用与桥接头分开 在安卓系统中也可以这样做吗?我注意到OpenCV检测器像CasCADECLSILIVER都是java,C++中没有。 在Android中,我能实现与iOS一样的事情吗?< P> < St>你可以完全使用C++,并且必须使用JNI让java代码调用本地代码。< /强> < /P> 下载Opencv android sdk后,您只能导入所需的头文

我注意到github中的大多数Android示例都使用java中的opencv。我现在在iOS中有一个可用的应用程序,我尽力将opencv调用与桥接头分开

在安卓系统中也可以这样做吗?我注意到OpenCV检测器像CasCADECLSILIVER都是java,C++中没有。

在Android中,我能实现与iOS一样的事情吗?

< P> < St>你可以完全使用C++,并且必须使用JNI让java代码调用本地代码。< /强> < /P> 下载Opencv android sdk后,您只能导入所需的头文件和“.a”文件。java文件是为那些不知道C++的人提供的。 例如,java类CascadeClassifier,最后称为本机函数,您也可以这样做,实际上,它是JNI:

 // C++:   CascadeClassifier::CascadeClassifier()
private static native long CascadeClassifier_0();

// C++:   CascadeClassifier::CascadeClassifier(string filename)
private static native long CascadeClassifier_1(String filename);

// C++:  void CascadeClassifier::detectMultiScale(Mat image, vector_Rect& objects, double scaleFactor = 1.1, int minNeighbors = 3, int flags = 0, Size minSize = Size(), Size maxSize = Size())
private static native void detectMultiScale_0(long nativeObj, long image_nativeObj, long objects_mat_nativeObj, double scaleFactor, int minNeighbors, int flags, double minSize_width, double minSize_height, double maxSize_width, double maxSize_height);
private static native void detectMultiScale_1(long nativeObj, long image_nativeObj, long objects_mat_nativeObj);

// C++:  void CascadeClassifier::detectMultiScale(Mat image, vector_Rect& objects, vector_int rejectLevels, vector_double levelWeights, double scaleFactor = 1.1, int minNeighbors = 3, int flags = 0, Size minSize = Size(), Size maxSize = Size(), bool outputRejectLevels = false)
private static native void detectMultiScale_2(long nativeObj, long image_nativeObj, long objects_mat_nativeObj, long rejectLevels_mat_nativeObj, long levelWeights_mat_nativeObj, double scaleFactor, int minNeighbors, int flags, double minSize_width, double minSize_height, double maxSize_width, double maxSize_height, boolean outputRejectLevels);
private static native void detectMultiScale_3(long nativeObj, long image_nativeObj, long objects_mat_nativeObj, long rejectLevels_mat_nativeObj, long levelWeights_mat_nativeObj);

// C++:  bool CascadeClassifier::empty()
private static native boolean empty_0(long nativeObj);

// C++:  bool CascadeClassifier::load(string filename)
private static native boolean load_0(long nativeObj, String filename);

// native support for java finalize()
private static native void delete(long nativeObj);