質問編集履歴

4

編集しましたー。

2021/05/14 15:22

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,12 +1,52 @@
1
+ 読み込んだ画像を100*100にresizeしたのですが、これを
2
+
1
- qiitaてあるコード意味分からないけど意味が分からないま適当に変更したらやっぱり思った通りに動かなかったです
3
+ 10*10の画像10個分割したいのですが、その方法が分かせん
2
4
 
3
5
 
4
6
 
7
+ Qiitaの
8
+
5
- numpyで画像の分割と連結という
9
+ 画像の分割と連結
6
10
 
7
11
  https://qiita.com/ka10ryu1/items/015c6a6a5fa287a47828
8
12
 
13
+ という記事に、画像等分割のコードが書かれていたのですが、そのまま貼りつけても動きません。コードは以下になります。
14
+
15
+
16
+
17
+ ```python
18
+
9
- ここの、Qiitaの記事のプログラムを元に、
19
+   import numpy as np
20
+
21
+
22
+
23
+ v_size = img.shape[0] // size * size
24
+
25
+ h_size = img.shape[1] // size * size
26
+
27
+ img = img[:v_size, :h_size]
28
+
29
+
30
+
31
+ v_split = img.shape[0] // size
32
+
33
+ h_split = img.shape[1] // size
34
+
35
+ out_img = []
36
+
37
+ [out_img.extend(np.hsplit(h_img, h_split))
38
+
39
+ for h_img in np.vsplit(img, v_split)]
40
+
41
+ ```
42
+
43
+
44
+
45
+ 出力結果として[None]が大量に出力されるだけです。
46
+
47
+
48
+
49
+ 自分はGoogleColaboratoryで使いたいので、Colabでも使えるようにし、かつ回答を少し参考に一部いじったコードが以下です。
10
50
 
11
51
 
12
52
 
@@ -34,12 +74,6 @@
34
74
 
35
75
 
36
76
 
37
- # PILで開いたうえでデータをNumpy形式にする
38
-
39
- # (例えばJPEGは圧縮されていてNumpyな配列になっていないので、
40
-
41
- # そこからNumpyのデータ空間(?)に持ってくる必要がある)
42
-
43
77
  tefilename = "test2.png"
44
78
 
45
79
  teimg = Image.open("drive/My Drive/mnist_dataset/" + tefilename)
@@ -47,10 +81,6 @@
47
81
  teimg = teimg.resize((100, 100))
48
82
 
49
83
  img = np.asarray(teimg)
50
-
51
-
52
-
53
-
54
84
 
55
85
 
56
86
 
@@ -70,264 +100,40 @@
70
100
 
71
101
  [out_img.extend(np.hsplit(h_img, h_split))
72
102
 
73
- for h_img in np.vsplit(img, v_split)]
103
+ for h_img in np.vsplit(img, v_split)]
104
+
105
+
106
+
107
+ print(out_img)
74
108
 
75
109
  ```
76
110
 
77
111
 
78
112
 
79
- こういうプログラムを作ったんですが、出力結果
113
+ 出力結果
80
114
 
81
115
  Drive already mounted at /content/drive; to attempt to forcibly remount, call drive.mount("/content/drive", force_remount=True).
82
116
 
83
- [None,
84
-
85
- None,
86
-
87
- None,
88
-
89
- None,
90
-
91
- None,
92
-
93
- None,
94
-
95
- None,
96
-
97
- None,
98
-
99
- None,
100
-
101
- None,
102
-
103
- None,
104
-
105
- None,
106
-
107
- None,
108
-
109
- None,
110
-
111
- None,
112
-
113
- None,
114
-
115
- None,
116
-
117
- None,
118
-
119
- None,
120
-
121
- None,
122
-
123
- None,
124
-
125
- None,
126
-
127
- None,
128
-
129
- None,
130
-
131
- None,
132
-
133
- None,
134
-
135
- None,
136
-
137
- None,
138
-
139
- None,
140
-
141
- None,
142
-
143
- None,
144
-
145
- None,
146
-
147
- None,
148
-
149
- None,
150
-
151
- None,
152
-
153
- None,
154
-
155
- None,
156
-
157
- None,
158
-
159
- None,
160
-
161
- None,
162
-
163
- None,
164
-
165
- None,
166
-
167
- None,
168
-
169
- None,
170
-
171
- None,
172
-
173
- None,
174
-
175
- None,
176
-
177
- None,
178
-
179
- None,
180
-
181
- None,
182
-
183
- None,
184
-
185
- None,
186
-
187
- None,
188
-
189
- None,
190
-
191
- None,
192
-
193
- None,
194
-
195
- None,
196
-
197
- None,
198
-
199
- None,
200
-
201
- None,
202
-
203
- None,
204
-
205
- None,
206
-
207
- None,
208
-
209
- None,
210
-
211
- None,
212
-
213
- None,
214
-
215
- None,
216
-
217
- None,
218
-
219
- None,
220
-
221
- None,
222
-
223
- None,
224
-
225
- None,
226
-
227
- None,
228
-
229
- None,
230
-
231
- None,
232
-
233
- None,
234
-
235
- None,
236
-
237
- None,
238
-
239
- None,
240
-
241
- None,
242
-
243
- None,
244
-
245
- None,
246
-
247
- None,
248
-
249
- None,
250
-
251
- None,
252
-
253
- None,
254
-
255
- None,
256
-
257
- None,
258
-
259
- None,
260
-
261
- None,
262
-
263
- None,
264
-
265
- None,
266
-
267
- None,
268
-
269
- None,
270
-
271
- None,
272
-
273
- None,
274
-
275
- None,
276
-
277
- None,
278
-
279
- None,
280
-
281
- None]
282
-
283
- となり、画像すら表示されません。
284
-
285
- 具体的に自分のやりたい事は、まず取り込んだ画像サイズを100*100にresizeしているので、
286
-
287
- これを10*10の正方形100個に分割したいのです。
288
-
289
- 分割しても表示する必要はなく、python中で分割させて、記事にあるように、
290
-
291
- 画像番号とかでpython中で呼び出せるようにしたいのです、
292
-
293
- ゆくゆくは、各画像の類似度とかを計算して、色々やりたいんですが。
117
+ [array([[[255, 255, 255]]], dtype=uint8), array([[[255, 255, 255]]], dtype=uint8), array([[[255, 255, 255]]], dtype=uint8), array([[[255, 255, 255]]], dtype=uint8), array([[[255, 255, 255]]], dtype=uint8), array([[[255, 255, 255]]], dtype=uint8), array([[[255, 255, 255]]], dtype=uint8), array([[[255, 255, 255]]], dtype=uint8), array([[[255, 255, 255]]], dtype=uint8), array([[[255, 255, 255]]], dtype=uint8), array([[[255, 255, 255]]], dtype=uint8), array([[[255, 255, 255]]], dtype=uint8), array([[[255, 255, 255]]], dtype=uint8), array([[[255, 255, 255]]], dtype=uint8), array([[[255, 255, 255]]], dtype=uint8), array([[[255, 255, 255]]], dtype=uint8), array([[[255, 255, 255]]], dtype=uint8), array([[[255, 255, 255]]], dtype=uint8), array([[[255, 255, 255]]], dtype=uint8), array([[[255, 255, 255]]], dtype=uint8), array([[[255, 255, 255]]], dtype=uint8), array([[[255, 255, 255]]], dtype=uint8), array([[[255, 255, 255]]], dtype=uint8), array([[[255, 255, 255]]], dtype=uint8), array([[[255, 255, 255]]],・・・(略)
294
118
 
295
119
 
296
120
 
297
- 記事に
121
+ となります。
298
122
 
123
+
124
+
299
- 書かれているコードは
125
+ たぶん、
300
126
 
301
127
  ```python
302
128
 
303
-   import numpy as np
129
+ [out_img.extend(np.hsplit(h_img, h_split))
304
130
 
305
-
306
-
307
- v_size = img.shape[0] // size * size
308
-
309
- h_size = img.shape[1] // size * size
310
-
311
- img = img[:v_size, :h_size]
312
-
313
-
314
-
315
- v_split = img.shape[0] // size
316
-
317
- h_split = img.shape[1] // size
318
-
319
- out_img = []
320
-
321
- [out_img.extend(np.hsplit(h_img, h_split))
322
-
323
- for h_img in np.vsplit(img, v_split)]
131
+ for h_img in np.vsplit(img, v_split)]
324
132
 
325
133
  ```
326
134
 
327
- ですがこれをのまま貼りつけてちろん画像読み込みら行ってないでエラーが出
135
+ の部分を、そも変更する必要があると思うが、どう変更すれば良いのか分かりせん
328
136
 
329
- 何か元となコードがあって一部変更するのかと思いきや、そいうももないみたいです
137
+ extendはリストに引数を追加すものでこれリスト内に入れているのがおしいと思うのですが、
330
138
 
331
-
332
-
333
- 記事通りなくても良ので希望通り画像を複数枚等分割るコードを教えて頂きたいのですが
139
+ はforを用い、縦横分割はどよう記述れば良いのか、よく分かりません

3

補足しました。

2021/05/14 15:22

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,12 @@
1
+ qiitaに書いてあるコードの意味が分からないけど、意味が分からないまま適当に変更したらやっぱり思った通りに動かなかったです。
2
+
3
+
4
+
5
+ numpyで画像の分割と連結という
6
+
7
+ https://qiita.com/ka10ryu1/items/015c6a6a5fa287a47828
8
+
1
- numpyで画像分割と連結というQiitaの記事のプログラムを元に、
9
+ ここQiitaの記事のプログラムを元に、
2
10
 
3
11
 
4
12
 
@@ -272,9 +280,9 @@
272
280
 
273
281
  None]
274
282
 
275
- でした縦横分割したいですが
283
+ となり画像すら表示されません。
276
-
284
+
277
- 具体的には、画像サイズを100*100にresizeしているので、
285
+ 具体的に自分のやりたい事は、まず取り込んだ画像サイズを100*100にresizeしているので、
278
286
 
279
287
  これを10*10の正方形100個に分割したいのです。
280
288
 
@@ -286,7 +294,7 @@
286
294
 
287
295
 
288
296
 
289
- 記事のURLは、https://qiita.com/ka10ryu1/items/015c6a6a5fa287a47828です。
297
+ 記事
290
298
 
291
299
  書かれているコードは
292
300
 
@@ -316,6 +324,10 @@
316
324
 
317
325
  ```
318
326
 
319
- ですが、もちろん画像の読み込みすら行っていないのでエラーが出ます。
327
+ ですが、これをそのまま貼りつけて、もちろん画像の読み込みすら行っていないのでエラーが出ます。
320
328
 
321
329
  何か元となるコードがあって、一部を変更するのかと思いきや、そういうものもないみたいです。
330
+
331
+
332
+
333
+ 記事通りでなくても良いので、希望の通り画像を複数枚に等分割するコードを教えて頂きたいのですが。

2

補足しましたー。

2021/05/14 08:15

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -283,3 +283,39 @@
283
283
  画像番号とかでpython中で呼び出せるようにしたいのです、
284
284
 
285
285
  ゆくゆくは、各画像の類似度とかを計算して、色々やりたいんですが。
286
+
287
+
288
+
289
+ 記事のURLは、https://qiita.com/ka10ryu1/items/015c6a6a5fa287a47828です。
290
+
291
+ 書かれているコードは
292
+
293
+ ```python
294
+
295
+   import numpy as np
296
+
297
+
298
+
299
+ v_size = img.shape[0] // size * size
300
+
301
+ h_size = img.shape[1] // size * size
302
+
303
+ img = img[:v_size, :h_size]
304
+
305
+
306
+
307
+ v_split = img.shape[0] // size
308
+
309
+ h_split = img.shape[1] // size
310
+
311
+ out_img = []
312
+
313
+ [out_img.extend(np.hsplit(h_img, h_split))
314
+
315
+ for h_img in np.vsplit(img, v_split)]
316
+
317
+ ```
318
+
319
+ ですが、もちろん画像の読み込みすら行っていないのでエラーが出ます。
320
+
321
+ 何か元となるコードがあって、一部を変更するのかと思いきや、そういうものもないみたいです。

1

やりたいこと追加しました。

2021/05/14 02:37

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -273,3 +273,13 @@
273
273
  None]
274
274
 
275
275
  でした、縦横分割したいんですが。
276
+
277
+ 具体的には、画像サイズを100*100にresizeしているので、
278
+
279
+ これを10*10の正方形100個に分割したいのです。
280
+
281
+ 分割しても表示する必要はなく、python中で分割させて、記事にあるように、
282
+
283
+ 画像番号とかでpython中で呼び出せるようにしたいのです、
284
+
285
+ ゆくゆくは、各画像の類似度とかを計算して、色々やりたいんですが。