“从零开始:在 Ubuntu 上使用 C++ 和 Python 构建 OpenCV 人脸检测程序”

一、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

  • 11
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值