[发布]图像转化像素图半色调(抖动)程序
wplace吧
全部回复
仅看楼主
level 1
红豆あき 楼主
本程序用于将图片转换为wplace插件可用的像素画。
由于插件Blue Marble的半色调(抖动)方法在分辨率较低的情况下,并不能满足所有人的要求(包括我)。因此我写了这个程序来自行半色调转换图片,包括有序抖动法与误差扩散法两种方法。
本人不是专业开发者,只是业余时间写了这么一个小程序,所以可能会有各种不足之处,请多多见谅。
下载链接:https://github.com/rutingshuang/Dithering Release GUI · rutingshuang/Dithering
2025年09月21日 09点09分 1
level 1
红豆あき 楼主
有序抖动
先前已经开了一帖介绍各种阈值矩阵下的有序抖动效果,这里就简单介绍一下。
有序抖动的原理是图片中的每一个像素按规律进行不同幅度的色彩抖动,使其偏离原先的色彩值,再进行投射。从而形成规律的明——暗纹理,使得离散的像素图更接近连续彩色图的效果。
不同的阈值矩阵会带来不同的纹理效果,大致上可以分为离散和聚合两类,离散的阈值矩阵的亮点均匀分布在矩阵中,而聚合矩阵则聚集在同一地点。
然而,其缺点在于,由于其算法本身并不会对根据色差改进行为,因此并不能期望其与原色完全一致,而只是使用调色盘对原色进行拟合的一种尝试。与此同时,在平滑区域有时也会形成不必要的纹理(例如白底)。
为了进一步满足降低色差的需求,我试着将色彩空间转换到了HSV空间(关于HSV有关的知识可以自行搜索百度百科)进行抖动。
这里借用一下@飞鸽摸无网 的例子
左图为RGB空间转换的结果,而右图为HSV空间转换的结果(权重weight1:2:1)。可以看到,RGB空间抖动表现的细节更加细腻,而HSV空间可以根据需要,强调所需要的色彩分量,得到的结果可以用作调色参考。
2025年09月21日 09点09分 3
原本的二楼被抽掉了,前排提一嘴,点进1楼的链接之后找右边的release下载,或者直接从6楼补档链接下载
2025年09月21日 12点09分
level 1
红豆あき 楼主
误差扩散
误差扩散的原理是将当前点的误差由自己周围的点来承担,具体来讲,以FS方法为例,其将当前的点误差以如下比例分配给右、下的像素。
目前而言,误差扩散法是将图像半色调最好的方法,Blue Marble使用的也是这种方法。不过,部分人可能不太能接受低分辨率下的抖动带来的刺眼像素点,愿意牺牲一部分的色彩拟合度,来换取噪点的平滑。
我在误差扩散中添加了一个强度参数来让缓和其误差传递的效果,效果如图所示。
2025年09月21日 09点09分 4
level 1
红豆あき 楼主
总结/注意事项
a) Release GUI· rutingshuang/Dithering下载GUI.rar,解压运行GUI.exe。
b) 跟着GUI界面选择图片比例颜色抖动方法
c) 因为是python写的便宜程序,计算起会比较慢,计算完成之前试图操作程序会进入无响应状态,以我的电脑为例,十万像素级别的计算需要半分钟左右。如果使用HSV(因为读进来的是RGB格式需要先转换空间)和误差扩散方法需要更久时间。五十万以上像素建议直接使用BlueMarble自带的抖动,效果已经很好了。
d) 有序抖动只推荐RGB空间的Bayer矩阵,强度推荐64。不过也可以尽管尝试。
e) 有序抖动HSV空间只推荐用于局部上色效果不佳/噪点明显时参考修改。
f) 如果不想进行抖动直接投射,可以用误差扩散法然后把强度拉到0;更加推荐直接使用BlueMarble。
g) 以4*3为例,宽度64像素以下建议直接投射,宽度100-400建议用有序抖动,宽度500以上误差扩散法的效果非常不错。
h) 源码发布在https://github.com/rutingshuang/Dithering/tree/v1.0 Issues ·rutingshuang/Dithering,另外我没写readme.md和requirement.txt(日后再补)
i) 祝各位作画愉快。
2025年09月21日 09点09分 5
level 1
红豆あき 楼主
(被度娘吞了,补一下发布地址)
进入https://github.com/rutingshuang/Dithering/releases/tag/v1.0 Release GUI· rutingshuang/Dithering下载GUI.rar(其他的是源码文件,不用管)
打开有save,GUI.exe,palette.txt,三个文件,其中palette.txt是调色盘,打开GUI就能进入UI界面
(便宜UI,正好和便宜程序配合)
上传文件、压缩分辨率、选择颜色如UI所示操作。
2025年09月21日 10点09分 6
level 10
好东西应该加精
2025年09月21日 11点09分 7
level 3
好东西应该加精
2025年09月21日 12点09分 8
level 2
十分感谢![真棒]
2025年09月21日 15点09分 9
level 1
红豆あき 楼主
@矢田寺成美
吧主能来个加精吗[吐舌]
2025年09月22日 13点09分 10
level 1
win11闪退,打开选择图片后闪退了....没有找到日志哪里看
2025年09月24日 03点09分 11
[啊]图片方便发一下吗?我试试复现。确实没有写生成问题日志的程序,不太好判断是什么情况。另外如果需要的话可以把转换要求发一下,问题解决了我顺便帮你转好。
2025年09月24日 04点09分
@红豆あき [乖]没保存图,晚点我重新下个换张图片试试,win11 24H2,图片格式.jpg,拖动到软件上传框后没反应,点击一下标题栏未响应,然后软件就无了,打开图片的话也是一样,在闪退前会有未响应3个字,兼容模式,管理员均不行,无其他软件,只有卡巴挂后台
2025年09月24日 12点09分
@天朝第一萝莉啦 听你的描述有可能是图片像素太大,我没有单独给加载图片/处理图片写子线程而是直接放在PyQt里面运行,导致处理过程中程序无响应。如果是这种原因,试着稍微多等一会。如果有能力的话,可以用命令行cd切换到你所在的文件夹然后输入 GUI.exe。这样如果退出会出现报错是否是打包问题
2025年09月24日 15点09分
level 1
巧了,一周前我也写了个拜耳抖动的,可调阈值矩阵和抖动强度,不过转成了lab颜色,距离是算平方和
2025年09月28日 06点09分 12
1