前提・実現したいこと
メーターの数字を読み取るプログラムを作成しています。
機械学習でsckit-learnを用いて行いたいと考えており、
自分でデータセットを作り学習させたいと考えています。
言語はpython3です。
suuji0420.pyでに作成したデータセットを保存し、test.pyで実行すると、以下のようなエラーが出てきます。
発生している問題・エラーメッセージ
File "C:\Users\erifu\Desktop\data0417\suuji_0420.py", line 56, in load_Suuji suuji=Number(data, target, target_names, images) TypeError: Number() takes no arguments
###該当のソースコード(suuji0420.py)
from PIL import Image import numpy as np import os,glob #画像フォルダのへの絶対パス ROOT_DIR="/Users/erifu/Desktop/data0417/" #画像フォルダー名 categories=["2","7","8"] #クラス class Number(): def _init_(self,data,target,target_names,images): self.data=data self.target=target self.target_names=target_names self.images=images #キー(インスタンス変数)を取得するメソッド def keys(self): print("[data,target,target_names,images]") #画像データをnumpy形式に変換してデータセットを作成 def load_Suuji(): data=[]#画像の一次元データを格納するリスト target=[]#ラベル(正解)の情報を格納するリスト target_names=["2","7","8"] images=[]#画像の二次元データを格納するリスト for label,category in enumerate(categories): file_dir=ROOT_DIR + category #すべての画像をとってくる files=glob.glob(file_dir + "/*.jpg") print("---------{}の画像をnumpy形式に変換し、Listに格納中---------".format(category)) for i,f in enumerate(files): img=Image.open(f) img=img.convert('L')#画像をフレースケールに変換 img=img.resize((84,84)) imgdata=np.asarray(img)#numpy配列に変換 images.append(imgdata)#画像データの二次元配列 data.append(imgdata.flatten())#画像データの一次元配列 target.append(label)#正解ラベルを格納 print("------------リストをnumpy形式に変換中-----------") data=np.array(data) target=np.array(target) target_names=np.array(target_names) images=np.array(images) #インスタンスを生成 suuji=Number(data, target, target_names, images) return suuji
###該当のソースコード
import suuji_0420 a=suuji_0420.load_Suuji() print(a.data.shape) print(a.keys())
"""
補足情報
最終的にはsckit-learnでの画像認識の機械学習を行いたいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/21 01:03