svm图像二分类实例代码
时间: 2023-08-06 15:06:47 浏览: 53
SVM二分类代码
这里是一个基于SVM进行图像二分类的示例代码:
```python
import cv2
import numpy as np
from sklearn import svm
from sklearn.model_selection import train_test_split
# 读取数据集
data = []
labels = []
for i in range(1, 11):
for j in range(1, 6):
img = cv2.imread(f'data/{i}_{j}.jpg', cv2.IMREAD_GRAYSCALE)
img = cv2.resize(img, (128, 128))
data.append(img.reshape(-1))
labels.append(i)
# 划分训练集和测试集
train_data, test_data, train_labels, test_labels = train_test_split(data, labels, test_size=0.3)
# 训练SVM模型
clf = svm.SVC(kernel='linear')
clf.fit(train_data, train_labels)
# 预测测试集
pred_labels = clf.predict(test_data)
# 计算准确率
accuracy = np.mean(pred_labels == test_labels)
print(f'Accuracy: {accuracy}')
```
在这个例子中,我们使用了一个包含10个类别的数据集,每个类别包含5张大小不一的灰度图像。我们先将每张图像转化为一维向量,并将它们作为训练数据。然后,我们使用`train_test_split`函数将训练数据划分为训练集和测试集,其中测试集占总数据的30%。接着,我们训练一个`SVC`模型,使用线性核函数。最后,我们用训练好的模型预测测试集,并计算准确率。
阅读全文