cascade.detectMultiScale(smallImg,faces,1.1,2,0|CV_HAAR_SCALE_IMAGE,cv::Size(30,30));
运行的时候报错mainwindow.cpp:82:error:useofundeclaredidentifier'CV_HAAR_SCALE_IMAGE'mainwind...
运行的时候报错mainwindow.cpp:82: error: use of undeclared identifier 'CV_HAAR_SCALE_IMAGE'mainwindow.cpp:82: error: 'CV_HAAR_SCALE_IMAGE' was not declared in this scope 环境 QT5.12.4 opencv4.0.1
展开
展开全部
在OpenCV 4中,`CV_HAAR_SCALE_IMAGE`被替换为`cv::CASCADE_SCALE_IMAGE`,因此您需要将代码中的`CV_HAAR_SCALE_IMAGE`替换为`cv::CASCADE_SCALE_IMAGE`。另外,在使用`cv::CascadeClassifier`类进行人脸检测时,需要确保已经正确加载了级联分类器,并且输入图像的颜色空间是灰度图像。
下面是一个示例代码片段,展示了如何使用OpenCV 4中的`cv::CascadeClassifier`类进行人脸检测:
```c++
#include <opencv2/opencv.hpp>
int main()
{
cv::CascadeClassifier face_cascade;
if (!face_cascade.load("haarcascade_frontalface_default.xml")) {
std::cerr << "Error loading face cascade\n";
return -1;
}
cv::Mat frame = cv::imread("test.jpg");
if (frame.empty()) {
std::cerr << "Error loading image\n";
return -1;
}
cv::Mat gray;
cv::cvtColor(frame, gray, cv::COLOR_BGR2GRAY);
std::vector<cv::Rect> faces;
face_cascade.detectMultiScale(gray, faces, 1.1, 2, 0 | cv::CASCADE_SCALE_IMAGE, cv::Size(30, 30));
for (size_t i = 0; i < faces.size(); i++) {
cv::rectangle(frame, faces[i], cv::Scalar(0, 0, 255), 2);
}
cv::imshow("Faces", frame);
cv::waitKey(0);
return 0;
}
```
在这个示例中,我们首先加载了级联分类器(`haarcascade_frontalface_default.xml`),然后读入一张测试图像。接着,将输入图像转换为灰度图像,并使用`detectMultiScale`函数对其进行人脸检测。最后,在检测到的人脸周围绘制矩形框,并显示结果图像。
下面是一个示例代码片段,展示了如何使用OpenCV 4中的`cv::CascadeClassifier`类进行人脸检测:
```c++
#include <opencv2/opencv.hpp>
int main()
{
cv::CascadeClassifier face_cascade;
if (!face_cascade.load("haarcascade_frontalface_default.xml")) {
std::cerr << "Error loading face cascade\n";
return -1;
}
cv::Mat frame = cv::imread("test.jpg");
if (frame.empty()) {
std::cerr << "Error loading image\n";
return -1;
}
cv::Mat gray;
cv::cvtColor(frame, gray, cv::COLOR_BGR2GRAY);
std::vector<cv::Rect> faces;
face_cascade.detectMultiScale(gray, faces, 1.1, 2, 0 | cv::CASCADE_SCALE_IMAGE, cv::Size(30, 30));
for (size_t i = 0; i < faces.size(); i++) {
cv::rectangle(frame, faces[i], cv::Scalar(0, 0, 255), 2);
}
cv::imshow("Faces", frame);
cv::waitKey(0);
return 0;
}
```
在这个示例中,我们首先加载了级联分类器(`haarcascade_frontalface_default.xml`),然后读入一张测试图像。接着,将输入图像转换为灰度图像,并使用`detectMultiScale`函数对其进行人脸检测。最后,在检测到的人脸周围绘制矩形框,并显示结果图像。
2022-02-28 · 百度认证:云南新华电脑职业培训学校官方账号
云南新华电脑学校
云南新华电脑学校是经云南省教育厅批准成立的省(部)级重点计算机专业学校,采用三元化管理模式,教学设备先进,师资雄厚学生毕业即就业,学院引进了电商企业入驻,创建心为电商创业园区,实现在校即创业
向TA提问
关注
展开全部
第一个报错:目前版本的opencv已经没有CV_HAAR_SCALE_IMAGE,换成CASCADE_SCALE_IMAGE即可
第二个报错是因为第一个报错而引发的
所以,只需把CV_HAAR_SCALE_IMAGE换成CASCADE_SCALE_IMAGE即可
第二个报错是因为第一个报错而引发的
所以,只需把CV_HAAR_SCALE_IMAGE换成CASCADE_SCALE_IMAGE即可
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一个报错:目前版本的opencv已经没有CV_HAAR_SCALE_IMAGE,换成CASCADE_SCALE_IMAGE即可
第二个报错是因为第一个报错而引发的
所以,只需把CV_HAAR_SCALE_IMAGE换成CASCADE_SCALE_IMAGE即可
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
CV_HAAR_SCALE_IMAGE 没有定义
换成 CASCADE_SCALE_IMAGE
-------------
目前版本的opencv已经没有CV_HAAR_SCALE_IMAGE
换成 CASCADE_SCALE_IMAGE
-------------
目前版本的opencv已经没有CV_HAAR_SCALE_IMAGE
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询