• C# U2Net Portrait 跨界肖像画


    目录

    介绍

    效果

    模型信息

    项目

    代码

    创建Tensor

    保存

    下载


    介绍

    github地址:https://github.com/xuebinqin/U-2-Net

    The code for our newly accepted paper in Pattern Recognition 2020: "U^2-Net: Going Deeper with Nested U-Structure for Salient Object Detection."

    效果

    模型信息

    Inputs
    -------------------------
    name:input_image
    tensor:Float[1, 3, 512, 512]
    ---------------------------------------------------------------

    Outputs
    -------------------------
    name:output_image
    tensor:Float[1, 1, 512, 512]
    name:2016
    tensor:Float[1, 1, 512, 512]
    name:2017
    tensor:Float[1, 1, 512, 512]
    name:2018
    tensor:Float[1, 1, 512, 512]
    name:2019
    tensor:Float[1, 1, 512, 512]
    name:2020
    tensor:Float[1, 1, 512, 512]
    name:2021
    tensor:Float[1, 1, 512, 512]
    ---------------------------------------------------------------

    项目

    VS2022

    .net framework 4.8

    OpenCvSharp 4.8

    Microsoft.ML.OnnxRuntime 1.16.2

    代码

    创建Tensor

    input_tensor = new DenseTensor(new[] { 1, 3, 512, 512 });

    for (int y = 0; y < resize_image.Height; y++)
    {
        for (int x = 0; x < resize_image.Width; x++)
        {
            input_tensor[0, 0, y, x] = (resize_image.At(y, x)[0] / 255f - 0.485f) / 0.229f;
            input_tensor[0, 1, y, x] = (resize_image.At(y, x)[1] / 255f - 0.456f) / 0.224f;
            input_tensor[0, 2, y, x] = (resize_image.At(y, x)[2] / 255f - 0.406f) / 0.225f;
        }
    }

    保存

    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下载

    源码下载

  • 相关阅读:
    Mysql 数据库开发简介与选择
    竞赛 机器视觉opencv答题卡识别系统
    使用VUE+SpringBoot+EasyExcel 整合导入导出数据
    【MySQL教程】| (1-1) 2023MySQL-8.1.0 安装教程
    AJAX——HttpRequest对象、get/post请求
    5月刚刚阿里面软件测试岗回来,3+1面任职阿里P7,年薪28*15薪
    7.3 服务端漏洞:密码找回逻辑漏洞检测和重现
    OPENCV简单阈值中的参数详解
    最新centos7 部署 k8s v1.26,简单易懂,跟着命令敲就完事
    【iOS开发】——事件传递链和事件响应链
  • 原文地址:https://blog.csdn.net/lw112190/article/details/133817495