質問編集履歴

17

2019/06/13 08:03

投稿

okusann
okusann

スコア6

test CHANGED
File without changes
test CHANGED
@@ -40,6 +40,10 @@
40
40
 
41
41
  ```
42
42
 
43
+ module.py
44
+
45
+ ————————————
46
+
43
47
  from tkinter import *
44
48
 
45
49
  from PIL improt Image ,ImageGrab
@@ -178,6 +182,18 @@
178
182
 
179
183
  self.__label.config(text=‘判定結果: ?’)
180
184
 
185
+ ————————————
186
+
187
+ start_up.py
188
+
189
+ ————————————
190
+
191
+ from module import Drawing
192
+
193
+ draw = Drawing()
194
+
195
+ draw.run()
196
+
181
197
  ```
182
198
 
183
199
  ### 試したこと

16

2019/06/13 08:03

投稿

okusann
okusann

スコア6

test CHANGED
File without changes
test CHANGED
@@ -128,9 +128,9 @@
128
128
 
129
129
  digits = ds.load_digits()
130
130
 
131
- learn_data = digits.data
131
+ learn_data = digits.data #学習データ
132
132
 
133
- result_data = digits.data
133
+ result_data = digits.target #結果データ
134
134
 
135
135
  model =SVC(gamma = 0.001)
136
136
 
@@ -144,13 +144,39 @@
144
144
 
145
145
  #判定
146
146
 
147
- def __predict_digits(self,target_data):
147
+ def __judge_digits(self):
148
148
 
149
- digits = ds.load_digits()
149
+ x1 = self.__window.winfo_riootx() + self.__canvas.winfo_x()
150
150
 
151
- learn_data = digits.data #学習データ
151
+ y1 = self.__window.winfo_riooty() + self.__canvas.winfo_y()
152
152
 
153
+ x2 = x1 + self.__canvas.winfo_width()
154
+
155
+ y2 = y1 + self.__canvas.winfo_height()
156
+
157
+ img = ImageGrap.grap()
158
+
159
+ img = img.crop((x1,y1,x2,y2))
160
+
161
+ target_data = self.__convert_image(img)
162
+
153
- result_data = digits.target #結果データ
163
+ self.__predict_digits(target_data)
164
+
165
+ #消去
166
+
167
+ def __clear(self):
168
+
169
+ x1= 0
170
+
171
+ y1= 0
172
+
173
+ x2= x1 + self.__canvas.winfo_width()
174
+
175
+ y2= y1 + self.__canvas.winfo_height()
176
+
177
+ self.__canvas.create_rectangle(x1,y1,x2,y2,fill=‘white’,width=0)
178
+
179
+ self.__label.config(text=‘判定結果: ?’)
154
180
 
155
181
  ```
156
182
 

15

2019/06/13 08:00

投稿

okusann
okusann

スコア6

test CHANGED
File without changes
test CHANGED
@@ -116,7 +116,41 @@
116
116
 
117
117
  img_array = numpy.asarray(gray_image,dtype = float)
118
118
 
119
- img_array = numpy.floor(16-16*(
119
+ img_array = numpy.floor(16-16*(img_array/256))
120
+
121
+ img_array = img_array.flatten()
122
+
123
+ return img_array
124
+
125
+ #数字判定予測
126
+
127
+ def __predict_digits(self,target_data):
128
+
129
+ digits = ds.load_digits()
130
+
131
+ learn_data = digits.data
132
+
133
+ result_data = digits.data
134
+
135
+ model =SVC(gamma = 0.001)
136
+
137
+ model.fit(learn_data,result_data)
138
+
139
+ n = model.predict([target_data])
140
+
141
+ self.__label.config(text = ‘判定結果: ‘ +str(n[0]))
142
+
143
+ print(n)
144
+
145
+ #判定
146
+
147
+ def __predict_digits(self,target_data):
148
+
149
+ digits = ds.load_digits()
150
+
151
+ learn_data = digits.data #学習データ
152
+
153
+ result_data = digits.target #結果データ
120
154
 
121
155
  ```
122
156
 

14

2019/06/13 07:44

投稿

okusann
okusann

スコア6

test CHANGED
File without changes
test CHANGED
File without changes

13

2019/06/13 07:34

投稿

okusann
okusann

スコア6

test CHANGED
File without changes
test CHANGED
@@ -52,13 +52,13 @@
52
52
 
53
53
  class Drawing:
54
54
 
55
- 画面描画
55
+ #コンストラクタ
56
56
 
57
57
  def __init__(self):
58
58
 
59
59
  self.__window = self.__create_window()
60
60
 
61
- #
61
+ #画面を構成
62
62
 
63
63
  def __create_window(self):
64
64
 
@@ -90,11 +90,33 @@
90
90
 
91
91
 
92
92
 
93
- #
93
+ #実行
94
94
 
95
95
  def run(self):
96
96
 
97
+ self.__window.mainloop()
98
+
99
+ #マウスを押す
100
+
101
+ def __on_pressed(self,e):
102
+
97
- self.
103
+ x = e.x
104
+
105
+ y = e.y
106
+
107
+ self.__canvas.create_oval(x-15,y-15,x+15,y+15,fill=‘black’
108
+
109
+ #画像データを数値リストに変換
110
+
111
+ def __convert_image(self,img):
112
+
113
+ gray_image = img.convert(‘L’)
114
+
115
+ gray_imgae = gray_image.resize((8,8),Image.ANTIALIAS)
116
+
117
+ img_array = numpy.asarray(gray_image,dtype = float)
118
+
119
+ img_array = numpy.floor(16-16*(
98
120
 
99
121
  ```
100
122
 

12

2019/06/13 04:11

投稿

okusann
okusann

スコア6

test CHANGED
File without changes
test CHANGED
@@ -31,6 +31,8 @@
31
31
 
32
32
 
33
33
  ### 該当のソースコード
34
+
35
+ g
34
36
 
35
37
  ```
36
38
 

11

2019/06/13 02:59

投稿

okusann
okusann

スコア6

test CHANGED
File without changes
test CHANGED
@@ -31,6 +31,10 @@
31
31
 
32
32
 
33
33
  ### 該当のソースコード
34
+
35
+ ```
36
+
37
+ コード
34
38
 
35
39
  ```
36
40
 
@@ -105,9 +109,3 @@
105
109
 
106
110
 
107
111
  ここにより詳細な情報を記載してください。
108
-
109
- ```ああああ
110
-
111
- コード
112
-
113
- ```

10

2019/06/13 02:57

投稿

okusann
okusann

スコア6

test CHANGED
File without changes
test CHANGED
@@ -105,3 +105,9 @@
105
105
 
106
106
 
107
107
  ここにより詳細な情報を記載してください。
108
+
109
+ ```ああああ
110
+
111
+ コード
112
+
113
+ ```

9

2019/06/13 02:57

投稿

okusann
okusann

スコア6

test CHANGED
File without changes
test CHANGED
@@ -31,6 +31,8 @@
31
31
 
32
32
 
33
33
  ### 該当のソースコード
34
+
35
+ ```
34
36
 
35
37
  from tkinter import *
36
38
 
@@ -88,6 +90,8 @@
88
90
 
89
91
  self.
90
92
 
93
+ ```
94
+
91
95
  ### 試したこと
92
96
 
93
97
  ・学習モデルに使用する手書き数字画像(0〜9)を各70枚ほど用意

8

2019/06/13 02:56

投稿

okusann
okusann

スコア6

test CHANGED
File without changes
test CHANGED
@@ -32,9 +32,7 @@
32
32
 
33
33
  ### 該当のソースコード
34
34
 
35
- ソースコード
36
-
37
- ```from tkinter import *
35
+ from tkinter import *
38
36
 
39
37
  from PIL improt Image ,ImageGrab
40
38
 

7

2019/06/13 02:53

投稿

okusann
okusann

スコア6

test CHANGED
File without changes
test CHANGED
@@ -32,11 +32,9 @@
32
32
 
33
33
  ### 該当のソースコード
34
34
 
35
- ```
36
-
37
35
  ソースコード
38
36
 
39
- from tkinter import *
37
+ ```from tkinter import *
40
38
 
41
39
  from PIL improt Image ,ImageGrab
42
40
 

6

2019/06/13 02:53

投稿

okusann
okusann

スコア6

test CHANGED
File without changes
test CHANGED
@@ -48,7 +48,7 @@
48
48
 
49
49
  class Drawing:
50
50
 
51
- #画面描画
51
+ 画面描画
52
52
 
53
53
  def __init__(self):
54
54
 

5

2019/06/13 00:05

投稿

okusann
okusann

スコア6

test CHANGED
File without changes
test CHANGED
@@ -32,15 +32,65 @@
32
32
 
33
33
  ### 該当のソースコード
34
34
 
35
-
36
-
37
35
  ```
38
36
 
39
37
  ソースコード
40
38
 
39
+ from tkinter import *
40
+
41
+ from PIL improt Image ,ImageGrab
42
+
43
+ import tkinter.filedialog as fd
44
+
45
+ import sklearn.svm import SVC
46
+
47
+ import numpy
48
+
49
+ class Drawing:
50
+
41
- ```
51
+ #画面描画
52
+
53
+ def __init__(self):
54
+
55
+ self.__window = self.__create_window()
56
+
57
+ #
58
+
59
+ def __create_window(self):
60
+
61
+ window = Tk()
62
+
63
+ window.geometry(‘400x400’)
64
+
65
+ window.tilte(‘数字判断アプリ’)
66
+
67
+ self.__label = Label(text = ‘判断結果:?’)
68
+
69
+ self.__label = Label.pack()
70
+
71
+ self.__canvas = Canvas(width = 200, bg = ‘white’)
72
+
73
+ self.__canvas.bind(‘<ButtonPress-1>’,self__.on_pressed)
74
+
75
+ self.__canvas.bind(‘<B1-Motion>’,self.__on_dragged
76
+
77
+ self.__canvas.pack()
78
+
79
+ judge_button= Button(text =‘判定’, command = self.__judge_digit)
80
+
81
+ judge_button.pack()
82
+
83
+ clear_button = Button(text =‘消去’, command = self.__clear)
84
+
85
+ return window
42
86
 
43
87
 
88
+
89
+ #
90
+
91
+ def run(self):
92
+
93
+ self.
44
94
 
45
95
  ### 試したこと
46
96
 

4

2019/06/13 00:00

投稿

okusann
okusann

スコア6

test CHANGED
File without changes
test CHANGED
@@ -46,6 +46,8 @@
46
46
 
47
47
  ・学習モデルに使用する手書き数字画像(0〜9)を各70枚ほど用意
48
48
 
49
+ ・画像を8×8ピクセルにリサイズ
50
+
49
51
 
50
52
 
51
53
  ### 補足情報(FW/ツールのバージョンなど)

3

2019/06/12 10:49

投稿

okusann
okusann

スコア6

test CHANGED
File without changes
test CHANGED
@@ -2,13 +2,13 @@
2
2
 
3
3
  前提として
4
4
 
5
- ・インターネットからデータは取れない。
5
+ ・インターネットから既存の手書きデータは取れない。
6
6
 
7
7
  ・手書きのみ
8
8
 
9
9
  ・キャンバスに描画した数字を画像⇨文字列に変換して学習モデルと比較
10
10
 
11
- ・scikit-learn で学習モデルを作成
11
+ ・scikit-learn で教師あり学習モデルを作成
12
12
 
13
13
 
14
14
 

2

2019/06/12 10:09

投稿

okusann
okusann

スコア6

test CHANGED
File without changes
test CHANGED
@@ -7,6 +7,8 @@
7
7
  ・手書きのみ
8
8
 
9
9
  ・キャンバスに描画した数字を画像⇨文字列に変換して学習モデルと比較
10
+
11
+ ・scikit-learn で学習モデルを作成
10
12
 
11
13
 
12
14
 
@@ -42,7 +44,7 @@
42
44
 
43
45
  ### 試したこと
44
46
 
45
- 学習モデルに使用する手書き数字画像(0〜9)を各70枚ほど用意
47
+ 学習モデルに使用する手書き数字画像(0〜9)を各70枚ほど用意
46
48
 
47
49
 
48
50
 

1

2019/06/12 10:05

投稿

okusann
okusann

スコア6

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,14 @@
1
1
  ### 前提・実現したいこと
2
+
3
+ 前提として
4
+
5
+ ・インターネットからデータは取れない。
6
+
7
+ ・手書きのみ
8
+
9
+ ・キャンバスに描画した数字を画像⇨文字列に変換して学習モデルと比較
10
+
11
+
2
12
 
3
13
  現在キャンバス上に描画した数字を判定して予測結果を出力するプログラムを作成してしています。
4
14
 
@@ -8,15 +18,13 @@
8
18
 
9
19
 
10
20
 
21
+
22
+
11
23
  ### 発生している問題・エラーメッセージ
12
24
 
13
- が40%ほどで低状態す。
25
+ ```をあげるには、学習するための画像を増やせばしょうか
14
26
 
15
- ```
16
27
 
17
- エラーメッセージ
18
-
19
- ```
20
28
 
21
29
 
22
30
 
@@ -24,7 +32,7 @@
24
32
 
25
33
 
26
34
 
27
- ```Python3.6
35
+ ```
28
36
 
29
37
  ソースコード
30
38
 
@@ -34,7 +42,7 @@
34
42
 
35
43
  ### 試したこと
36
44
 
37
- 手書き数字(0〜9)を各70枚ほど用意
45
+ 学習モデルに使用する手書き数字画像(0〜9)を各70枚ほど用意
38
46
 
39
47
 
40
48