当前位置: 首页 > news >正文

苏州在线网站制作两学一做网站是多少钱

苏州在线网站制作,两学一做网站是多少钱,建设环保网站查询系统,wordpress系统速度慢简介 本文用Python、Dlib 和 OpenCV 库来检测图像中的人脸,并在人脸上绘制矩形框进行窗口显示。 环境准备 在开始之前,请确保您的计算机上已安装 Python。此外,您还需要安装以下库: dlib:一个包含多种机器学习算法…

简介

本文用Python、Dlib 和 OpenCV 库来检测图像中的人脸,并在人脸上绘制矩形框进行窗口显示。

环境准备

在开始之前,请确保您的计算机上已安装 Python。此外,您还需要安装以下库:

  • dlib:一个包含多种机器学习算法的库,包括人脸检测。
  • opencv-python(即 OpenCV):一个强大的计算机视觉库,用于图像处理和视频分析。
  • numpy:一个用于科学计算的库,用于处理多维数组和矩阵。

您可以使用 pip 来安装这些库:

pip install dlib opencv-python numpy

另外,dlib的安装可能出现问题,可以参考该文:https://blog.csdn.net/qq_43466323/article/details/120855699

代码解析

import dlib
import cv2
import numpy as np
from pathlib import Path
from time import time# 加载dlib人脸检测器
detector = dlib.get_frontal_face_detector()def read_image(file, flags=1):"""读取图像,特别适合文件路径出现中文的情况"""return cv2.imdecode(np.fromfile(file, np.uint8), flags)def scale_image(img, max_width=1920, max_height=1080):"""比例缩放图片"""# 获取原始图片的尺寸height, width = img.shape[:2]# 只有图片宽度或高度超出指定范围,才缩放图片if width > max_width or height > max_height:# 计算缩放比例ratio = min(max_width / width, max_height / height)else:ratio = 1# 缩放图片return cv2.resize(img, None, fx=ratio, fy=ratio)def detect_image(img):"""人脸检测并绘制人脸矩形框  """# 只对BGR图转化灰度图gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 检测人脸faces = detector(gray)# 绘制人脸矩形框for face in faces:x, y, w, h = face.left(), face.top(), face.width(), face.height()cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)return imgdef run(file):"""将绘制人脸矩形框的图片进行显示"""start_time = time()# 人脸检测img = detect_image(scale_image(read_image(file)))# 计算人脸检测耗时并作为窗口标题显示win_name = f'duration:{time() - start_time:.2f}'cv2.imshow(win_name, img)key = cv2.waitKey()cv2.destroyAllWindows()return keydef run_many(dir_path):"""依次检测指定目录的图片并显示"""print('温馨提示:按q键退出,其他按键切换图片')for file in Path(dir_path).iterdir():# 按q键退出if ord('q') == run(file):break

导入库

import dlib
import cv2
import numpy as np
from pathlib import Path
from time import time

这段代码导入了我们所需的所有外部库。

初始化人脸检测器

detector = dlib.get_frontal_face_detector()

这行代码初始化了 Dlib 的人脸检测器,用于后续的人脸检测操作。

读取图像函数

def read_image(file, flags=1):return cv2.imdecode(np.fromfile(file, np.uint8), flags)

这个函数用于读取图像文件,特别适合处理包含中文路径的文件。

缩放图像函数

def scale_image(img, max_width=1920, max_height=1080):height, width = img.shape[:2]if width > max_width or height > max_height:ratio = min(max_width / width, max_height / height)else:ratio = 1return cv2.resize(img, None, fx=ratio, fy=ratio)

这个函数用于按比例缩放图像,以确保图像的宽度和高度不会超过指定的最大值。

人脸检测函数

def detect_image(img):gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)faces = detector(gray)for face in faces:x, y, w, h = face.left(), face.top(), face.width(), face.height()cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)return img

这个函数将图像转换为灰度图,然后使用 Dlib 的检测器来检测人脸,并在每个检测到的人脸周围绘制一个绿色的矩形框。

运行检测函数(主函数)

def run(file):start_time = time()img = detect_image(scale_image(read_image(file)))win_name = f'duration:{time() - start_time:.2f}'cv2.imshow(win_name, img)key = cv2.waitKey()cv2.destroyAllWindows()return key

这个函数读取一个图像文件,对其进行缩放和人脸检测,然后显示结果。

批量检测函数(主函数)

def run_many(dir_path):print('温馨提示:按q键退出,其他按键切换图片')for file in Path(dir_path).iterdir():if ord('q') == run(file):break

这个函数遍历指定目录下的所有图像文件,并使用 run 函数对每个文件进行人脸检测和显示。

http://www.yayakq.cn/news/866416/

相关文章:

  • 网站后台管理系统地址长春网络推广优化
  • 网站开发 网页设计注册公司需要什么资料和流程
  • 贵阳建设银行网站wordpress wpenqueuescripts
  • 腾讯云如何建设网站潍坊seo推广
  • 如何做网站店铺哈尔滨做网站优化
  • 网站功能设计有哪些要求wordpress插件 缩略图
  • 厦门本地企业网站建设成都防疫最新动态
  • 网站换模板对seo扬州网络推广哪家好
  • 网站文风深圳专业做网站的公司哪家好
  • 集团网站怎么建设购物网站建设需要注意什么
  • 网站框架建设汕头哪里做网站
  • 唐山的网站建设做网站基础源代码
  • 中国网站建设网京东网站建设的意义
  • 南宁网站定制团队郑州金水区网站建设
  • 农业技术推广网站做网站的意义是什么
  • 手机建站系统建设外贸网站
  • 施工方案下载免费网站上海网站建设费用多少钱
  • 上海网站建设觉策动力怎么选择网站建设公司
  • 需要做网站的企业电话信息流广告代运营
  • 怎么用自己电脑当服务器建设网站meetsh网站建设
  • 软件推广公司包括搜索引擎排名、网页标签优化、相关链接交换、网络广告投放等
  • 商城网站都有什么功能吗百度提交收录
  • 郑州 科技有限公司 网站建设想建设一个网站自己接一些小活
  • 门户网站建设和检务公开整改来个网站好人有好报2024
  • 中文门户网站有哪些长沙网站设计优秀柚v米科技
  • 手机app开发软件有哪些seo建站优化推广
  • 网站开发业务怎么开展企业管理专业主要课程
  • 网站的设计制作流程网站子页怎么做 视频
  • 建立网站的正确方法临沂天元建设集团网站
  • 网络营销定价的特点沧州网站改版优化