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

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

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

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

4253閲覧

画像のサイズとウィンドウを同期させる方法がうまくいかないです。(Python 3.7.1)

ESK46

総合スコア13

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2018/11/15 02:52

前提・実現したいこと

画像をウィンドウに同期して縮小・拡大するようにしたいのですが、うまくいきません。

一応ネットで調べたのですが、結局何が起きているのかがわかっていません。
初心者過ぎて、初歩的なミスかもしれませんが
教えていただけると幸いです。

発生している問題・エラーメッセージ

File "test.py", line 14, in <module> cv2.imshow("img", img) cv2.error: OpenCV(3.4.3) C:\projects\opencv-python\opencv\modules\highgui\src\window.cpp:356: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'cv::imshow'

該当のソースコード

Python

1# -*- coding: utf-8 -*- 2import cv2 3 4# 画像の読み込み 5img = cv2.imread("handcoat_all.gif", 1) 6 7cv2.namedWindow("img", cv2.WINDOW_NORMAL) 8 9cv2.imshow("img", img) 10cv2.waitKey(0) 11cv2.destroyAllWindows()

試したこと

handcoat_all.gifという画像データも、実行しているtest.pyというファイルも
同じところに保存してあります。
他のデバッグ方法を以下のURL先で調べて一つ一つやってみてますが、
どうしても同じエラーが出てしまいます。
https://qiita.com/keisukeYamagishi/items/ce8f0e5317fb56f41107

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

Python 3.7.1, opencv-python 3.4.3.18, Windows10, Atom Version 1.31.2という環境で開発してます。

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

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

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

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

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

guest

回答1

0

ベストアンサー

読み込みに失敗していますね。
次のようにすると、画像の読み込みが失敗していることがわかるかと思います。
試した画像以外の他の画像でも同様に失敗するか確認してみてください。

import os import cv2 filepath = 'handcoat_all.gif' # 画像の読み込み if not os.path.exists(filepath): print('File Not Found') exit(1) img = cv2.imread(filepath, 1) if img is None: print('Failed to load image.') exit(1) cv2.namedWindow("img", cv2.WINDOW_NORMAL) cv2.imshow("img", img) cv2.waitKey(0) cv2.destroyAllWindows()

投稿2018/11/15 03:11

編集2018/11/15 04:21
tiitoi

総合スコア21956

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

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

ESK46

2018/11/15 04:07

実行してみました。 他の画像で実行しても、 Failed to load image. と表示されてしまいました。
tiitoi

2018/11/15 04:12 編集

試しにフルパスで指定してみてはどうでしょうか? 例: cv2.imread(r"C:\Users\ユーザー名\Desktop\test.jpg", 1) ちなみに、相対パスの場合は「スクリプトがあるパス」ではなく、「スクリプトを実行したパス」が基点になるのでご注意ください。つまり、handcoat_all.gif のあるフォルダまで cd で移動して python test.py で実行しているか確認してください。
ESK46

2018/11/15 04:15

実行してみましたが、 同じように表示されてしまいました。
tiitoi

2018/11/15 04:20 編集

imread() が失敗する原因は読み込むファイルがおかしいか、パスが間違っているかのどちらかだと思うんですけど 回答欄のコードを修正したので、これでどうなるか試していただけますでしょうか? File Not Found と表示されなければパスは大丈夫なので、ファイルの問題と切り分けできます。
ESK46

2018/11/15 04:27

あ!!!出来ました!!! ありがとうございました! パスもそうですが、そもそも 拡張子がgifのせいでうまく読み込めていませんでした。 助かりました!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問