一度似た質問をしましたが、基本的な事の回答をたくさん頂き、
聞きたいところまで進まなかったため、もう1度質問させて頂きます。
読み込んだ画像をプログラム上で100100にresizeしたのですが、これを
1010の画像10個に分割したいのですが、その方法が分かりません。
Qiitaの
画像の分割と連結
https://qiita.com/ka10ryu1/items/015c6a6a5fa287a47828
という記事に、画像等分割のコードが書かれていたのですが、
回答を元に変更すると、これできてるんですかね?コードは以下です。
python
1from google.colab import drive 2drive.mount('/content/drive') 3 4import sys 5import numpy as np 6 7sys.path.append('/content/drive/My Drive') 8 9from PIL import Image 10from IPython.display import display 11 12# PILで開いたうえでデータをNumpy形式にする 13# (例えばJPEGは圧縮されていてNumpyな配列になっていないので、 14# そこからNumpyのデータ空間(?)に持ってくる必要がある) 15img = Image.open("drive/My Drive/mnist_dataset/rei.jpeg") 16img = img.resize((30, 30)) 17img = np.asarray(img) 18 19size = 5 20 21v_size = img.shape[0] // size * size 22h_size = img.shape[1] // size * size 23img = img[:v_size, :h_size] 24 25v_split = img.shape[0] // size 26h_split = img.shape[1] // size 27out_img = [] 28[out_img.extend(np.hsplit(h_img, h_split)) 29 for h_img in np.vsplit(img, v_split)] 30 31print(out_img)
出力結果は以下です。
Drive already mounted at /content/drive; to attempt to forcibly remount, call drive.mount("/content/drive", force_remount=True).
[array([[[254, 255, 255],
[254, 255, 255],
[255, 255, 255],
[255, 255, 255],
[255, 255, 255]],
[[240, 254, 255], [240, 254, 255], [242, 254, 255], [244, 254, 255], [244, 254, 255]], [[210, 244, 254], [211, 244, 253], [214, 245, 253], [217, 246, 252], [219, 246, 251]], [[165, 229, 252], [168, 229, 251], [173, 231, 249], [178, 233, 247], [182, 233, 244]], [[117, 210, 249], [120, 209, 247], [127, 211, 243], [136, 213, 237], [143, 210, 229]]], dtype=uint8), array([[[252, 255, 255], [249, 255, 255], [244, 255, 255], [239, 255, 255], [236, 255, 255]], [[242, 254, 254], [239, 254, 254], [235, 254, 254], [231, 254, 254], [229, 254, 254]], [[218, 246, 250], [217, 246, 249], [215, 244, 249], [213, 244, 249], [211, 243, 251]], [[183, 232, 240], [185, 230, 238], [187, 227, 238], [187, 225, 238], [188, 223, 241]], [[149, 205, 220], [155, 201, 214], [161, 196, 212], [164, 193, 212], [167, 190, 216]]], dtype=uint8), array([[[232, 255, 255], [231, 255, 255], [233, 255, 255], [234, 255, 255], [236, 255, 255]], [[226, 254, 255], [225, 254, 255], [227, 254, 255], [228, 254, 255], [229, 252, 255]], [[210, 243, 253], [210, 244, 255], [212, 245, 255], [213, 246, 255], [213, 245, 254]], [[188, 224, 246], [189, 226, 250], [191, 228, 253], [191, 230, 252], [190, 230, 249]], [[168, 191, 222], [169, 193, 228], [170, 196, 231], [168, 199, 230], [165, 200, 225]]], dtype=uint8), array([[[237, 251, 255],
・・・
[[141, 92, 58], [142, 92, 56], [143, 92, 53], [144, 93, 49], [144, 93, 48]], [[106, 126, 71], [107, 126, 69], [106, 126, 66], [105, 128, 62], [105, 128, 61]], [[ 74, 142, 74], [ 75, 142, 73], [ 73, 143, 69], [ 71, 145, 66], [ 70, 145, 65]], [[ 44, 147, 72], [ 44, 147, 71], [ 42, 149, 68], [ 38, 151, 65], [ 37, 151, 64]]], dtype=uint8), array([[[255, 225, 217], [255, 227, 219], [255, 232, 225], [255, 238, 232], [255, 239, 236]], [[242, 151, 141], [241, 152, 142], [238, 156, 148], [235, 161, 155], [234, 163, 160]], [[213, 60, 49], [211, 61, 50], [207, 61, 53], [202, 62, 58], [202, 64, 65]], [[206, 10, 0], [204, 10, 0], [199, 8, 2], [194, 7, 6], [194, 8, 12]], [[226, 8, 2], [225, 8, 2], [222, 6, 4], [219, 3, 7], [218, 2, 10]]], dtype=uint8), array([[[255, 235, 239], [255, 234, 242], [255, 236, 249], [255, 237, 253], [254, 235, 251]], [[233, 162, 166], [234, 162, 171], [235, 165, 179], [235, 166, 182], [230, 162, 177]], [[204, 66, 72], [206, 68, 78], [210, 70, 84], [210, 70, 85], [200, 63, 76]], [[197, 10, 18], [200, 12, 23], [205, 14, 28], [205, 15, 28], [194, 7, 17]], [[220, 2, 12], [222, 3, 14], [225, 6, 16], [225, 8, 15], [218, 3, 6]]], dtype=uint8), array([[[254, 232, 244], [252, 230, 234], [242, 236, 224], [220, 238, 207], [169, 215, 164]], [[222, 154, 164], [215, 152, 155], [207, 163, 152], [192, 174, 147], [154, 168, 125]], [[183, 51, 59], [170, 50, 50], [164, 67, 58], [157, 88, 68], [138, 103, 70]], [[175, 0, 0], [160, 0, 0], [155, 12, 4], [151, 37, 22], [143, 61, 39]], [[206, 0, 0], [197, 0, 0], [191, 7, 1], [185, 25, 16], [177, 45, 35]]], dtype=uint8), array([[[ 96, 178, 106], [ 45, 157, 68], [ 25, 160, 60], [ 18, 171, 62], [ 14, 173, 63]], [[102, 153, 92], [ 69, 152, 77], [ 63, 172, 87], [ 67, 195, 103], [ 64, 202, 108]],
・・・
[[255, 252, 255], [255, 252, 255], [255, 250, 255], [255, 249, 255], [255, 249, 255]]], dtype=uint8)]