图像识别 - 图1

复杂的处理交给神经网络

图像识别 - 图2

397行,600列

matplot 的imshow 是阻塞的

图像识别 - 图3

图像识别 - 图4

图像识别 - 图5

蓝色很少,发黑

图像识别 - 图6

图像识别 - 图7

图像裁剪 数组切片

图像识别 - 图8

图像识别 - 图9

图像缩放

图像识别 - 图10图像识别 - 图11

一根变四根,模糊

只能深度学习,还原为清晰图形,因为机器见过清晰的部位,用类似的图填补,不是单纯的计算

图像保存

图像识别 - 图12

边缘检测

图像识别 - 图13灰度化后,亮度就是高度,可求梯度

图像识别 - 图14

图像识别 - 图15

图像识别 - 图16

图像识别 - 图17 边缘为1

图像识别 - 图18 只在水平方向做偏微分

图像识别 - 图19

图像识别 - 图20图像识别 - 图21

使用阈值,设定边缘

白色背景的边缘,是图片压缩合并像素导致的,不是我们期望的

图像识别 - 图22

只有变化 超过设定值,才被认为是边缘

可用于抠图

图像识别 - 图23

亮度提升 直方图均化

亮度提升有助于边缘检测

图像识别 - 图24图像识别 - 图25

亮度暗的图片: 分布靠左 把突出的暗点数量减少

图像识别 - 图26

调整的是数量

图像识别 - 图27

彩色图提亮: 不能累加三个通道,颜色变了

不能动rgb 而是动色度,亮度,饱和度

我们改的是亮度,不是色彩,要用yuv 空间描述

opencv 使得多个颜色空间可以转换

色度饱和度都不动,只动亮度

图像识别 - 图28所有行列 的0号通道,即亮度通道 是二维数组

图像识别 - 图29

图像识别 - 图30 equalize 使用直方图均衡化,是很好的算法

角点检测

图像识别 - 图31 机器检测角点,是关键点

图像识别 - 图32

返回原图

图像识别 - 图33

图像识别 - 图34确实有不是0的位置 用掩码拿到

图像识别 - 图35但是我们不希望看到太小的数值,因为他们其实也是0

设定阈值,超过就认为是有效的(角点)

图像识别 - 图36将矩阵中阈值部分改为红色

一堆点: 通过做聚类 可以拿到聚类中心,作为角点代表

图像识别 - 图37

具体的坐标交给机器人,可完成作业

图像特征点检测 sift

用于提取特征的api: 物理意义上的可见的特征点

图像识别 - 图38图像识别 - 图39原始图像 特征点 点的坐标(画在哪里),画的模式flag

最后用imshow 显示副本

提取一张图片的特征值矩阵

图像识别 - 图40每个特征点对象的属性: 位置,强度,梯度方向等

图像识别 - 图41圈大,特征重要,半径是梯度方向,垂直与楞线

图像识别 - 图42

根据梯度方向上的亮度变化计算特征

特征值矩阵 提取图像的矩阵相似

图像识别 - 图43

图像识别 - 图44用特征点列表,计算得到特征值矩阵

n行 128 列

图像识别 - 图45图像识别 - 图46 每个样本描述了一个特征点

图像识别 - 图47 这是计算机看到的桌子的特征

图像识别 - 图48

普通机器学习,只能训练同一个方向的飞机 只有相似的图片

深度学习也会因为噪声太多,导致特征矩阵变化巨大

图像的经典处理:

缩小scale,提高效率

图像识别 - 图49

一般逻辑回归求出的概率,大的更大,小的更小,因为 sigmode 使得收敛更加剧烈

openCV

图像识别 - 图50

图像识别 - 图51 对最小结构(数组) 反转

图像识别 - 图52 操作像素时,使用的索引是二维