# dip_2425s1_assignment2_question **Repository Path**: jade-jumper-tech/dip_2425s1_assignment2_question ## Basic Information - **Project Name**: dip_2425s1_assignment2_question - **Description**: 这是一个基于 Python 的数字图像处理实验项目,主要实现了多种图像处理效果,包括通道分离、特效处理和图像合成等功能。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 110 - **Created**: 2025-10-12 - **Last Updated**: 2025-10-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 图像处理学习项目 这是一个用于学习图像处理和颜色通道操作的Jupyter Notebook项目,通过实际操作理解数字图像的基本概念和颜色通道的工作原理。 ## 项目概述 本项目包含一系列逐步深入的图像处理练习,从基础的像素操作到复杂的颜色通道控制,帮助初学者理解数字图像的构成和基本的图像处理技术。 ## 文件结构 ``` . ├── Untitled.ipynb # 主要的Jupyter Notebook文件 ├── extracted_code.py # 从notebook提取的代码(可选) ├── x.jpg # 示例图像文件1 ├── galaxy-full.jpg # 示例图像文件2 ├── earth.jpg # 示例图像文件3 └── README.md # 项目说明文档 ``` ## 环境要求 ### 必需库 ```bash pip install scikit-image matplotlib ``` ### Python库依赖 - `scikit-image` - 用于图像读取和处理 - `matplotlib` - 用于图像显示和可视化 ## 代码示例详解 ### 1. 基础图像操作 #### 单元格1:上半部分红色通道 ```python # 将图像上半部分的红色通道设置为255(白色) for i in range(w): for j in range(h // 2): img[j, i][0] = 255 ``` #### 单元格2:左半部分红色通道 ```python # 将图像左半部分的红色通道设置为255 for i in range(w // 2): for j in range(h): img[j, i][0] = 255 ``` ### 2. 区域选择操作 #### 单元格3:左上四分之一区域 ```python # 操作图像左上四分之一区域 for i in range(w//2): for j in range(h//2): img[j, i][0] = 255 ``` #### 单元格4:特定小区域操作 ```python # 在图像的特定小区域(3-6行,3-6列)进行操作 for i in range(3,7): for j in range(3,7): img[j, i][0] = 255 ``` ### 3. 颜色通道实验 #### 单元格5:创建绿色方块 ```python # 在8x8区域创建纯绿色效果 for i in range(1,9): for j in range(1,9): img[j, i][1] = 255 # 绿色通道 img[j, i][2] = 0 # 蓝色通道 ``` #### 单元格6-8:单通道效果 分别移除绿色、红色、蓝色通道,观察单色效果: ```python # 只保留红色通道(移除绿色和蓝色) img[j, i][1] = 0 # 绿色通道设为0 img[j, i][2] = 0 # 蓝色通道设为0 ``` ### 4. 创意效果 #### 单元格9:彩色条纹 ```python # 创建垂直彩色条纹效果 for i in range(w): for j in range(h): if i % 3 == 0: img[j, i][0] = 255 # 红色条纹 elif i % 3 == 1: img[j, i][1] = 255 # 绿色条纹 else: img[j, i][2] = 255 # 蓝色条纹 ``` ## 学习目标 通过本项目的练习,您将学会: 1. **图像基础** - 读取和显示图像 - 理解图像尺寸和通道概念 - 访问和修改单个像素 2. **颜色通道操作** - RGB颜色模型的理解 - 单独控制红、绿、蓝通道 - 创建特定的颜色效果 3. **区域选择** - 操作图像的特定区域 - 使用循环遍历像素 - 理解图像坐标系 4. **创意应用** - 结合编程逻辑创建视觉效果 - 开发自定义的图像过滤器 ## 使用方法 1. 确保所有依赖库已安装 2. 准备测试图像文件(x.jpg, galaxy-full.jpg, earth.jpg) 3. 打开Jupyter Notebook: ```bash jupyter notebook Untitled.ipynb ``` 4. 按顺序运行每个单元格,观察图像变化 ## 图像文件说明 - `x.jpg` - 用于基础操作练习的图像 - `galaxy-full.jpg` - 用于单通道效果实验的图像 - `earth.jpg` - 用于创意效果制作的图像 ## 扩展练习建议 1. 尝试创建水平条纹效果 2. 实现简单的图像滤镜(如怀旧效果) 3. 添加用户交互来选择操作区域 4. 尝试其他颜色空间(如HSV) 5. 创建自定义的颜色混合效果 ## 注意事项 - 确保图像文件存在于正确路径 - 操作前建议备份原始图像 - 不同的图像尺寸可能需要调整循环参数 - 某些操作可能会永久修改图像数据 ## 技术要点 - 使用`skimage.io.imread()`读取图像 - 图像数据格式为NumPy数组 - 通道顺序为RGB(红、绿、蓝) - 像素访问方式:`img[行, 列][通道]` 这个项目适合图像处理初学者,通过实践操作深入理解数字图像的基本概念和简单的图像处理技术。