前提・実現したいこと
for文を使用して、190回回すループ文を作りたい。
im単体で打つと画像が
このように表示されて、これらの違う画像が190個あわわれるようにしたいとおもっています。
ほかのコードは今回の趣旨とは関係がないので、よろしくおねがいします。
発生している問題・エラーメッセージ
#returnを追加すると、エラーがでて、imだけだとなにも表示されないです。 for i in range(190): to_rgb = stacked[:,i ,:,:].transpose(1,2,0) im = Image.fromarray((to_rgb * 255).astype(np.uint8)) return im
試したこと
return ,continueなど試してるのですが、よくわからないです。
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
Python3 (3.7.4)
Jupyter Lab version 1.1.4
macbookpro 16
コードはテキストで提示しよう
for i in range(190):
よりも上に
import time
を追加して、
return im
↓ 変更
im.show()
time.sleep(1)
とすれば、190枚の画像は表示されると思います
それが、質問者さんが希望してるような表示のされ方かどうかは分かりませんが
できないです。
timeを追加しても変わりません
これで、できました
#returnを追加すると、エラーがでて、imだけだとなにも表示されないです。
i=0
import time
fig, axs = plt.subplots(5,4, figsize=(12, 18), facecolor='w', edgecolor='k', dpi=100)
axs = axs.ravel()
for i in range(20):
to_rgb = stacked[:,i ,:,:].transpose(1,2,0)
im = Image.fromarray((to_rgb * 255).astype(np.uint8))
# return im
# time.sleep(1)
axs[i].imshow(im)
im.show()
# time.sleep(1)
> できないです。
あれ??
im = Image.fromarray((to_rgb * 255).astype(np.uint8))
im.show()
を実行すると、一つウィンドウが現れて、画像がそこに表示されるので、forループの中で繰り返しやると、画像の枚数分のウィンドウが現れて、画像が表示されるはずなのですが、変だなぁ
当方のMacでJupyter Notebookで実行したら、ちゃんと複数枚の画像が表示できたのですが、Jupyter Labだと何か違うのかな?
> #returnを追加すると、エラーがでて、
returnなんて要らないです
> timeを追加しても変わりません
time.sleep()無しで、連続してim.show()を実行すると、コケて表示されない画像があったので、それを防止するために入れましたけど、im.show()の実行で画像を表示するウィンドウが一つも現れないなら、time.sleep()を入れても意味ないです
まあ、解決したみたいなので、別にいいですけど
回答2件
あなたの回答
tips
プレビュー


