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

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

ただいまの
回答率

90.98%

  • Python 3.x

    4134questions

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

  • Ubuntu

    1096questions

    Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

  • OpenCV

    831questions

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

pythonでAttributeError: 'NoneType' object has no attribute 'hoge'が発生してしまう。

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 1,743

daisuke_factex

score 26

前提・実現したいこと

先日、grubCutで黒色→透明にしたいと質問したものです。
協力とても感謝しております。
先日までエラーが出ずにいたのですが、本日再び実行したところ、
AttributeError: 'NoneType' object has no attribute 'shape'
のエラーが出てしまいました。
調べたところ、shapeがない?的な原因らしいのですが、解決には至っておりません。
お力添え、よろしくお願いします。

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

AttributeError: 'NoneType' object has no attribute 'hoge'

該当のソースコード

##画像を読み取り、背景を切り取り、背景をアルファチャンネルにするコード

import numpy as np
import cv2

img = cv2.imread("woman.jpg" )
mask = np.zeros(img.shape[:2], np.uint8)   #ここでエラー出ます
print(mask)

bgdModel = np.zeros((1,65),np.float64)
fgdModel = np.zeros((1,65),np.float64)
iter = 5
rect = (39,5,100,250)

cv2.grabCut(img, mask, rect, bgdModel, fgdModel, iter, cv2.GC_INIT_WITH_RECT)

mask2 = np.where((mask==2)|(mask==0),0,1).astype('uint8')

img = img*mask2[:,:,np.newaxis]
cv2.imwrite("grabbed.png", img)

# ---------------------------------

img_bgr = cv2.split(img)
mask2 = mask2*255

# cv2.imwrite("aaa.png",mask2*255)

img_alpha = cv2.merge(img_bgr+[mask2])

cv2.imwrite("alpha.png",img_alpha)

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

より詳

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+2

おそらくimreadに失敗しています。
画像が正しいパスに存在するか確かめてください。

>>> import cv2
>>>
>>> img1 = cv2.imread('UshiThunder.png')
>>> img1.shape
(442, 736, 3)
>>>
>>> img2 = cv2.imread('hogehoge')  # 存在しないものは開けない
>>> img2.shape
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'shape'
>>>
>>> img2 is None
True

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/10/27 13:21

    そのとおりでした。初歩的なミスでした・・・
    ありがとうございました。

    キャンセル

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

  • ただいまの回答率 90.98%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    python,opencvで円弧型の部分にのみ処理をしたい

    Python,OpenCVともに使うのが初めてです。 現在、類似画像検索のようなものを作っています。 そこで、画像の一部(円弧型)にある処理(ただ白いpixelを数えるだけ)を

  • 受付中

    AttributeError: 'Series' object has no attribute '...

    Python3を使っております。 数日前からPythonを始め,matplotlibによるグラフ作成を行いました。 今までCしか使ったことがなく、エラーの内容を調べてみてもうま

  • 解決済

    AttributeError: 'Cifar10Reader' object has no attr...

    AttributeError: 'Cifar10Reader' object has no attribute 'bytestream'  のエラー が出ました。 reader.

  • 解決済

    OpenCVのImportエラー

    前提・実現したいこと Tensorflowを使ってPythonで画像分類のプログラムを実行しようとしています。openCVを実行するところで画像がうまくインポートできていないのかエ

  • 解決済

    grabCutで背景を黒→アルファチャネルにしたい

    前提・実現したいこと python + openCVを用いて grabcutを利用しております。 ベースのプログラムでは背景が黒色のままなのですが、これをアルファチャネルにしたいで

  • 解決済

    python,OpenCV,numpyによる色抽出・変換

    前提・実現したいこと pythonで画像の色変換を行いたいのですが, opencvのimreadで画像を読み込み, 例えば[R,G,B]=[255,0,0]の画素を[R,G,B]=

  • 解決済

    python画像サイズ変更

    前提・実現したいこと python2で画像を拡大・縮小するプログラムを作っています。 発生している問題・エラーメッセージ AttributeError

  • 解決済

    python モザイク処理

    前提・実現したいこと 画像を読み込みモザイク処理を施し、保存するプログラムを作りたいです。 発生している問題・エラーメッセージ 実行コマンド python exer5.py i

同じタグがついた質問を見る

  • Python 3.x

    4134questions

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

  • Ubuntu

    1096questions

    Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

  • OpenCV

    831questions

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