如何使用 Java 的 openCV 中创建的 FaceRecognizer 库?

Posted

技术标签:

【中文标题】如何使用 Java 的 openCV 中创建的 FaceRecognizer 库?【英文标题】:How to use the FaceRecognizer library created in openCV from Java? 【发布时间】:2013-10-03 15:15:54 【问题描述】:

我正在尝试在 java 中实现人脸识别器。我得到了this 代码示例并进行了更改以符合我对系统行为方式的要求。它有效,但是当我在不同光强度下拍摄同一个人的图像时,它的效率会下降。我读到在 openCV 中插入了一个用于 faceRecognizer 的库,但是它的示例是用 C++ 实现的。有什么办法可以使用这个库在java中编码?如果我们可以使用它,它会提高代码的效率吗?

请为此提供一些帮助。坚持不下去了……

【问题讨论】:

FaceRecognizer 也适用于 Java:***.com/questions/11699744/… @SamuelAudet 感谢您回答我的部分问题……这有点帮助,但我的主要问题仍未得到解答。光强度不同的图片仍然给出低效的结果。如何让我的系统高效地处理不同的图片? 【参考方案1】:

您可以为 java 创建一个 C++ dll。您应该编写一个使用您的 C++ 代码的包装类(在 C++ 中)。包装类的函数定义应该使用 JNI。这个链接here 应该会有所帮助(它对我有用)。实现包装类后,将其导出为 dll。

【讨论】:

【参考方案2】:

只需使用 java cv 以便您可以使用 java 中的所有 c++ 函数。 下载所有 javacv jar 文件并尝试将 javacv 安装到您的系统中

看看如何在你的系统中设置 javacv。

【讨论】:

【参考方案3】:

我认为这应该在 java 中发挥作用

FaceRecognizer model=createFisherFaceRecognizer(); model.train(图像,标签);

用于预测 int id=model.predict(img);

【讨论】:

以上是关于如何使用 Java 的 openCV 中创建的 FaceRecognizer 库?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用inotify自动删除linux中创建的文件?

如何使用我们在 SD 卡中创建的密钥(兼容全球平台的智能卡)

为啥java代码中创建的Android Button()必须使用(this)作为上下文?

核心数据。如何使用在 NSManagedObject 子类中创建的方法

如何使用节点读取在 Firestore 中创建的最新文档?

如何下载在 Colaboratory 工作区中创建的文件?