智能识别系统设计---图像特征提取

特征提取的简介

在这里插入图片描述
特征提取:通过统计或学习等方法从图像中提取出能够有效表示原始图像内容的特征向量的集合

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=0p12ps(ipic) 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 x0else
二值化后的矩阵
在这里插入图片描述

然后将像素点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
  • 12
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值