# Herry-Painter **Repository Path**: x121318/herry-painter ## Basic Information - **Project Name**: Herry-Painter - **Description**: 杯贴 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-25 - **Last Updated**: 2026-06-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🎨 Herry Painter(喝茶画画) 一款基于 AI 的自动绘画工具,能够将图片智能转换为线稿并自动模拟鼠标绘制。专为杯贴/小卡片绘画场景设计。 ## ✨ 功能特性 ### 📷 图片线稿提取(4种算法) | 方法 | 说明 | |------|------| | **铅笔素描** | OpenCV 内置素描滤镜,效果自然柔和 | | **Canny 边缘检测** | 经典边缘检测算法,适合轮廓清晰的图片 | | **Anime2Sketch** | 深度学习模型(UNet),将照片转换为动漫风格线稿,效果最佳 | | **黑白线稿识别** | 二值化阈值处理 + 连通域分析,智能区分线条与填充区域 | ### 🔧 轮廓优化 - 骨架细化、回溯去除 - B 样条曲线平滑 - 抖动修正、点跳跃优化 ### 🖱️ 自动绘制(3种模式) | 模式 | 说明 | |------|------| | **短笔画** | 分段绘制,模拟短距离抬笔 | | **智能拖拽** | 连续拖拽,最小距离阈值控制 | | **仿手绘** | 模拟真人手绘:手抖效果、转角停顿、笔锋控制 | ### 🖼️ 交互工具 - 画布缩放预览(支持鼠标滚轮) - 双线合并工具(点击填充、点击连接、区域选择合并) - 画布标定(点击对角定位绘制区域) - 参数预设保存/加载 - 按 **Q** 键随时中断绘制 ## 🚀 快速开始 ### 环境要求 - **操作系统:** Windows 10/11 - **Python:** 3.10+ ### 安装方式 #### 方式一:一键安装(推荐) ```bash # 双击运行 setup_env.bat 自动创建虚拟环境并安装依赖 setup_env.bat ``` #### 方式二:手动安装 ```bash # 使用 pip pip install -r requirements.txt # 或使用 conda conda env create -f environment.yml conda activate heytea_env ``` #### 方式三:GPU 加速(可选) 如果需要使用 GPU 加速 Anime2Sketch 模型推理,请先安装 CUDA 版本的 PyTorch: ```bash pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121 ``` ### 下载模型文件 Anime2Sketch 模型文件(`netG.pth`,约 218MB)未包含在仓库中,需单独下载: 将模型文件放置到 `models/netG.pth` 路径下。 ### 启动应用 ```bash # 双击 start.bat 或手动运行 python heytea_modern.py ``` ## 📁 项目结构 ``` Herry-Painter/ ├── heytea_modern.py # 主程序(Modern UI 版本) ├── main.py # 旧版程序(经典 tkinter UI) ├── modules/ │ ├── image_processor.py # 图片处理:4种提取算法 + UNet 模型 │ ├── drawing_engine.py # 绘制引擎:画布标定 + 3种绘制模式 │ ├── contour_optimizer.py # 轮廓优化:细化、去回溯、平滑 │ └── smart_resize.py # 智能缩放:多级缩放算法 ├── models/ │ └── netG.pth # Anime2Sketch 预训练权重(需单独下载) ├── fonts/ # GUI 字体文件 ├── images/ # 示例图片 ├── heytea_presets.json # 参数预设配置 ├── requirements.txt # pip 依赖 ├── environment.yml # conda 环境配置 ├── setup_env.bat # 环境安装脚本 └── start.bat # 启动脚本 ``` ## 🛠️ 技术栈 - **GUI:** CustomTkinter(深色主题) - **图像处理:** OpenCV、Pillow、NumPy、SciPy - **AI 模型:** PyTorch(Anime2Sketch UNet) - **自动化:** pydirectinput、pynput、keyboard ## 📋 使用流程 1. **启动应用** → 点击「选择图片」加载本地图片 2. **选择提取方法** → 推荐使用 Anime2Sketch(效果最佳) 3. **调整参数** → 通过滑块调节阈值、平滑度等 4. **预览线稿** → 在右侧面板查看提取效果,支持缩放 5. **合并双线**(可选)→ 使用交互工具手动优化 6. **标定画布** → 点击目标绘制区域的左上角和右下角 7. **开始绘制** → 选择绘制模式,点击「开始绘制」 8. 按 **Q** 键可随时停止 ## 📄 License MIT License