老照片AI上色JS开发包【Colorizer.js】

news2025/2/25 6:18:41

Colorizer.js适用于为人物、建筑、风景等各种老照片自动上色,直接在浏览器内运行, 提供前端JavaScirpt二次开发接口。官方下载地址:Colorizer.js SDK

1、目录组织

Colorizer.js开发包的目录组织说明如下:

colorizerjs    
  | - src                      # 核心代码目录
    | - ImageHelper.js         # 图像处理辅助代码
    | - Colorizer.js           # 自动上色类实现代码
  | - demo  
    | - index.html             # sdk调用演示代码及页面
    | - lib
      | - colorizer.umd.js     # 打包的colorizerjs库
    | - models                 # 预训练权重目录
      | - model.onnx           # 预训练模型权重
    | - samples                # 测试图片目录
      | - test-1.jpg                      
      | - ....
  | - rollup.config.js         # rollup配置文件  
  | - bs-config.json           # lite-server配置文件 
  | - package.json             # npm包描述文件

在第一次使用之前,首先安装依赖文件:

npm install

2、使用演示代码

执行如下命令启动演示代码:

npm run dev

上面命令会自动打开默认浏览器并访问 http://localhost:3000,如下图所示:

demo ui

在下拉框中选择一个示例图像文件,即可对选中的图像进行自动上色,并对比显示原图(左)和上色图(右)。

例如选择“人物 - 海外大头照”:

overseas selfie

Colorizer.js也可以对包含一组人物的照片上色,例如选择“人物 - 70年代合影”:

group selfies

Colorizer.js对建筑上色的效果,可查看示例中的“建筑 - 西洋建筑”,如下图所示:

western building

Colorizer.js对自然风光上色的效果,可查看示例中的“风景 - 湖边风光”,如下图所示:

lake scene

3、使用API

首先在HTML文件中引用colorizer.umd.js:

<script src="/lib/colorizer.umd.js"></script>

然后实例化一个 Colorizer对象,我们利用它进行后续的操作:

const colorizer = new Colorizer()

使用Colorizer对象的processImageFile()方法对指定url处的图像进行上色:

const imageUrl = 'https://wx2.sinaimg.cn/mw690/4056ab0fgy1hrpjuk77wdj20m80ian2v.jpg'
const dataURI = await colorizer.processImageFile(imageUrl)

返回的dataURI包含了全部的base64编码的上色图像数据,可直接用于HTML的image元素。例如,下面的代码 使用一个新的image元素显示输出的上色图像:

const img = new Image()
img.src = dataURI
document.body.appendChild(img)

如果要使用canvas元素显示输出的上色图像,可以设置processImageFile()的第二个参数,例如:

const imageData = await colorizer.processImageFile(imageUrl, Colorizer.TARGET_IMAGEDATA)

imageData的类型为ImageData,使用如下代码 创建一个canvas元素并显示输出的上色图像:

let canvas = document.createElement("canvas")
ctx = canvas.getContext("2d")
canvas.width = imageData.width;
canvas.height = imageData.height;
ctx.putImageData(imageData, 0, 0)
document.body.appendChild(canvas)

原文链接:Colorizer.js图片上色AI开发包 - 汇智网 

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

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

相关文章

2024电赛H题参考方案(+视频演示+核心控制代码)——自动行驶小车

目录 一、题目要求 二、参考资源获取 三、TI板子可能用到的资源 1、环境搭建及工程移植 2、相关模块的移植 四、控制参考方案 1、整体控制方案视频演示 2、视频演示部分核心代码 五、总结 一、题目要求 小编自认为&#xff1a;此次控制类类型题目的H题&#xff0c;相较于往年较…

【机器学习基础】机器学习的数学基础

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈Python机器学习 ⌋ ⌋ ⌋ 机器学习是一门人工智能的分支学科&#xff0c;通过算法和模型让计算机从数据中学习&#xff0c;进行模型训练和优化&#xff0c;做出预测、分类和决策支持。Python成为机器学习的首选语言&#xff0c;…

源码编译安装,及nginx服务控制、监控块

1.源码编译安装&#xff1a; [root17dns ~]# wget https://nginx.org/download/nginx-1.27.0.tar.gz 2.解压&#xff1a; [root17dns ~]# tar -zxvf nginx-1.27.0.tar.gz 3.安装gcc等工具 [root17dns ~]# yum -y install gcc gcc-c [root17dns ~]# yum -y install make lrzsz …

Java的单元测试(@Test)的简单使用

只有Test注解的简单使用&#xff0c;没有其他注解 官网&#xff1a;JUnithttps://junit.org/Test是JUnit框架下的其中一个注解&#xff0c;框架下所有的注解如图所示&#xff0c;但我们现在只说Test的使用方法。 现在我们要在测试类中测试两个对象是否相等&#xff0c;如图所示…

高中数学,集合知识点及题型解答

高中数学&#xff0c;集合知识点及题型解答

《分析模式:可重用对象模型》学习笔记之四:企业财务分析中的观察和测量02

这个模型基本解决问题&#xff0c;可以方便定义层次&#xff0c;以及反映了三个不同的维数元素&#xff0c;也反映了企业部门单元和维数元素的关系&#xff0c;但是很快可以看到&#xff0c;在这里&#xff0c;维数被局限在三个&#xff1a;也就是说&#xff0c;如果维数需要改…

变量在内存中的表现形式

变量的存储在内存中&#xff0c;通常涉及以下几个部分&#xff1a; 栈区&#xff1a;变量名通常存储在栈区&#xff08;空间小&#xff0c;运行速度快&#xff09;&#xff0c;栈区用来存储变量名、函数名、常量名等。当你声明一个变量&#xff08;比如 $a&#xff09;&#x…

OnlyOffice在线部署

部署服务环境&#xff1a;Centos7.6 curl -sL https://rpm.nodesource.com/setup_6.x | sudo bash 安装yum-utils工具 yum install yum-utils 添加nginx.repo源(Nginx官网有最新版&#xff0c;直接copy即可) vim /etc/yum.repos.d/nginx.repo [nginx-stable] namenginx st…

29.jdk源码阅读之Exchanger

1. 写在前面 Exchanger 是 Java 并发包 (java.util.concurrent) 中的一个同步点工具类&#xff0c;用于在两个线程之间交换数据。它提供了一种简单而强大的方式来实现线程之间的数据交换。不知道大家在日常工作中或者面试中 有遇到它&#xff1f;下面几个问题可以一块来探讨下&…

028-GeoGebra中级篇-脚本的初步的探索

GeoGebra 的脚本功能允许用户通过不同的触发机制&#xff08;如点击、更新、输入框变化、拖动结束&#xff09;和全局 JavaScript 自定义图形和交互行为&#xff0c;实现动态数学模型和用户交互&#xff0c;同时 ggbOnInit() 函数可在应用初始化时设置默认状态&#xff0c;提供…

Git基本原理介绍及常用指令

文章目录 前言一、Git是什么&#xff1f;集中化的版本控制系统分布式版本控制系统 二、Git基本概念三、git命令操作配置用户信息常用指令 总结 前言 如果你用Microsoft Word写过论文&#xff0c;那你一定有这样的经历&#xff1a;想删除一个段落&#xff0c;又怕将来想恢复找不…

MySQL基础练习题8-每月交易1

题目&#xff1a; 查询来查找每个月和每个国家/地区的事务数及其总金额、已批准的事务数及其总金额。 准备数据 分析数据 第一步&#xff1a;用substr()函数来截取到月份&#xff0c;用group by为每个国家分组来查找每个国家 第二步&#xff1a;用count()和sum()来求事务数…

14.FineReport制作带筛选按钮的报表和图表

1.首先连接自带的sqlite数据库&#xff0c;具体方法参考下面的链接 FineReport连接自带的sqlite数据库 2.文件 – 新建普通报表 3.新建数据库查询 4.查询自带的销量表 5.模版&#xff0c;页面设置 6.方向选择横向 7.合并单元格&#xff0c;并添加斜线表头 8.表格中添加字段信…

iPhone手机识别提取藏文字体,推荐《藏语翻译通》藏文OCR识别神器!

如果你正在寻找一款支持藏文OCR识别提取文字的App&#xff0c;我们将向你推荐《藏语翻译通》App&#xff0c;一款专门为iPhone手机用户设计的藏文识别与翻译工具。 功能特点 《藏语翻译通》是一款集藏文OCR识别、藏汉互译、语音识别翻译于一体的应用。用户只需要拿起手机扫一…

【原创】java+ssm+mysql图书信息管理系统设计与实现

个人主页&#xff1a;程序员杨工 个人简介&#xff1a;从事软件开发多年&#xff0c;前后端均有涉猎&#xff0c;具有丰富的开发经验 博客内容&#xff1a;全栈开发&#xff0c;分享Java、Python、Php、小程序、前后端、数据库经验和实战 开发背景&#xff1a; 随着数字化和信…

【排序】快速排序详解

✨✨欢迎大家来到Celia的博客✨✨ &#x1f389;&#x1f389;创作不易&#xff0c;请点赞关注&#xff0c;多多支持哦&#x1f389;&#x1f389; 所属专栏&#xff1a;排序 个人主页&#xff1a;Celias blog~ 一、快速排序的思想 快速排序的核心思想是&#xff1a; 选定一个…

关于Unity转微信小程序的流程记录

1.准备工作 1.unity微信小程序转换工具,minigame插件,导入后工具栏出现“微信小游戏" 2.微信开发者工具稳定版 3.MP微信公众平台申请微信小游戏,获得游戏appid 4.unity转webgl开发平台,Player Setting->Other Settings->Color Space->Linear 5. unity工…

程序员面试的“八股文“:助力还是阻力?

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

知识付费培训考试题库h5小程序开源版开发

知识付费培训考试题库h5小程序开源版开发 企业内部培训与考试课堂系统&#xff0c;支持丰富课程类型&#xff0c;还拥有全面的题型体系&#xff0c;并能自动评分。应用具备响应式设计&#xff0c;加之学习进度跟踪与评论功能&#xff0c;打造互动式学习环境&#xff0c;是现代…