質問編集履歴
4
編集しましたー。
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,10 +1,30 @@
|
|
1
|
+
読み込んだ画像を100*100にresizeしたのですが、これを
|
1
|
-
|
2
|
+
10*10の画像10個に分割したいのですが、その方法が分かりません。
|
2
3
|
|
4
|
+
Qiitaの
|
3
|
-
|
5
|
+
画像の分割と連結
|
4
6
|
https://qiita.com/ka10ryu1/items/015c6a6a5fa287a47828
|
5
|
-
|
7
|
+
という記事に、画像等分割のコードが書かれていたのですが、そのまま貼りつけても動きません。コードは以下になります。
|
6
8
|
|
7
9
|
```python
|
10
|
+
import numpy as np
|
11
|
+
|
12
|
+
v_size = img.shape[0] // size * size
|
13
|
+
h_size = img.shape[1] // size * size
|
14
|
+
img = img[:v_size, :h_size]
|
15
|
+
|
16
|
+
v_split = img.shape[0] // size
|
17
|
+
h_split = img.shape[1] // size
|
18
|
+
out_img = []
|
19
|
+
[out_img.extend(np.hsplit(h_img, h_split))
|
20
|
+
for h_img in np.vsplit(img, v_split)]
|
21
|
+
```
|
22
|
+
|
23
|
+
出力結果として[None]が大量に出力されるだけです。
|
24
|
+
|
25
|
+
自分はGoogleColaboratoryで使いたいので、Colabでも使えるようにし、かつ回答を少し参考に一部いじったコードが以下です。
|
26
|
+
|
27
|
+
```python
|
8
28
|
from google.colab import drive
|
9
29
|
drive.mount('/content/drive')
|
10
30
|
|
@@ -16,16 +36,11 @@
|
|
16
36
|
import ActivationFunction as AF
|
17
37
|
from PIL import Image
|
18
38
|
|
19
|
-
# PILで開いたうえでデータをNumpy形式にする
|
20
|
-
# (例えばJPEGは圧縮されていてNumpyな配列になっていないので、
|
21
|
-
# そこからNumpyのデータ空間(?)に持ってくる必要がある)
|
22
39
|
tefilename = "test2.png"
|
23
40
|
teimg = Image.open("drive/My Drive/mnist_dataset/" + tefilename)
|
24
41
|
teimg = teimg.resize((100, 100))
|
25
42
|
img = np.asarray(teimg)
|
26
43
|
|
27
|
-
|
28
|
-
|
29
44
|
v_size = img.shape[0]
|
30
45
|
h_size = img.shape[1]
|
31
46
|
img = img[:v_size, :h_size]
|
@@ -34,134 +49,22 @@
|
|
34
49
|
h_split = img.shape[1]
|
35
50
|
out_img = []
|
36
51
|
[out_img.extend(np.hsplit(h_img, h_split))
|
37
|
-
|
52
|
+
for h_img in np.vsplit(img, v_split)]
|
53
|
+
|
54
|
+
print(out_img)
|
38
55
|
```
|
39
56
|
|
40
|
-
|
57
|
+
出力結果は、
|
41
58
|
Drive already mounted at /content/drive; to attempt to forcibly remount, call drive.mount("/content/drive", force_remount=True).
|
42
|
-
[
|
43
|
-
None,
|
44
|
-
None,
|
45
|
-
None,
|
46
|
-
None,
|
47
|
-
None,
|
48
|
-
None,
|
49
|
-
None,
|
50
|
-
None,
|
51
|
-
None,
|
52
|
-
None,
|
53
|
-
None,
|
54
|
-
None,
|
55
|
-
None,
|
56
|
-
None,
|
57
|
-
None,
|
58
|
-
None,
|
59
|
-
None,
|
60
|
-
None,
|
61
|
-
None,
|
62
|
-
None,
|
63
|
-
None,
|
64
|
-
None,
|
65
|
-
None,
|
66
|
-
None,
|
67
|
-
None,
|
68
|
-
None,
|
69
|
-
None,
|
70
|
-
None,
|
71
|
-
None,
|
72
|
-
None,
|
73
|
-
None,
|
74
|
-
None,
|
75
|
-
None,
|
76
|
-
None,
|
77
|
-
None,
|
78
|
-
None,
|
79
|
-
None,
|
80
|
-
None,
|
81
|
-
None,
|
82
|
-
None,
|
83
|
-
None,
|
84
|
-
None,
|
85
|
-
None,
|
86
|
-
None,
|
87
|
-
None,
|
88
|
-
None,
|
89
|
-
None,
|
90
|
-
None,
|
91
|
-
None,
|
92
|
-
None,
|
93
|
-
None,
|
94
|
-
None,
|
95
|
-
None,
|
96
|
-
None,
|
97
|
-
None,
|
98
|
-
None,
|
99
|
-
None,
|
100
|
-
None,
|
101
|
-
None,
|
102
|
-
None,
|
103
|
-
None,
|
104
|
-
None,
|
105
|
-
None,
|
106
|
-
None,
|
107
|
-
None,
|
108
|
-
None,
|
109
|
-
None,
|
110
|
-
None,
|
111
|
-
None,
|
112
|
-
None,
|
113
|
-
None,
|
114
|
-
None,
|
115
|
-
None,
|
116
|
-
None,
|
117
|
-
None,
|
118
|
-
None,
|
119
|
-
None,
|
120
|
-
None,
|
121
|
-
None,
|
122
|
-
None,
|
123
|
-
None,
|
124
|
-
None,
|
125
|
-
None,
|
126
|
-
None,
|
127
|
-
None,
|
128
|
-
None,
|
129
|
-
None,
|
130
|
-
None,
|
131
|
-
None,
|
132
|
-
None,
|
133
|
-
None,
|
134
|
-
None,
|
135
|
-
None,
|
136
|
-
None,
|
137
|
-
None,
|
138
|
-
None,
|
139
|
-
None,
|
140
|
-
None,
|
141
|
-
None]
|
142
|
-
となり、画像すら表示されません。
|
143
|
-
具体的に自分のやりたい事は、まず取り込んだ画像サイズを100*100にresizeしているので、
|
144
|
-
これを10*10の正方形100個に分割したいのです。
|
145
|
-
分割しても表示する必要はなく、python中で分割させて、記事にあるように、
|
146
|
-
画像番号とかでpython中で呼び出せるようにしたいのです、
|
147
|
-
ゆくゆくは、各画像の類似度とかを計算して、色々やりたいんですが。
|
59
|
+
[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]]],・・・(略)
|
148
60
|
|
61
|
+
となります。
|
62
|
+
|
149
|
-
|
63
|
+
たぶん、
|
150
|
-
書かれているコードは
|
151
64
|
```python
|
152
|
-
import numpy as np
|
153
|
-
|
154
|
-
v_size = img.shape[0] // size * size
|
155
|
-
h_size = img.shape[1] // size * size
|
156
|
-
img = img[:v_size, :h_size]
|
157
|
-
|
158
|
-
v_split = img.shape[0] // size
|
159
|
-
h_split = img.shape[1] // size
|
160
|
-
out_img = []
|
161
|
-
|
65
|
+
[out_img.extend(np.hsplit(h_img, h_split))
|
162
|
-
|
66
|
+
for h_img in np.vsplit(img, v_split)]
|
163
67
|
```
|
164
|
-
|
68
|
+
の部分を、そもそも変更する必要があると思うのですが、どう変更すれば良いのか分かりません。
|
165
|
-
何か元となるコードがあって、一部を変更するのかと思いきや、そういうものもないみたいです。
|
166
|
-
|
167
|
-
|
69
|
+
extendはリストに引数を追加するもので、これをリスト内に入れているのがおかしいと思うのですが、
|
70
|
+
ではforを用い、縦横分割はどのように記述すれば良いのか、よく分かりません。
|
3
補足しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,5 +1,9 @@
|
|
1
|
-
|
1
|
+
qiitaに書いてあるコードの意味が分からないけど、意味が分からないまま適当に変更したらやっぱり思った通りに動かなかったです。
|
2
2
|
|
3
|
+
numpyで画像の分割と連結という
|
4
|
+
https://qiita.com/ka10ryu1/items/015c6a6a5fa287a47828
|
5
|
+
ここの、Qiitaの記事のプログラムを元に、
|
6
|
+
|
3
7
|
```python
|
4
8
|
from google.colab import drive
|
5
9
|
drive.mount('/content/drive')
|
@@ -135,14 +139,14 @@
|
|
135
139
|
None,
|
136
140
|
None,
|
137
141
|
None]
|
138
|
-
|
142
|
+
となり、画像すら表示されません。
|
139
|
-
具体的には、画像サイズを100*100にresizeしているので、
|
143
|
+
具体的に自分のやりたい事は、まず取り込んだ画像サイズを100*100にresizeしているので、
|
140
144
|
これを10*10の正方形100個に分割したいのです。
|
141
145
|
分割しても表示する必要はなく、python中で分割させて、記事にあるように、
|
142
146
|
画像番号とかでpython中で呼び出せるようにしたいのです、
|
143
147
|
ゆくゆくは、各画像の類似度とかを計算して、色々やりたいんですが。
|
144
148
|
|
145
|
-
記事
|
149
|
+
記事に
|
146
150
|
書かれているコードは
|
147
151
|
```python
|
148
152
|
import numpy as np
|
@@ -157,5 +161,7 @@
|
|
157
161
|
[out_img.extend(np.hsplit(h_img, h_split))
|
158
162
|
for h_img in np.vsplit(img, v_split)]
|
159
163
|
```
|
160
|
-
ですが、もちろん画像の読み込みすら行っていないのでエラーが出ます。
|
164
|
+
ですが、これをそのまま貼りつけても、もちろん画像の読み込みすら行っていないのでエラーが出ます。
|
161
|
-
何か元となるコードがあって、一部を変更するのかと思いきや、そういうものもないみたいです。
|
165
|
+
何か元となるコードがあって、一部を変更するのかと思いきや、そういうものもないみたいです。
|
166
|
+
|
167
|
+
記事通りでなくても良いので、希望の通り画像を複数枚に等分割するコードを教えて頂きたいのですが。
|
2
補足しましたー。
title
CHANGED
File without changes
|
body
CHANGED
@@ -140,4 +140,22 @@
|
|
140
140
|
これを10*10の正方形100個に分割したいのです。
|
141
141
|
分割しても表示する必要はなく、python中で分割させて、記事にあるように、
|
142
142
|
画像番号とかでpython中で呼び出せるようにしたいのです、
|
143
|
-
ゆくゆくは、各画像の類似度とかを計算して、色々やりたいんですが。
|
143
|
+
ゆくゆくは、各画像の類似度とかを計算して、色々やりたいんですが。
|
144
|
+
|
145
|
+
記事のURLは、https://qiita.com/ka10ryu1/items/015c6a6a5fa287a47828です。
|
146
|
+
書かれているコードは
|
147
|
+
```python
|
148
|
+
import numpy as np
|
149
|
+
|
150
|
+
v_size = img.shape[0] // size * size
|
151
|
+
h_size = img.shape[1] // size * size
|
152
|
+
img = img[:v_size, :h_size]
|
153
|
+
|
154
|
+
v_split = img.shape[0] // size
|
155
|
+
h_split = img.shape[1] // size
|
156
|
+
out_img = []
|
157
|
+
[out_img.extend(np.hsplit(h_img, h_split))
|
158
|
+
for h_img in np.vsplit(img, v_split)]
|
159
|
+
```
|
160
|
+
ですが、もちろん画像の読み込みすら行っていないのでエラーが出ます。
|
161
|
+
何か元となるコードがあって、一部を変更するのかと思いきや、そういうものもないみたいです。
|
1
やりたいこと追加しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -135,4 +135,9 @@
|
|
135
135
|
None,
|
136
136
|
None,
|
137
137
|
None]
|
138
|
-
でした、縦横分割したいんですが。
|
138
|
+
でした、縦横分割したいんですが。
|
139
|
+
具体的には、画像サイズを100*100にresizeしているので、
|
140
|
+
これを10*10の正方形100個に分割したいのです。
|
141
|
+
分割しても表示する必要はなく、python中で分割させて、記事にあるように、
|
142
|
+
画像番号とかでpython中で呼び出せるようにしたいのです、
|
143
|
+
ゆくゆくは、各画像の類似度とかを計算して、色々やりたいんですが。
|