qt opencv其他函数能用LBPHFaceRecognizer无法使用,qt报错error: undefined reference to `cv::face::LBPHFaceRecognizer::create(int, int, int, int, double)'。
相关的头文件都有加
没有libopencv_face.dll文件与libopencv_face.a文件
ctrl+鼠标左键也能跳转到face.hpp中
.pro文件
face.hpp文件,因为opencv4.0版本没有face相关的,我通过百度别的这篇博客看的解决方法OpenCV没有face.hpp文件
后面我试着重新安装和配置跟着这篇文章来这里!到了mingw32-make -j 8这一步之后就只能到67%或者到70%,就不会编译了,前面每一步都一样就是不嫩那个编译到100%
参考GPT和自己的思路,看起来你的问题是使用Qt和OpenCV的过程中遇到了一个错误。具体来说,你尝试使用cv::face::LBPHFaceRecognizer::create函数创建一个人脸识别器,但是Qt报告了一个未定义引用错误。这通常是由于缺少库或头文件导致的。
要解决这个问题,你需要确保你的源文件中已经包含了LBPHFaceRecognizer的头文件。你可以在源文件的顶部添加#include <opencv2/face.hpp>来实现。
另外,你需要确保已将Qt项目链接到了OpenCV库。根据你的.pro文件,你已经添加了必要的库路径,但是如果你使用的是不同版本的OpenCV,或者库文件已经移动了位置,你可能需要修改库路径。
为了解决这个问题,你可以尝试在.pro文件中添加LIBS+=C:\opencv\opencv-build\bin\libopencv_face440.dll,假设你使用的是OpenCV 4.4.0版本。根据你的具体项目和环境,你可能还需要添加其他库路径或库文件。
完成这些修改后,尝试重新编译你的项目,看看错误是否消失了。如果还有问题,你可以把代码和错误消息文本给我,我帮你调试。
该回答引用GPTᴼᴾᴱᴺᴬᴵ
根据您提供的信息,我能看到您的Qt项目文件(.pro)中已经添加了OpenCV库,但是您仍然无法使用LBPHFaceRecognizer类并且出现了"undefined reference"错误。这通常是因为您没有在代码中正确地链接OpenCV库。
请确保您已经在Qt项目文件中添加了正确的OpenCV库链接:
LIBS += -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_imgcodecs -lopencv_face
如果您已经在项目文件中添加了上述代码,但仍然无法使用LBPHFaceRecognizer类,则可能是因为您没有包括头文件 "opencv2/face.hpp"。请在您的代码文件中添加以下语句:
#include <opencv2/face.hpp>
如果这些步骤不起作用,请确保您的OpenCV库已正确安装,并在Qt项目文件中设置了正确的OpenCV库路径。
cv::face::LBPHFaceRecognizer::create(int, int, int, int, double)检查调用的参数
其他的opencv的函数都能用就LBPHFaceRecognizer和FisherFaceRecognizer不能用
参考GPT和自己的思路:从错误消息可以看出,Qt无法找到链接到cv::face::LBPHFaceRecognizer::create()函数的定义。这表明在编译您的代码时,Qt无法找到实现该函数的库。
为了解决此问题,您需要确保将opencv_face库链接到您的Qt项目中。在Qt项目的.pro文件中添加以下行:
LIBS += -lopencv_face
这将链接到opencv_face库并使其可用于您的项目。同时,确保您的OpenCV版本支持LBPHFaceRecognizer,因为在某些版本中可能不存在该函数。
以下答案由GPT-3.5大模型与博主波罗歌共同编写:
这个错误提示说明 LBPHFaceRecognizer.create() 函数未被链接,通常意味着所需的库文件未包含在项目文件中。在Qt中,需要在 .pro 文件中添加链接库。在此处,你需要在你的 .
如果我的回答解决了您的问题,请采纳!