svm图像二分类实例代码
时间: 2023-06-20 20:06:41 浏览: 97
以下是一个基于 SVM 的图像二分类实例代码:
```python
import cv2
import numpy as np
from sklearn import svm
# 读取训练数据
image_names = ['cat.jpg', 'dog.jpg', 'elephant.jpg', 'horse.jpg']
train_data = []
train_labels = []
for i, image_name in enumerate(image_names):
img = cv2.imread(image_name)
img = cv2.resize(img, (100, 100)) # 调整图片大小
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 转换为灰度图
train_data.append(img_gray.flatten()) # 将图片数据展开成一维向量
train_labels.append(i) # 标记图片所属类别
# 训练 SVM 模型
clf = svm.SVC(kernel='linear')
clf.fit(train_data, train_labels)
# 测试数据
test_image_names = ['cat2.jpg', 'dog2.jpg', 'elephant2.jpg', 'horse2.jpg']
for test_image_name in test_image_names:
img = cv2.imread(test_image_name)
img = cv2.resize(img, (100, 100)) # 调整图片大小
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 转换为灰度图
test_data = img_gray.flatten() # 将图片数据展开成一维向量
predicted_label = clf.predict([test_data])[0] # 预测图片所属类别
print(test_image_name, ':', predicted_label)
```
该代码将四张动物图片作为训练数据,从中提取特征并标记类别,然后使用 SVM 模型进行训练。接着,使用另外四张图片作为测试数据,预测它们所属的类别。
阅读全文