# dip_2425s1_assignment2_question **Repository Path**: long-breeze/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 <<<<<<< HEAD # 📸 数字图像处理实验:图像基础操作与像素处理 ## 📋 实验概述 本实验通过 Python 实现了多种图像基础处理技术,主要涉及像素级操作、颜色通道分离与区域处理,涵盖了图像处理的多个基础概念。 ## 🛠️ 环境要求 ### **编程环境** - Python 3.7+ - Jupyter Lab / Jupyter Notebook ### **必需库** ```bash pip install scikit-image matplotlib numpy ``` ### **主要依赖库** - `scikit-image` - 图像读取和处理 - `matplotlib` - 图像显示和可视化 - `numpy` - 数组操作(隐式使用) ## 📁 文件说明 | 文件名称 | 用途描述 | |----------|----------| | `Untitled.ipynb` | 主要实验代码文件 | | `x.jpg` | 基础测试图像(用于实验1-5) | | `galaxy-full.jpg` | 星系测试图像(用于实验6-8) | | `earth.jpg` | 地球测试图像(用于实验9) | ## 🔬 代码示例详细说明 ### **实验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 ``` ### **实验3:图像左上四分之一红色处理** ```python # 功能:将图像左上四分之一区域的红色通道值设为255 # 技术点:二维区域选择 for i in range(w//2): for j in range(h//2): img[j, i][0] = 255 ``` ### **实验4:小区域像素处理(3×3区域)** ```python # 功能:处理图像中(3,3)到(6,6)的小区域 # 技术点:精确坐标范围控制 for i in range(3,7): for j in range(3,7): img[j, i][0] = 255 ``` ### **实验5:指定区域颜色变换** ```python # 功能:将(1,1)到(8,8)区域变为绿色(红色通道0,绿色通道255,蓝色通道0) # 技术点:多通道同时操作 for i in range(1,9): for j in range(1,9): img[j, i][1] = 255 # 绿色通道最大 img[j, i][2] = 0 # 蓝色通道为0 ``` ### **实验6-8:星系图像单通道分离** #### **实验6:红色通道分离** ```python # 功能:只保留红色通道,关闭绿色和蓝色通道 img[j, i][1] = 0 # 关闭绿色 img[j, i][2] = 0 # 关闭蓝色 ``` #### **实验7:绿色通道分离** ```python # 功能:只保留绿色通道 img[j, i][0] = 0 # 关闭红色 img[j, i][2] = 0 # 关闭蓝色 ``` #### **实验8:蓝色通道分离** ```python # 功能:只保留蓝色通道 img[j, i][0] = 0 # 关闭红色 img[j, i][1] = 0 # 关闭绿色 ``` ### **实验9:地球图像条纹效果** ```python # 功能:创建垂直条纹效果,每3个像素循环红、绿、蓝色 # 技术点:模运算、周期性模式 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. **准备环境** ```bash pip install scikit-image matplotlib ``` 2. **运行实验** - 打开 Jupyter Lab - 运行 `Untitled.ipynb` 文件 - 按顺序执行每个代码单元格 3. **查看结果** - 每个单元格会显示处理后的图像 - 观察不同处理效果的变化 ## 💡 学习要点 ### **核心概念** - **图像表示**:图像作为三维数组(高度×宽度×通道) - **颜色通道**:RGB色彩模型(红、绿、蓝) - **像素操作**:直接修改像素值实现各种效果 ### **技术技能** - 图像读取和显示 - 像素级遍历和操作 - 区域选择和掩码操作 - 颜色通道分离与合并 - 图像坐标系统理解 ### **编程技巧** - 嵌套循环处理二维数据 - 条件判断实现复杂模式 - 模块化图像处理流程 ## 📊 预期效果 通过本实验,你将能够: - 理解数字图像的基本结构 - 掌握像素级图像处理技术 - 实现基本的图像变换效果 - 为后续高级图像处理打下基础 --- *本实验适合图像处理初学者,通过实践理解数字图像的基本操作原理。* ======= # 数字图像处理实验项目 这是一个基于 Python 的数字图像处理实验项目,主要实现了多种图像处理效果,包括通道分离、特效处理和图像合成等功能。 ## 功能特性 本项目包含以下主要功能: 1. RGB 通道分离与可视化 - 对花卉图像进行 RGB 三通道分离 - 分别展示彩色和灰度模式下的各个通道 - 直观对比不同通道的图像特征 2. 夕阳暖色特效处理 - 对图像进行自适应阈值处理 - 通过调整 RGB 通道值实现暖色调特效 - 适用于创建夕阳般的温暖氛围 3. 红色通道阈值处理 - 对交通标志图像进行处理 - 基于红色通道值进行像素级别的调整 - 实现红色区域的特殊处理效果 4. 图像合成(蓝屏特效) - 使用蓝色通道作为透明通道 - 实现前景图像与背景图像的无缝合成(即使大小不同) - 可用于创建特殊的图像合成效果 ## 环境要求 - Python 3.x - NumPy - Matplotlib - scikit-image ## 使用方法 1. 确保已安装所需的 Python 包: ```bash pip install numpy matplotlib scikit-image ``` 2. 准备以下图像文件并放置在项目根目录: - flowers.jpg(花卉图像) - girl_tree.jpg(人物树木图像) - curb.jpg(路缘图像) - stop.jpg(停止标志图像) - monkey.jpg(猴子图像) - moon.jpg(月球图像) - SimHei.ttf(中文字体文件) 3. 运行 Jupyter Notebook 文件: ```bash jupyter notebook dip_pj2_answer.ipynb ``` ## 注意事项 1. 运行代码前请确保所有图像文件都在正确的路径下 2. 中文显示需要 SimHei.ttf 字体文件的支持 3. 图像处理的阈值参数可以根据具体需求进行调整 >>>>>>> c28e36b8e865cb52ffe59dd26af8906a82099a61