1. ホーム
  2. python

[解決済み] w, h = template.shape[::-1] results in Value Error too many values to unpack

2022-02-26 10:15:30

質問

について Python 2.7 (x86) ,Open CV 3.1.0, Windows 7 (x64)

Open CVで簡単なテンプレートマッチングを試してみた

画像

コード

dark_elixir_sample = cv2.imread('dark_elixir_sample.png')

w, h = dark_elixir_sample.shape[::-1]

を取得しようとしています。 w,h しかし、スクリプトは以下のエラーを返します。

エラー

ValueError: too many values to unpack

解決方法は?

画像の形状が3次元に戻る

im.shape
>>> (24, 28, 3)

最初の2つだけが必要な場合は、そうしてください。

w, h = im.shape[:-1]
>>> (24, 28)

または

w, h, _ = im.shape
# w is 24, h is 28

なぜなら、そうしないと、3つの値をたった2つの変数に展開しようとしていることになり、Pythonではうまくいかないので、エラーになるのです。そのため _ Pythonでは、使用したくない変数のための規則です。 あるいは、quot;throwaway" と呼ばれるものです。