画像分類をしており,特徴量マッチングを行いたいと思っております。
現状matchファイルのaというファイルに3枚の画像データが入っており,それら3枚の画像データ(教師データ)と分類したい画像(target_img)の特徴量の対応値(ret)までは取得できております。
import cv2 import os import glob IMG_SIZE = (200, 200) target_img = cv2.imread('./match/./pura/a (77).jpg', cv2.IMREAD_GRAYSCALE) target_img = cv2.resize(target_img, IMG_SIZE) bf = cv2.BFMatcher(cv2.NORM_HAMMING) detector = cv2.ORB_create() (target_kp, target_des) = detector.detectAndCompute(target_img, None) files = glob.glob("./match/./a/*") for i, f in enumerate(files): try: img = cv2.imread(f) img = cv2.resize(img, IMG_SIZE) gray = cv2.cvtColor(img, cv2.IMREAD_GRAYSCALE) gray = cv2.resize(gray, IMG_SIZE) (comparing_kp, comparing_des) = detector.detectAndCompute(gray, None) matches = bf.match(target_des, comparing_des) dist = [m.distance for m in matches] ret = sum(dist) / len(dist) except cv2.error: ret = 100000 print(i, ret) コード
現状このコードで下記のような結果が出力されます。
0 71.97631578947369
1 70.15263157894736
2 78.3921052631579
3 68.20526315789473
ここからこれらの画像(target_img)をretの値が最小のグループに分類して,
ファイルにそれぞれ保存したいのですが,どのようなコードかが分かりません。
今の画像であれば,0,1,2,3のファイルを作って,その中の3に分類したいです。
どなたかよろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/27 04:34
2019/12/27 15:15