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

植物提取网站做的比较好的厂家wordpress 置顶 评论

植物提取网站做的比较好的厂家,wordpress 置顶 评论,wordpress底部美化,创意设计赛道具体赛题是什么本文实现了一个简易的人脸交换程序,主要功能包括:1)检查所需的模型文件是否存在;2)使用预训练的Caffe模型检测图像中的人脸;3)将源图像的人脸区域通过泊松融合无缝地替换到目标图像上。程序通过OpenCV的DNN模块加载人脸检测模型&a…

本文实现了一个简易的人脸交换程序,主要功能包括:1)检查所需的模型文件是否存在;2)使用预训练的Caffe模型检测图像中的人脸;3)将源图像的人脸区域通过泊松融合无缝地替换到目标图像上。程序通过OpenCV的DNN模块加载人脸检测模型,处理图像后输出换脸结果。使用前需准备prototxt和caffemodel模型文件,并确保输入图像路径正确。最终结果显示三张图片(源图像标图像和换脸结果),并将结果保存为result.jpg文件。

import cv2

import numpy as np

import os

# 检查模型文件是否存在

def check_model_files():

    required_files = ["deploy.prototxt", "res10_300x300_ssd_iter_140000.caffemodel"]

    missing = []

    for file in required_files:

        if not os.path.exists(file):

            missing.append(file)

    return missing

# 人脸检测函数

def detect_faces(image):

    # 检查模型文件是否存在

    missing_files = check_model_files()

    if missing_files:

        print(f"错误:缺少必要的模型文件 {missing_files}")

        return []

   

    # 加载预训练的人脸检测模型

    net = cv2.dnn.readNetFromCaffe("deploy.prototxt", "res10_300x300_ssd_iter_140000.caffemodel")

    (h, w) = image.shape[:2]

   

    # 预处理图像

    blob = cv2.dnn.blobFromImage(cv2.resize(image, (300, 300)), 1.0, (300, 300), (104.0, 177.0, 123.0))

    net.setInput(blob)

   

    # 执行人脸检测

    detections = net.forward()

    faces = []

   

    # 处理检测结果

    for i in range(detections.shape[2]):

        confidence = detections[0, 0, i, 2]

        if confidence > 0.5:  # 置信度阈值

            box = detections[0, 0, i, 3:7] * np.array([w, h, w, h])

            faces.append(box.astype("int"))

   

    return faces

# 简易人脸交换

def simple_face_swap(source, target):

    # 检测源图像和目标图像中的人脸

    src_faces = detect_faces(source)

    dst_faces = detect_faces(target)

   

    if not src_faces or not dst_faces:

        print("未检测到人脸")

        return target

   

    # 获取第一张人脸

    x, y, x1, y1 = src_faces[0]

    src_face = source[y:y1, x:x1]

   

    x, y, x1, y1 = dst_faces[0]

    # 调整源人脸大小匹配目标位置

    resized_face = cv2.resize(src_face, (x1 - x, y1 - y))

   

    # 创建掩码

    mask = np.zeros(resized_face.shape[:2], dtype=np.uint8)

    cv2.circle(mask, (mask.shape[1]//2, mask.shape[0]//2), min(mask.shape)//2, 255, -1)

   

    # 泊松融合

    center = (x + (x1 - x)//2, y + (y1 - y)//2)

    result = cv2.seamlessClone(

        resized_face,

        target,

        mask,

        center,

        cv2.NORMAL_CLONE

    )

    return result

# 使用示例

if __name__ == "__main__":

    # 定义图片路径

    img_path_a = 'paddleOCR\\image\\r.jpg'

    img_path_b = 'paddleOCR\\image\\r1.jpg'

    # 尝试加载图片

    person_a = cv2.imread(img_path_a)

    person_b = cv2.imread(img_path_b)

   

    # 详细的错误检查

    if person_a is None:

        print(f"错误:无法加载图片 {img_path_a},请检查文件路径和文件是否存在")

    if person_b is None:

        print(f"错误:无法加载图片 {img_path_b},请检查文件路径和文件是否存在")

    if person_a is None or person_b is None:

        exit()

   

    # 执行换脸

    result = simple_face_swap(person_a, person_b)

   

    # 保存结果

    output_path = "result.jpg"

    cv2.imwrite(output_path, result)

    print(f"换脸完成,结果已保存为 {output_path}")

   

    # 显示结果

    cv2.imshow("Source", person_a)

    cv2.imshow("Target", person_b)

    cv2.imshow("Result", result)

    cv2.waitKey(0)

    cv2.destroyAllWindows()



 

http://www.dtcms.com/a/484940.html

相关文章:

  • 网站做视频网络推广外包一年多少钱
  • 手机网站设计方案线上销售技巧
  • 西安网站设计开发人才如何在国内做网站
  • 东莞望牛墩网站建设nuxt做多页面网站
  • 广西网站建设公司网站定制深圳
  • 淘宝推广怎么做杭州 seo网站建设 网络服务
  • 帮客户做网站图片被告侵权金华vi设计公司
  • 企业网站用什么建站最快学做美食的视频网站有哪些
  • 设置网站关键词北京网站建设那家好
  • 制作商务网站wordpress改logo不显示
  • 宁波网站seo上海哪个公司做网站好
  • 珠海网站制作推荐甘肃网站排名公司
  • 卖视频会员个人网站怎么做郑州广告公司网站建设
  • 手机可以做网站吗?用自己电脑做网站服务器
  • 网站建设服务网站建设dedecms 食品网站
  • 2018年网站开发语言排行企业工商公示信息查询系统
  • 旅游网站开发团队网站程序源码下载
  • 怎么做仲博注册网站百度网络营销的概念和含义
  • 网站空间怎么备份网站系统 建设和软件岗位职责
  • c#网站购物车怎么做哪个网站可以做纸箱
  • 看谁做的好舞蹈视频网站元凤建盏简介
  • 网站建设案例机构企业名录搜索软件靓号怎么搜
  • 网站建设需什么视频网站焦点图
  • 文汇智能建站平台今天宁波最新消息
  • 即墨做网站的网站开发双语
  • 从音乐网站下载歌曲做铃音要收费吗深圳市宝安区建设局网站
  • 网站 橙色网站建设方案模版
  • 网站建设公司网黄骅港潮汐表2022最新表
  • 别人做的网站不能用怎么办啊php网站建设视频教程
  • 南京网站建设雷仁网络贵阳市做网站的公司有哪些