opencv+svm实现图像分类代码
时间: 2023-07-30 09:06:14 浏览: 94
opencv使用SVM实现图像分类识别
以下是基于 OpenCV 和 SVM 实现图像分类的代码示例:
```python
import cv2
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
# 读取数据集
data = []
labels = []
for i in range(1, 11):
for j in range(1, 11):
img = cv2.imread(f'data/{i}_{j}.png', 0)
data.append(img.flatten())
labels.append(i)
# 将数据集分为训练集和测试集
x_train, x_test, y_train, y_test = train_test_split(data, labels, test_size=0.2)
# 训练 SVM 模型
svm = SVC(kernel='linear', C=1, gamma='auto')
svm.fit(x_train, y_train)
# 在测试集上测试 SVM 模型
accuracy = svm.score(x_test, y_test)
print(f'Accuracy: {accuracy}')
# 预测新数据
img = cv2.imread('test.png', 0)
prediction = svm.predict(img.flatten().reshape(1, -1))
print(f'Prediction: {prediction}')
```
代码中,首先读取数据集,将每张图片展平为一维数组,并将其作为 SVM 模型的输入。然后使用 `train_test_split` 函数将数据集分为训练集和测试集。接着使用 SVM 模型进行训练,并在测试集上测试模型的准确度。最后,对一张新的图片进行预测,输出预测结果。
阅读全文