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

    源码下载

  • 相关阅读:
    vue3的ref和reactive
    Windows安装MySQL8.0完整教程
    Seata部署TC服务实现高可用和异地容灾
    软考-系统架构-2023-反思
    企业内部即时通讯工具WorkPlus,支持内网私有化部署
    《高效便捷,探索快递柜系统架构的智慧之路》
    Linux小程序-进度条
    半同步复制与MHA高可用架构设计
    【Python游戏】用Python实现一个测试你智商的小游戏——24点,过不了三关的都是细狗 | 附带源码
    基于微信小程序的房屋租赁管理系统
  • 原文地址:https://blog.csdn.net/lw112190/article/details/133808032