项目

这里放了一些我手头的项目,当然,也会包含一些已经停止运行的。

Windows for Minecraft Server System - WMS - 永久休眠

于5/1/2020开始,期间事故不断。

WMS是一个为Minecraft服务器定制的一款由Windows Server 2019魔改的一个Windows Server版本

本来是为了给Minecraft-JE-Server-Setup-Guide 我的世界Java版服务器配置指南准备的

但是项目进度过于缓慢,以及几乎没有什么需求则放弃了。

8bits Style - 运行中

用于将视频变为8bit风格。
是一款小型程式,是给Chen用的。本来打算使用GoLang或C语言开发,不过由于矩阵是在过于困难,遂使用Python的CV库进行操作 https://github.com/Ziyang-Bai/8bs

程序主要有三个步骤

  1. 像素化(pixelate
    • 首先将帧缩小到一个较小的尺寸,然后再放大回原来的尺寸,从而产生像素化的效果。
    • 使用 插值算法 来进行图像缩放:
      • 最近邻插值 (Nearest-neighbor interpolation):在 pixelate 函数中用于缩小和放大图像。这种方法选择距离目标像素最近的原始像素值,计算开销低,但会产生明显的像素化效果。
      • 线性插值 (Linear interpolation):在 quantize_colors 中用于缩放图像,计算每个新像素的值时考虑了周围像素的权重,这种插值方法较平滑。
  2. 颜色量化(quantize_colors
    • 使用 cv2.pyrMeanShiftFiltering 减少帧中的颜色数量。为了加快处理速度,先将帧缩小,处理后再放大回原始尺寸。
    • quantize_colors 函数中使用了 pyrMeanShiftFiltering,这是基于均值迁移的颜色空间滤波方法。均值迁移是一种迭代的非参数化聚类算法,用来平滑图像中的颜色区域。
      • 颜色量化的目的是减少图像中的颜色数量,同时尽量保持视觉效果。这实际上涉及聚类算法,将颜色聚集成更少的代表性颜色。
        • 在程序中没有使用传统的K-Means聚类算法,而是使用了均值迁移方法来实现颜色量化。通过聚类不同颜色,使它们收敛到较折叠内容少的颜色中心点上。
  3. 视频读取和写入
    • 代码逐帧读取视频文件 (input.mp4),对每一帧进行处理,然后将处理后的帧写入新的视频文件 (output_video_8bit.mp4)。
    • 代码还计算剩余处理时间,每处理100帧打印一次进度信息

ip-gadget - 运行中

一个用于显示IP相关信息的PHP组件。该项目基于另一个项目进行了修改,改变了背景、字体、文字位置和查询功能。需要 PHP 7.2 版本,安装方法是将源代码放置在服务器目录中。项目采用 MIT 许可开源。
https://github.com/Ziyang-Bai/ip-gadget

adoos - 运行中

一个用于将MP3文件转换为波形视频的程序

生成波形图像:
generate_waveform 函数:
创建一个目录来保存生成的波形图像。
读取音频文件并将其转换为 numpy 数组。
处理立体声音频,转换为单声道。
归一化音频数据以确保其在合理范围内。
根据视频帧率计算所需的帧数,并逐帧生成波形图像。
使用进度条显示生成过程的进度。

创建波形视频:
create_waveform_video 函数:
加载音频文件并获取其时长。
调用 generate_waveform 函数生成波形图像。
使用 moviepy 将生成的图像序列合成视频,并将音频与视频同步。
输出最终的视频文件。
https://github.com/Ziyang-Bai/ip-gadget