文章目录
特征提取的简介
特征提取
:通过统计或学习等方法从图像中提取出能够有效表示原始图像内容的特征向量的集合
LBP特征提取
介绍
局部二值模式(Local Binary Patter,LBP)是一种用来描述图像
局部纹理特征
的算子
由于计算简单,可用于基于纹理分类的实时应用场景,例如目标检测,人脸识别(LBP+AdaBoost)
LBP特征只考虑纹理信息,不包含颜色信息,因此彩色图需转换为灰度图
原理
LBP特征提取操作可以去除光照对图片的影响
对于一张单通道灰度图,我们对每一个像素进行如下操作:
首先,我们可以取这个像素点X以及其周围一圈8个像素点,组成3x3
的像素矩阵(每个像素的灰度值的范围 0-255
)
对于这个3x3
的矩阵,对其进行LBP操作,将其二值化
公式:
L B P ( x c , y c ) = ∑ p = 0 p − 1 2 p s ( i p − i c ) LBP(x_c,y_c)=\sum^{p-1}_{p=0}2^ps(i_p-i_c) LBP(xc,yc)=p=0∑p−12ps(ip−ic) s ( x ) = { 1 i f x ≥ 0 0 e l s e s(x)= \begin{cases} 1& if \ x \geq 0\\ 0& else \end{cases} s(x)={
10if x≥0else
二值化后的矩阵
然后将像素点X外的一圈01值重组为一个长度为9的二进制数,这个二进制数对应的十进制数即为像素点X的新值
代码实现
导入算法所需的包
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
读入所需处理的单通道灰度图
filepath='anime2.PNG'
img=cv.imread(filepath,0)
plt.imshow(img,cmap='gray')
print("img shape:",img.shape)
img shape: (654, 843)
这是自己实现的LBP函数
def LBP(img):
dst=np.zeros(img.shape,dtype=img.dtype)
for i in range(1,img.shape[0]-1):
for j in range(1,img.shape[1]-1):
center=img[i][j]
code=0
code |= (img[i-1][j-1]>=center)<<7
code |= (img[i-1][j ]>=center)<<6
code |= (img[i-1][j+1]>=center)<<5
code |= (img[i ][j+1]>=center)<<4
code |= (img[i+1][j+1]>=center)<<3
code |= (img[i+1][j ]>=center)<<2
code |= (img[i+1][j-1]>=center)<<1
code |= (img[i ][j-1]>=center)<<0
dst[i][j]=code
return dst
进行LBP处理
plt.imshow(LBP(img),cmap='gray')
再测试一下,是否对阳光干扰有作用
img_=cv.imread('beam_face.jpg',0)
plt.figure(figsize=[8,8])
plt.subplot(2,2,1)
plt.imshow(cv.cvtColor(img_,cv.COLOR_BGR2RGB))
plt.title('src image')
plt.subplot(2,2,2)
plt.imshow(cv.cvtColor(LBP(img_),cv.COLOR_BGR2RGB))
plt.title('LBP image')
貌似有用?
Gabor特征提取
介绍
Gabor滤波器介绍
在图像处理中,Gabor函数是一个用于边缘提取
的线性滤波器
,Gabor函数十分适合纹理表达和分离。
在空间域
中,一个二维Gabor滤波器是一个由正弦平面波
调制的高斯核函数
。
Gabor滤波器的脉冲响应
,可以定义为一个正弦波(对于二维Gabor滤波器是正弦平面波
)乘以高斯函数。由于乘法的卷积性质,Gabor滤波器的脉冲响应的傅立叶变换是其调和函数的傅立叶变换
和高斯函数傅立叶变换
的卷积。该滤波器由实部和虚部组成,二者相互正交。
一组不同频率不同方向的Gabor函数对于图像特征提取非常有用。
Gabor特征介绍
Gabor函数可以在频域
上不同尺度,不同方向上提取相关的特征(采用不同参数的Gabor函数),由于Gabor函数与人眼的作用相仿,所以常用在纹理识别
上。
Gabor特征提取主要包含取模
,特征降维
,特征归一化
和特征选取
等操作。
- 取模
就是使用图像变换后的实部和虚部的模(二范数)作为图像特征.
m o d ( c o m b i n e ) = r e a l 2 + i m a g 2 mod(combine)=\sqrt{real^2+imag^2} mod(combine)=real2+imag