一、Ubuntu系统下C++实现人脸检测
1、以管理员身份进入root
sudo su
2、下载pkg-config命令
apt install pkg-config
3、帮助管理库版本和编译标志的工具
pkg -config
4、打开test.cpp,如果没有这个文件就会新建一个空文件夹
vim test.cpp
5、执行这条命令
g++ -std=c++11 -o a.out test.cpp `pkg-config --libs --cflags opencv4`
6、执行代码样例以进行演示
#include <opencv2/opencv.hpp>
#include <opencv2/objdetect.hpp>
int main() {
// 加载预训练的Haar级联分类器
cv::CascadeClassifier faceCascade;
if (!faceCascade.load("/usr/local/share/opencv4/haarcascades/haarcascade_frontalface_default.xml")) {
return -1;
}
// 捕获摄像头视频
cv::VideoCapture cap(0);
if (!cap.isOpened()) {
return -1;
}
cv::Mat frame;
while (true) {
cap >> frame; // 从摄像头读取新的帧
if (frame.empty()) {
break;
}
std::vector<cv::Rect> faces;
// 检测人脸
faceCascade.detectMultiScale(frame, faces);
for (size_t i = 0; i < faces.size(); i++) {
// 绘制矩形框
cv::Rect r = faces[i];
cv::rectangle(frame, cv::Point(r.x, r.y), cv::Point(r.x + r.width, r.y + r.height), cv::Scalar(255, 0, 0), 2);
}
// 显示结果
cv::imshow("Face Detection", frame);
if (cv::waitKey(1) >= 0) break;
}
return 0;
}
二、Ubuntu系统下C++实现人脸检测
1、首先查看有没有python3
pip show python3
2、如果没有就执行下面这条命令下载
sudo apt install python3-opencv
3、创建py代码,例如vim1.py,如果没有1.py就会自动下载一个py文件
vim 1.py
4、执行代码样进行演示
import cv2
# 初始化摄像头
cap = cv2.VideoCapture(0) # 0 通常是默认摄像头的标识
# 检查摄像头是否成功打开
if not cap.isOpened():
print("无法打开摄像头")
exit()
while True:
# 读取摄像头的帧
ret, frame = cap.read()
# 如果正确读取帧,ret为True
if not ret:
print("无法接收帧,请退出")
break
# 显示帧
cv2.imshow('Camera', frame)
# 按 'q' 退出循环
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放摄像头资源
cap.release()
# 关闭所有OpenCV窗口
cv2.destroyAllWindows()
5、写入代码
(1)先按i
(2)然后按shift+esc退出编辑
(3)在按shift+:输入wq