# 数字图像处理程序 **Repository Path**: hz-zq/image-processing-program ## Basic Information - **Project Name**: 数字图像处理程序 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-16 - **Last Updated**: 2026-03-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 数字图像处理程序 一个基于 NumPy + tkinter 的数字图像处理工具,提供 CLI 和 GUI 两种界面。 ## 功能特性 ### 通用功能 - 图像加载与保存(支持 PNG、JPG、BMP、TIFF 等格式) - 图像通道处理(合并/分割) - 图像裁剪 - 图像详细信息查看 - 多语言支持(中文/英文) - 完整的日志记录(基于 logging 库) ### GUI 特有功能 - 可视化界面操作 - 菜单和工具按钮 - 鼠标拖拽选择裁剪区域(带十字准星图标) - 裁剪前确认对话框 - 通道分割弹出子窗口 - 合并通道文件选择对话框 - 实时日志显示 - 图像重置功能 ## 安装 1. 创建并激活虚拟环境: ```bash python -m venv venv .\venv\Scripts\Activate.ps1 # Windows source venv/bin/activate # Linux/Mac ``` 2. 安装依赖: ```bash pip install -r requirements.txt ``` ## 使用方法 ### GUI 程序(推荐) ```bash python main_gui.py ``` #### 操作说明 **工具按钮:** - 打开图像 - 加载图像文件 - 保存图像 - 保存当前图像到文件 - 显示详情 - 查看图像的尺寸、数据类型等信息 - 裁剪图像 - 激活裁剪模式,在图像上拖动选择区域 - 分割通道 - 将彩色图像分割为 R/G/B 三个通道 - 重置图像 - 恢复到原始加载的图像状态 **裁剪功能:** 1. 点击"裁剪图像"按钮 2. 鼠标变为十字准星光标 3. 在图像上拖动选择裁剪区域 4. 松开鼠标后弹出确认对话框 5. 点击"是"确认裁剪,点击"否"取消 **分割通道:** 1. 加载彩色图像 2. 点击"分割通道"按钮 3. 弹出多个子窗口,分别显示 R/G/B 通道 4. 每个子窗口可保存该通道图像 **合并通道:** 1. 选择"文件" → "合并通道" 2. 点击"添加文件"选择多个单通道图像 3. 点击"合并通道"按钮 4. 合并后的图像显示在主窗口 **快捷键:** - Ctrl+O - 打开图像 - Ctrl+S - 保存图像 - Ctrl+I - 显示图像详情 - Ctrl+C - 裁剪图像 - Ctrl+D - 分割通道 ### CLI 程序 ```bash python main.py ``` #### 菜单选项 1. 载入原图 - 从硬盘载入彩色图像 2. 以灰度图载入原图 - 从硬盘载入灰度图像 3. 合并多个子图并载入 - 合并多个单通道图像为多通道图像 4. 显示当前载入图像细节 - 查看图像的 numpy 数组属性 5. 裁剪 - 裁剪当前图像 6. 保存当前图像 - 保存当前图像到硬盘 7. 分割当前图像到所有子通道并保存 - 分割多通道图像并保存各通道 0. 退出 - 退出程序 ## 项目结构 ``` . ├── main.py # CLI 应用程序入口 ├── main_gui.py # GUI 应用程序入口 ├── image_io.py # 图像输入输出 ├── image_channels.py # 图像通道处理 ├── image_transform.py # 图像转换 ├── image_utils.py # 工具函数 ├── config.py # 配置文件 ├── language.json # 多语言支持 ├── logger.py # 日志模块 ├── readme.md # 项目说明 ├── requirements.txt # Python 依赖 └── test_cli.py # CLI 功能测试 ``` ## API 说明 ### image_io.py ```python load_image(path, grayscale=False) # 载入图像 save_image(image, path) # 保存图像 ``` ### image_channels.py ```python split_image_channels(image) # 分割通道 merge_image_channels(channels) # 合并通道 ``` ### image_transform.py ```python crop_image(image, y1, y2, x1, x2) # 裁剪图像 ``` ### image_utils.py ```python get_image_details(image) # 获取图像详细信息 parse_crop_params(crop_str) # 解析裁剪参数 ``` ## 依赖 - numpy >= 2.0.0 - opencv-python-headless >= 4.0.0 - pillow >= 10.0.0 ## 个人信息 - 学号:202450200318 - 年级:2024 - 专业:智能科学与技术 - 班级:2班