教科書の写経じゃない、自分で考えたコードその2ができました。その1とやり方はたいして変わっていないのですが、やはり自分で書いたものは可愛いものです。
まあ、いくつも作って慣れてくると、こうやってブログに書くほど興奮するほどでもなくなるのでしょうね……GitHubのissuesにでも残しておこうかしら……
今回書いたのは、「図を並べる」というヤツです。
まずは以下を実行し、
from PIL import Image import matplotlib.pyplot as plt %matplotlib inline import math
そのあと、いろいろとconvertした画像を並べようとしたのですが、以下の書き方だと、どうしても画像が1つしか表示されませんでした。
tokyo_tower = Image.open("tokyo_tower.png") imgmode = ["1", "L", "P", "RGB", "RGBA", "CMYK", "YCbCr", "HSV", "LA", "I", "F"] imgnum = len(imgmode) i = 0 plt.figure(figsize=(20,20)) tower = [0] * imgnum while i < imgnum: tower[i] = tokyo_tower.convert(imgmode[i]) plt.imshow(tower[i]) i += 1
悪戦苦闘したあげく、どうやら、まずplt.figureというので、図が表示される領域を指定し、そのあとplt.subplotというので、領域を何分割し、どの領域にどの図を表示するのかを指定する必要があるらしいということがわかったので、以下のように書いたところ、
tokyo_tower = Image.open("tokyo_tower.png") imgmode = ["1", "L", "P", "RGB", "RGBA", "CMYK", "YCbCr", "HSV", "LA", "I", "F"] imgnum = len(imgmode) i = 0 plt.figure(figsize=(20,20)) tower = [0] * imgnum while i < imgnum: tower[i] = tokyo_tower.convert(imgmode[i]) plt.subplot(math.ceil(imgnum / 4),4,i+1) plt.imshow(tower[i]) i += 1
無事に図が複数表示されました。
ついでに縦横に格好良く並べることもできて、120点でした。
週末のお勉強としては及第点だと、ひとり満足です。
内容は相変わらず何の役にも立たないものなのですが。
ところで、今はパソコンにjupiter notebookをインストールしてPython書いているのですが、どうもAWSのCloud9とやらでやったほうが、ローカルのマシンパワー食われずにいいのでは? という予感がしています。
しかし、金額がわからない(Cloud9自体は無料)ので、いつか時間をとって調べるまで保留中。
画像処理お遊びサービスが作りたいのですが、道のりは遠そうです。
p.s.
thx!
https://qiita.com/pashango2/items/145d858eff3c505c100a
https://teratail.com/questions/9130
https://www.headboost.jp/python-how-to-create-a-list/
https://ymgsapo.com/2019/07/21/jupyternotebook-image-show/
https://qiita.com/KntKnk0328/items/5ef40d9e77308dd0d0a4
https://qiita.com/gaku8/items/90167693f142ebb55a7d
https://openbook4.me/sections/1829
そしていつもの「Tellus×TechAcademy初心者向け Tellus 学習コース」