gpt4 book ai didi

java - OpenCV Java createFisherFace Ptr

转载 作者:行者123 更新时间:2023-12-01 13:24:04 25 4
gpt4 key购买 nike

我一直在 Eclipse 上使用 OpenCV (Java) 进行开发。我现在需要为我的 FaceRecognizer 类创建一个 FisherFace。根据我的搜索,我发现似乎没有任何支持。根据this question ,似乎与 Ptr 类有关。难道Java没有Ptr类来处理返回的Ptr值吗?如果是这样,那么将 this Java Ptr class 处理它?如果这不是解决方案,是否有任何教程可以指导我制作 FaceRecognizer 类?谢谢你!

最佳答案

整个问题出在 c++ 方面,所以你的 java Ptr 类不会有帮助。

使用 opencv 2.4.8,您可以尝试重建 jni-adapter:

(注意,opencv3.0 中的 cv::Ptr 类与其不兼容)

<小时/>
// facerec.dll
#include "jni.h"
#include "opencv2/contrib/contrib.hpp"


extern "C" {


JNIEXPORT jlong JNICALL Java_org_matxx_n_createLBPHFaceRecognizer(JNIEnv* env, jclass, jint);

JNIEXPORT jlong JNICALL Java_org_matxx_n_createLBPHFaceRecognizer(JNIEnv* env, jclass, jint)
{
try {

cv::Ptr<cv::FaceRecognizer> ptr = cv::createLBPHFaceRecognizer();
cv::FaceRecognizer * pf = ptr.get();
ptr.addref(); //don't let it self-destroy here..
return (jlong) pf;
} catch (...) {
jclass je = env->FindClass("java/lang/Exception");
env->ThrowNew(je, "sorry, dave..");
}
return 0;
}
} // extern "C"
<小时/>

和一个java“工厂”:

<小时/>
// LBPHFaceRecognizer.java

import org.opencv.contrib.FaceRecognizer;
import org.opencv.core.Core;


public class LBPHFaceRecognizer extends FaceRecognizer
{
static{ System.loadLibrary("facerec.dll"); }

private static native long n_createLBPHFaceRecognizer();

public LBPHFaceRecognizer()
{
super(n_createLBPHFaceRecognizer());
}
}
<小时/>

稍后,您可以创建面部识别:

<小时/>
FaceRecognizer facerec = new LBPHFaceRecognizer();

关于java - OpenCV Java createFisherFace Ptr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21880941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com