【代码】读取图像,计算面宽比,并保存至表格

简介: 【代码】读取图像,计算面宽比,并保存至表格

计算面宽比

此处计算(第一个点和第17个点之间的距离)/(第28个点和第52个点之间的距离)


import cv2
import dlib
import math
import numpy as np  # 导入numpy库



#读取图片
img = cv2.imread("C:/Users/Lenovo/Desktop/c.jpg")
print(img.shape)

#图像转化为灰度图

gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
#获得脸部位置检测器(加载人脸检测模块)
detector = dlib.get_frontal_face_detector()

#使用detector进行人脸检测 dets为返回的结果
faces = detector(gray_img, 1)

#用dlib库加载预测模型
predictor=dlib.shape_predictor("shape_predictor_68_face_landmarks.dat")

for k, d in enumerate(faces):
    shape = predictor(gray_img, d)

    # 计算第一个点和第17个点之间的距离
    point_1 = shape.part(0)   # 第一个特征点
    point_17 = shape.part(16) # 第17个特征点
    distance_1 = math.sqrt((point_1.x - point_17.x)**2 + (point_1.y - point_17.y)**2)

    # 计算第28个点和第52个点之间的距离
    point_28 = shape.part(27) # 第28个特征点
    point_52 = shape.part(51) # 第52个特征点
    distance_2 = math.sqrt((point_28.x - point_52.x)**2 + (point_28.y - point_52.y)**2)

    # 计算面部比例
    facial_ratio = distance_1 / distance_2

    print("面部比例是:", facial_ratio)

读取某一文件夹下的图片并计算面宽比,并保存至表格

将代码放到图片同级路径,注意更改图片路径和表格存放路径

imimport cv2
import dlib
import math
import numpy as np  # 导入numpy库

import os
from PIL import Image
import pandas as pd

folder_path = r"F:\face_code\pics"
filename_list = []
for filename in os.listdir(folder_path):
    filepath = os.path.join(folder_path, filename)

    # 检查文件类型是不是图片
    if os.path.isfile(filepath) and filepath.endswith(('.bmp','.jpg')):
        # 打开图片并处理
        with Image.open(filepath) as img:
            # TODO: 在这里进行你的图片处理操作
            # 示例代码:输出图片信息
            print(filename, "- Size:", img.size, "- Format:", img.format)
            filename_list.append(filename)
facial_ratio_list = []
for filename in filename_list:
    #读取图片
    print(filename)
    img = cv2.imread(filename)
    print(img.shape)

    #图像转化为灰度图

    gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    #获得脸部位置检测器(加载人脸检测模块)
    detector = dlib.get_frontal_face_detector()

    #使用detector进行人脸检测 dets为返回的结果
    faces = detector(gray_img, 1)

    #用dlib库加载预测模型
    predictor=dlib.shape_predictor("shape_predictor_68_face_landmarks.dat")

    for k, d in enumerate(faces):
        shape = predictor(gray_img, d)

        # 计算第一个点和第17个点之间的距离
        point_1 = shape.part(0)   # 第一个特征点
        point_17 = shape.part(16) # 第17个特征点
        distance_1 = math.sqrt((point_1.x - point_17.x)**2 + (point_1.y - point_17.y)**2)

        # 计算第28个点和第52个点之间的距离
        point_28 = shape.part(27) # 第28个特征点
        point_52 = shape.part(51) # 第52个特征点
        distance_2 = math.sqrt((point_28.x - point_52.x)**2 + (point_28.y - point_52.y)**2)

        # 计算面部比例
        facial_ratio = distance_1 / distance_2

        print("面部比例是:", facial_ratio)
        facial_ratio_list.append(facial_ratio)
print(filename_list)
print(facial_ratio_list)

# 创建数据
data = {
    '图片': filename_list,
    '面宽比': facial_ratio_list
}

# 将数据转换为DataFrame
df = pd.DataFrame(data)

# 将数据输出到Excel文件
filepath = 'F:/face_code/excel.xlsx'
df.to_excel(filepath, index=False)

安装dlib报错怎么办

pip install dlib==19.6.1
相关文章
|
7月前
|
机器学习/深度学习 存储 人工智能
Attention优化重大突破!显存减半效率倍增
本文探讨了Transformer中Attention机制的演变与优化。从2017年Transformer提出以来,各种改进如MQA、GQA、MLA等层出不穷,旨在降低计算复杂度和显存消耗,同时保持模型性能。文章首先介绍了Attention的基本原理,通过QKV矩阵运算实现序列建模。接着分析了优化方法:kv caching将计算复杂度从O(n^3)降至O(n^2),但带来显存压力;MQA、GQA等通过减少或压缩K/V降低显存需求;而NSV、MoBA等稀疏化研究进一步缓解长序列下的计算与存储负担,推动大模型向更长上下文扩展。
|
SQL Java 关系型数据库
理解 Java 持久化 API(JPA)
【8月更文挑战第21天】
304 1
|
机器学习/深度学习 PyTorch 算法框架/工具
深度学习实践篇 第五章:模型保存与加载
简要介绍pytorch中模型的保存与加载。
467 0
|
人工智能 Oracle 关系型数据库
一篇文章弄懂Oracle和PostgreSQL的Database Link
一篇文章弄懂Oracle和PostgreSQL的Database Link
|
弹性计算 关系型数据库 数据库
在阿里云上搭建高效Web服务的完整指南
构建高效、稳定的Web服务是每个开发者的必修课。本文将详细介绍如何基于阿里云的相关产品,搭建一个具有高可用性和强大性能的Web服务。我们将使用Elastic Compute Service(ECS)、Server Load Balancer(SLB)、Relational Database Service(RDS)、域名服务等阿里云产品,通过图文并茂的方式为你展示整个流程。
469 0
|
人工智能
【AI大模型应用开发】【LangChain系列】实战案例5:用LangChain实现灵活的Agents+RAG,该查时查,不该查时就别查
【AI大模型应用开发】【LangChain系列】实战案例5:用LangChain实现灵活的Agents+RAG,该查时查,不该查时就别查
881 0
|
存储 安全 网络安全
阿里云云计算高级工程师ACP认证(Alibaba Cloud Certified Professional - Cloud Computing)考试大纲
介绍阿里云云计算高级工程师ACP认证(Alibaba Cloud Certified Professional - Cloud Computing)所需具备的知识及学习方法等。
3085 1
|
机器学习/深度学习 人工智能 前端开发
从零开始:如何高效学习IT领域的技能与知识
无论你是想要入门IT领域,还是想要拓展你的技能,这些方法和案例都可以帮助你走上成功之路。记住,坚持不懈的努力和持续学习是取得成功的关键!
495 1
|
存储 算法 安全
SHA-1被攻破了吗? PostgreSQL SCRAM-SHA-256 安全认证机制解救你来了
标签 PostgreSQL , 认证方法 , SCRAM-SHA-256 , scram , scram-sha-256-plus , SASL , Simple Authentication and Security Layer 背景 PostgreSQL的很多设计非常的工业化,比如开放了许多扩展接口(类型、操作符、索引、扫描、采样、数据库编程语言等)。
7165 0
|
机器学习/深度学习 搜索推荐 Go
【推荐系统】浪潮之巅——深度学习推荐系列模型
【推荐系统】浪潮之巅——深度学习推荐系列模型
1369 0