前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >明日方舟人物立绘反混淆

明日方舟人物立绘反混淆

作者头像
戴兜
发布于 2023-02-23 02:01:53
发布于 2023-02-23 02:01:53
60400
代码可运行
举报
文章被收录于专栏:daidrdaidr
运行总次数:0
代码可运行

明日方舟安装包和升级包解包后得到的立绘周围有多余的像素,需要通过分离出来的灰度图来获得具有alpha通道的立绘图片。 用sharp来实现还是蛮简单的,就写了一个小工具来完成这一过程(文章最后仓库内有全部立绘可供下载)。

Sharp的实现

在老版本的sharp中,能够直接通过OverlayWith方法将灰度图片与原图片合成来获得具有alpha通道的图片。但是在新版本中,OverlayWith方法被废弃,所以我通过下面这种方法来实现类似的功能。

原始立绘

立绘alpha通道图

Ⅰ. 载入需要操作的图片

由于sharp返回Promise对象,下面全部代码都会使用async函数和await

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(async function () {
    let mask = await sharp("mask.png"); //载入灰度图像
    let image = await sharp("origin.png"); //载入原始图像
})()

Ⅱ. 获得灰度图的通道信息

想要将灰度图作为alpha通道合并到,需要保证原图没有alpha通道,灰度图只有一个通道。只有这样,才能保证灰度图作为alpha通道合并到原图中。

我们要做的,就是删除原图的alpha通道,并且只保留灰度图的任意一个通道

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(async function () {
    let mask = await sharp("mask.png") //载入灰度图像
        .extractChannel("red"); //提取灰度图像的任意一个通道都是一
                                //样的,这里提取红色通道

    let image = await sharp(`origin.png`) //载入原始图像
        .removeAlpha(); //去除原图的alpha通道
})()

Ⅲ. 将两张图合成

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(async function () {
    let mask = await sharp("mask.png") //载入灰度图像
        .extractChannel("red"); //提取灰度图像的任意一个通道都
                                //是一样的,这里提取红色通道

    let image = await sharp(`origin.png`) //载入原始图像
        .removeAlpha(); //去除原图的alpha通道

    let maskBuffer = await mask.toBuffer();
    let imageBuffer = await image.toBuffer();
    sharp(imageBuffer) //以Buffer的形式载入原始图像,其
                       //实这行可以用image代替,这么写
                       //是为了满足我的强迫症😂
        .joinChannel(maskBuffer) //将灰度图像的红色通道加入到
                                 //原图中,因为之前删除了原图
                                 //的Alpha通道,所以实际上是
                                 //重新添加了Alpha通道
        .toFile(`out.png`) //输出最终的图像
})()

最终得到的图像

代码仓库(全套立绘+反混淆代码)

code{background: #f5f2f0;}

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-01-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
基于Numpy图像处理基础技巧
图像基础处理是计算机视觉和数字图像处理的第一步,旨在通过简单而有效的操作改善图像质量或提取关键信息。
皮大大
2025/05/07
1310
keras学习笔记-黑白照片自动着色的神经网络-Alpha版
如今,上色都是人手工用Photoshop做的,一张图片要花好几个月才能完成,需要进行大量调查研究,光是其中的一张脸就需要多达20层图层。但是,基于深度神经网络的自动着色机器人,可以几秒钟就实现PS几个月的效果,而且成效越来越惊人。 下面,我们将分三个步骤展示如何打造你自己的着色神经网络。第一部分讲解核心逻辑。我们将构建一个40行代码的神经网络,作为“Alpha”着色机器人,这个代码片段实际上没有太多的魔法,但可以让你熟悉基本操作。 然后,我们将创建一个可以泛化的神经网络——“Beta”版本。Beta机器人能
用户1332428
2018/03/09
1.4K0
keras学习笔记-黑白照片自动着色的神经网络-Alpha版
数字图像处理学习笔记(十一)——用Python代码实现图像增强之线性变换、对数变换、幂律变换、分段线性变换、灰度级分层、直方图均衡化、平滑滤波器、锐化滤波器
在数字图像处理学习笔记(八)中,已对图像增强之线性变换、对数变换、幂律变换、分段线性变换、灰度级分层等做过详细理论论述,本文将对上述理论知识做实践方面的实现。
荣仔_最靓的仔
2021/02/02
4.2K0
数字图像处理学习笔记(十一)——用Python代码实现图像增强之线性变换、对数变换、幂律变换、分段线性变换、灰度级分层、直方图均衡化、平滑滤波器、锐化滤波器
Node.js 服务端图片处理利器——sharp 进阶操作指南
sharp 是 Node.js 平台上相当热门的一个图像处理库,其实际上是基于 C 语言编写 的 libvips 库封装而来,因此高性能也成了 sharp 的一大卖点。sharp 可以方便地实现常见的图片编辑操作,如裁剪、格式转换、旋转变换、滤镜添加等。当然,网络上相关的文章比较多,sharp 的官方文档也比较详细,所以这不是本文的重点。这里主要是想记录一下我在使用 Sharp 过程中遇到的一些稍复杂的图片处理需求的解决方案,希望分享出来能够对大家有所帮助。
逆葵
2019/04/25
7.4K3
Node.js 服务端图片处理利器——sharp 进阶操作指南
空域增强
问题的目的是突出骨骼的边缘和细节变化部分,但是图片的灰度动态范围较窄,并且有很高的噪声,难于使用单一方法进行增强。若使用直方图均衡化,由于图片本身灰度动态范围较窄,再均衡化则灰度更少,效果不好;左图并非低对比度图像,具有高低亮度的信息,单纯使用对数变换或伽马变换也不合适,目的并非压制高亮度。只有强化边缘和细节之后,才能调整亮度,所以要组合多种变换。
客怎眠qvq
2022/11/01
5860
空域增强
【OpenCV】入门教学/了解图像处理的基本原理
本文是基于哔哩哔哩OpenCV入门课程的内容加上我个人的理解而来。 本篇文章的主要内容: 阅读本篇文章,你需要具备python的基本语法的学习。如果你并没有学习过python,可以去看我的python专栏:python
Yui_
2025/02/03
2570
【OpenCV】入门教学/了解图像处理的基本原理
【沥血整理】灰度(二值)图像重构算法及其应用(morphological reconstruction)。
        不记得是怎么接触并最终研究这个课题的了,认识我的人都知道我是没有固定的研究对象的,一切看运气和当时的兴趣。本来研究完了就放在那里了,一直比较懒的去做总结,但是想一想似乎在网络上就没有看到关于这个方面的资料,能搜索到的都是一些关于matlab相关函数的应用,决定还是抽空趁自己对这个算法还有点记忆的时候写点东西吧,毕竟这个算法还有一些应用是值得回味和研究的。而且也具有一定的工程价值。
用户1138785
2022/09/21
1K0
【沥血整理】灰度(二值)图像重构算法及其应用(morphological reconstruction)。
[python opencv 计算机视觉零基础到实战] 八、ROI泛洪填充
ROI指的是region of Interest,翻译过来就是你所感兴趣的区域。弱在一张图片中,你感兴趣的是某一个区域,那么这个区域就可以称为ROI。我们通过一些方法选取了该区域后,可以进行操作;例如颜色填充、图像变换等编辑。
1_bit
2021/01/14
7490
[python opencv 计算机视觉零基础到实战] 八、ROI泛洪填充
【干货】计算机视觉实战系列01——用Python做图像处理
【导读】在当今互联网飞速发展的社会中,数量庞大的图像和视频充斥着我们的生活,让我们需要对图片进行检索、分类等操作时,利用人工手段显然是不现实的,于是,计算机视觉相关技术便应运而生,并且得到了快速的发展
WZEARW
2018/04/13
3K0
【干货】计算机视觉实战系列01——用Python做图像处理
直方图均衡化的原理及实现途径_请简述图像直方图均衡的原理
图像的灰度直方图就描述了图像中灰度分布情况, 能够很直观的展示出图像中各个灰度级所占的多少。图像的灰度直方图是灰度级的函数, 描述的是图像中具有该灰度级的像素的个数: 其中, 横坐标是灰度级, 纵坐标是该灰度级出现的率。如下图所示
全栈程序员站长
2022/09/27
4.9K0
直方图均衡化的原理及实现途径_请简述图像直方图均衡的原理
图像增强综述
作者:方阳, 转载请注明地址。 文件和代码可以在Github下载, markdown推荐用typora打开。 这篇文章是DIP的第二次作业,对图像增强技术进行综述,目录如下:
努力努力再努力F
2019/04/29
1.6K0
图像增强综述
【opencv】带你再学一遍直方图
直方图到底可以干什么呢?我觉得最明显的作用就是有利于你对这个图像进行分析了,直方图就像我们常用的统计图,只不过直方图统计的是图片的一些特征,例如像素值(这是最常用的了)。
周旋
2020/06/04
6430
【opencv】带你再学一遍直方图
Py之cv2:cv2库(OpenCV,opencv-python)的简介、安装、使用方法(常见函数、方法等)最强详细攻略[通俗易懂]
Py之cv2:cv2库(OpenCV,opencv-python)的简介、安装、使用方法(常见函数、方法等)最强详细攻略
全栈程序员站长
2022/09/10
20.1K0
Py之cv2:cv2库(OpenCV,opencv-python)的简介、安装、使用方法(常见函数、方法等)最强详细攻略[通俗易懂]
二值图像分析:案例实战(文本分离+硬币计数)
在实际应用中,很多图像的分析最终都转换为二值图像的分析,比如:医学图像分析、前景检测、字符识别,形状识别。二值化+数学形态学能解决很多计算机识别工程中目标提取的问题。
fengzhizi715
2018/08/24
1.4K0
二值图像分析:案例实战(文本分离+硬币计数)
python计算机视觉编程——第一章(基
PIL(Python Imaging Library,图像处理库)提供了通用的图像处理功能,以及大量有用的基本图像操作。PIL库已经集成在Anaconda库中,推荐使用Anaconda,简单方便,常用库都已经集成。
py3study
2020/01/06
2.6K0
OpenCV这么简单为啥不学——1、基础环境与imread函数
计算机视觉市场巨大而且持续增长,且这方面没有标准API,如今的计算机视觉软件大概有以下三种:
红目香薰
2023/02/10
5590
OpenCV这么简单为啥不学——1、基础环境与imread函数
深度实践:如何用神经网络给黑白照片着色
现如今,将图片彩色化是通常用Photoshop处理的。一幅作品有时候需要用一个月的时间来着色。可能单单一张脸就需要20层的粉色、绿色和蓝色阴影才能让它看起来恰到好处。为了了解这一过程,你可以看看下面这
AiTechYun
2018/03/06
1.6K0
深度实践:如何用神经网络给黑白照片着色
颜色模型与转换
本小节中将介绍几种OpenCV 4中能够互相转换的常见的颜色模型,例如RGB模型、HSV模型、Lab模型、YUV模型以及GRAY模型,并介绍这几种模型之间的数学转换关系,以及OpenCV 4中提供的这几种模型之间的变换函数。
小白学视觉
2019/11/18
1.9K0
基于python实现图片转字符画代码实例
由于字符显示的长宽不是相等的,为了转换后的字符画比例正常,我们需要将原图的比例进行压缩。
languageX
2023/11/04
1.3K0
基于python实现图片转字符画代码实例
OpenCV 4基础篇| OpenCV图像基本操作
游戏开发小Y
2024/02/25
5180
OpenCV 4基础篇| OpenCV图像基本操作
推荐阅读
相关推荐
基于Numpy图像处理基础技巧
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验