- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用OpenCV 2.4.10。
JNI-训练面部识别
JNIEXPORT jlong JNICALL Java_com_sample_facialRecognition_DetectionBasedRecognition_nativeTrain
(JNIEnv * jenv, jstring pathIn)
{
vector<Mat> images;
vector<int> labels;
try {
std::string path;
std::string classlabel = "A";
GetJStringContent(jenv,pathIn,path);
if(!path.empty() && !classlabel.empty()) {
images.push_back(imread(path, 0));
labels.push_back(atoi(classlabel.c_str()));
}
Ptr<FaceRecognizer> model = createEigenFaceRecognizer();
model->train(images, labels);
model.addref(); //don't let it self-destroy here..
FaceRecognizer * pf = model.obj;
return (jlong) pf;
}
catch (...)
{
return 0;
}
}
mNativeRecognition = nativeTrain(getFilesDir().toString());
nativeDetect(mGray, faces, mNativeRecognition);
JNIEXPORT jint JNICALL Java_com_sample_facialRecognition_DetectionBasedTracker_nativeDetect
(JNIEnv * jenv, jclass, jlong thiz, jlong imageGray, jlong faces, jlong recog)
{
jint whoAreYou= 0;
try
{
vector<Rect> RectFaces;
((DetectionBasedTracker*)thiz)->process(*((Mat*)imageGray));
((DetectionBasedTracker*)thiz)->getObjects(RectFaces);
Ptr < FaceRecognizer > model = recog; //here is the problem
vector_Rect_to_Mat(RectFaces, *((Mat*)faces));
for (int i = 0; i < faces.size(); i++)
{
cv::Point pt1(faces[i].x + faces[i].width, faces[i].y + faces[i].height);
cv::Point pt2(faces[i].x, faces[i].y);
cv::Rect face_i = faces[i];
cv::Mat face = grayscaleFrame(face_i);
cv::Mat face_resized;
cv::resize(face, face_resized, cv::Size(100, 120), 1.0, 1.0, INTER_CUBIC);
whoAreYou = model->predict(face_resized);
}
}
catch (...)
{
//catch...
}
return whoAreYou;
}
最佳答案
编辑:正如在berak的评论中,最好使用原始指针版本,否则您将需要使用addref
保存对象。
如果仍然更喜欢cv::Ptr
版本,而不是Ptr < FaceRecognizer > model = recog;
,我们应该给出
Ptr < FaceRecognizer > model( (FaceRecognizer *)recog );
model->addref();
std::shared_ptr
,
std::unique_ptr
或不建议使用的
std::auto_ptr
)将不支持从原始指针到智能指针的分配。在此处查看旧的
cv::Ptr
实现(
1)。他们还添加了一个
explicit
关键字(
2),以防止从原始指针到智能指针的意外转换。
Ptr
类中,
obj
成员是private(
3),并且
addref
方法已删除。因此,这不适用于3.0。还好奇为什么所有这些调用都通过JNI进行。没有Java包装器?
关于android - 如何从适用于Android的OpenCV中的指针创建FaceRecognizer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28290270/
谁能帮我解决我的问题?我似乎无法从互联网上得到任何答案。我一直在寻找一整天。所以这是我的问题。我正在使用 opencv4android 2.4.10 和 Android Studio 作为我的 IDE
我使用的是支持人脸识别的2.4.7版本的opencv。但是我收到以下错误: /home/fereres/recognition-build-desktop- Qt_4_8_1_in_PATH__Sy
我正在按照此处的示例进行操作: http://docs.opencv.org/2.4/modules/contrib/doc/facerec/tutorial/facerec_save_load.ht
我正在使用 OpenCV 进行人脸识别,并且有一个新手问题。这是我的代码的一部分: recognizer = cv2.createLBPHFaceRecognizer() ... nbr_predic
这里我说我试过很多tutorials在OpenCV 3.2中使用人脸模块中的FaceRecognizer类实现人脸识别。但是我并没有如愿得到被接受的结果。 在这里我想问,我想知道,在训练和识别的过程中
我一直在尝试运行一个django应用程序(人脸识别考勤系统)。 我将 python 与 opencv3.2 一起使用,并在安装了 opencv-python 和 opencv-contrib-pyth
我正在使用 cv::FaceRecognizer(EigenFaceRecognizer) 来识别我的脸。 我输入了 10 张我的脸图像(只拍了我的脸,没有背景,尺寸为 70x70,格式为 pgm)来
早上好! 我正在使用 java 进行人脸识别项目,但在 FaceRecognizer 类上遇到此错误: Exception in thread "main" java.lang.Unsatisfied
我正在使用 OpenCV 和 C++ 处理一些图像矩阵的 LBP 直方图,我需要计算这些矩阵的 LBP(1,8) 和 LBP(2,16)。最新版本的 OpenCV 直接支持使用默认的 LBP(1,8)
我正在学习OpenCV 2.4.2中的FaceRecognizer功能,并编写了一些代码进行测试。但是我收到此代码错误: int num_components = 10; double thresho
@interface FJFaceRecognizer () { Ptr _faceClassifier; } @property (nonatomic, strong) NSMutableD
我正在尝试在 java 中实现人脸识别器。我得到了 this代码示例并进行了更改以满足我对系统行为方式的要求。它可以工作,但是当我在不同的光强度下拍摄同一个人的图像时,它的效率就会下降。我读到在 op
我正在使用 opencv-3.0 来实现 opencv facial recognition demo来自 opencv 文档。 我相信这个演示是使用 opencv-2.4 编写的。但是,我已将 co
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 7 年前。 Improve this qu
我正在尝试在 Opencv4Android 2.4.9 中使用 facerecognizer.java 类 我已经在其构造函数中创建了从 FaceRecognizer 类继承的 Recognizer
在 Linux (Ubuntu) 中编译时,无法解析 Open Cv 3.0.0 FaceRecognizer 类。这曾经在 2.4.11 版本中工作,并且该类存在于 contrib 模块中。看起来
所以我有一个项目来创建一个人脸识别应用程序。在这个项目中我尝试导入: import com.googlecode.javacv.cpp.opencv_contrib.FaceRecognizer; i
我得到了一个基于人脸识别的项目,该项目是用 JavaCV 编写的,需要改进。当时的想法是要么使用 C++ 重写程序,要么编写 JNI 绑定(bind)以仍然使用 Java。我做了一些研究,根据 2.4
我已经使用 javacv LBPH 类在 Java 中实现了人脸识别,但我遇到了 FaceRecognizer.LBPH 不支持更新功能的问题。这是错误: “OpenCV错误:功能/特征未实现(此Fa
我是一名优秀的程序员,十分优秀!