当前位置: 首页 > news >正文

上海移动网站开发ps做网站头部

上海移动网站开发,ps做网站头部,免费用搭建网站,建站平台上建设的网站可以融资吗目录 一、前言二、纹理区域度量2.1#xff1a;边缘特征度量2.2#xff1a;互相关和自相关特征2.3#xff1a;频谱方法—傅里叶谱2.4#xff1a;灰度共生矩阵(GLCM)2.5#xff1a;Laws纹理特征2.6#xff1a;局部二值模式#xff08;LBP#xff09; 一、前言 #x1f… 目录 一、前言二、纹理区域度量2.1边缘特征度量2.2互相关和自相关特征2.3频谱方法—傅里叶谱2.4灰度共生矩阵(GLCM)2.5Laws纹理特征2.6局部二值模式LBP 一、前言 什么是计算机视觉特征 简单来说就是图像特征对于我们来说看到一张图片能很自然的说出和描述图像中的一些特征但是同样的图片丢给计算机只是一个二维矩阵计算机需要从这个图像中提取计算得到一些数值表示来描述这个图像所具有的特征颜色、形状、纹理等。 什么是计算机视觉特征度量 就是研究如何从图像中计算得到这些特征的数值表示如颜色直方图、梯度直方图、形状描述符来表示、度量这个图像的特征方便后续任务如图像检索、目标跟踪、人脸识别、物体识别等的完成。 根据描述图像数据中不同范围的特征信息可以将特征度量分为这三类 全局特征度量Global Feature Measurement 全局特征度量关注的是整个数据集或整个图像的特征用于描述整体性质或全局统计信息。全局特征通常基于整个数据集或整个图像的分布、统计、形状、颜色等特征进行计算。全局特征度量具有以下特点 考虑了整体信息对整个数据集或图像进行分析。对数据集或图像的整体变化具有一定的敏感性。适用于整体分类、整体识别等任务其中整个数据集或图像的特征可以用于区分不同的类别。 常见的全局特征度量方法包括整体颜色直方图、整体纹理特征、整体形状描述子等。 全局特征度量Global Feature Measurement 局部特征度量关注的是数据中的局部区域并提取该区域的特征来描述其内容或性质。典型的局部特征包括角点、边缘、纹理等通常通过在局部区域内进行局部分析和特征提取来捕捉这些特征。局部特征度量具有以下特点 仅关注数据的局部区域忽略了全局信息。对光照、尺度和旋转等变化具有一定的鲁棒性。适用于目标检测、特征匹配等任务其中目标通常可以通过其局部特征进行描述和识别 常见的局部特征度量方法包括 角点检测、边缘检测、尺度不变特征变换SIFT、加速稳健特征SURF 等。 区域特征度量Regional Feature Measurement 区域特征度量关注的是数据中的整个区域或全局范围并提取该区域的特征来描述其整体性质。典型的区域特征包括颜色直方图、纹理直方图、形状描述子等通常通过对整个区域内的数据进行全局分析和特征提取来捕捉这些特征。区域特征度量具有以下特点 关注数据的全局信息可以提供更全面和综合的描述。对局部变化和噪声具有一定的鲁棒性。适用于图像分类、目标识别等任务其中整个区域的特征可以用于区分不同的类别。常见的区域特征度量方法包括颜色直方图、纹理特征提取、形状描述子等。 特征度量的方法 视觉特征度量的方法是本节的重点我们将其分为三大类每一个大类中有不同的方法对于每一个方法的原理不会去深究重点在于每种方法的应用而展开。 接下来让我们逐个击破吧GOGoGo 二、纹理区域度量 什么是图像纹理 纹理其实是一个很形象的特征表述你可以想象成它是目标的表面例如一个麻布袋子和丝绸面料相比。对于图像来说纹理是图像通道表面的描述图像中每个像素点的颜色强度或者亮度可以像地形图那样表示出来。 在计算机视觉中纹理设计的目的是使用离散方法来描述纹理的感知属性。从感知层面用下面几个属性来描述纹理 对比度色彩粗细度定向性直线相似性粗糙度恒定性分组分割 纹理度量的应用部分 纹理可以表示为全局特征或者局部区域特征通过区域内像素的统计关系表示局部性通过区域内像素值汇总来表示全局性。局部区域的微纹理可以作为有用的特征描述子实际上特征描述子和纹理度量之间的区别很小宏观纹理可以描述区域的均匀纹理例如湖面、草地因此纹理可以自然地应用到图像分割上。 纹理区域度量的目的是衡量图像中纹理区域之间的相似性或差异性以在图像检索、图像分类、目标跟踪等应用中进行区分和匹配。 纹理度量方法 接下来我们将围绕这常见的7种纹理度量方法简单进行介绍以及给出相关应用和示例。 边缘特征互相关特征Fourier谱、小波谱特征共生矩阵、Haralick特征与扩展SDM特征Laws纹理特征局部二值模式Local Binary PatternLBP动态纹理。 2.1边缘特征度量 所谓边缘特征度量不仅仅是能把边缘给检测到仅仅是检测到边缘那只算是图像处理方面的内容更要是基于边缘把图像特征描述出来即生成图像边缘特征的描述符用来表示图像中的特征信息使得图像在不同尺度、旋转、光照等情况下具有不变性从而更好地进行匹配和识别。 特征描述符 1.特征描述符是特征描述子的具体数值表示它是特征描述子的向量形式。 2.特征描述符通常是一个固定长度的向量其中每个元素代表了某个特征的某种度量或表示。此类特征向量往往具备比输入数据更小的维度从而可以使用更高效简洁的分类器实现识别等任务 3.特征描述符的长度和具体特征的表示方法取决于所使用的特征提取算法和特征描述子的设计。 一般步骤 在每个下高速处计算梯度g(d)选择适当的梯度算子g()Sobel算子、Canny算子等然后选择合适的核大小或者距离d检测边缘通过计算每个边缘的梯度方向获得量化的微观或宏观的边缘特征将边缘梯度特征根据方向分箱到直方图上分析边缘特征值的分布和统计信息 2.2互相关和自相关特征 互相关性是对两个信号之间相似性的度量对于一维信号两个信号之间可以有时间上的偏移对于图像二维信号两个信号之间可以有时间上的偏移在信号处理文献中互相关性也称为卷积、滑动内积。而自相关性则是信号与自身时间偏移的互相关性性。 深度学习CNN卷积神经网络中的卷积层的卷积运算其实就是利用的这种互相关性当图像局部特征与卷积核模板越相似卷积之后其实就是互相关运算得到的结果就越大。而这个卷积核其实也就是一种特征描述子就是利用这种互相关性来提取特征的只不过在CNN中卷积核的参数是由网络学习得到的也就是说无需我们人为来设计特征 深度学习中的卷积为何能用互相关运算代替 现在大部分的深度学习教程中都把卷积定义为图像矩阵和卷积核的按位点乘。实际上这种操作亦应该是互相关cross-correlation而卷积需要把卷积核顺时针旋转180度即将卷积核上下翻转再左右翻转然后再做点乘。卷积运算和互相关运算虽然类似但如果它们使用相同的核数组对于同一个输入输出往往并不相同。 那么你也许会好奇在深度学习中卷积层为何能使用互相关运算替代卷积运算。这主要原因在于在深度学习中核数组都是学出来的卷积层无论使用互相关运算或卷积运算都不会影响模型预测时的输出。假设卷积层使用互相关运算学出某一核数组。设其他条件不变使用卷积运算学出的核数组即为互相关核数组按上下、左右翻转。也就是说原始输入与学出的已翻转的核数组再做卷积运算时依然得到的是同样输出。因此大多数深度学习中提到的卷积运算均指互相关运算 2.3频谱方法—傅里叶谱 关于傅里叶谱和傅里叶变换已经在上篇博客中详说傅里叶变换和其图像处理中的应用相信对傅里叶谱有一个很好的认识 基本原理 傅里叶频谱可借助傅里叶变换得到它有三个合适描述纹理的性质 傅里叶频谱中突起的峰值对应纹理模式的主方向FFT谱作为纹理度量或描述子时会具备旋转不变性也就是说原图像空间旋转多少频率空间也会相应旋转多少峰值不会改变。 这些峰在频域平面的位置对应模式的基本周期 利用滤波把周期性成分除去用统计方法描述剩下的非周期性部分 把傅里叶幅度谱转换到极坐标中表示为函数 S ( r , θ )可以简化对频谱特性的解释。S 是频谱函数r 和 θ是极坐标系的半径和角度坐标轴。r代表频率θ代表方向 S 对于每一个方向 θ 可以简化为一维函数 S θ ( r )θ固定的一个关于频率的一个函数 ​S 对于每一个半径 r 也可以简化为一维函数 S r ( θ )频率固定关于周期纹理方向的一个函数 ​ 分别对一维函数 S θ ( r ) 和 S r ( θ )积分可以获得纹理频谱的全局描述 如果纹理具有空间的周期性或确定的方向性则一维函数 S ( r ) 和 S ( θ ) 在对应的频率具有峰值。以这些峰为组建模式识别提供所需的特征。 OpenCV 例程 # 14.13 特征描述之纹理谱分析def halfcircle(radius, x0, y0): # 计算圆心(x0,y0) 半径为 r 的半圆的整数坐标degree np.arange(180, 360, 1) # 因对称性可以用半圆 (180,)theta np.float32(degree * np.pi / 180) # 弧度一维数组 (180,)xc (x0 radius * np.cos(theta)).astype(np.int) # 计算直角坐标整数yc (y0 radius * np.sin(theta)).astype(np.int)return xc, ycdef intline(x1, x2, y1, y2): # 计算从(x1,y1)到(x2,y2)的线段上所有点的坐标dx, dy np.abs(x2-x1), np.abs(y2-y1) # x, y 的增量if dx0 and dy0:x, y np.array([x1]), np.array([y1])return x, yif dx dy:if x1x2:x1, x2 x2, x1y1, y2 y2, y1m (y2-y1) / (x2-x1)x np.arange(x1, x21, 1) #[x1,x2]y (y1 m*(x-x1)).astype(np.int)else:if y1y2:x1, x2 x2, x1y1, y2 y2, y1m (x2-x1) / (y2-y1)y np.arange(y1, y21, 1) # [y1,y2]x (x1 m*(y-y1)).astype(np.int)return x, ydef specxture(gray):# cv2.dft 实现图像的傅里叶变换height, width gray.shapex0, y0 int(height / 2), int(width / 2) # x0300, y0300rmax min(height, width) // 2 - 1 # rmax299print(height, width, x0, y0, rmax)# FFT 变换 youcansgray32 np.float32(gray) # 将图像转换成 float32dft cv2.dft(gray32, flagscv2.DFT_COMPLEX_OUTPUT) # 傅里叶变换(600, 600, 2)dftShift np.fft.fftshift(dft) # 将低频分量移动到频域图像的中心sAmp cv2.magnitude(dftShift[:, :, 0], dftShift[:, :, 1]) # 幅度谱中心化 (600, 600)sAmpLog np.log10(1 np.abs(sAmp)) # 幅度谱对数变换 (600, 600)# FFT 频谱沿半径的分布函数sRad np.zeros((rmax,)) # (299,)sRad[0] sAmp[x0, y0]for r in range(1, rmax):xc, yc halfcircle(r, x0, y0) # 半径为 r 的圆的整数坐标 (360,)sRad[r] sum(sAmp[xc[i], yc[i]] for i in range(xc.shape[0])) # (360,)sRadLog np.log10(1 np.abs(sRad)) # 极坐标幅度谱 youcans 对数变换# FFT 频谱沿角度的分布函数xmax, ymax halfcircle(rmax, x0, y0) # 半径为 xupt 的圆的整数坐标 (360,)sAng np.zeros((xmax.shape[0],)) # (360,)for a in range(xmax.shape[0]): # xmax.shape[0](360,)xr, yr intline(x0, xmax[a], y0, ymax[a]) # 从(x0,y0)到(xa,ya)线段所有点的坐标 (300,)sAng[a] sum(sAmp[xr[i], yr[i]] for i in range(xr.shape[0])) # (360,)return sAmpLog, sRadLog, sAng# 纹理的傅里叶频谱分析gray1 cv2.imread(../images/Fig1135a.tif, flags0) # flags0 读取为灰度图像gray2 cv2.imread(../images/Fig1135b.tif, flags0)sAmpLog1, sRadLog1, sAng1 specxture(gray1) # 图像纹理的频谱分析sAmpLog2, sRadLog2, sAng2 specxture(gray2)print(sAmpLog1.shape, sRadLog1.shape, sAng1.shape)plt.figure(figsize(9, 6))plt.subplot(241), plt.axis(off), plt.title(Random matches), plt.imshow(gray1, gray)plt.subplot(242), plt.axis(off), plt.title(Amp spectrum), plt.imshow(sAmpLog1, gray)plt.subplot(243), plt.axis(off), plt.title(Arranged matches), plt.imshow(gray2, gray)plt.subplot(244), plt.axis(off), plt.title(Amp spectrum), plt.imshow(sAmpLog2, gray)plt.subplot(245), plt.plot(sRadLog1), plt.title(S1 (radius)), plt.xlim(0,300), plt.yticks([])plt.subplot(246), plt.plot(sAng1), plt.title(S1 (theta)), plt.xlim(0,180), plt.yticks([])plt.subplot(247), plt.plot(sRadLog2), plt.title(S2 (radius)), plt.xlim(0,300), plt.yticks([])plt.subplot(248), plt.plot(sAng2), plt.title(S2 (theta)), plt.xlim(0,180), plt.yticks([])plt.tight_layout()plt.show() 2.4灰度共生矩阵(GLCM) 基本原理通过对灰度图像进行计算得到它的共生矩阵然后根据共生矩阵计算得到图像的特征参数来代表图像的某些纹理特征。 灰度共生矩阵的生成 将图像转换为灰度图像单通道图像如果原图像已经是灰度图像则可以直接跳过此步骤。选择一个特定的方向例如水平、垂直、45度、135度等和距离像素之间的间隔距离来计算共生矩阵。这些选择会影响到纹理特征的提取效果。对于每个像素统计与指定方向、距离的邻居像素之间的灰度级别共生频数。邻居像素的选择可以是在特定方向上指定距离的像素。构建灰度共生矩阵其尺寸通常为 N x N其中 N 为图像的灰度级别数量。共生矩阵中的元素 GLCM(i, j) 表示在指定方向、距离下像素灰度级别 i 和 j 同时出现的次数。 对共生矩阵进行归一化得到共生概率矩阵。共生概率矩阵中的元素 GLCM_prob(i, j) 表示在指定方向、距离下像素灰度级别 i 和 j 同时出现的概率。根据共生概率矩阵可以计算一些用于纹理特征描述的统计量例如对比度、相关性、能量、熵等。这些统计量可以用于进一步分析图像的纹理特征。 特征参数 角二阶矩Angular Second Moment, ASM) 角二阶矩又称能量是图像灰度分布均匀程度和纹理粗细的一个度量。 若灰度共生矩阵的元素值相近则能量较小表示纹理细致若其中一些值大而其它值小则能量值较大。能量值大表明一种较均一和规则变化的纹理模式。 熵(Entropy, ENT) 熵度量了图像包含信息量的随机性。 当共生矩阵中所有值均相等或者像素值表现出最大的随机性时熵最大因此熵值表明了图像灰度分布的复杂程度熵值越大图像越复杂。 对比度(constrast) 度量图像中存在的局部变化。对比度反应了图像的清晰度和纹理的沟纹深浅。纹理越清晰反差越大对比度也就越大 反差分矩阵Inverse Differential Moment, IDM) 也叫做逆方差。反映了纹理的清晰程度和规则程度纹理清晰、规律性较强、易于描述的值较大。 相关性(correlation) 用来度量图像的灰度级在行或列方向上的相似程度因此值的大小反应了局部灰度相关性值越大相关性也越大。 同质性Homogeneity 反映了图像纹理的同质性度量图像纹理局部变化的程度。 OpenCV 例程 skimage 的特征提取库 skimage.feature 提供了函数 greycomatrix 和 greycoprops可以 计算灰度共生矩阵并提取特征统计量 。 函数说明 skimage.feature.graycomatrix(image, distances, angles, levels256, symmetricFalse, normedFalse)skimage.feature.graycoprops(P[, prop])参数说明 image整型单通道图像推荐使用 uint8 灰度图像 distances像素对的距离偏移量的列表计算列表中每个偏移量的 GLCM angles像素对扫描角度弧度列表计算列表中每个角度值的 GLCM levels灰度级默认值为 256 symmetric对称性选项默认值 False 表示将像素对 (i,j) 与 (j,i) 分别计算True 表示忽略像素对顺序将 (i,j) 与 (j,i) 视为相同 normed归一化选项默认值 FalseTrue 表示对矩阵归一化。 prop元组灰度共生矩阵 P 的特征统计量 包括对比度 ‘contrast’、相异性 ‘dissimilarity’、同质性 ‘homogeneity’、能量 ‘energy’、相关性 ‘correlation’、能量的平方 ‘ASM’} 返回值是 4维数组即不同偏移量、不同角度的 GLCM。P [ i , j , d , θ ] P[i,j,d,\theta]P[i,j,d,θ] 是灰度 j 在偏移量 d、角度 θ \thetaθ 处出现灰度 i 的次数。 # 14.11 特征描述之灰度共生矩阵 (skimage) import cv2 import numpy as np import matplotlib.pyplot as plt from skimage.feature import greycomatrix, greycopropsimg cv2.imread(6.jpg, flags1) gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 灰度图像 height, width gray.shape table16 np.array([(i // 16) for i in range(256)]).astype(uint8) # 16 levels gray16 cv2.LUT(gray, table16) # 灰度级压缩为 [0,15]# 计算灰度共生矩阵 GLCM dist [1, 4] # 计算 2 个距离偏移量 [1, 2] degree [0, np.pi / 4, np.pi / 2, np.pi * 3 / 4] # 计算 4 个方向 glcm greycomatrix(gray16, dist, degree, levels16) # 灰度级 L16 print(glcm.shape) # (16,16,2,4)# 由灰度共生矩阵 GLCM 计算特征统计量 for prop in [contrast, dissimilarity, homogeneity, energy, correlation, ASM]:feature greycoprops(glcm, prop).round(4) # (2,4)print({}: {}.format(prop, feature))plt.figure(figsize(9, 6)) plt.suptitle(GLCM by skimage, youcans) for i in range(len(dist)):for j in range(len(degree)):plt.subplot(2, 4, i * 4 j 1), plt.axis(off)plt.title(rd{},$\theta${:.2f}.format(dist[i], degree[j]))plt.imshow(glcm[:, :, i, j], gray) plt.tight_layout() plt.show() 结果 contrast: [[0.1284 0.2056 0.1544 0.1951] [0.5156 0.5961 0.631 0.6285]] dissimilarity: [[0.1079 0.1556 0.1257 0.1561] [0.3011 0.3321 0.3453 0.3474]] homogeneity: [[0.9478 0.9262 0.9395 0.9253] [0.8661 0.8546 0.8499 0.8485]] energy: [[0.3808 0.3664 0.3748 0.3654] [0.33 0.3242 0.3213 0.3204]] correlation: [[0.9818 0.9709 0.9781 0.9723] [0.9269 0.9157 0.9108 0.9111]] ASM: [[0.145 0.1342 0.1405 0.1335] [0.1089 0.1051 0.1032 0.1027]] ps.灰度共生矩阵受图像光照等外部因素影响很大灰度梯度共生矩阵效果会好很多能起到优化作用。用法差别不大只是加了边缘信息。 2.5Laws纹理特征 基本原理 图像的Laws特征是一种基于图像滤波和能量统计的方法用于描述图像的纹理特征。Laws纹理特征可以用于图像分类、识别、检索等任务中具有较好的性能。Laws纹理特征的基本思想是将图像分解为不同的小块然后对每个小块进行一组滤波器的卷积操作得到一组滤波响应滤波器可以是多种不同方案组合得到的。在得到滤波响应后可以通过计算其能量特征来描述图像的纹理特征。具体地假设对于一幅图像 I通过一组滤波器得到的滤波响应为 F i,j 其中 i,j分别表示滤波器的编号和图像块的编号这些块可以是 5x5、7x7 等等这一类的方形或者各种由研究人员指定的形状大小的图像子集则Laws纹理特征可以通过以下公式计算 其中 μ i,j 是滤波响应的均值 N 是滤波响应的长度。Laws纹理特征 T 是一个向量包含了所有图像块和滤波器组合的能量特征。 2.6局部二值模式LBP 图像的局部二值模式Local Binary PatternLBP是一种基于图像灰度值的局部纹理特征描述子常用于图像分类、识别和检索等应用中具有良好的性能和鲁棒性。 基本原理 对于一幅图像 I 中的每个像素点 x 可以计算其对应的局部二值模式 LBP(x)表示其周围像素点与中心像素点的灰度值大小关系。具体地对于一个半径为 r 的圆形邻域以中心点的灰度值为阈值将周围的 8 个像素点分别与中心点进行比较得到一个 8 位二进制数。将这个二进制数转换为十进制数即得到 x点的局部二值模式 LBP(x)。 图片注然后讲19放入到中心作为LBP值 ⭐LBP的应用中如纹理分类、人脸分析等一般都不将LBP图谱作为特征向量用于分类识别而是采用LBP特征谱的统计直方图作为特征向量用于分类识别。 因为从上面的分析我们可以看出这个“特征”跟位置信息是紧密相关的。直接对两幅图片提取这种“特征”并进行判别分析的话会因为“位置没有对准”而产生很大的误差。后来研究人员发现可以将一幅图片划分为若干的子区域对每个子区域内的每个像素点都提取LBP特征然后在每个子区域内建立LBP特征的统计直方图。如此一来每个子区域就可以用一个统计直方图来进行描述整个图片就由若干个统计直方图组成 例如一幅100100像素大小的图片划分为1010100个子区域可以通过多种方式来划分区域每个子区域的大小为1010像素在每个子区域内的每个像素点提取其LBP特征然后建立统计直方图这样这幅图片就有1010个子区域也就有了1010个统计直方图利用这1010个统计直方图就可以描述这幅图片了。之后我们利用各种相似性度量函数就可以判断两幅图像之间的相似性了 对LBP特征向量进行提取的步骤 1首先将检测窗口划分为16×16的小区域cell 2对于每个cell中的一个像素将相邻的8个像素的灰度值与其进行比较若周围像素值大于中心像素值则该像素点的位置被标记为1否则为0。这样3*3邻域内的8个点经比较可产生8位二进制数即得到该窗口中心像素点的LBP值 3然后计算每个cell的直方图即每个数字假定是十进制数LBP值出现的频率然后对该直方图进行归一化处理。 4最后将得到的每个cell的统计直方图进行连接成为一个特征向量也就是整幅图的LBP纹理特征向量然后便可利用SVM或者其他机器学习算法进行分类了。 ‍改进的LBP 圆形可变半径模式(Extended LBPCircular LBP) 为了满足尺度、灰度和旋转不变性的要求Ojala 等对 LBP 算子进行了改进将 3×3 邻域扩展到任意邻域并用圆形邻域代替了方形邻域。改进算子允许在半径为 R 的圆形邻域内有 P 个采样点称为扩展 LBP 算子Extended LBPCircular LBP。 LBP旋转不变模式 从 LBP 的定义可以看出LBP 算子是灰度不变的但却不是旋转不变的。图像的旋转就会得到不同的 LBP值。 Maenpaa等人又将 LBP算子进行了扩展提出了具有旋转不变性的 LBP 算子即不断旋转圆形邻域得到一系列初始定义的 LBP值取其最小值作为该邻域的 LBP 值。 下图给出了求取旋转不变的 LBP 的过程示意图图中算子下方的数字表示该算子对应的 LBP值图中所示的 8 种 LBP模式经过旋转不变的处理最终得到的具有旋转不变性的 LBP值为 15。也就是说图中的 8种 LBP 模式对应的旋转不变的 LBP模式都是 00001111。 LBP等价模式Uniform Pattern 一个LBP算子可以产生不同的二进制模式对于半径为R的圆形区域内含有P个采样点的LBP算子将会产生P^2种模式。很显然随着邻域集内采样点数的增加二进制模式的种类是急剧增加的。例如5×5邻域内20个采样点有2201,048,576种二进制模式。如此多的二值模式无论对于纹理的提取还是对于纹理的识别、分类及信息的存取都是不利的。同时过多的模式种类对于纹理的表达是不利的。例如将LBP算子用于纹理分类或人脸识别时常采用LBP模式的统计直方图来表达图像的信息而较多的模式种类将使得数据量过大且直方图过于稀疏。因此需要对原始的LBP模式进行降维使得数据量减少的情况下能最好的代表图像的信息。 为了解决二进制模式过多的问题提高统计性Ojala提出了采用一种“等价模式”Uniform Pattern来对LBP算子的模式种类进行降维。Ojala等认为在实际图像中绝大多数LBP模式最多只包含两次从1到0或从0到1的跳变。因此Ojala将“等价模式”定义为当某个LBP所对应的循环二进制数从0到1或从1到0最多有两次跳变时该LBP所对应的二进制就称为一个等价模式类。如000000000次跳变00000111只含一次从0到1的跳变10001111先由1跳到0再由0跳到1共两次跳变都是等价模式类。除等价模式类以外的模式都归为另一类称为混合模式类例如10010111共四次跳变。 通过这样的改进二进制模式的种类大大减少而不会丢失任何信息。模式数量由原来的2^P种减少为 P ( P-1)2种其中P表示邻域集内的采样点数。对于3×3邻域内8个采样点来说二进制模式由原始的256种减少为58种这使得特征向量的维数更少并且可以减少高频噪声带来的影响。 OpenCV 例程 # 14.10 特征描述之 LBP 直方图def basicLBP(gray):height, width gray.shapedst np.zeros((height, width), np.uint8)kernelFlatten np.array([1, 2, 4, 128, 0, 8, 64, 32, 16]) # 从左上角开始顺时针旋转for h in range(1, height-1):for w in range(1, width-1):LBPFlatten (gray[h-1:h2, w-1:w2] gray[h, w]).flatten() # 展平为一维向量, (9,)dst[h, w] np.vdot(LBPFlatten, kernelFlatten) # 一维向量的内积return dstdef calLBPHistogram(imgLBP, nCellX, nCellY): # 计算 LBP 直方图height, width gray.shape# nCellX, nCellY 4, 4 # 将图像划分为 nCellX*nCellY 个子区域hCell, wCell height//nCellY, width//nCellX # 子区域的高度与宽度 (150,120)LBPHistogram np.zeros((nCellX*nCellY, 256), np.int)for j in range(nCellY):for i in range(nCellX):cell imgLBP[j * hCell:(j 1) * hCell, i * wCell:(i 1) * wCell].copy() # 子区域 cell LBPprint({}, Cell({}{}): [{}:{}, {}:{}].format(j*nCellXi1, j1, i1, j*hCell, (j1)*hCell, i*wCell, (i1)*wCell))histCell cv2.calcHist([cell], [0], None, [256], [0, 256]) # 子区域 LBP 直方图LBPHistogram[(i1)*(j1)-1, :] histCell.flatten()print(LBPHistogram.shape)return LBPHistogram# 特征描述之 LBP 直方图img cv2.imread(4.jpg, flags1)gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 灰度图像height, width gray.shapenCellX, nCellY 4, 4 # 将图像划分为 nCellX*nCellY 个子区域hCell, wCell height//nCellY, width//nCellX # 子区域的高度与宽度 (150,120)print(img: h{},w{}, cell: h{},w{}.format(height, width, hCell, wCell))basicLBP basicLBP(gray) # 计算 basicLBP 特征算子# LBPHistogram calLBPHistogram(basicLBP, nCellX, nCellY) # 计算 LBP 直方图 (16, 256)fig1 plt.figure(figsize(9, 8))fig1.suptitle(basic LBP)fig2 plt.figure(figsize(9, 8))fig2.suptitle(LBP histogram)for j in range(nCellY):for i in range(nCellX):cell basicLBP[j*hCell:(j1)*hCell, i*wCell:(i1)*wCell].copy() # 子区域 cell LBPhistCV cv2.calcHist([cell], [0], None, [256], [0, 256]) # 子区域 cell LBP 直方图ax1 fig1.add_subplot(nCellY, nCellX, j * nCellX i 1)ax1.set_xticks([]), ax1.set_yticks([])ax1.imshow(cell, gray) # 绘制子区域 LBP ax2 fig2.add_subplot(nCellY,nCellX,j*nCellXi1)ax2.set_xticks([]), ax2.set_yticks([])ax2.bar(range(256), histCV[:, 0]) # 绘制子区域 LBP 直方图print({}, Cell({}{}): [{}:{}, {}:{}].format(j * nCellX i 1, j 1, i 1, j * hCell, (j 1) * hCell, i * wCell, (i 1) * wCell))plt.show() 运行结果 本节主要讲解了计算机视觉特征度量的第一类方法纹理区域度量此外还有统计区域度量和基空间变换的方法将在下几篇进行讲解~ 因为博主个人专业能力和知识还在提升中若文章内容有错误或有失偏颇的地方还请大家多多指出 本文的部分内容参考和整合自 [1] Krig S . Computer Vision Metrics[J]. Apress, 2014. [2] 第十三章 图像特征Vol.1全局特征与区域特征 [3] 【OpenCV 例程 300篇】 [4] LBP局部二值模式特征提取原理 [5] 黄非非基于 LBP 的人脸识别研究重庆大学硕士学位论文2009.5 在此表示感谢
文章转载自:
http://www.morning.ypcd.cn.gov.cn.ypcd.cn
http://www.morning.dgpxp.cn.gov.cn.dgpxp.cn
http://www.morning.sfsjh.cn.gov.cn.sfsjh.cn
http://www.morning.dztp.cn.gov.cn.dztp.cn
http://www.morning.tlrxp.cn.gov.cn.tlrxp.cn
http://www.morning.hsklc.cn.gov.cn.hsklc.cn
http://www.morning.tkxyx.cn.gov.cn.tkxyx.cn
http://www.morning.hlmkx.cn.gov.cn.hlmkx.cn
http://www.morning.atoinfo.com.gov.cn.atoinfo.com
http://www.morning.tlzbt.cn.gov.cn.tlzbt.cn
http://www.morning.dpbgw.cn.gov.cn.dpbgw.cn
http://www.morning.rltsx.cn.gov.cn.rltsx.cn
http://www.morning.zdgp.cn.gov.cn.zdgp.cn
http://www.morning.rnhh.cn.gov.cn.rnhh.cn
http://www.morning.wnkjb.cn.gov.cn.wnkjb.cn
http://www.morning.ryfqj.cn.gov.cn.ryfqj.cn
http://www.morning.blqsr.cn.gov.cn.blqsr.cn
http://www.morning.bmtkp.cn.gov.cn.bmtkp.cn
http://www.morning.gediba.com.gov.cn.gediba.com
http://www.morning.xrmwc.cn.gov.cn.xrmwc.cn
http://www.morning.lsfrc.cn.gov.cn.lsfrc.cn
http://www.morning.nswcw.cn.gov.cn.nswcw.cn
http://www.morning.dshkp.cn.gov.cn.dshkp.cn
http://www.morning.tgbx.cn.gov.cn.tgbx.cn
http://www.morning.rcrfz.cn.gov.cn.rcrfz.cn
http://www.morning.dxgt.cn.gov.cn.dxgt.cn
http://www.morning.drrt.cn.gov.cn.drrt.cn
http://www.morning.hyxwh.cn.gov.cn.hyxwh.cn
http://www.morning.cqwb25.cn.gov.cn.cqwb25.cn
http://www.morning.wqbrg.cn.gov.cn.wqbrg.cn
http://www.morning.bxsgl.cn.gov.cn.bxsgl.cn
http://www.morning.lxwjx.cn.gov.cn.lxwjx.cn
http://www.morning.gnzsd.cn.gov.cn.gnzsd.cn
http://www.morning.mkkcr.cn.gov.cn.mkkcr.cn
http://www.morning.syhwc.cn.gov.cn.syhwc.cn
http://www.morning.csgwd.cn.gov.cn.csgwd.cn
http://www.morning.dbphz.cn.gov.cn.dbphz.cn
http://www.morning.sgpnz.cn.gov.cn.sgpnz.cn
http://www.morning.wkws.cn.gov.cn.wkws.cn
http://www.morning.psxfg.cn.gov.cn.psxfg.cn
http://www.morning.ytmx.cn.gov.cn.ytmx.cn
http://www.morning.qxmys.cn.gov.cn.qxmys.cn
http://www.morning.shsh1688.com.gov.cn.shsh1688.com
http://www.morning.mnygn.cn.gov.cn.mnygn.cn
http://www.morning.bfmq.cn.gov.cn.bfmq.cn
http://www.morning.wxrbl.cn.gov.cn.wxrbl.cn
http://www.morning.kqbjy.cn.gov.cn.kqbjy.cn
http://www.morning.djmdk.cn.gov.cn.djmdk.cn
http://www.morning.hlzpb.cn.gov.cn.hlzpb.cn
http://www.morning.clqpj.cn.gov.cn.clqpj.cn
http://www.morning.qqhfc.cn.gov.cn.qqhfc.cn
http://www.morning.mfbcs.cn.gov.cn.mfbcs.cn
http://www.morning.mmosan.com.gov.cn.mmosan.com
http://www.morning.mdfxn.cn.gov.cn.mdfxn.cn
http://www.morning.lqchz.cn.gov.cn.lqchz.cn
http://www.morning.bfcxf.cn.gov.cn.bfcxf.cn
http://www.morning.qynpw.cn.gov.cn.qynpw.cn
http://www.morning.twgzq.cn.gov.cn.twgzq.cn
http://www.morning.qhln.cn.gov.cn.qhln.cn
http://www.morning.pwzzk.cn.gov.cn.pwzzk.cn
http://www.morning.jgzmr.cn.gov.cn.jgzmr.cn
http://www.morning.qlckc.cn.gov.cn.qlckc.cn
http://www.morning.jlrym.cn.gov.cn.jlrym.cn
http://www.morning.hyfrd.cn.gov.cn.hyfrd.cn
http://www.morning.fqtdz.cn.gov.cn.fqtdz.cn
http://www.morning.ypxyl.cn.gov.cn.ypxyl.cn
http://www.morning.nqmwk.cn.gov.cn.nqmwk.cn
http://www.morning.dbrnl.cn.gov.cn.dbrnl.cn
http://www.morning.cbvlus.cn.gov.cn.cbvlus.cn
http://www.morning.spsqr.cn.gov.cn.spsqr.cn
http://www.morning.wdqhg.cn.gov.cn.wdqhg.cn
http://www.morning.dwtdn.cn.gov.cn.dwtdn.cn
http://www.morning.xqkjp.cn.gov.cn.xqkjp.cn
http://www.morning.qfwfj.cn.gov.cn.qfwfj.cn
http://www.morning.rggky.cn.gov.cn.rggky.cn
http://www.morning.txmlg.cn.gov.cn.txmlg.cn
http://www.morning.gkgb.cn.gov.cn.gkgb.cn
http://www.morning.smzr.cn.gov.cn.smzr.cn
http://www.morning.rqxch.cn.gov.cn.rqxch.cn
http://www.morning.dndk.cn.gov.cn.dndk.cn
http://www.tj-hxxt.cn/news/249859.html

相关文章:

  • 网站维护费用明细建设银行信用卡网站首页
  • 长春公司网站推广网页设计教程基础
  • 果洛州网站建设公司高校网站建设情况报告范文
  • 相机拍照的图片怎么做网站呀上海网站建设推荐秒搜科技
  • 郑州网站公司哪家好网站设计咨询网站
  • 网站建设公司怎么写宣传语企业推广是做什么的
  • 滨州做网站推广博山信息港
  • 遵义花果园网站建设大连 找人做网站
  • 服务器外面打不开网站在酒店做那个网站好
  • 网站建设课程基础西方设计网站
  • 公司网站打不开以营销为导向的网站建设
  • 济宁北湖建设集团网站湛江网站建设优化推广
  • 网站下雪的效果怎么做的360网站建设搜索
  • 扁平化网站设计教程网站名字和域名
  • 广州做英文网站的公司湖南人文科技学院在哪
  • 青州住房和城乡建设网站临沂做网站优化
  • 网站seo优化推广怎么做青海移动端网页设计
  • 东莞市领导班子网站优化目录
  • 3g手机网站手机邮箱申请免费注册
  • 电影网站建设成本河南最新任命12个厅级
  • 重庆触摸屏 电子商务网站建设网站建设的功能和目标
  • 网站备案修改域名ipwordpress被植入广告
  • 学校网站建设情况介绍温州公司建设网站
  • vps网站助手网站脑图用什么做
  • 盐城网站建设与网页制作佛山网站公司建设网站
  • 郑州网站设静态网站做一单多少钱
  • 做百度手机网站快网页微博
  • 网站排名优化学习广东企业品牌网站建设价格
  • 网站开发参数怎么做网站的软文推广
  • 工业网站素材网站建设要学哪种计算机语言