Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MagicEye Studio

一个把图片 / PNG 序列 / 视频转换为 MagicEye 立体视错觉图(Autostereogram) 的桌面工具,UI 借鉴 X (Twitter) 的暗色极简风。

preview

功能

  • 导入 单张图片PNG 序列文件夹、或 视频文件 (mp4 / mov / avi…)
  • AI 深度估计 (MiDaS-small ONNX) —— 普通彩色照片一键转深度图,立刻可用作魔眼源。
  • 实时调节 深度强度 / 平滑 / 反转 / 图样宽度 / 图样类型
  • 内置图样:彩色随机点、柔和马卡龙、黑白随机点、几何方块、自定义贴图。
  • 「源图 / 深度图」一键切换查看,方便调整效果。
  • 转换完成后 直接在程序里预览,序列/视频可 播放动画
  • 一键 导出 单张 PNG、PNG 序列、或合成 MP4。

安装

python -m venv .venv
.venv\Scripts\activate            # Windows PowerShell
pip install -r requirements.txt

numba 是可选加速依赖,没装也能运行(速度会慢一些)。

运行

python main.py

关于「魔眼图」

MagicEye 图实际上是 Autostereogram(自动立体图),原理:

  1. 把输入图片当成 深度图(亮 = 近,暗 = 远,或反之)。
  2. 用一段重复的随机图样填充画面,水平错位距离 = 深度 决定的视差。
  3. 双眼放松对焦穿透画面时,大脑会还原 3D 形状。

观看技巧:盯着屏幕中心,让眼睛逐渐放松、像看远处一样,不要追焦像素,几秒后立体形状会浮现。

AI 深度估计

普通照片直接当深度图效果不佳,因为亮度并不等于距离。本程序内置三档可选模型:

模型 体积 CPU 单帧 细节 适用
MiDaS Small (v2.1) 67 MB ~0.3 s 一团朦胧 快速预览、批量动画
Depth Anything V2 Small(默认) 99 MB ~0.8 s 能识别五官、发丝 推荐
Depth Anything V2 Base 389 MB ~5–10 s 最锐利 单张精修

工作机制:

  • 模型在「深度」面板的下拉菜单里切换,第一次使用时自动从 GitHub Releases / HuggingFace 下载到 ~/.cache/magiceye/,进度条同步显示。
  • DAv2 走 保持长宽比 的预处理(短边 = 518,贴齐 14 倍),细节远胜方形拉伸。
  • 估计出的深度按帧缓存:调节图样、强度、平滑等参数 不会重复推理
  • 「查看深度」按钮可一键切到深度视图,直观判断模型识别效果。
  • 想换模型?只切换下拉菜单即可,缓存会自动失效重算。

算法

核心采用 Thimbleby–Inglis–Witten autostereogram 算法(行内链表回溯):

shift = pattern_w * (1 - amp * depth[y, x])
out[y, x] = out[y, x - shift]   if x >= shift
out[y, x] = pattern[y % ph, x % pw]  otherwise

为了实时预览,使用 numba @njit(parallel=True) 把外层按行并行;没有 numba 时退化为纯 NumPy 版本。

About

Convert images, PNG sequences and videos into MagicEye autostereograms. AI depth via MiDaS / Depth Anything V2. PySide6 UI inspired by X.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages