Python opencv提取hog特征
时间: 2024-10-07 09:08:19 浏览: 66
在Python中,OpenCV (Open Source Computer Vision Library) 提供了霍夫(Histogram of Oriented Gradients, HOG)特征的计算功能,HOG是一种用于行人检测等计算机视觉任务的强大工具,它通过统计图像局部区域的梯度方向分布来生成描述符。
使用OpenCV提取HOG特征的一般步骤如下:
1. 导入所需库:
```python
import cv2
from skimage import exposure
```
2. 初始化HOG描述符和配置参数:
```python
win_size = (64, 128) # 分块大小
block_size = (16, 16) # 分块内像素集合大小
cell_size = (8, 8) # 计算梯度的方向的小窗口大小
num_blocks_vertical = 1 # 水平划分块的数量
num_blocks_horizontal = 1 # 纵向划分块的数量
num_orientations = 9 # 方向数,通常选择9个基本方向
```
3. 定义一个函数来提取HOG特征:
```python
def extract_hog_features(img):
hog = cv2.HOGDescriptor(win_size, block_size, cell_size, block_stride=None, padding=0)
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
scaled_img = exposure.equalize_hist(gray_img) # 可选预处理步骤,增强对比度
feature_vector = hog.compute(scaled_img)
return feature_vector
```
4. 应用到图片上并保存特征:
```python
image_path = 'path_to_your_image.jpg'
img = cv2.imread(image_path)
features = extract_hog_features(img)
```
阅读全文