Python实现的LBP特征提取

该博客介绍了如何使用Python实现局部二值模式(LBP)的旋转不变特征提取。通过定义函数`Rotate_LBP_Min`获取LBP字符串的最小二进制值,以及函数`LBP_Rotate`进行图像处理,遍历像素并比较周围点的灰度值来构建LBP字符串,最终得到旋转不变的LBP特征。
摘要由CSDN通过智能技术生成

# -*- coding: utf-8 -*-
import cv2
import numpy as np
import math
import os
import matplotlib.pyplot as plt

# 取得给定的LBP字符串的最小二进制值,实现旋转不变形
def Rotate_LBP_Min(str_lbp_input):
    str_lbp_tmp = str_lbp_input
    MinValue = int(str_lbp_tmp, 2) #转换二进制数
    nLen = len(str_lbp_tmp)
    for npos in range(nLen):
        str_head = str_lbp_tmp[0]
        str_tail = str_lbp_tmp[1:]
        str_lbp_tmp = str_tail + str_head
        CurrentValue = int(str_lbp_tmp, 2)
        if CurrentValue<MinValue:
            MinValue = CurrentValue
    return MinValue

def LBP_Rotate(image):
    H, W = image.shape[:2]      #获得图像长宽
    xx = [-1,  0,  1, 1, 1, 0, -1, -1]
    yy = [-1, -1, -1, 0, 1, 1,  1,  0]    #xx, yy 主要作用对应顺时针旋转时,相对中点的相对值.
    
    #创建0数组,显而易见维度原始图像的长宽分别减去2,并且类型一定的是uint8,无符号8位,op

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值