图形图像 返回
-
图形图像识别基础知识
-
一直对图形了解较少,一个偶然的机会,找到了一段PHP识别身份证号的代码,纯原生的,研究了几天,略有所得,记录下来。
一、像素
一张图片,由像素组成,彩色图片以rgb为例,每个像素包含了RGB3个特征值,如白色一般写作(255,255,255),将图片以左上角为坐标(0,0)点,我们可以获得对应的矩阵,矩阵中每个元素都是一个RGB特征值,从而显示不同的色彩。
二、灰度变化
为了提取图像的特征值,通过会先将图像做灰度处理,灰度处理一般用3个方式
1、使用红色通道数据
即使用红色通道的数字代替当前坐标像素的值
2、平均值法
RGB三个特征值相加后除以3,替代当前坐标像素的值
3、权重值法
0.299*R + 0.587*G + 0.114*B,替代当前坐标像素的值
三、边缘处理
Sobel算子法
获取灰度变化后图像的每一个像素,以该像素为中心,形成9格,图片四个角不能形成9格的,按照该像素为中心填值,不存在的填0,然后与水平方向上算子[[-1, 0, 1], [-2, 0, 2], [-1, 0, 1]]和垂直方向上算子[[-1, -2, -1], [0, 0, 0], [1, 2, 1]]乘积相加,即9格对应的数字相乘,然后相加,得到对应方向上的梯度,对两个方向的梯度取模,即sqrt(横向梯度的平方+垂直方向梯度的平方),得到梯度值,为简便计算,也可以使用横向梯度的绝对值+垂直方向梯度的绝对值之和作为梯度值。当梯度值小于0按0计算,大于255按255计算(也有时求余数的),将各个像素点的梯度计算出来后,形成梯度矩阵。
遍历梯度矩阵,进行黑白化处理,即当当前梯度小于平均梯度(所有梯度和除以像素数量),该像素设置值为0,超过设置为255,增加图像对比度。
四、霍夫变换
霍夫变换公式
\(\rho = xcos\theta+ysin\theta\)
将黑白化后的图片像素进行遍历,如果该像素值为255,则生成一系列\(\rho\)和\(\theta\)值,一般按照固定步长,由0度到180度遍历,角度要转化为弧度,得出值保存到数组中。
计算水平方向和垂直方向上的直线,对相近方向的进行平均和忽略,查找到合适的边缘,获得对应的\(\rho\)值,计算最集中的值,作为四个角的padding值,根据padding值裁切原图,得到证件图片。
五、文字识别
均值向量(Mean Vector)
是指一组数据集中各个维度的平均值构成的向量。在数学和统计学中,均值向量常用来表示多维数据的中心位置。
对于一个具有n个样本和m个特征的数据集,可以计算每个特征的平均值,然后将这些平均值按照特征顺序排列形成均值向量,其中每个元素表示相应特征的平均值。
例如,假设有一个包含3个样本和2个特征的数据集: 样本1: (x1, y1) 样本2: (x2, y2) 样本3: (x3, y3)
则均值向量可以表示为: 均值向量:( (x1+x2+x3)/3, (y1+y2+y3)/3 )
马氏距离(Mahalanobis Distance)
是一种常用于图像处理和模式识别中的距离度量方法。它用于衡量样本之间的相似性或差异性,考虑到了数据的协方差结构。
对于多维数据集而言,传统的欧氏距离只考虑各个特征之间的线性关系,无法捕捉到协方差的影响。而马氏距离引入了协方差矩阵,使得距离计算能够反映出特征之间的相关性。
给定一个多维数据点x和均值向量μ,其协方差矩阵记为Σ,马氏距离的计算公式如下:
\( D(x) = \sqrt{ (x - \mu)^T \Sigma^{-1} (x - \mu) } \)
其中,x - μ表示数据点与均值向量的差异,Σ^(-1)表示协方差矩阵的逆矩阵。马氏距离将数据点与均值之间的差异进行降维和缩放,以考虑各个特征之间的相关性,从而更准确地衡量它们的距离。
在图像处理中,可以将图像表示为向量形式,并根据马氏距离来比较图像之间的相似性。通过计算马氏距离,可以定量地评估两个图像在特征空间中的差异程度,常用于图像分类、目标检测、图像聚类等任务中。
欧式距离
以特征值平方和的平方根计算出的距离
曼哈顿距离
以特征值绝对值计算出的距离
六、汉明距离
将图片缩小为8*8像素的图片,然后灰度化,再黑白化,然后值为0的填写0,为255的填写1,拼成64位的字符串,将两个图片字符串对比,对应位置一致度越高,认为图像越相似,即较小的汉明距离表示两个字符串在同一位置上有更少的不相等字符,汉明距离越小,相似度越高。
-