图像数据处理

1.计算机视觉(CV)

从图像和时频中提取数值或符号信息的计算系统;
使计算机能够和人类一样看到并理解图像;
应用:
识别、鉴别、监测;
运动、分割、跟踪、多视图几何;
线型滤波、边缘监测、纹理;
相机模型、相机标定、辐射测定、颜色;

2.scikit-image

2.1skimage的图像数据

skiamge中的图像数据是由Numpy的多维数组表示的
由skimage加载的图像可以调用其他常用的包进行处理和计算,如matplotib,scipy等

2.2数据类型和像素值

CV中的图像的像素值通常有以下两种处理范围
0-255 0-黑色 255-白色
0-1 0黑色 1-白色

skimage支持以上两种像素范围,至于如何选择是根据数组的dtype决定的
float 0-1
unsigned bytes 0-255
unsigned 16-bit integers 0-65535

像素值数据类型转换
img_as_float, img_as_ubyte
推荐使用float, skimage包内部大多数使用的是float类型,即像素值是0-1

显示图像
通过matplotlib, plt.imshow() 可以指定不同的color map

图像I/O
加载图像,skiamge.io.imread()
同时加载多个图像,skimage.io.imread_collection()
保存图像, skiamge.io.imasve()

2.3.图像数据

图像数据是多维数组,前两维表示了图像的高、宽第三维表示图像的通道个数,如RGB,第三个维度为3,因为有三个通道;灰度图像没有第三个维度

分割和索引
像操作ndarray一样操作即可

2.4色彩空间

RGB转Gray,skimage,color.rgb2gray()

2.5颜色直方图

直方图是一种能快速描述图像整体像素值分布的统计信息skimage.exposure.histogram
如:可以根据直方图选定阈值用于调节图像对比度

2.6对比度

增强图像数据的对比度有利于特征的提取,不论是从肉眼还是算法来看都有帮助;
更改对比度范围;
skimage.exposure.rescale_intensity(image,in_range=(min,max))
原数据图像中,小于min的像素值设为0,大于max的像素值设为255
直方图均衡化
自动调整图像的对比度skimage.exposure.eauzalize_hist(image)
(注意)均衡化后的图像数据处理范围是【0,1】

2.7滤波

图像滤波
滤波是处理图像数据中的常用操作
可以用来去除图像中的噪声点

中值滤波
skimage.filters.rank.median

高斯滤波
skimage.filters.gaussian

3.常用的图像特征方法

颜色特征、纹理特征、形状特征
特征方法skimage.feature

3.1颜色特征

图像检索中应用最为广泛的视觉特征

3.2图像形状特征

形状特征的表达必须以对图像中物体或区域的分割为基础
SIFT,在尺度空间中提取的图像局部特征点。SIFT特征提取较为方便,提取速度较快,对于图像的缩放等变换比较鲁邦,因此广泛应用。

构造尺度空间、搜索关键点、去除噪点、计算特征向量

HOG用于检测物体的特征描述,通过计算和统计图像局部区域的梯度方向直方图来构建特征;
由于HOG是在图像的局部方格单元格上操作,所以它对图像几何和光学的形变都能保持很好的不变形;
HOG特征特别适合于做图像中的人体检测

人脸检测
微软Cognitive-Face-Python
pip install cognitive_face
通过key值调用人脸检测服务

上一篇:鹅妹子的skimage.measure.regionprops


下一篇:数字图像处理:python实现图像数据类型和颜色空间的转换(五)