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

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

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

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

Python 3.x

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

Q&A

解決済

1回答

3990閲覧

エラーの解決法がわかりません

退会済みユーザー

退会済みユーザー

総合スコア0

OpenCV

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

Python 3.x

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

0グッド

0クリップ

投稿2017/12/18 07:01

###前提・実現したいこと
OpenCVを用いたボールトラッキングを行うプログラムです。
某サイトのサンプルを丸ごと記載しましたが、なぜエラーがおきているのか、どうすればエラーが起きずに実行できるかが知りたいです。

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

line 26, in <module> for ball in detected_balls: 'NoneType' object is not iterable

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

# -*- coding: utf-8 -*- """ Created on Mon Nov 27 16:59:15 2017 @author: user4 """ import numpy as np import cv2 cap = cv2.VideoCapture("green.mp4") feature_params=dict(maxCorners=100,qualityLevel=.6,minDistance=25,blockSize=9) video_length=699 kernel=np.ones((5,5),np.uint8) frame_num=0 fgbg = cv2.createBackgroundSubtractorMOG2() points=[] while True: ret,frame=cap.read() fgmask=fgbg.apply(frame) fgmask=cv2.morphologyEx(fgmask,cv2.MORPH_OPEN,kernel) detected_balls=cv2.goodFeaturesToTrack(fgmask,**feature_params) for ball in detected_balls: xy=int(ball[0][0]),int(ball[0][1]) cv2.circle(frame,xy,8,(255,0,0),2) points.append(xy) cv2.imshow("img",frame) cv2.waitKey(1) frame_num+=1

###補足情報(言語/FW/ツール等のバージョンなど)
windows7/Anaconda3.4.4/Spyder3(Python3.5)/OpenCV 3.1.0

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

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

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

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

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

guest

回答1

0

ベストアンサー

エラー自体は、エラーメッセージの通り、detected_ballsがNoneだから
forで繰り返す対象にはできないよ、というものですね。
まずは、goodFeaturesToTrackのコードを読んで、どういった条件下でNoneが返されるのか
実際にどのパラメータが条件を満たさなかったのか、を見てみるのが良いかと。

おそらく、動画のコマ送りをしながら、ボールを検出し続ける処理なのであれば、
最初の数コマは、ボールが写っていない映像である可能性も高いので、
その場合は当然、ボールは発見できずにNoneが返されるのかもしれません。
とすると、とりあえず以下の処理を入れて実行しなおすと何か発見があるかもしれません。

if detected_balls is None: continue for ball in detected_balls: ....

投稿2017/12/18 07:13

編集2017/12/18 07:14
naosk8

総合スコア86

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

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

退会済みユーザー

退会済みユーザー

2017/12/18 08:05

エラーを吐かずに実行できました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問