用第三方工具包中的特征提取函数,分别提取图像的LBP特征,HOG特征,并可视化输出原始图像和提取的特征图像
时间: 2024-10-13 21:06:06 浏览: 47
在计算机视觉中,使用第三方库如OpenCV或Scikit-image等可以帮助我们处理图像并提取特征。以下是针对局部二值模式(Local Binary Patterns,LBP)和方向梯度直方图(Histogram of Oriented Gradients,HOG)的简要步骤:
1. **LBP特征提取**:
- 导入必要的库:`import cv2` 和 `skimage.feature`
- 转换图像到灰度:`gray_image = cv2.cvtColor(original_image, cv2.COLOR_BGR2GRAY)`
- 应用LBP算子:`lbp_descriptor = skimage.feature.local_binary_pattern(gray_image, size=8, method='uniform')`
- 可视化LBP特征图:将描述符转换回原大小的图像,通常通过创建一个新的uint8矩阵,然后绘制每个像素点的LBP码。
2. **HOG特征提取**:
- `from skimage.feature import hog`
- 定义HOG参数:`orientations = 9`, `pixels_per_cell=(8,8)`, `cells_per_block=(2,2)` 或者自定义
- 提取HOG特征:`hog_descriptors, hog_orientations = hog(gray_image, orientations, pixels_per_cell=pixels_per_cell, cells_per_block=cells_per_block)`
- HOG通常是灰度的,所以不需要转换回彩色图像
3. **输出**:
- 使用`cv2.imshow()`显示原始图像、LBP特征图和HOG特征图。记得在展示之前关闭之前的窗口,以免重叠。
```python
# 示例
cv2.imshow('Original Image', original_image)
cv2.imshow('LBP Feature', cv2.applyColorMap(lbp_descriptor.astype(np.uint8), cv2.COLORMAP_JET))
cv2.imshow('HOG Feature', hog_descriptors_to_color(hog_descriptors, hog_orientations)) # 自定义函数转换HOG到颜色图
cv2.waitKey(0) # 等待用户按键,0表示无限等待
cv2.destroyAllWindows()
```
阅读全文