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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

Python

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

Q&A

2回答

1080閲覧

TypeError: unsupported operand type(s) for *: 'NoneType' and 'int'について(初心者です)

waki_kei

総合スコア0

Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

Python

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

0グッド

0クリップ

投稿2021/05/10 20:39

前提・実現したいこと

Google colaboratory にてコードを実行中に以下のようなエラーが発生しました。
初心者ですが、何が間違っているのか教えていただきたいです。

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

--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-16-640767f5b3aa> in <module>() 2 saliency = cv2.saliency.StaticSaliencySpectralResidual_create() 3 bool, map = saliency.computeSaliency(i) ----> 4 i_saliency = (map * 255).astype("uint8") TypeError: unsupported operand type(s) for *: 'NoneType' and 'int'

該当のソースコード

python

1pip install opencv-contrib-python 2import cv2 3from matplotlib import pyplot as plt 4 5path = 'sample.jpg' 6i = cv2.imread(path, 1) 7 8# サリエンシーディテクション 9saliency = cv2.saliency.StaticSaliencySpectralResidual_create() 10bool, map = saliency.computeSaliency(i) 11i_saliency = (map * 255).astype("uint8")

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

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

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

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

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

guest

回答2

0

最初に確認すべきことは、読み込んだ画像(変数iに格納)がNoneになっていないかどうかです。もしNoneなら、画像の読み込みに失敗しています。

理由はたいてい画像のパスの指定が間違っていることです。path = 'sample.jpg'と記述した場合、colabのCWD(current working directory)上にsample.jpgが存在しないと読み込めないので、まずはそこを確認してください。

ファイルをアップロードしたあと、どこに置いたかがわかっていれば、絶対パスで画像のパスを指定すれば問題ありません。あるいは、パスの指定の仕方はそのままにして、CWDに画像を持ってくる手もありますし、逆にCWDを画像のあるディレクトリに移動する手もあります。


cv2モジュールは、画像の読み込みに失敗してもエラーを吐いてくれない(Noneを返すだけ)とか、そのまま他の処理に投げてもやっぱり同様にエラーになってくれない、といった作りになっており、画像がちゃんと読めているかは自分で確認する必要があります。

投稿2021/05/10 22:03

hayataka2049

総合スコア30935

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

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

0

おはようございます。

問題文拝見しました。

以下のことを確認いただけますか?
・画像ファイルのパスは正しいか?
・対応可能な画像ファイルフォーマットを選択しているか?

Python

1import cv2 2from matplotlib import pyplot as plt 3 4path = '/path_to/sample.png' 5i = cv2.imread(path, 1) 6 7# サリエンシーディテクション 8saliency = cv2.saliency.StaticSaliencySpectralResidual_create() 9bool, map = saliency.computeSaliency(i) 10i_saliency = (map * 255).astype("uint8") 11print(i_saliency) 12

画像が読み込まれているのかはこちらの記事cv2.imread()の注意点を参考に、ご確認頂けますと幸いです。????‍♂️

よろしくお願いいたします。

<参考>
OpenCVが対応するフォーマット
ファイルパスについて

投稿2021/05/10 21:11

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問