C# CodeFormer Inpainting 人脸填充
效果





项目

代码
using Microsoft.ML.OnnxRuntime;
using Microsoft.ML.OnnxRuntime.Tensors;
using OpenCvSharp;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.Windows.Forms;namespace CodeFormer_Demo
{public partial class Form1 : Form{public Form1(){InitializeComponent();}string fileFilter = "*.*|*.bmp;*.jpg;*.jpeg;*.tiff;*.tiff;*.png";string image_path = "";string startupPath;DateTime dt1 = DateTime.Now;DateTime dt2 = DateTime.Now;int modelSize = 512;string model_path;Mat image;Mat result_image;SessionOptions options;InferenceSession onnx_session;Tensor<float> input_tensor;List<NamedOnnxValue> input_container;private void button1_Click(object sender, EventArgs e){OpenFileDialog ofd = new OpenFileDialog();ofd.Filter = fileFilter;if (ofd.ShowDialog() != DialogResult.OK) return;pictureBox1.Image = null;image_path = ofd.FileName;pictureBox1.Image = new Bitmap(image_path);textBox1.Text = "";image = new Mat(image_path);pictureBox2.Image = null;}private void button2_Click(object sender, EventArgs e){if (image_path == ""){return;}textBox1.Text = "";pictureBox2.Image = null;result_image = OnnxHelper.Run(image, modelSize, input_tensor, input_container, onnx_session, ref dt1, ref dt2);if (!result_image.Empty()){pictureBox2.Image = new Bitmap(result_image.ToMemoryStream());textBox1.Text = "推理耗时:" + (dt2 - dt1).TotalMilliseconds + "ms";}else{textBox1.Text = "无信息";}}private void Form1_Load(object sender, EventArgs e){startupPath = Application.StartupPath;model_path = startupPath + "\\model\\codeformer_inpainting.onnx";modelSize = 512;// 创建输出会话,用于输出模型读取信息options = new SessionOptions();options.LogSeverityLevel = OrtLoggingLevel.ORT_LOGGING_LEVEL_INFO;//设置为CPU上运行options.AppendExecutionProvider_CPU(0);// 创建推理模型类,读取本地模型文件onnx_session = new InferenceSession(model_path, options);// 输入Tensorinput_tensor = new DenseTensor<float>(new[] { 1, 3, modelSize, modelSize });// 创建输入容器input_container = new List<NamedOnnxValue>();}private void button3_Click(object sender, EventArgs e){if (pictureBox2.Image == null){return;}Bitmap output = new Bitmap(pictureBox2.Image);var sdf = new SaveFileDialog();sdf.Title = "保存";sdf.Filter = "Images (*.jpg)|*.jpg|Images (*.png)|*.png|Images (*.bmp)|*.bmp|Images (*.emf)|*.emf|Images (*.exif)|*.exif|Images (*.gif)|*.gif|Images (*.ico)|*.ico|Images (*.tiff)|*.tiff|Images (*.wmf)|*.wmf";if (sdf.ShowDialog() == DialogResult.OK){switch (sdf.FilterIndex){case 1:{output.Save(sdf.FileName, ImageFormat.Jpeg);break;}case 2:{output.Save(sdf.FileName, ImageFormat.Png);break;}case 3:{output.Save(sdf.FileName, ImageFormat.Bmp);break;}case 4:{output.Save(sdf.FileName, ImageFormat.Emf);break;}case 5:{output.Save(sdf.FileName, ImageFormat.Exif);break;}case 6:{output.Save(sdf.FileName, ImageFormat.Gif);break;}case 7:{output.Save(sdf.FileName, ImageFormat.Icon);break;}case 8:{output.Save(sdf.FileName, ImageFormat.Tiff);break;}case 9:{output.Save(sdf.FileName, ImageFormat.Wmf);break;}}MessageBox.Show("保存成功,位置:" + sdf.FileName);}}}
}
下载
可执行程序exe下载
源码下载
参考
GitHub - sczhou/CodeFormer: [NeurIPS 2022] Towards Robust Blind Face Restoration with Codebook Lookup Transformer
相关文章:
C# CodeFormer Inpainting 人脸填充
效果 项目 代码 using Microsoft.ML.OnnxRuntime; using Microsoft.ML.OnnxRuntime.Tensors; using OpenCvSharp; using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Imaging; using System.Windows.Forms;namespace CodeFormer_D…...
将Sketch文件转化为PSD文件的简单在线工具!
设计工作不仅需要UI设计工具,还需要Photoshop。常见的UI设计工具Sketch与Photoshop软件不兼容。如果你想在实际工作中完成Sketch转psd,你需要使用其他软件进行转换。但是在转换过程中容易丢失文件,导致同样的工作需要重复多次才能完成&#x…...
【广州华锐互动】利用AR进行野外地质调查学习,培养学生实践能力
在科技发展的驱动下,AR(增强现实)技术已经在许多领域中找到了应用,包括医疗、教育、建筑和娱乐等。然而,有一个领域尚未充分利用AR技术的潜力,那就是野外地质调查。通过将AR技术引入到这个传统上需要大量人…...
Jmeter快速入门
引言 对于初学者来说,可能会觉得jmeter有些难入手。不过,别担心!在我开始使用Jmeter之前,也曾面临着同样的问题。 但是,通过一番尝试和学习,我现在可以自如地运用Jmeter进行性能测试了。 接下来…...
详解js数组操作——filter()方法
引言 在JavaScript中,我们经常需要对数组进行筛选,以便根据特定的条件获取所需的元素。而JavaScript的filter()方法就是一个非常有用的工具,它可以帮助我们轻松地筛选数组中的元素。本文将介绍如何使用filter()方法,以及一些实用…...
基于MATLAB的图像条形码识别系统(matlab毕毕业设计2)
摘要 : 本论文旨在介绍一种基于MATLAB的图像条形码识别系统。该系统利用计算机视觉技术和图像处理算法,实现对不同类型的条形码进行准确识别。本文将详细介绍系统学习的流程,并提供详细教案,以帮助读者理解和实施该系统。 引言…...
F5.5G落进现实:目标网带来的光之路
数字化与智能化的世界将走向何方?这个问题有着非常复杂的答案,但其中有一个答案已经十分清晰。那就是智能化的下一步,必将走向泛在万兆的世界。 网络是算力联接的底座,是智能演化的基础。纵观每一代数字化升级,都可以发…...
Python调用c++生成的dll
Python调用c生成的dll 1.简单例子1.1 vs2019 c生成dll1.2 Python端调用 2.调用c类生成的dll2.1 vs cpp端生成dll2.2 Python端调用 参考文献 1.简单例子 1.1 vs2019 c生成dll 项目中添加add.cpp文件 extern "C" int __declspec(dllexport) add(int x, int y) {retu…...
算法基础学习|二分
二分 模板 整数二分模板 bool check(int x) {/* ... */} // 检查x是否满足某种性质// 区间[l, r]被划分成[l, mid]和[mid 1, r]时使用(即寻找左边界使用): int bsearch_1(int l, int r) {while (l < r){int mid l r >> 1;if (…...
mac M1 pro 安装grpc 报错
pecl install grpc # a few moments later 。。。。# 执行 php -i | grep grpc## 报错 PHP Warning: PHP Startup: Unable to load dynamic library grpc.so(tried: /opt/homebrew/lib/php/pecl/20190902/grpc.so (dlopen(/opt/homebrew/lib/php/pecl/20190902/grpc.so, 0x0…...
交银国际:拼多多财报预测:主站盈利提升有望带动业绩超预期
来源:猛兽财经 作者:猛兽财经 猛兽财经获悉,交银国际今日发布关于拼多多第三季度财报预测:主站盈利提升有望带动业绩超预期的研报。交银国际主要观点如下: 预计拼多多(PDD)第三季度业绩将好于市场预期:我们…...
【SA8295P 源码分析 (二)】50 - OpenWFD Server 启动流程 之 wfd_server_tpp 线程池源码分析
【SA8295P 源码分析】50 - OpenWFD Server 启动流程 之 wfd_server_tpp 线程池源码分析 一、thread_pool 创建过程源码分析1、thread_pool_create()2、thread_pool_start()二、thread_pool_t *wfd_server_tpp 使用场景源码分析系列文章汇总见:《【SA8295P 源码分析 (二)】Disp…...
9.strspn函数
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h>/*----------------------函数解析----------------------*/ /*函数原型:size_t strspn(char const *str, char const* group) */ /*函数入参:从str第一个元素开始往后…...
电脑蓝牙与ESP32蓝牙连接,让电脑发现ESP32
win11蓝牙默认只查看常见蓝牙设备。ESP32创建的蓝牙很有可能是看不到的。 再蓝牙设备发现一栏选择高级,才能查看所有蓝牙设备。 只要下面几行代码,就能让PC发现ESP32 #include <BLEDevice.h> // 引入相关库void setup() {BLEDevice::init("…...
k8s 暴露pod
kubenretes中暴露Pod及Service的6种方式 ,分别为port_forward、hostNetwork、hostPort、nodePort、loadBalancer、Ingress。 下面讲下nodeport nodePort Kubernetes中的service默认情况下都是使用的ClusterIP这种类型,这样的service会产生一个Cluster…...
Apache Dubbo 首个 Node.js 3.0-alpha 版本正式发布
作者:蔡建怿 关于Apache Dubbo3 Apache Dubbo 是一款易用、高性能的 WEB 和 RPC 框架,同时为构建企业级微服务提供服务发现、流量治理、可观测、认证鉴权等能力、工具与最佳实践。经过近几年发展,Dubbo3 已在阿里巴巴集团各条业务线实现全面…...
Node.js中Buffer API详解
Node.js中Buffer API详解 在Node.js中,Buffer是一个用于处理二进制数据流的全局对象,它类似于数组,但可以存储任意大小的数据。Buffer对象是由C代码实现的底层结构,而JavaScript代码则提供了一些高级的API。本文将介绍Node.js中B…...
【Hello Algorithm】暴力递归到动态规划(三)
暴力递归到动态规划(三) 最长公共子序列递归版本动态规划 最长回文串子序列方法一方法二递归版本动态规划 象棋问题递归版本动态规划 咖啡机问题递归版本动态规划 最长公共子序列 这是leetcode上的一道原题 题目连接如下 最长公共子序列 题目描述如下…...
gitLab更新11.11.3->16.1.5
gitlab当前版本11.11.3 postgreSQL当前版本 9.6.11 gitlab升级顺序 11.11.3 -》 12.0.12 -》 12.10.14 -》13.0.14 -》 13.1.11 -》13.8.8 -》13.12.15 -》14.0.12 —》 14.3.6 -》 14.9.5 -》 14.10.5 -》 15.0.5 -》 15.1.6 -》 15.4.6 -》 15.11.13 -》 16.0.X —》 16.…...
12-k8s-HPA自动扩缩容
文章目录 一、k8s弹性伸缩类型二、HPA原理三、metrics-server插件四、创建nginx提供负载测试五、部署HPA master操作即可 一、k8s弹性伸缩类型 Cluster-Autoscale: 集群容量(node数量)自动伸缩,跟自动化部署相关的,依赖iaas的弹性伸缩,主要用…...
深入Fly-By拓扑:为什么你的LPDDR4必须做Write Leveling?一次讲清时钟与数据对齐的核心原理
深入Fly-By拓扑:为什么你的LPDDR4必须做Write Leveling?一次讲清时钟与数据对齐的核心原理 在4266 Mbps的高速数据传输场景下,LPDDR4内存子系统如同一条需要精确调谐的八车道高速公路。当信号传输速率突破4GT/s时,皮秒级的时序偏差…...
大模型RL算法梳理:从全量词元到部分词元的路径演化
一、 引言:大模型强化学习算法的演化格局 近年来,以 OpenAI 的 o1 系列、DeepSeek 的 R1,以及 Qwen 系列模型为代表,大语言模型在数学证明、代码生成等长链路推理任务中展现出更强的稳定性与推理深度。 在这一背景下,面…...
第一次降AIGC率不知道从哪入手?这份保姆级操作手册帮你
第一次操作的话,照着下面的步骤来,15分钟内搞定降AIGC率、降AI工具保姆级测评2026、降AI。 工具选嘎嘎降AI(www.aigcleaner.com),达标率99.26%,有退款保障,操作也不复杂。 准备工作 需要准备的…...
PyTorch 2.8镜像效果实测:Wan2.2-I2V图生视频在4090D上的流畅度表现
PyTorch 2.8镜像效果实测:Wan2.2-I2V图生视频在4090D上的流畅度表现 1. 测试环境与配置 1.1 硬件配置 本次测试使用的是基于RTX 4090D显卡的深度学习工作站,具体配置如下: 显卡:NVIDIA RTX 4090D 24GB显存CPU:10核…...
从零搭建CarSim与Matlab/Simulink联合仿真环境:一个分布式驱动控制的实践案例
1. 为什么需要CarSim与Matlab/Simulink联合仿真 在车辆控制系统开发过程中,工程师们经常面临一个难题:如何在保证安全的前提下,快速验证控制算法的有效性?这就是CarSim与Matlab/Simulink联合仿真大显身手的地方。想象一下…...
Scratch飞翔小鸟游戏制作教程:从零开始打造你的第一个像素风小游戏
Scratch飞翔小鸟游戏制作教程:从零开始打造你的第一个像素风小游戏 当孩子们第一次接触编程时,往往会被复杂的代码和抽象的概念吓退。而Scratch就像一扇通往创意世界的大门,用积木式的编程方式让游戏开发变得触手可及。今天,我们将…...
WPF进阶:Canvas动态图形绘制与交互实现
1. Canvas动态图形绘制基础 WPF中的Canvas就像一块无限延伸的画布,我们可以在这块画布上自由地绘制各种图形元素。与静态绘制不同,动态绘制的魅力在于图形能够根据用户操作实时变化。我刚开始接触Canvas时,最让我兴奋的就是看到鼠标移动时能实…...
Z-Image-Turbo_Sugar脸部Lora部署案例:科研团队构建可复现实验人脸数据集
Z-Image-Turbo_Sugar脸部Lora部署案例:科研团队构建可复现实验人脸数据集 1. 项目背景与价值 在计算机视觉和人工智能研究领域,高质量、标准化的人脸数据集对于模型训练和算法验证至关重要。传统的人脸数据收集面临诸多挑战:数据隐私问题、…...
突破试用限制:开源脚本实现IDM无限使用的完整解决方案
突破试用限制:开源脚本实现IDM无限使用的完整解决方案 【免费下载链接】IDM-Activation-Script IDM Activation & Trail Reset Script 项目地址: https://gitcode.com/gh_mirrors/id/IDM-Activation-Script 一、问题引入:IDM用户的痛点与解决…...
ruoyi-vue-pro源码部署实战:如何选择稳定版本并快速搭建开发环境
RuoYi-Vue-Pro 稳定版部署指南:从版本选择到开发环境搭建全解析 第一次接触 RuoYi-Vue-Pro 这个 Java 快速开发框架时,我像大多数开发者一样直接克隆了 master 分支,结果编译阶段就遭遇了各种依赖冲突和接口报错。后来才发现,这个…...
