图像、视频、分辨率
计算机视觉分为图像和视频,但视频归根结底还是图像,视频由一系列的图像组成,每一个图像是这个视频的一帧,视频帧率一般在30fps,即每秒有30张图像。
分辨率指的是图像的像素矩阵的大小,例如1080p即1920*1080,对应横向为1920像素纵向为1080像素的像素矩阵。
每一个像素是一个色块,该色块可以用N个数值描述,N为图像的通道数,例如RGB图像即3通道,灰度图像即1通道。
分辨率为X*Y,通道数为N的图像,用计算机语言可以表示为[X][Y][N]uint8,数值类型为uint8,即0~255之间。
一些图像的操作
知道了图像的本质就是三维数组,那么一些平常的图像操作在我们程序员的眼中就可以大概推算其中的原理了。
例如美图软件中的祛斑操作,无非就是在相应的位置上修改数值到合适的大小罢了,用计算机语言去描述,就是去遍历图像中所有M*M大小的子矩阵,对每个子矩阵可以取中位值也好,取均值也好,然后进行修改。
再比如抠图的操作,无非就是寻找图像中某些对象的边缘,而边缘处的特点就是其两侧的数值差异是较大的,因此还是去遍历图像中所有M*M大小的子矩阵,对横向和纵向分别去判断在该子矩阵中,两侧数值的差异,再结合横向和纵向算出的差异就可以判断出该子矩阵中间的像素是不是在边缘上。
再比如简单的图像匹配,模板图像大小为M*M,原图像大小为N*N,那只要去遍历原图像每个大小为M*M的子矩阵,再和模板图像去对比,看看相似度是多少,再返回那个相似度最高的子矩阵也就试了,算相似度可能要用一些数学知识,但最简单的比较法也是可以做的嘛。
等等等等,当然上面说的实际上的原理应该是复杂得多,但估计大差不差的。