图像纹理特征研究

最近因为一篇论文里面一个环节要集中对待分析的静脉图像的纹理特征进行分析研究,所以就先概述两种经典的图像纹理特征:

一幅图像的纹理是在图像计算中经过量化的图像特征。图像纹理描述图像或其中小块区域的空间颜色分布和光强分布。

纹理特征的提取分为基于结构的方法和基于统计数据的方法。一个基于结构的纹理特征提取方法是将所要检测的纹理进行建模,在图像中搜索重复的模式。该方法对人工合成的纹理识别效果较好。但对于交通图像中的纹理识别,基于统计数据的方法效果更好。

1.  LBP纹理特征

LBP方法(Local binary patterns)是一个计算机视觉中用于图像特征分类的一个方法。LBP方法在1994年首先由T. Ojala, M.Pietikäinen, 和 D. Harwood 提出[43][44],用于纹理特征提取。后来LBP方法与HOG特征分类器联合使用,改善了一些数据集[45]上的检测效果。

对LBP特征向量进行提取的步骤如下:

首先将检测窗口划分为16×16的小区域(cell),对于每个cell中的一个像素,将其环形邻域内的8个点(也可以是环形邻域多个点)进行顺时针或逆时针的比较,如果中心像素值比该邻点大,则将邻点赋值为1,否则赋值为0,这样每个点都会获得一个8位二进制数(通常转换为十进制数)。然后计算每个cell的直方图,即每个数字(假定是十进制数)出现的频率(也就是一个关于每一个像素点是否比邻域内点大的一个二进制序列进行统计),然后对该直方图进行归一化处理。最后将得到的每个cell的统计直方图进行连接,就得到了整幅图的LBP纹理特征,然后便可利用SVM或者其他机器学习算法进行分类了。

2.灰度共生矩

灰度共生矩阵是另一种纹理特征提取方法,首先对于一幅图像定义一个方向(orientation)和一个以pixel为单位的步长(step),灰度共生矩阵T(N×N),则定义M(i,j)为灰度级为i和j的像素同时出现在一个点和沿所定义的方向跨度步长的点上的频率。其中N是灰度级划分数目。由于共生矩阵有方向和步长的组合定义,而决定频率的一个因素是对矩阵有贡献的像素数目,而这个数目要比总共数目少,且随着步长的增加而减少。因此所得到的共生矩阵是一个稀疏矩阵,所以灰度级划分N常常减少到8级。如在水平方向上计算左右方向上像素的共生矩阵,则为对称共生矩阵。类似的,如果仅考虑当前像素单方向(左或右)上的像素,则称为非对称共生矩阵。 

图像处理中,纹理特征的提取 部分代码如下 // 计算纹理特征 void CTextureDlg::OnBtnComputeTexture() { double dEnergy = 0.0; double dEntropy = 0.0; double dInertiaQuadrature = 0.0; double dLocalCalm = 0.0; double dCorrelation = 0.0; double dEnergy1 = 0.0; double dEntropy1 = 0.0; double dInertiaQuadrature1= 0.0; double dLocalCalm1 = 0.0; double dCorrelation1 = 0.0; unsigned char** arLocalImage; arLocalImage = cmatrix(0, m_grayShow.FilterWindowWidth-1, 0, m_grayShow.FilterWindowWidth-1); int rolltimeH = m_grayShow.ImageHeight/m_grayShow.FilterWindowWidth; int rolltimeW = m_grayShow.ImageWidth /m_grayShow.FilterWindowWidth; int i,j; int p,q; //将图像分成若干个窗口,计算其纹理均值 for(i=0; i< rolltimeH; i++) { for(j=0; j<rolltimeW; j++) { //首先赋值给子窗口 for(p=0; p<m_grayShow.FilterWindowWidth; p++) { for(q=0; q<m_grayShow.FilterWindowWidth; q++) { arLocalImage[p][q] = m_grayShow.ImageArray[i*m_grayShow.FilterWindowWidth+p][j*m_grayShow.FilterWindowWidth+q]; } } m_grayShow.ComputeMatrix(arLocalImage, m_grayShow.FilterWindowWidth); m_grayShow.ComputeFeature(dEnergy1, dEntropy1, dInertiaQuadrature1, dCorrelation1, dLocalCalm1, m_grayShow.PMatrixH, m_grayShow.GrayLayerNum); dEnergy += dEnergy1; dEntropy += dEntropy1; dInertiaQuadrature += dInertiaQuadrature1; dCorrelation += dCorrelation1; dLocalCalm += dLocalCalm1; } } dEnergy /= (rolltimeH*rolltimeW); dEntropy /= (rolltimeH*rolltimeW); dInertiaQuadrature /= (rolltimeH*rolltimeW); dCorrelation /= (rolltimeH*rolltimeW); dLocalCalm /= (rolltimeH*rolltimeW); m_dEnergy = dEnergy; m_dEntropy = dEntropy; m_dInertiaQuadrature = dInertiaQuadrature; m_dCorrelation = dCorrelation; m_dLocalCalm = dLocalCalm; UpdateData(false); }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值