各画像をvisual wardsでクラスタリングした後、特徴点をクラスタ数ごとに集計しようとした結果、print(vector)で
[ 180. 151. 106. 164. 96.]
[ 357. 342. 273. 312. 190.]
[ 397. 409. 286. 350. 197.]
[ 458. 467. 295. 383. 209.]
と、前のものに足された結果に
なってしまいます。
下のような結果になるようにしたいです。
[ 180. 151. 106. 164. 96.]
[ 177. 191. 167. 148. 94.]
[ 40. 67. 13. 38. 7.]
[ 61. 58. 9. 33. 12.]
コード vector = np.zeros(len(visual_words)) for i, (classId, data_path) in enumerate(train_set): # 進捗表示 sys.stdout.write(".") # グレースケールで画像読み込み(1.画像入力) gray = cv2.imread(data_path, GRAYSCALE) # 特徴点とその特徴を計算(2.特徴量抽出) keypoints, descriptors= detector.detectAndCompute(gray, None) # intからfloat32に変換 ベクトルに変換 descriptors = descriptors.astype(np.float32) for f in descriptors: vector[((visual_words - f)**2).sum(axis=1).argmin()] += 1 print(vector)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/18 00:08