<tfoot id='CN0dS'></tfoot>
    • <bdo id='CN0dS'></bdo><ul id='CN0dS'></ul>
    <legend id='CN0dS'><style id='CN0dS'><dir id='CN0dS'><q id='CN0dS'></q></dir></style></legend>
    <i id='CN0dS'><tr id='CN0dS'><dt id='CN0dS'><q id='CN0dS'><span id='CN0dS'><b id='CN0dS'><form id='CN0dS'><ins id='CN0dS'></ins><ul id='CN0dS'></ul><sub id='CN0dS'></sub></form><legend id='CN0dS'></legend><bdo id='CN0dS'><pre id='CN0dS'><center id='CN0dS'></center></pre></bdo></b><th id='CN0dS'></th></span></q></dt></tr></i><div id='CN0dS'><tfoot id='CN0dS'></tfoot><dl id='CN0dS'><fieldset id='CN0dS'></fieldset></dl></div>

    <small id='CN0dS'></small><noframes id='CN0dS'>

        Python基于OpenCV实现人脸检测并保存

        时间:2023-12-17
        • <bdo id='eGOYw'></bdo><ul id='eGOYw'></ul>

          <i id='eGOYw'><tr id='eGOYw'><dt id='eGOYw'><q id='eGOYw'><span id='eGOYw'><b id='eGOYw'><form id='eGOYw'><ins id='eGOYw'></ins><ul id='eGOYw'></ul><sub id='eGOYw'></sub></form><legend id='eGOYw'></legend><bdo id='eGOYw'><pre id='eGOYw'><center id='eGOYw'></center></pre></bdo></b><th id='eGOYw'></th></span></q></dt></tr></i><div id='eGOYw'><tfoot id='eGOYw'></tfoot><dl id='eGOYw'><fieldset id='eGOYw'></fieldset></dl></div>
            <tbody id='eGOYw'></tbody>

              <tfoot id='eGOYw'></tfoot>

              <small id='eGOYw'></small><noframes id='eGOYw'>

                1. <legend id='eGOYw'><style id='eGOYw'><dir id='eGOYw'><q id='eGOYw'></q></dir></style></legend>

                  首先,我们需要安装Python和OpenCV库。前者可以在官网下载安装程序,后者可以使用pip命令进行安装,在命令行中运行以下命令即可:

                  pip install opencv-python
                  

                  接下来的步骤,我们将分为以下三个部分进行:

                  1. 读取图像并进行人脸检测

                  我们将使用OpenCV中的CascadeClassifier类来检测人脸。在此之前,我们需要下载人脸检测器的分类器文件(.xml)并将其放置在项目目录中。

                  import cv2
                  
                  # 加载人脸检测器分类器文件
                  face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
                  
                  # 读取图像
                  img = cv2.imread('image.jpg')
                  
                  # 转换为灰度图像
                  gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
                  
                  # 进行人脸检测
                  faces = face_cascade.detectMultiScale(gray, 1.3, 5)
                  
                  # 在图像上标记出人脸
                  for (x,y,w,h) in faces:
                      cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
                  
                  # 显示图像
                  cv2.imshow('img',img)
                  cv2.waitKey(0)
                  cv2.destroyAllWindows() 
                  

                  在上述代码中,我们首先加载了人脸检测器分类器文件,并读取了一张图像。然后,我们将图像转换为灰度图像,这是因为人脸检测器通常需要处理灰度图像来提高检测率。接下来,我们使用CascadeClassifier类的detectMultiScale()方法检测人脸,并将检测结果保存在一个元组中。最后,我们在原图像上使用rectangle()方法标记出检测到的人脸,并将其显示出来。

                  2. 成功检测人脸后对图像进行操作

                  在检测到人脸后,我们可以根据具体需求对图像进行操作。例如,我们可以在人脸周围添加一个矩形框,并将处理后的图像保存到本地。

                  import cv2
                  
                  # 加载人脸检测器分类器文件
                  face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
                  
                  # 读取图像
                  img = cv2.imread('image.jpg')
                  
                  # 转换为灰度图像
                  gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
                  
                  # 进行人脸检测
                  faces = face_cascade.detectMultiScale(gray, 1.3, 5)
                  
                  # 在图像上标记出人脸
                  for (x,y,w,h) in faces:
                      cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
                  
                  # 保存处理后的图像
                  cv2.imwrite('result.jpg', img)
                  

                  在以上代码中,我们将原图像中检测到的人脸周围添加了一个蓝色矩形框,并将处理后的图像保存到了本地。

                  3. 检测并保存视频中的人脸

                  在检测和处理图像的基础上,我们还可以将其应用于视频中。下面的代码可以读取视频文件,检测并保存其中的人脸。

                  import cv2
                  
                  # 加载人脸检测器分类器文件
                  face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
                  
                  # 打开摄像头或者读取视频文件
                  cap = cv2.VideoCapture(0)
                  
                  # 定义视频编码器及输出文件名称
                  fourcc = cv2.VideoWriter_fourcc('M', 'J', 'P', 'G')
                  out = cv2.VideoWriter('output.avi', fourcc, 10.0, (640,480))
                  
                  while True:
                      # 读取一帧图像
                      ret, frame = cap.read()
                  
                      # 转换为灰度图像
                      gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
                  
                      # 进行人脸检测
                      faces = face_cascade.detectMultiScale(gray, 1.3, 5)
                  
                      # 在图像上标记出人脸
                      for (x,y,w,h) in faces:
                          cv2.rectangle(frame,(x,y),(x+w,y+h),(255,0,0),2)
                  
                      # 显示图像
                      cv2.imshow('frame',frame)
                  
                      # 将处理后的图像保存到视频文件中
                      out.write(frame)
                  
                      # 按下q键退出循环
                      if cv2.waitKey(1) & 0xFF == ord('q'):
                          break
                  
                  # 释放资源
                  cap.release()
                  out.release()
                  cv2.destroyAllWindows()
                  

                  注意,在以上代码中,我们使用了VideoWriter类来将处理后的图像保存为视频文件。运行程序时,按下q键可以退出循环。

                  上一篇:详解Python多线程Selenium跨浏览器测试 下一篇:Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例

                  相关文章

                2. <legend id='be2On'><style id='be2On'><dir id='be2On'><q id='be2On'></q></dir></style></legend>

                  <small id='be2On'></small><noframes id='be2On'>

                3. <i id='be2On'><tr id='be2On'><dt id='be2On'><q id='be2On'><span id='be2On'><b id='be2On'><form id='be2On'><ins id='be2On'></ins><ul id='be2On'></ul><sub id='be2On'></sub></form><legend id='be2On'></legend><bdo id='be2On'><pre id='be2On'><center id='be2On'></center></pre></bdo></b><th id='be2On'></th></span></q></dt></tr></i><div id='be2On'><tfoot id='be2On'></tfoot><dl id='be2On'><fieldset id='be2On'></fieldset></dl></div>

                    • <bdo id='be2On'></bdo><ul id='be2On'></ul>
                  1. <tfoot id='be2On'></tfoot>