# image_processing_desktop_app_todo **Repository Path**: li-kun-zhe/image_processing_desktop_app_todo ## Basic Information - **Project Name**: image_processing_desktop_app_todo - **Description**: 数字图像处理课图像处理基础的作业 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 180 - **Created**: 2025-04-07 - **Last Updated**: 2025-04-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Image Processor - Image Processor 是一个用于处理图像的 Python 应用程序。它提供了一系列的图像处理功能,包括打开原始图像,打开灰度图像,合并通道,保存当前图像,措膜处理等。 ## 代码效果视频: 图像处理APP(基础处理) 链接:https://lusun.com/v/WEVdJLzEKFG ## 文件结构 - `main.py`: 应用程序的主入口文件。 - `image_io.py`: 处理图像输入输出的相关代码。 - `image_channels.py`: 处理图像通道的相关代码。 - `image_transform.py`: 处理图像转换的相关代码。 - `image_utils.py`: 图像处理的工具函数。 - `language.json`: 应用程序的多语言支持文件。 - `config.py`: 配置文件。 - `README.md`: 项目的说明文件。 - `tests/`: 包含所有测试图片文件 - `dog.jpg` RGB图 - `dog_gray.jpg` 单通道灰度图 - `dog_0.jpg`,`dog_1.jpg`,`dog_2.jpg` R,G,B通道单通道灰度图 ## 环境需求 本项目需要在Python 3.x环境下运行,并需要安装以下库: - tkinter (通常包含在Python标准库中) - Pillow (PIL) - numpy - scikit-image (skimage) 可以使用以下命令确保在运行项目之前已经安装了所有必需的库。 ```bash pip install pillow numpy scikit-image ``` ## 如何运行 ```bash python main.py ``` ## 功能说明 1. **打开原图**: 选择并加载一张原始图像。 2. **打开灰度图**: 将原始图像转换为灰度图并加载。 3. **合并通道**: 选择多个单通道图像并合并为一个多通道图像。 4. **保存图像**: 将当前显示的图像保存到本地。 5. **裁剪图像**: 在图像上绘制矩形框并裁剪选定区域。 - 支持拖动绘制裁剪区域 - 自动检测最小裁剪区域(5像素) - 支持取消裁剪操作 6. **重置图像**: 将当前图像重置为原始状态。 7. **分割通道**: 将多通道图像分割为多个单通道图像并分别显示。 - 每个通道都有独立的保存功能 8. **图像亮度调节**: 通过滑动条调节图像亮度。 - 支持 0-200% 的亮度范围 - 提供实时预览效果 - 可以取消或应用调节结果 9. **全局阈值处理**: 对灰度图像进行阈值处理。 - 支持 0-255 的阈值范围 - 实时预览二值化效果 - 只能在灰度图上使用 10. **移动差分边缘检测**: 通过图像平移进行边缘检测。 - 支持左右移动(-3到3像素) - 自动处理边界补全 - 只能在灰度图上使用 11. **颜色掩膜生成**: 生成指定颜色通道的遮罩图像。 - 支持红、绿、蓝三个颜色通道 - 保留原图指定颜色通道数据,其他通道置零 - 只能在彩色图上使用 - 支持预览和保存掩膜图像 12. **掩膜运算**: 支持多种掩膜运算操作。 - 与运算:将掩膜图像与原图进行按位与运算 - 反色操作:对图像进行反色处理(255 - 原像素值) 13. **多语言支持**: 支持中文和英文界面切换。 - 动态切换所有界面文本 - 切换后自动重启应用程序 ## 项目中的 `#TODO` 对应**Numpy图像处理基础**部分课程内容,在以下函数中对应有 `#TODO` 的内容需要完成 - `main.py` - `show_image_details` 获取图像Numpy数组的基本属性 - `create_color_mask` 根据指定颜色生成二值掩膜 - `apply_mask_and` 应用掩膜的与运算 - `apply_not` 应用非运算(反色) - `image_io.py` - `save_image` 把Numpy数组图像保存到硬盘 - `load_image` 从硬盘载入图像到Numpy数组中 - `image_transform.py` - `crop_image` 对图像Numpy数组切片实现裁剪功能 - `image_channels.py` - `merge_image_channels` 合并多通道子图 - `split_image_channels` 拆分多通道图的所有子图 ## 个人信息 - 学号: 202352320206 - 年级: 2023 - 专业: 智能科学与技术 - 班级: 2 班