0
OpenCVを使用してPythonでCBIRシステムをセットアップしました。私は、キーポイントとディスクリプタを正常に抽出し、k-手段を使用してコードブックを作成し、このコードブックに基づいて画像を記述するヒストグラムを生成しました。私はこのコードの最後の行に生成されたこれらのヒストグラムをSVMを訓練するためにどのように使うことができるか、あるいはこれについて間違った方法で行っているかどうかを知りたいと思います。PythonでrootSIFT機能を使用してSVMを初期化してトレーニングする方法
import argparse
import glob
import cv2
import numpy
import pickle
import base64
from scipy.cluster.vq import *
from cassandra.cluster import Cluster
def compute(imagePath, eps=1e-7)
sift = cv2.xfeatures2d.SIFT_create()
image = cv2.imread(imagePath, 0)
kp, des = sift.detectAndCompute(image, None)
if des is not None:
kp, des = sift.compute(image, kp)
if len(kp) == 0:
return ([], None)
des /= (des.sum(axis=1, keepdims=True) + eps)
des = numpy.sqrt(des)
des = whiten(des)
return kp, des
for imagePath in dataset :
kp,des = compute(imagePath)
codes, distortion = vq(des, codebook)
hist, bins = numpy.histogram(codes, K)