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

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

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

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

Q&A

解決済

1回答

280閲覧

画像を表示させて選択を行い選択別に処理を行う方法

kuromi

総合スコア6

Python

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

0グッド

0クリップ

投稿2020/06/19 10:20

前提・実現したいこと

画像を2つ提示して好きな方を選択してもらい
その選択毎に別の処理をしていきたいです。

また、選択を決めるまでの時間も図りたいです。

プログラミング初心者です。

該当のソースコード

python

1from PIL import Image 2from matplotlib import pyplot as plt 3import numpy as np 4 5%matplotlib inline 6 7sampleA = Image.open('sampleA.jpg', 'r') 8sampleB = Image.open('sampleB.jpg', 'r') 9 10import time 11 12 13# 時間計測開始 14time1_sta = time.perf_counter() 15 16 17a = "sampleA" 18b = "sampleB" 19 20print (a) 21plt.imshow(np.asarray(sampleA)) 22print (b) 23plt.imshow(np.asarray(sampleB)) 24 25while True: 26 x = input("好きな方を選んでください>>>>") 27 28 if x == ("a" or "A"): 29 print(a) 30 break 31 elif x == ("b" or "B"): 32 print(b) 33 break 34 else: 35 print("もう一度") 36 37# 時間計測終了 38time_end = time.perf_counter() 39 40# 経過時間(秒) 41tim = time_end- time_sta 42 43 44# 結果 45print(tim) 46 47 48 49

補足情報(FW/ツールのバージョンなど)

Jupyternotebookでpython使っています。

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

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

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

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

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

guest

回答1

0

ベストアンサー

問題点

matplotlib の使い方

この部分ですが、Figure を分割して Axes を2つ作り、その Axes に対して imshow() を呼び出すようにしないと2つの画像を並べて表示することはできないですよ。

python

1plt.imshow(np.asarray(sampleA)) 2plt.imshow(np.asarray(sampleB))

また、デフォルトでは、図が表示されるのは最後までセルが実行されたタイミングになるので、途中で表示したい場合、そのタイミングで plt.show() を呼び出す必要があります。

x == ("a" or "A")

x が "a" または "A" か判定したい場合は、x in ["a", "A"] です。
x == ("a" or "A") だと、括弧内が先に評価されて、x == "a" になるので、"A" の場合は if 文に引っかかりません。

サンプルコード

python

1import time 2 3import matplotlib.pyplot as plt 4from PIL import Image 5 6img1 = Image.open("sample.png") 7img2 = Image.open("sample2.jpg") 8fig, [ax1, ax2] = plt.subplots(1, 2) 9ax1.set_title("A") 10ax1.set_axis_off() 11ax1.imshow(img1) 12ax2.set_title("B") 13ax2.set_axis_off() 14ax2.imshow(img2) 15plt.show() 16 17start = time.perf_counter() 18while True: 19 ret = input("好きな方を選んでください>>>>").lower() 20 21 if ret in ["a", "b"]: 22 break 23 else: 24 print("もう一度") 25elapsed = time.perf_counter() - start 26print(f"{elapsed:.2f} (secs)")

イメージ説明

投稿2020/06/19 11:08

編集2020/06/19 11:09
tiitoi

総合スコア21956

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.39%

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

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

質問する

関連した質問