写一个提取图像边缘直方图和颜色直方图特征的代码
时间: 2024-06-08 09:06:12 浏览: 174
这里提供一个使用OpenCV库进行图像特征提取的Python代码示例。其中包括了边缘直方图和颜色直方图特征的提取。
```python
import cv2
import numpy as np
# 读取图像
img = cv2.imread('image.jpg')
# 边缘检测
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray, 100, 200)
# 统计边缘直方图特征
hist_edges = cv2.calcHist([edges], [0], None, [256], [0, 256])
# 统计颜色直方图特征
color = ('b', 'g', 'r')
hist_color = []
for i, col in enumerate(color):
histr = cv2.calcHist([img], [i], None, [256], [0, 256])
hist_color.append(histr)
# 将直方图特征转换为一维数组
hist_edges = hist_edges.flatten()
hist_color = np.concatenate(hist_color).flatten()
# 将特征向量合并
features = np.concatenate((hist_edges, hist_color))
print(features)
```
需要注意的是,这里使用的是简单的灰度边缘检测方法和颜色直方图统计方法,更加复杂的方法可以进一步优化图像特征的提取效果。
阅读全文