2017-11-07 13 views
0

私はRDBMSのバックグラウンドから来て、ちょうどpythonを使い始めました。以下、私のpythonAttributeError:モジュール 'cv2.cv2'には属性 'release'がありません

import cv2 

vid = cv2.VideoCapture(0) 
while vid == True: 
    print("Connected...."); 
if cv2.waitKey(0) : break 

cv2.release(); 

を経由して自分のWebカムを起動するために書かれた簡単なコードですが、それを実行している間、私はエラーに

AttributeError: module 'cv2.cv2' has no attribute 'release' 

を取得しています。私はpython3.5とlinux 14.04プラットフォームでこのコードを実行しています。私はhelp( "modules")リストを介してインストールされたcv2パッケージを見ることができ、エラーもなくインポートされます。しかし、私はpycharmの通訳のリストでそれを見ていない。助けてください。

+0

をお気軽に。私はpython2.7に戻って、[リンク](https://www.pyimagesearch.com/2015/06/22/install-opencv-3-0-and-python-2-7-on- ubuntu /)にopencvをインストールすると、問題なく動作しました。 –

答えて

1

cv2.release()は存在しません。私はあなたがしようとしていると思いますvid.release()

cv2はopencvモジュールであり、vidVideoCaptureオブジェクトです。それはあなたがリリースをしなければならないものです。

更新:

コードにはいくつかの間違いがあります。私はあなたが尋ねたものに対処する前に、すべてのものを通過させる前に。

最初に、インデントが間違っていると思われます。コードをコピーしている可能性があります。

2つ目

while vid == True: 

これはそれを行うには、正しい方法ではありません。 vid.isOpened()機能を使用して、Webカメラが開いているか接続されているかどうかを確認できます。

第三者の指示の後に;を使用する必要はありません。

4分の1、これはエラーではありませんが、必要ではない何か

if cv2.waitKey(0) : break 

場合は必要ありませんあなたが他の番号を使用する場合、waitKeyは、ASCII文字として押されたキーを返します。キーが押されていなければ0を返します。しかし、0を指定すると、キーが現在のスレッドを「ブロック」するのを待つことになります(複数の場合に備えて)。ただし、imshowウィンドウを開いていないと待たないでください。

さて、スクリプトがカメラに接続できるかどうか、私が書いたと確認しているものの変化との完全なコードは、キーが押されるまで、あなたがビデオを表示することができます。同様に

import cv2 

vid = cv2.VideoCapture(0) 
if vid.isOpened(): 
    print ("Connected....") 
else: 
    print ("Not Connected....") 

vid.release() 

次のようになります。

import cv2 

vid = cv2.VideoCapture(0) 
if vid.isOpened(): 
    print ("Connected....") 
    while True: 
    ret, frame = vid.read() 
    if ret: 
     cv2.imshow("image", frame) 
    else: 
     print ("Error aqcuiring the frame") 
     break 
    if cv2.waitKey(10) & 0xFF: 
     break 
else: 
    print ("Not Connected....") 

vid.release() 
cv2.destroyAllWindows() 

何かが明確でない場合は、私はまだ私には不明であるOpenCVのとpython3.5に問題があったようにそれはそう:)

+0

aah ...私の悪い...それはエラーを停止しましたが、まだ私のカムは呼び出されていません。私が紛失しているものは何でもお勧めしますか? –

+0

@PawanRawat確かに、私は答えの更新を書きました。私はすべての可能な問題をカバーし、テストするためのいくつかの簡単な例を教えたと思う:) – api55

+0

あなたの助けに感謝api55 ...本当にあなたはそのレベルに説明していただきありがとうございます。実際に私の最初のスクリプト...今私はあなたが提供したコードを実行した私はメッセージが "接続されていません.." ...まだ何か私は行方不明ですか? –

関連する問題