# basic_image_exercise **Repository Path**: dunk0224/basic_image_exercise ## Basic Information - **Project Name**: basic_image_exercise - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-12 - **Last Updated**: 2025-10-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 数字图像处理实验一:图像基础操作 ## 环境要求 ### 必需软件包 ```bash pip install scikit-image matplotlib numpy ``` ### Python版本 - Python 3.6 或更高版本 - Jupyter Notebook(推荐)或常规Python环境 ## 文件说明 本实验包含9个独立的图像处理代码示例,每个示例演示不同的像素级操作技术: - **输入图像**: `x.jpg`、`earth.jpg`、`galaxy-full.jpg` - **输出**: 通过matplotlib实时显示处理后的图像 - **代码格式**: Jupyter Notebook (.ipynb) 格式 ## 代码示例说明 ### 1. 图像上半部分处理 **文件**: 1000077346.jpg **功能**: 将图像上半部分的红色通道设置为最大值 **关键代码**: ```python for i in range(w): for j in range(h // 2): img[j, i][0] = 255 ``` **效果**: 图像上半部分呈现红色调,下半部分保持原样 ### 2. 图像左半部分处理 **文件**: 1000077347.jpg **功能**: 将图像左半部分的红色通道设置为最大值 **关键代码**: ```python for i in range(w // 2): for j in range(h): img[j, i][0] = 255 ``` **效果**: 图像左半部分呈现红色调,右半部分保持原样 ### 3. 图像左上四分之一处理 **文件**: 1000077348.jpg **功能**: 尝试处理图像左上四分之一区域(代码存在错误) **关键代码**: ```python for i in range(w/2): # 错误:应使用整数除法 for j in range(h/2): # 错误:应使用整数除法 img[j, 1][0] = 255 # 错误:索引应为i而不是1 ``` **注意**: 此代码需要修正才能正常运行 ### 4. 小区域像素处理 **文件**: 1000077349.jpg **功能**: 在图像中央创建4×4像素的红色方块 **关键代码**: ```python for i in range(3,7): for j in range(3,7): img[j, i][0] = 255 ``` **效果**: 在图像中心位置显示一个小的红色正方形区域 ### 5. 指定区域颜色处理 **文件**: 1000077350.jpg **功能**: 在图像中央区域创建青色调效果 **关键代码**: ```python for i in range(1,9): for j in range(1,9): img[j, i][1] = 255 # 绿色通道 img[j, i][2] = 0 # 蓝色通道 ``` **效果**: 中央8×8区域呈现青色(红色通道保留) ### 6. 红色滤镜效果 **文件**: 1000077351.jpg **功能**: 对整个图像应用红色滤镜 **关键代码**: ```python for i in range(w): for j in range(h): img[j, i][1] = 0 # 关闭绿色 img[j, i][2] = 0 # 关闭蓝色 ``` **效果**: 整个图像只显示红色通道信息 ### 7. 绿色滤镜效果 **文件**: 1000077352.jpg **功能**: 对整个图像应用绿色滤镜 **关键代码**: ```python for i in range(w): for j in range(h): img[j, i][0] = 0 # 关闭红色 img[j, i][2] = 0 # 关闭蓝色 ``` **效果**: 整个图像只显示绿色通道信息 ### 8. 蓝色滤镜效果 **文件**: 1000077353.jpg **功能**: 对整个图像应用蓝色滤镜 **关键代码**: ```python for i in range(w): for j in range(h): img[j, i][0] = 0 # 关闭红色 img[j, i][1] = 0 # 关闭绿色 ``` **效果**: 整个图像只显示蓝色通道信息 ### 9. 条纹效果处理 **文件**: 1000077354.jpg **功能**: 为图像添加垂直彩虹条纹 **关键代码**: ```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. 准备测试图像文件(x.jpg、earth.jpg、galaxy-full.jpg) 3. 在Jupyter Notebook中打开对应的代码文件 4. 按顺序运行代码单元格 5. 观察图像处理效果 ### 运行单个示例 ```python # 导入必要库 from skimage import io import matplotlib.pyplot as plt # 读取图像 img = io.imread('your_image.jpg') # 执行处理代码 # ... # 显示结果 plt.imshow(img) plt.show() ``` ### 注意事项 - 部分代码需要修正语法错误(如整数除法问题) - 确保图像文件路径正确 - 处理会修改原始图像数据,建议备份 ## 学习要点 ### 核心概念 1. **图像通道操作** - RGB颜色模型:红色[0]、绿色[1]、蓝色[2] - 通道值的范围:0-255 2. **像素级访问** - 使用`img[行, 列][通道]`访问特定像素 - 嵌套循环遍历图像区域 3. **区域选择技术** - 使用循环范围控制处理区域 - 部分区域处理与全图像处理 ### 编程技巧 - 使用`img.shape`获取图像尺寸信息 - 合理使用循环边界条件 - 模块化导入和图像显示 ### 实际应用 - 图像滤镜效果 - 区域选择性处理 - 色彩分离与合成 - 艺术效果创建 通过本实验,学习者可以掌握基础的图像处理技术,为后续更复杂的图像分析任务奠定基础。 ### 个人信息 - 学号:202451230224 - 年级:2024 - 专业:智能科学与技术 - 班级:2班