在OpenCV中,可以使用支持向量機(SVM)來實現快速的圖像分類和標注。以下是一個簡單的示例代碼,展示了如何使用OpenCV中的SVM來對圖像進行分類和標注:
import cv2
import numpy as np
# 讀取訓練數據
train_data = np.load('train_data.npy')
train_labels = np.load('train_labels.npy')
# 創建SVM分類器
svm = cv2.ml.SVM_create()
svm.setKernel(cv2.ml.SVM_LINEAR)
svm.setType(cv2.ml.SVM_C_SVC)
svm.setC(2.67)
# 訓練SVM分類器
svm.train(train_data, cv2.ml.ROW_SAMPLE, train_labels)
# 加載測試圖像
test_img = cv2.imread('test_img.jpg')
# 提取特征
test_feature = extract_feature(test_img)
# 使用SVM進行分類
result = svm.predict(test_feature)
# 標注圖像
if result[1][0] == 1:
cv2.putText(test_img, 'Cat', (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 0, 0), 2)
else:
cv2.putText(test_img, 'Dog', (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2)
# 顯示標注后的圖像
cv2.imshow('Test Image', test_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
在這個示例中,我們首先加載訓練數據和標簽,然后創建一個SVM分類器并對其進行訓練。接著我們加載一個測試圖像,并提取其特征。最后,我們使用訓練好的SVM分類器對測試圖像進行分類,并根據分類結果進行標注。