欢迎使用图像打码工具!本工具旨在帮助您方便快捷地为图像中的特定区域添加马赛克效果。它支持多种打码方式,并提供了完整模式和迷你模式以适应不同使用场景。
本工具利用图像识别技术自动检测图像中的敏感区域,并允许用户选择不同的马赛克效果进行处理。主要功能包括:
- 多种马赛克效果:常规模糊、黑色线条、白色雾气、光效马赛克、自定义图像贴图。
- 参数可调:多数马赛克效果的参数(如强度、大小、颜色、方向等)均可调整。
- 区域可选:可根据模型识别出的区域名称选择性打码。
- 单图/批量处理:支持处理单张图片或指定文件夹内的所有图片。
- 实时预览:在完整模式下,可以实时预览打码效果。
- 迷你模式:提供一个简洁的小窗口,支持拖放图片快速打码并自动复制到剪贴板。
- 操作系统:Windows (推荐,剪贴板功能最完善), macOS, Linux。
- 依赖库:程序打包版已包含所有依赖。若从源码运行,请确保已安装 tkinter, ttkbootstrap, Pillow, opencv-python, ultralytics, imagecodecs, numpy, tkinterdnd2, requests, beautifulsoup4, pywin32 (Windows), pyperclip。
- 模型文件:程序需要 models/model.pt 模型文件来进行目标检测。
- 资源文件:默认自定义贴图位于 assets/head.png。
完整模式提供了程序的所有功能和详细配置选项。
启动程序后,默认进入完整模式。界面主要分为左侧的“控制面板”和右侧的“图像预览区”。
- 控制面板:用于选择文件、调整参数、选择打码方式和区域、执行处理等。
- 图像预览区:左侧显示原图,右侧显示处理后的效果预览。
- 状态栏:位于底部,显示当前操作状态和进度。
- 菜单栏:顶部菜单栏提供模式切换等选项。
- 点击控制面板顶部的“选择图片/文件夹”按钮。
- 在弹出的对话框中选择“图片文件”处理单张图片,或选择“文件夹”处理该文件夹下的所有支持格式的图片。
- 选择后,文件/文件夹路径会显示在输入框中。
- 如果选择的是单个图片文件,原图会加载到预览区,同时程序会开始分析图像中的可打码区域。
- 如果选择的是文件夹,预览区会清空,准备进行批量处理。
在“模型参数”区域,您可以调整目标检测的参数:
- 置信度阈值:模型识别目标的置信度下限,值越高则识别越严格(可能漏识别),值越低则识别越宽松(可能误识别)。拖动滑块调整,右侧显示当前值。
- IOU阈值:用于非极大值抑制(NMS)的交并比阈值,用于合并重叠的检测框。
调整这些参数后,如果当前已加载图片,程序会自动重新分析图像并更新“选择打码区域”列表和预览。
在“选择打码方式”区域,您可以选择一种马赛克效果:
- 常规模糊:
- 通用参数:区域缩放、透明度。
- 模糊参数:模糊大小(内核大小,值越大越模糊)。
- 黑色线条:
- 通用参数:区域缩放、透明度。
- 线条参数:方向(水平、垂直、斜线)、线条粗细、线条间距。
- 白色雾气:
- 通用参数:区域缩放、透明度(雾气强度)。
- 雾气参数:雾气颜色(默认为白色,可点击“选择颜色”按钮更改)。
- 光效马赛克:
- 通用参数:区域缩放。
- 光效参数:光强度、羽化边缘、光颜色。
- 自定义图像:
- 通用参数:区域缩放、透明度。
- 点击“选择自定义贴图”按钮选择一个本地图片文件(推荐使用带透明背景的PNG图片)作为马赛克图案。默认为程序自带的图案。
每种方式下方都有其专属的参数调节滑块或按钮。调整参数后,如果当前已加载图片,右侧的效果预览会自动更新。
当加载单张图片后,程序会自动分析图中可识别的目标,并在“选择打码区域”列表中显示出来。
- 勾选您希望打码的区域名称。
- 可以使用顶部的“全选/取消全选”复选框快速操作。
- 选择变化后,效果预览会自动更新。
- 如果选择的是文件夹进行批量处理,这里会显示所有预定义的敏感区域标签,您可以预先选择希望在批量处理中打码的区域类型。
- 确保已选择图片,并调整好所有参数和打码区域。
- 点击控制面板底部的“处理当前图片”按钮。
- 处理完成后,程序会弹窗询问是否保存处理后的图片。
- 点击“是”,会弹出文件保存对话框,您可以选择保存位置和文件名。
- 通过“选择图片/文件夹”按钮选择一个包含多张图片的文件夹。
- 在“选择打码方式”和“选择打码区域”中设置好您希望应用到所有图片上的参数和区域类型。
- 点击控制面板底部的“选择输出文件夹”按钮,指定批量处理后图片的保存位置。
- 点击“批量处理”按钮。
- 程序将开始逐个处理文件夹中的图片,并在状态栏显示进度。处理过程中,预览区会显示当前正在处理的图片及其效果。
- 完成后会有提示。
迷你模式提供了一个简洁、置顶的小窗口,方便快速拖放图片进行打码。
- 自动进入:当程序主窗口从最大化状态变为非最大化状态时,可能会自动切换到迷你模式(此行为可能因操作系统而异)。
- 手动切换:
- 点击主窗口顶部菜单栏的“模式” -> “切换到迷你模式”。
- 在迷你模式下,可以通过再次点击菜单栏(如果可见)或关闭迷你窗口后重新打开程序回到完整模式,或者在完整模式下通过菜单栏的“模式” -> “切换到完整模式”。
迷你模式窗口非常简洁:
- 打码方式下拉框:选择希望应用的打码方式。这里的参数将使用默认值或完整模式下最后设定的值。
- 窗口置顶复选框:勾选后,迷你窗口将保持在其他所有窗口的最前端。
- 拖放区域:一个提示“拖放图片到此处”的区域。
- 在迷你模式下,从您的文件管理器或浏览器中将图片文件、图片链接(URL)或包含图片的HTML片段(如直接从网页上拖动一张图片)拖拽到“拖放图片到此处”区域。
- 程序会自动解析拖入的内容:
- 本地图片文件:直接使用选定的打码方式处理。
- Base64编码的图片 (通常来自浏览器直接拖动图片):程序会尝试解码并处理。
- 图片链接 (URL):程序会尝试从该链接下载图片。如果下载成功,则进行处理;如果下载失败(如链接无效、网络问题、非图片内容),则会提示错误。
- 处理成功后:
- 打码后的图片会自动复制到您的系统剪贴板。
- 会弹出一个短暂的成功提示信息,然后自动关闭。
- 您可以直接到其他应用程序(如聊天软件、文档编辑器)中粘贴 (Ctrl+V 或 Cmd+V) 打码后的图片。
- 如果处理过程中发生错误(如无法识别拖放内容、图片处理失败、下载失败等),会弹出错误提示框,需要您手动关闭。
- 拖放无效/程序无响应:
- 确保您已正确安装程序所需的所有依赖库,特别是 tkinterdnd2 (用于拖放) 和 requests (用于下载URL图片)。
- 尝试以管理员权限运行程序(尽管通常不需要)。
- 图片处理失败/NUMPY_DECODE错误:
- 这通常发生在打包后的程序中,可能是因为 imagecodecs 库的某些解码器未能正确打包。如果遇到此问题,请尝试使用最新提供的打包配置。
- 确保图片文件本身未损坏且格式受支持 (如 PNG, JPG, BMP, WEBP)。
- 模型加载失败:
- 确保 models 文件夹及其中的 .pt 模型文件与主程序在正确的相对路径下。
- 自定义贴图不显示:
- 确保您选择的自定义贴图文件路径正确,且图片格式受支持。推荐使用带透明背景的PNG图片。
- 剪贴板复制失败:
- 在Windows上,此功能依赖 pywin32。在其他系统上,直接复制图片到剪贴板的功能可能受限。
- 如果直接复制图片失败,程序会尝试将处理后的图片保存到临时目录,并将该文件的路径复制到剪贴板(如果 pyperclip 可用)。
- 打包程序:如果您希望自行打包,请参考提供的 Python 应用打包指南 (使用 PyInstaller).md 文档,并特别注意 datas 和 hiddenimports 的配置,尤其是 imagecodecs、ultralytics 和 tkinterdnd2 的相关依赖。
希望本指南能帮助您更好地使用图像打码工具!