前提・実現したいこと
ロジスティック回帰を用いた赤:その他の分類の学習データセットを作成するにあたり、
1画素にが持つHSVのデータをそれぞれ分割し、画素ごとに赤:1、その他:0のラベル付けを
行おうと考えています。
発生している問題・エラーメッセージ
学習データのリストを表示するプログラムを実行した際、
[]
[]
[]
のように空のリストが出力されてしまいます。
エラーメッセージ
該当のソースコード
pythpn
1import os 2import cv2 3import numpy as np 4 5#学習データ作成用の変数定義 6DATADIR = "C:/Users/Desktop/color_learning/dataset/train" 7CATEGORIES = ["other", "red"] 8IMG_SIZE = 1200 9training_data_h = [] 10training_data_s = [] 11training_data_v = [] 12 13#学習データ作成関数 14def create_training_data(): 15 for class_num, category in enumerate(CATEGORIES): 16 path = os.path.join(DATADIR, category) 17 for image_name in os.listdir(path): 18 try: 19 img_array = cv2.imread(os.path.join(path, image_name),) # 画像読み込み 20 img_resize_array = cv2.resize(img_array, (IMG_SIZE, IMG_SIZE)) # 画像のリサイズ 21 img_hsv_array = cv2.cvtColor(img_resize_array, cv2.COLOR_BGR2HSV)#HSV変換 22 h,s,v = cv2.split(img_hsv_array)#HSVのデータ分割 23 h = [np.hsplit(row,1200) for row in np.vsplit(h,1200)]#データを画素単位に分割 24 s = [np.hsplit(row,1200) for row in np.vsplit(s,1200)] 25 v = [np.hsplit(row,1200) for row in np.vsplit(v,1200)] 26 h = np.array(h) 27 s = np.array(s) 28 v = np.array(v) 29 h = h.reshape(-1,1).astype(np.float32)#hのデータ形状変更 30 s = s.reshape(-1,1).astype(np.float32)#sのデータ形状変更 31 v = v.reshape(-1,1).astype(np.float32)#vのデータ形状変更 32 33 for pixel in training_data_h: 34 training_data_h.extend([h, class_num]) # 画素データ、ラベル情報を追加 35 for pixel in training_data_s: 36 training_data_s.extend([s, class_num]) # 画素データ、ラベル情報を追加 37 for pixel in training_data_v: 38 training_data_v.extend([v, class_num]) # 画素データ、ラベル情報を追加 39 except Exception as e: 40 pass 41 42create_training_data() 43 44print(training_data_h) 45print(training_data_s) 46print(training_data_v)
補足情報(FW/ツールのバージョンなど)
Windows10
Python 3.8.3
↑画素ごとに赤:1のラベル付けをしたい画像(このような画像が合計7枚ほどあります。)
初心者のため稚拙な質問になってしまい申し訳ありません。
御教授いただけたら幸いです。
回答1件
あなたの回答
tips
プレビュー