• C# AnimeGAN 漫画风格迁移 动漫风格迁移 图像卡通化 图像动漫化


    目录

    效果

    模型

    模型信息

    animeganv3_H40_model.onnx

    animeganv3_H50_model.onnx

    animeganv3_H64_model.onnx

    AnimeGANv3_JP_face_v1.0.onnx

    AnimeGANv3_PortraitSketch_25.onnx

    Hayao_64.onnx

    Hayao-60.onnx

    Paprika_54.onnx

    Shinkai_53.onnx

    项目

    代码

    创建Tensor

    保存

    下载 


    效果

    模型

    animeganv3_H40_model.onnx
    animeganv3_H50_model.onnx
    animeganv3_H64_model.onnx
    AnimeGANv3_JP_face_v1.0.onnx
    AnimeGANv3_PortraitSketch_25.onnx
    Hayao-60.onnx
    Hayao_64.onnx
    Paprika_54.onnx
    Shinkai_53.onnx

    模型信息

    animeganv3_H40_model.onnx

    Inputs
    -------------------------
    name:generator_input:0
    tensor:Float[1, -1, -1, 3]
    ---------------------------------------------------------------

    Outputs
    -------------------------
    name:generator_1/main/out_layer:0
    tensor:Float[-1, -1, -1, 3]
    ---------------------------------------------------------------

    animeganv3_H50_model.onnx

    Inputs
    -------------------------
    name:generator_input:0
    tensor:Float[1, -1, -1, 3]
    ---------------------------------------------------------------

    Outputs
    -------------------------
    name:generator_1/main/out_layer:0
    tensor:Float[-1, -1, -1, 3]
    ---------------------------------------------------------------

    animeganv3_H64_model.onnx

    Inputs
    -------------------------
    name:generator_input:0
    tensor:Float[1, -1, -1, 3]
    ---------------------------------------------------------------

    Outputs
    -------------------------
    name:generator_1/main/out_layer:0
    tensor:Float[-1, -1, -1, 3]
    ---------------------------------------------------------------

    AnimeGANv3_JP_face_v1.0.onnx

    Inputs
    -------------------------
    name:AnimeGANv3_input:0
    tensor:Float[1, -1, -1, 3]
    ---------------------------------------------------------------

    Outputs
    -------------------------
    name:generator/main/out_layer:0
    tensor:Float[-1, -1, -1, 3]
    ---------------------------------------------------------------

    AnimeGANv3_PortraitSketch_25.onnx

    Inputs
    -------------------------
    name:animeganv3_input:0
    tensor:Float[1, -1, -1, 3]
    ---------------------------------------------------------------

    Outputs
    -------------------------
    name:generator/main/out_layer:0
    tensor:Float[-1, -1, -1, 3]
    ---------------------------------------------------------------

    Hayao_64.onnx

    Inputs
    -------------------------
    name:generator_input:0
    tensor:Float[1, -1, -1, 3]
    ---------------------------------------------------------------

    Outputs
    -------------------------
    name:generator/G_MODEL/out_layer/Tanh:0
    tensor:Float[1, -1, -1, 3]
    ---------------------------------------------------------------

    Hayao-60.onnx

    Inputs
    -------------------------
    name:generator_input:0
    tensor:Float[1, -1, -1, 3]
    ---------------------------------------------------------------

    Outputs
    -------------------------
    name:generator/G_MODEL/Tanh:0
    tensor:Float[1, -1, -1, 3]
    ---------------------------------------------------------------

    Paprika_54.onnx

    Inputs
    -------------------------
    name:generator_input:0
    tensor:Float[1, -1, -1, 3]
    ---------------------------------------------------------------

    Outputs
    -------------------------
    name:generator/G_MODEL/out_layer/Tanh:0
    tensor:Float[1, -1, -1, 3]
    ---------------------------------------------------------------

    Shinkai_53.onnx

    Inputs
    -------------------------
    name:generator_input:0
    tensor:Float[1, -1, -1, 3]
    ---------------------------------------------------------------

    Outputs
    -------------------------
    name:generator/G_MODEL/out_layer/Tanh:0
    tensor:Float[1, -1, -1, 3]
    ---------------------------------------------------------------

    项目

    VS2022

    .net framework 4.8

    OpenCvSharp 4.8

    Microsoft.ML.OnnxRuntime 1.16.2

    代码

    创建Tensor

    for (int y = 0; y < resize_image.Height; y++)
    {
        for (int x = 0; x < resize_image.Width; x++)
        {
            input_tensor[0, y, x, 0] = (float)((resize_image.At(y, x)[0] / 127.5) - 1);
            input_tensor[0, y, x, 1] = (float)((resize_image.At(y, x)[1] / 127.5) - 1);
            input_tensor[0, y, x, 2] = (float)((resize_image.At(y, x)[2] / 127.5) - 1);
        }
    }

    保存

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

    源码下载

  • 相关阅读:
    PriorityQueue优先级队列
    go语言学习
    计算机网络复习
    LVS+Keepalived群集
    视频录制工具OBS选择区域录制
    Java+vue生成报纸排版新闻页面
    华为荣耀手机,开启开发者选项,hbuilder调试依然找不到
    一年经验年初被裁面试 1 月有余无果,还遭前阿里面试官狂问八股,人麻了
    Linux系统安装Ruby语言
    Java面试题大全、题+详细解答(2022版)
  • 原文地址:https://blog.csdn.net/lw112190/article/details/133808032