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

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

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

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

Python

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

Q&A

解決済

1回答

5374閲覧

Python3でOpenCVを使い画像表示

chikuwa.ntm

総合スコア7

Python 3.x

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

Python

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

0グッド

0クリップ

投稿2017/12/14 01:57

python初心者です。OpenCVを使い、画像表示をしたいです。
tkinter.filedialogで画像のパスを取るとこまでは出来たと思うのですが、そこからcv2を使い画像表示させようとするとエラーになります

File "C:\Python36\lib\tkinter\__init__.py", line 1699, in __call__ return self.func(*args) cv2.imshow(filename,img) cv2.imshow(filename,img) cv2.error: C:\projects\opencv-python\opencv\modules\highgui\src\window.cpp:325: error: (-215) size.width>0 && size.height>0 in function cv::imshow

###該当のソースコード

def imgselect(): filename = tkfd.askopenfilename(filetypes=[("画像ファイル", (".gif", ".png", ".jpg" ))]) img = cv2.imread(filename) cv2.imshow(filename,img)

###試したこと
エラー2つ目は何か間違ってるんだろうなとは思うのですが1つ目、3つ目が何が原因かさっぱりわかりません。助けてください。

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

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

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

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

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

can110

2017/12/14 02:14

画像ファイル名や上位ディレクトリ名に日本語は含まれていますか?またパスが英語のみの場合も失敗しますか?
chikuwa.ntm

2017/12/14 02:18

デスクトップのフォルダにpyファイルを保存してるのでC:\Users\名前 で含まれてます。 画像ファイルは英数字のみです。
chikuwa.ntm

2017/12/14 02:24

読み込む画像、pyファイルを日本語含まない場所に移動したら無事画像を開く事が出来ました。 tkinter\__init__.py", line 1699, in __call__ return self.func(*args)のエラーは気にしなくても大丈夫なものなのでしょうか。
can110

2017/12/14 02:33

んと「tkinter\__init__.py", line 1699, in __call__ return self.func(*args)のエラー」とはどれのことでしょうか?
guest

回答1

0

ベストアンサー

以下の最小限のコードでWin10+OpenCV3.2.0上にて現象再現しました。
ファイルパスに日本語を含むとimreadで正常に読み込めないようです。

Python

1import cv2 2print(cv2.__version__) 3 4# 独自に読込 5def imread(filename, flags=cv2.IMREAD_COLOR, dtype=np.uint8): 6 try: 7 n = np.fromfile(filename, dtype) 8 img = cv2.imdecode(n, flags) 9 return img 10 except Exception as e: 11 print(e) 12 return None 13 14img = cv2.imread(r'c:\hoge\a.png') 15print(img) # 正常 16img = cv2.imread(r'c:\hoge\あ.png') 17print(img) # None 18img = imread(r'c:\hoge\あ.png') 19print(img) # 正常

Python OpenCV の cv2.imread 及び cv2.imwrite で日本語を含むファイルパスを取り扱う際の問題への対処について
にあるように独自に読み込む処理を書くと、正常に読み込めました。
OpenCV(python側)のバグのような気がします。

なお、「エラーが3つ」とあるのは、実際にはエラーではなく、エラーの発生場所を段階的に示すメッセージ(Traceback)です。

投稿2017/12/14 02:32

編集2017/12/14 02:51
can110

総合スコア38234

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問