数据挖掘与机器学习-第八章 图像数据分析
图像数据概论
1 | 根据图像的成像原理、成像技术以及存储方式可以将图像分为不同类型。 |
1 | 根据像素的取值不同,图像可以分为二值图像、8位图像、16位图像。 |
1 | RGB彩色图像由三个数据通道构成,分别代表红、绿、蓝通道。而灰色图像只有一个通道。多光谱图像一般有几个到几十个通道。高光谱图像具有几十个到上百个通道,即为多通道。 |
1 | 图像不仅仅局限于人眼可以看到的可见光图像,而是覆盖了全球电磁波谱,包括超声波、电子显微镜和计算机产生的图像等。 |






图像与机器学习


图像分类的简单实现

图像缩放
图像混合
图像分类的困难和挑战




图像分类的特征提取
SIFT算法

FAST算法

1 | import cv2 |
图像数据分析方法
1 | 广义的图像处理又称为图像工程,是与图像有关技术的总称,包括图像的采集、编码、传输、存储、生成、显示、输出、变换、增强、恢复和重建、分割、目标检测、表达和描述、特征提取、分类和识别、图像匹配、场景理解等。 |
图像工程的三个层级
1 | 狭义的图像处理:包括图像采集和图像到图像的变换,主要作用是改善图像视觉效果和为图像分析级理解作初步的处理,包括对比度调节、图像编码、去噪以及各种滤波技术的研究、图像恢复和重建等。 |
图像分析的常用方法
1 | 图像变换:图像矩阵一般具有很高的维度,我们直接在空间域中进行处理计算量会很大。 |
图像识别案例-人脸识别
EigenFace算法
人脸识别与PCA



人脸识别算法实现


1 | import face_recognition |
实验九 图像分析
1 | 题目一:简单的图像线性划分 |

1 | 题目二:使用Star特征检测器 |
1 | 前面有个例子一样 |
1 | 题目三:人脸识别 |
1 | 与例子类似 |

Python图像处理类库(PIL)
1 | 它为Python解释器提供了大量的图像和图形处理功能,它能够对图像数据进行缩放、裁剪、旋转、滤波、颜色空间转换、对比度增强等,该类库支持多种图像格式的读写。PIL是python平台事实上的图像处理标准库。 |
1 | 一些志愿者在PIL的基础上创建了兼容版本,名字叫做Pillow,它与PIL的使用方法基本相同,并加入了许多新的特性。 |
1 | 借助PIL模块结合Numpy模块提供的向量,矩阵等数组对象的处理方法和线性代数函数,以及Scipy提供的数值积分、优化、统计、信号处理、图像处理等搞笑操作,我们可以完成大多数的图像分析任务。 |
Image模块
1 | from PIL import Image |
颜色空间转换
1 | im_gray=im.convert('L') # 颜色空间转换,转为灰色 |
裁剪
1 | # 裁剪指定矩形区域 |
旋转
固定角度
1 | region_90=region.transpose(Image.ROTATE_90) # 90,180,270 也可以传入Image.FLIP_LEFT_RIGHT进行水平旋转,或传入Image.FLIP_TOP_BOTTOM进行垂直旋转 |
任意角度
1 | region_30=region.rotate(30) |
粘贴(paste)
波段处理
getbands()
split()
merge()
像素处理(point())
1 | 可以完成反色、线性拉伸、归一化等 |
图像的直方图(histogram())
1 | 可以用来表示该图像的像素值的分布情况。 |
处理序列图像
1 | 即常见的动图,扩展名为。gif |
维度处理
1 | 机器学习算法要求样本的特征数据具有相同的维度。类似地,当我们采用机器学习算法进行图像数据分析师,每幅图像的特征数据也应具有相同的维度。通常有两种方式: |
ImageFilter模块
1 | 主要进行滤波处理 |
ImageEnhance模块
1 | 更高级的图像增强 |
NumPy图像数据分析示例
SciPy图像数据分析示例
1 | SciPy是在Numpy基础上开发的用于数值运算的开源工具包。提供了许多高效的操作,可以实现数值积分、优化、统计、信号处理、图像处理等功能。 |
Scikit-image的特征提取模块
1 | 是用于图像处理的开源Python工具包,它包括颜色空间转换、滤波、图论、统计特征、形态学、图像恢复、分割、边缘、角点检测、几何变换等算法。特别是特征提取模块,使用户能更方便地从图像中提取特征。 |