質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

892閲覧

読み込んだ画像を碁盤目状に等分割する方法2

退会済みユーザー

退会済みユーザー

総合スコア0

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/05/15 09:48

編集2021/05/15 17:09

一度似た質問をしましたが、基本的な事の回答をたくさん頂き、
聞きたいところまで進まなかったため、もう1度質問させて頂きます。

読み込んだ画像をプログラム上で100100にresizeしたのですが、これを
10
10の画像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)]

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jbpb0

2021/05/15 14:51

> そのまま貼りつけても動きません。 参考にしてるWebページの最初の方に「使用している変数の説明」の表があり、そこに「img」と「size」の説明があります そこに書いてあるようにするコードは自分で書かないといけませんけど、それやってますか?
guest

回答1

0

sizeの指定が抜け落ちていますね。

投稿2021/05/15 10:11

quickquip

総合スコア11235

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/05/15 10:28

img.shape[0]ってこれ、サイズなんですか? shapeってあるから、画像の一部成分を抜き取って、何かしてると思っていたのですが、 どこをどう変えればいいんでしょうか。
quickquip

2021/05/15 11:13 編集

元のコードにはあるsize変数があなたのコードでは抜け落ちてます。 **あなたが** 削除しましたよね? 勝手に変えるな、って言ってるんです。
quickquip

2021/05/15 11:20 編集

この欄で質問されても付き合う気はないので「このコードのここが意味が分からない」という質問を別にした方がいいですよ。
退会済みユーザー

退会済みユーザー

2021/05/15 13:18

// size * size とかですか?この//ってなんですか?コメントかと思ってたんですが、 入れるとエラーになるし。
quickquip

2021/05/15 13:24

「このコードのここが意味が分からない」という質問を別にした方がいいですよ。
quickquip

2021/05/15 13:42

「こうだと思っている」ことが100%間違っていたらそれも無理なのか。 多分、qiitaのコードの意味が1行も理解できてないということですね。 qiitaのコードは正しいという前提で、qiitaのコードは1行も変えずに動かすことを考えた方がいいかも。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問