svm分类图像python代码
时间: 2023-06-18 08:05:17 浏览: 112
hog_svm图像分类(python代码)+图片
5星 · 资源好评率100%
下面是使用SVM对图像进行分类的Python代码示例:
```python
import cv2
import numpy as np
from sklearn.svm import SVC
from sklearn.model_selection import train_test_split
# 加载图像和标签
def load_data():
images = []
labels = []
for i in range(0, 10):
for j in range(0, 100):
img = cv2.imread('images/' + str(i) + '_' + str(j) + '.png', 0)
img = cv2.resize(img, (20, 20))
images.append(img)
labels.append(i)
return np.array(images), np.array(labels)
# 提取图像特征
def extract_features(images):
features = []
for img in images:
feature = np.reshape(img, (400,))
features.append(feature)
return np.array(features)
# 训练SVM模型
def train_model(X, y):
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
clf = SVC(kernel='linear', C=1, gamma='auto')
clf.fit(X_train, y_train)
print('训练集精度:', clf.score(X_train, y_train))
print('测试集精度:', clf.score(X_test, y_test))
return clf
# 加载数据
images, labels = load_data()
# 提取特征
features = extract_features(images)
# 训练模型
clf = train_model(features, labels)
# 预测测试图像
test_img = cv2.imread('test.png', 0)
test_img = cv2.resize(test_img, (20, 20))
test_feature = np.reshape(test_img, (1, 400))
print('预测结果:', clf.predict(test_feature))
```
在这个示例中,我们首先使用`load_data`函数加载图像和标签,然后使用`extract_features`函数提取图像特征,最后使用`train_model`函数训练SVM模型。在训练完模型后,我们可以使用`predict`函数对测试图像进行分类预测。
阅读全文