1156吃完午饭,今天是0134睡到0639睡到1018,最近两天都是1点睡,6点醒来料料。今天1点睡,明天0点睡,后天23点睡,我就变成人类啦。想的真好。
在 Neovim 中,如果你想直接在最后一行进入插入模式,可以使用以下命令:Go
1513今天不打喷了,才打到有魅力的
,这祭典很难打。
b站最近很多星痕共鸣
的推广,是mmorpg,和蓝色协议有点渊源。一直想玩mmo,我都没玩过,之前看到蓝色协议想玩但因为日服限定且封号很凶而退缩了,现在才知道它在2025年1月18日终止运营
,太可惜了,不被当下社会享受的mmo啊,星痕共鸣
好像是腾讯出资,希望它能好好的活下去吧。我想去异世界。+-
1811起来准备弄蛋炒饭吃。下午在床上打拔作岛,打到和nanase相互表明心意然后欲拒还迎的要开始继续做当初没做完的事了。这青梅竹马的戏码就好像你们是天生一对一样,这还是共通线吗,这真不是个人线吗。我就做过一个选择吧,不会真是那玩笑一般的选择决定的路线吧,不对吧,革命才刚刚起步,怎么可以在这里谈情说爱。
看看anki怎么用,我好想能无痛啃生肉。
之前就看到过anki,为什么我之前没有下载。我不知道,我live grep没搜到。
今天下了anki-25.02.7-windows-qt6.exe
,一点chrome的在文件夹中显示
,发现了我5月24号下载的anki-25.02.5-windows-qt6.exe
,这太幽默了。
想提取正负战争中蓝咲的立绘,但face和body是分开的且分辨率不同,手动算好offset后又发现face.png有黑边,找了几种解决方案结果都不尽人意。crop_to_alpha_bbox()
会改变分辨率;remove_black_outline()
会误杀头发或眼睛边缘的深色像素;feather_alpha()
边缘并不好看且会导致边缘处会往外平白生出不透明像素。
又去看了看tlg和png,对比了一下,感觉是转换时自动生成的奇妙边缘,但我没有证据。
face.png用画图打开并无明显黑边。face和body都导入到画布手动拼一拼在交界处仍有不自然的黑线。似乎是覆盖的问题,然而代码是alpha_composite
,理应不该有问题的,不对,得有问题的,交界处有黑边导致的。黑边让单独的face看起来更加自然,但对需要合成face和body的我是阻碍,对我来说face的交界处应该是透明的。
即视觉边缘、过渡灰阶产生的问题
不知道该怎么处理,不知道该处理哪里,是原tlg的问题还是转化过程的问题。
画图中用橡皮直接擦去face图层的边缘能解决,考虑直接将face图片的边缘像素设成透明。
最后解决方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| def clear_hard_edge_by_alpha(img: Image.Image, radius: int = 1) -> Image.Image:
"""
清除被透明像素包围的边缘不透明像素
"""
img = img.convert("RGBA")
data = np.array(img)
alpha = data[:, :, 3]
print("Alpha通道最小值:", alpha.min(), "最大值:", alpha.max())
transparent_mask = alpha == 0
structure = np.ones((3, 3), dtype=bool)
dilated_transparent = scipy.ndimage.binary_dilation(transparent_mask, structure=structure, iterations=radius)
# 这里用 >0 代替 ==255,更宽松判断不透明区域
opaque_mask = alpha > 0
border_mask = dilated_transparent & opaque_mask
# 将边缘像素 alpha 设为0,颜色不用管
data[border_mask, 3] = 0
return Image.fromarray(data, "RGBA")
|
0114洗完澡。在画图中没找到看像素具体rgba的地方我还以为那些过渡灰阶alpha是255,代码试了发现边缘像素还在,还是gpt找出来的问题。或许其实可以直接把face中alpha!=255的像素点全换成透明像素,但懒得试了。可以试的,干嘛不试,这可是性能大优化。
所以还是决定force_hard_alpha
了:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| def force_hard_alpha(img: Image.Image) -> Image.Image:
"""
将所有 alpha 不等于 255 的像素设为完全透明,去除羽化边缘。
"""
img = img.convert("RGBA")
data = np.array(img)
alpha = data[:, :, 3]
# 找出 alpha 不为 255 的位置
non_hard_alpha_mask = alpha != 255
# 将这些像素设置为透明
data[non_hard_alpha_mask] = [0, 0, 0, 0]
return Image.fromarray(data, "RGBA")
|
逻辑好麻烦,交给GPT:
1
2
3
4
5
6
7
8
9
10
| # 输入路径
bodyArray = [1,3,4,5,7,8,9]
faceArray = list(range(1, 39)) # [1, 2, 3, ..., 38]
# 随机选择一个 body 和 face 数字
body_id = random.choice(bodyArray)
face_id = random.choice(faceArray)
BODY_PATH = f"ft藍咲_{body_id}a.png"
FACE_PATH = f"ft04_a1_{face_id}.png" 这里的逻辑要改,先从[1,3,4,5,7,8,9]中选择body,若是9,则不需要face,否则仍需‘a'或'c',即BODY_PATH = f"ft藍咲_{body_id}a.png"或BODY_PATH = f"ft藍咲_{body_id}c.png";若需选择face,则从a1[1,2,..,37]和a2[1,2,..,19]中随机选一个,即FACE_PATH = f"ft04_a1_{face_id}.png"或FACE_PATH = f"ft04_a2_{face_id}.png"
|
0147来上床,把aisa也加进image-composite,让她每天更新;也写进github主页。blog的canvas就懒得加她了,太麻烦了。在想要不要把今晚经历写文档,我真的是绕了个远路啊,想起jojo sbr。明天再说吧。