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

    源码下载

  • 相关阅读:
    SQLite3 数据库学习(一):数据库和 SQLite 基础
    使用npm发布自己的组件库
    PostgreSQL与MySQL数据库对比:适用场景和选择指南
    linux后台运行及任务挂后台-linux亲测有效操作001
    Java进阶(JVM调优)——阿里云的Arthas的使用 & 安装和使用 & 死锁查找案例,重新加载案例,慢调用分析
    动手实践一下NodeJS事件驱动架构,流和模块
    设计模式-桥接模式
    POE 供电iP网络音箱2*15W 教学广播音箱 办公室背景音乐广播音箱SV-7041
    三维模型表面积计算方法
    电压参考芯片 LM285D-1.2 备忘
  • 原文地址:https://blog.csdn.net/lw112190/article/details/133817495