pixelate

Image pixelation and color quantization core for PixelPoet.

moon add MYmodddd/pixelate@0.1.6
Download zip
Author
Version
0.1.6
License
Apache-2.0
Last updated
last month
Downloads
11
README

#PixelPoet (点豆成金) - 高级多模态拼豆全栈应用

PixelPoet 是一个功能强大、融合了多种 AI 能力与高级图像/3D 处理算法的全栈应用系统。本项目不仅支持 2D 图片的转换,更集成了语音识别、OCR、自然语言生成以及 2D 转 3D 技术,为您提供革命性的图纸自动生成体验。

#🎯 项目目标 (Project Goal)

PixelPoet 旨在为拼豆(Perler Beads)及创意像素画爱好者提供一个全自动的图纸设计与创意平台:
  1. 全自动像素化底稿生成:通过高性能算法将任意 2D 图像/3D 模型转换成最适合实体拼豆制作的低分辨率网格图纸。
  2. 精准用量与色号统计:生成拼豆底稿的同时,自动统计每种颜色所需要的拼豆颗粒数量,列出 Hex 颜色值并输出采购清单,指导物理拼装。
  3. 前沿 AI 创意辅助:结合大语言模型与多模态技术,将文字、语音、股票图表等各种输入源转化为独一无二的拼豆图纸,降低创作门槛。

#🎯 核心功能与四大模式 (Core Features & Modes)

本项目的前端部分(基于 Vue 3 + Three.js 构建)拥有四个独立且强大的工作模式:

  1. 🎙️ 文字心情 (Text to Mood Pixel)
    • 支持通过浏览器自带的语音识别 (Web Speech API) 直接说话输入您的心情。
    • 后端调用 MiniMax 大语言模型与生图接口,将您的文字情绪转化为意境深远的图片。
    • 自动分析生成图,提取主色调,并在前端呈现像素风拼豆底稿。

  2. 🖼️ 照片拼豆 (Photo to Perler)
    • 上传本地任意图片生成拼豆底稿,带坐标轴标注和色号清单。
    • 人像卡通化处理:接入了 Xais API(OpenAI 兼容),在转换前可选择将人像进行卡通化或 Q 版化 (Image-to-Image)。
    • 提供多种行业标准色板(MARD、COCO、漫漫等)和取色算法(主导色/平均色)供选择。

  3. 📈 股票配图 (Stock Yield OCR)
    • 允许用户拖拽上传股票或基金的日盈亏截图。
    • 前端通过 OCR 技术 (Tesseract.js) 自动识别收益数字,判断盈亏状态。
    • 从图库中自动为您搭配合适您当月盈亏心情的“梗图”或配图。

  4. 🧊 3D 体素拼豆 (3D Voxel Perler)
    • 支持上传 .obj, .glb 模型,利用定制的体素化引擎 (VoxelEngine) 进行实心切片。
    • 接入了 TripoSR,可通过 SSH 隧道远程 GPU 集群将单张 2D 照片一键生成 3D 模型
    • 支持前端实时 3D 旋转预览,并提供分层图纸浏览,一键导出为符合 3D 打印与拼接标准的 .3mf 格式。


#🏗️ 架构与技术栈 (Architecture & Tech Stack)

本项目采用模块化前后端分离及硬核底层算法库:

  • 前端 (Frontend):Vue 3 + Vite, Three.js (用于 3D 预览和体素化逻辑), Tesseract.js (OCR), jszip (数据导出)。
  • 网关后端 (Node.js Backend)
    • 框架:Express
    • 鉴权系统:内置完整的 SQLite 数据库与 bcrypt 密码加密,实现了用户注册/登录以及独立的管理员 (Admin) 角色与控制台功能
    • 外部集成与图像处理:代理 MiniMax、Xais 等生成式 AI 接口。后端中通过 wasm_loader.js 实现了原生的 WebAssembly 模块加载与直接调用,将图像的原始 RGBA 像素数据写入 WASM 共享内存中,并调用 MoonBit 导出的底层像素化及统计函数。

  • 底层算法核心 (MoonBit Core)
    • 并非简单的颜色量化!核心库使用了高级数学理论,包含了用于边缘检测与形状提取的霍夫变换 (Hough Transforms)
    • 构建了完整的矩阵库 (Matrix),并实现了快速傅里叶变换 (FFT/DCT) 用于高级频域图像滤波。
    • 支持矢量路径生成 (SVG path generation) 和高级抖动算法 (Dithering)。
    • 该核心算法可以通过 moon build --target wasm 成功编译为独立的 WebAssembly 模块(导出了 pixelatecount_beads 函数),并拥有完备的单元测试保护。


#🛠️ 安装与部署 (Installation & Setup)

运行本项目前,请确保您的系统已安装:
  • Node.js (v16 及以上) & npm
  • MoonBit CLI (用于编译 WebAssembly)
  • 注意:使用语音输入功能需在 Chrome/Edge 浏览器下运行并允许麦克风权限。

#1. 启动 Node.js 网关与数据库

cd node-backend npm install # 配置必需的环境变量(此处以 Windows PowerShell 为例) $env:MINIMAX_API_KEY="您的 MiniMax API 密钥" # 数据库会在首次启动时自动创建 npm start
服务默认运行在 http://localhost:3000

#2. 启动前端开发服务器

打开一个新的终端:
cd frontend npm install npm run dev
启动成功后,在浏览器中打开 http://localhost:5173 即可使用。

#3. MoonBit 核心编译与测试

您可以独立编译并测试底层 MoonBit 图像处理算法库:
cd moonbit-core # 编译为 WASM moon build --target wasm # 运行单元测试 moon test


#🧪 高级测试集 (Test Suite)

moonbit-core 的算法测试绝非简单的功能测试,而是包含了大量学术级的计算校验:

运行测试:
cd moonbit-core moon test

测试用例覆盖 (部分展示)
  • 数学与矩阵验证 (tests_extended.mbt)matrix_inverse_gauss_jordan_test(高斯-约旦消元法求逆)、matrix_lu_decomposition_test(LU 分解)、fft_1d_identityfft_2d_identitydct_2d_identity
  • 几何与形状检测 (tests_hough.mbt)hough_lines_basichough_circles_basic
  • 系统仿真与图像计算 (tests_simulation.mbt, tests_utils.mbt)simulation_pipeline_kmeanssimulation_pipeline_octree(Octree 色彩量化)、composite_source_over_semitransparent 等。


#💡 使用示例 (Examples)

#2D 像素拼豆图纸生成流程:

  1. 上传图片:在网页端选择“照片拼豆”模式,上传一张卡通头像或背景图片。
  2. 调整参数与量化
    • 设置网格缩放大小,实时在画布中查看拼豆阵列排布。
    • 选择您想匹配的拼豆色板(如 COCO 色板),系统会自动将上万种色彩匹配为常用拼豆色号。
  3. 查看用料清单:生成完成后,网页下方将渲染一份精密的用料统计清单,包含每个色块的 hex 色值以及所需的拼豆总粒数。

#3D 体素拼豆生成与分片:

  1. 2D 生成 3D:在“3D体素拼豆”模式上传一张平面照片,TripoSR 服务将自动重建出 3D mesh。
  2. 体素化与层级浏览
    • 三维模型会被 VoxelEngine 体素网格化,变成 3D 积木堆积状态。
    • 用户可拖动侧边栏滑块,从最底层到最顶层进行分层图纸浏览,直观展示每一层拼豆的排布,并一键导出 .3mf 文件进行 3D 打印或物理搭积木。