OpenCV人脸识别

OpenCV

apt安装

下载依赖

sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff5.dev libswscale-dev libjasper-dev  

出现错误 “无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系

原因 :

系统中已经安装了被依赖的包的高版本。

高级安装:

解决方法:

使用aptitude进行安装,aptitude 会对依赖关系进行智能处理

sudo apt-get install aptitude
sudo aptitude install <package name>

安装:

sudo apt-get install libopencv-dev

若镜像源没改可能会报错,自行修改

更新

sudo apt-get update
sudo apt-get upgrade
查看版本
dpkg -s libopencv-dev
查看opencv安装库
pkg-config opencv4 --libs
查看opencv安装版本:
pkg-config opencv4 --modversion
opencv安装路径:
sudo find / -iname "*opencv4*"

编译

g++ v.cpp -o v -lopencv_core -lopencv_highgui -lopencv_videoio

opencv头文件的路径中多了一个opencv4

fatal error: opencv2/opencv.hpp: No such file or directory
#include <opencv2/opencv.hpp>

解决方案

这是因为opencv头文件的路径中多了一个opencv4的文件夹:

/usr/include/opencv4/opencv2

可以将opencv2拷贝到自己的include文件夹
可以将opencv2文件夹链接到include文件夹下

sudo ln -s /usr/include/opencv4/opencv2 /usr/include/

安装之后的文件

头文件

(apt /usr/include/opencv4/opencv2)

在这里插入图片描述

动态库

(apt /usr/lib/x86_64-linux-gnu/)
在这里插入图片描述

训练模型

(apt /usr/share/opencv4)

在这里插入图片描述

source下载

安装 OpenCV 4.6.0 的步骤如下:

  1. 安装依赖项:首先,确保你的系统安装了必要的依赖项。运行以下命令以安装常见依赖项:

    sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
    
  2. 创建构建目录:打开终端,并在你解压 OpenCV 源代码的目录中创建一个新的构建目录。进入该目录:

    cd opencv-4.6.0
    mkdir build
    cd build
    
  3. 配置构建:运行 CMake 命令来配置构建过程。以下是一个示例命令:

    cmake ..
    

    你可以根据需要添加其他选项来配置构建过程。例如,如果你使用 Python,可以添加 -D BUILD_PYTHON_SUPPORT=ON 选项启用 Python 支持。

  4. 编译和安装:运行以下命令来编译和安装 OpenCV:

    make -j$(nproc)
    sudo make install
    

    这将使用多个线程进行编译,并在完成后将 OpenCV 安装到系统中。

  5. 配置动态链接库:为了让系统能够找到并加载 OpenCV 库,你需要配置动态链接库。打开终端,编辑 /etc/ld.so.conf.d/opencv.conf 文件:

    sudo nano /etc/ld.so.conf.d/opencv.conf
    

    将以下内容添加到文件中:

    /usr/local/lib
    

    保存文件并退出编辑器。然后运行以下命令更新链接库配置:

    sudo ldconfig
    

人脸识别

#include <iostream>
#include <opencv2/opencv.hpp>

#include <opencv2/core.hpp>
#include <opencv2/videoio.hpp>
#include <opencv2/highgui.hpp>

#include <opencv2/imgproc.hpp>
#include <opencv2/objdetect.hpp>

#include <stdio.h>

using namespace std;
using namespace cv;

int main(int argc, char const *argv[])
{
    VideoCapture cap(0);
    if (!cap.isOpened())
    {
        cout << "ERROR! Unable to open camera" << endl;
        return 0;
    }

    cout << "Camera open sucessful" << endl;
    // 集联分类器        (实例化)
    CascadeClassifier Classifier("/usr/share/opencv4/haarcascades/haarcascade_frontalface_alt2.xml");

    // 用容器存放一张图片
    Mat ColorImage; // Mat容器种类   frame实例
    Mat GrayImage;
    vector<Rect> AllFace;
    Mat MatFace;
    vector<uchar> JpgFace;
    for (;;)
    {
        cap >> ColorImage;                               // cap 拍摄一张照片放到Colorimage这个容器里面
        cvtColor(ColorImage, GrayImage, COLOR_BGR2GRAY); // 转换为灰度图,存放到GrayImage容器里
        equalizeHist(GrayImage, GrayImage);              // 均衡化

        Classifier.detectMultiScale(GrayImage, AllFace); // 人脸检测
        if (AllFace.size())
        {                                                          // 检测是否有人脸
            rectangle(GrayImage, AllFace[0], Scalar(255, 255, 0)); // 把容器AllFace中的矩形框画在图像上  (Scalar (蓝绿红))
            MatFace = GrayImage(AllFace[0]);                       // 截取图像中人脸部分
            imencode(".jpg", MatFace, JpgFace);
        }

        imshow("video", GrayImage);
        waitKey(42); // 阻塞(单位毫秒)
    }
    return 0;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值