基于Anime2Sketch算法那将图片转成素描

news2024/11/24 17:23:59

1.下载源码地址

https://github.com/Mukosame/Anime2Sketch
  1. 下载项目依赖包,下载模型权重文件
    在这里插入图片描述
    运行看效果
python test.py --dataroot=E:\01_hjz\datas\00-hjz\pictures --load_size=512

在这里插入图片描述

调整自定义测试图片路径

"""Test script for anime-to-sketch translation
Example:
    python3 test.py --dataroot /your_path/dir --load_size 512
    python3 test.py --dataroot /your_path/img.jpg --load_size 512

    python3 test.py --dataroot D:\ai\test\sumiao --load_size 512 --output_dir D:\ai\test\sumiao
"""

import os
import torch
from anime2Sketch.model_anime2sketch import create_anime2sketch_model
from anime2Sketch.data import read_img_path, tensor_to_img, save_image
import argparse

parser = argparse.ArgumentParser(description='Anime-to-sketch test options.')
parser.add_argument('--dataroot', '-i', default='test_samples/', type=str)
parser.add_argument('--load_size', '-s', default=512, type=int)
parser.add_argument('--output_dir', '-o', default='results/', type=str)
parser.add_argument('--gpu_ids', '-g', default=[], help="gpu ids: e.g. 0 0,1,2 0,2.")
opt = parser.parse_args()

# create model
gpu_list = ','.join(str(x) for x in opt.gpu_ids)
os.environ['CUDA_VISIBLE_DEVICES'] = gpu_list
device = torch.device('cuda' if len(opt.gpu_ids) > 0 else 'cpu')
print(device)
model = create_anime2sketch_model().to(device)  # create a model given opt.model and other options
model.eval()

def chose_image(source_image_path, output_folder_path):
    # img = cv2.imread(source_image_path)

    save_dir = output_folder_path
    #os.makedirs(save_dir, exist_ok=True)
    # test_path ='D:\\ai\\test\sumiao\\5.jpg';
    print(source_image_path)
    basename = os.path.basename(source_image_path)
    #print(basename)
    aus_path = os.path.join(save_dir,basename.split(".")[0] +"_cutout.png")
    #print(aus_path)
    img, aus_resize = read_img_path(source_image_path, opt.load_size)
    aus_tensor = model(img.to(device))
    aus_img = tensor_to_img(aus_tensor)
    save_image(aus_img, aus_path, aus_resize)


if __name__ == '__main__':


    file_path = r"D:\work-mengyi\photo\miniprogram\static\images\default.jpg"

    base_name = os.path.basename(file_path)
    print(base_name)
    # 20200708002140.jpg

    suffix = base_name.split(".")[1]
    print("suffix: {}".format(suffix))
    # suffix: jpg

    suffix = base_name.split(".")[0]
    print("filename2222: {}".format(suffix))
    # filename: 20200708002140

    base_name = os.path.dirname(file_path)
    print(base_name)

    # d:\aaaa
    #chose_image('D:\\ai\\test\\sumiao\\5.jpg', 'D:\\ai\\test\\sumiao')
    # get input data
    # if os.path.isdir(opt.dataroot):
    #     test_list = get_image_list(opt.dataroot)
    # elif os.path.isfile(opt.dataroot):
    #     test_list = [opt.dataroot]
    # else:
    #     raise Exception("{} is not a valid directory or image file.".format(opt.dataroot))
    # save outputs

    # for test_path in tqdm(test_list):
    #     print(test_path)
    #     basename = os.path.basename(test_path)
    #     print(basename)
    #     aus_path = os.path.join(save_dir, basename)
    #     print(aus_path)
    #     img,  aus_resize = read_img_path(test_path, opt.load_size)
    #     aus_tensor = model(img.to(device))
    #     aus_img = tensor_to_img(aus_tensor)
    #     save_image(aus_img, aus_path, aus_resize)

体验地址:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/716556.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Java+Vue前后端分离网上书城系统设计实现(源码+lw+部署文档+讲解等)

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

ChatGPT+低代码,好用到飞起?

ChatGPT 凭借短短 2 个月,月活用户突破 1 亿,成为史上用户增长速度最快的消费级应用程序。ChatGPT 的爆火,在全球范围内掀起了一场关于 AI 技术革命的狂潮,AIGC 也迅速成为科技圈最火赛道。 更有国际咨询机构预测,203…

IIS安装配置和简单网站部署流程

IIS安装和网站配置 环境:win10 注意:这是在win10下部署iis,开发环境下部署,开发测试,非windows server IIS简介 Internet Information Services,简称IIS,是微软提供基于windows的互联网信息服务&#x…

微信小程序使用第三方组件wxParse加载富文本html

微信小程序使用第三方组件wxParse加载富文本html 微信小程序微信小程序加载富文本html微信小程序富文本第三方组件wxParsewxParse富文本html wxParse简介 wxParse 是一个微信小程序富文本解析组件,支持支持Html及markdown转wxml。 wxParse gitHub地址&#xff1…

亿发软件:玩具制造行业批发ERP系统解决方案,赋能传统制造商数字化

我国长期以来被公认为玩具制造大国,受益于其制造基础设施和成本优势。此外,可支配收入的增加和用户生活方式的改变增加了国内外对玩具的需求。然而,行业也面临着挑战和转型。随着数字技术的出现和用户偏好的变化,玩具ERP系统在确保…

TCP三次握手和自连接的条件和缺点

详解三次握手 为什么 SYN 段不携带数据却要消耗一个序列号呢? 记住: • 不占用序列号的段是不需要确认的,比如纯 ACK 包 • SYN 段需要对方的确认,需要占用一个序列号 • 凡是消耗序列号的 TCP 报文段,一定需要对端确认…

旅游宣传软文怎么写吸引人?纯干货

世界那么大,我想去看看,旅游是一种非常放松解压的方式,在旅行中放飞自我,在旅行中寻找自我,一个景点的客流量很大程度取决于其宣传效果,旅游宣传软文就是一种通过文字来吸引人们前往旅游目的地的宣传手段。…

嵌入式系统中详解 Modbus 通信协议(清晰易懂)

本文总结关于 Modbus 相关的知识,浅显易懂,旨在对 Modbus 有一个很直观的了解。如有错误,欢迎修改意见和建议。 什么是协议 在了解什么是Modbus之前,我们先来看下什么是协议。 协议是一个汉语词汇,读音为xi y&#…

Nftables栈溢出漏洞(CVE-2022-1015)复现

背景介绍 Nftables Nftables 是一个基于内核的包过滤框架,用于 Linux 操作系统中的网络安全和防火墙功能。nftables 的设计目标是提供一种更简单、更灵活和更高效的方式来管理网络数据包的流量。 钩子点(Hook Point) 钩子点的作用是拦截数…

Linux环境下配置安装RocketMQ

1.下载 官网下载:下载链接 根据需要下载自己需要的版本、本文使用下载的是:4.7.0版本 2.安装 创建目录,使用ftp工具上传下载的包到上面创建的目录下。 cd /usr/local mkdir rocketmq-all-4.7.0注意:rocketmq 需要 Linux 上安装JDK&…

7、卷积神经网络:基础部件+LeNet

1、图像卷积 1. 互相关运算 严格来说,卷积层是个错误的叫法,因为它所表达的运算其实是互相关运算(cross-correlation),而不是卷积运算。在卷积层中,输入张量和核张量通过(互相关运算)产生输出张量。 首先…

【运维工程师学习】安装ubuntu20.04并配置SSH

【运维工程师学习】安装ubuntu20.04 1、镜像获取2、创建虚拟机3、开始安装4、配置SSH(1) 查看本地ssh版本(2) 安装ssh(3) 查看ssh运行状态(4) 设置开机自动启动(5) 重启(6) 安装net-tools(7) 查看ip5、SSH连接 1、镜像获取 https://next.itellyou.cn/Original/#cbpProduct?ID…

pdf如何导出为图片?分享三个方法PDF转图片!

将PDF文件转换为图片是在许多场景下都非常有用的操作,不仅能够保留原始文档的内容,还方便在各种平台上共享和展示。在本文中,我们将介绍三种简便的方法,帮助您将PDF文件快速转换为图片格式。 方法一:使用记灵在线工具…

黑客是这样的炼成的

---黑客的态度 黑客们解决问题,建设事物,信仰自由和双向的帮助,人人为我, 我为人人。 要想被认为是一名黑客,你的行为必须显示出你已经具备了这种态度。要想做的好象你具备这种态度,你就不得不真的具备这种态度。但…

物理人机交互Physical human-robot interaction (pHRI)

物理人机交互是指人与机器之间通过物理接触或力传递进行交互的过程。它可以通过各种感知和操控技术实现,包括传感器、执行器、机器人和人体接口等。这种交互方式可以在多个领域和应用中发挥重要作用,例如机器人操作、虚拟现实、协作机器人和康复医疗等。 在物理人机交互中,…

Neo4J 特性CQL语句,函数,Springboot集成

Neo4J Neo4J Neo4J一、Neo4J相关介绍1.为什么需要图数据库方案1:Google方案2:Facebook 2.特性和优势3.什么是Neo4j4.Neo4j数据模型图论基础属性图模型Neo4j的构建元素 5.软件安装 二、CQL语句1.CQL简介2.CREATE 命令3.MATCH 命令4.RETURN 子句5.MATCH和R…

node版本管理工具nvm手册

文章目录 下载使用命令node.js其他版本下载下载exe版解压改名放入到指定位置 下载 github下载 使用命令 查看当前版本 nvm -v 查看被管理的node nvm list 切换node版本 nvm use 14.21.3 node.js其他版本下载 下载链接 下载exe版 解压改名放入到指定位置

Echarts柱状图数据过多设置滚动条效果

未设置前: 可以看出数据全部挤压在一起了 设置后: 下面多出一个滚动条,并且鼠标可以拖动数据 dataZoom: [{show: true,height:8,bottom:0,startValue: 0, //起始值endValue: 5, //结束值showDetail: false,fillerColor: "rgba(1, 132, …

10 Web全栈 组件化设计

前端架构层次设计 前端技术体系庞大,层级也非常分明,在架构设计领域中不能一概而论,任何应用种类都有自己独立的架构体系。比如在前端开发领域,在框架基础上进行应用构建的开发者锁思考的问题,与在组件库设计方面的开…

科大讯飞狂撒钱,400 万助力 AI 大赛

大家好,我是二哥呀。 6 月 15 日,科大讯飞的星火认知大模型 APP 上线,我第一时间带大家体验了一把,当时可以说是好评如潮。 后续有很多读者,比如说下面这位,私下找到我,让我帮忙审核通过一下他…