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

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

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

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

OpenCV

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

Python 3.x

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

Python

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

Q&A

解決済

1回答

2583閲覧

cv2.imreadによる画像の読み込み時,Noneが返ってくる

katana

総合スコア0

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

OpenCV

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

Python 3.x

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

Python

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

0グッド

0クリップ

投稿2021/11/08 02:47

編集2021/11/08 03:27

前提・実現したいこと

環境はAnaconda上でPython3を動かしています.
OpenCVで画像の読み込みをしたいです.

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

エラーは出ませんが,print(img)の結果がNoneになってしまいます.

該当のソースコード

Python3

1import cv2 2import glob 3 4files=glob.glob(r"C:\Users\admin\Desktop\imagefolder*.jpg") 5for file in files: 6 print(file) 7 img = cv2.imread(file) 8 print(img)

試したこと

globを使わずにjpgファイルを直接引数にしましたが,同じ結果でした.
例)img=cv2.imread('○○.jpg')

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

print(file)の結果は正常に出ています.
imgがNoneなので当前ですが,print(img.shape)を実行すると,AttributeError:'NoneType' object has no attribute 'shape'が出ます.

追記
画像ファイルはそれぞれ1KB未満のサイズで,とても小さいファイルです.

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

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

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

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

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

melian

2021/11/08 03:00

cv2.imread はとても寡黙なメソッドで、エラーが発生しても None を返すだけなのです。ファイルが存在しているのに None が返ってくるのであれば、そのファイルが JPEG ではない可能性があるのですが、画像の表示は問題ないのですよね?
katana

2021/11/08 03:19

画像の表示は問題ありませんでした.
bsdfan

2021/11/08 03:26

日本語のファイル名ではないですか?
katana

2021/11/08 03:28

uranai**.jpgというファイル名で,uranai01.jpgからuranai12.jpgまでの全12ファイルです.
technocore

2021/11/08 04:07

ちなみにpillow(PIL)で画像を表示できますでしょうか? cv2.imreadよりは詳細なエラーを表示してくれますので。 from PIL import Image img = Image.open(ファイル名) img.show()
katana

2021/11/08 04:23 編集

from PIL import Image img = Image.open(ファイル名) img.show() 上記のお教えいただいたコードを実行した結果,Windows搭載のフォトアプリが開き,tmp***.PNGという自動生成されたファイル名で画像が表示されました. 何度か試したところ,***部分は毎回変わっていました.
q_sane_q

2021/11/08 04:25

opencvはそのまま使うとファイル名だけでなく「フォルダ名」に全角文字が入っている場合にも読み込めずNoneになったと思います 質問に書かれているパスは半角のみのようですが実際に動かしている際もこのパスでしょうか?
katana

2021/11/08 04:28

はい,そうです. エクスプローラーからパスのコピーをしたため,間違ってはいないと思います.
melian

2021/11/08 05:08

core modurle ある imghdr(https://docs.python.org/3/library/imghdr.html) を使って調べてみてはどうでしょうか。 import imghdr for file in files: print(file) print(imghdr.what(file)) img = cv2.imread(file) print(img) JPEG であれば 'jpeg' と表示されることになります。
katana

2021/11/08 05:22

gifと表示されました. つまりjpgへの変換が正式にされていなかったみたいです. お手数おかけしました.
guest

回答1

0

自己解決

jpgだと思っていたファイルフォーマットがgifになっていました.

import imghdr import cv2 for file in files: print(file) print(imghdr.what(file)) img = cv2.imread(file) print(img)

上記のコードでフォーマットが判明いたしました.
ご協力いただいた皆様,ありがとうございました.

追記
その後はgifファイルをpngファイルへpython上で変換し,OpenCVで読み込みました.

投稿2021/11/08 05:45

編集2021/11/08 05:47
katana

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問