2017-12-17 5 views
0

最近opencvで作業しています。私のUbuntu 16.04にインストールしました。私はそれにはいくつかの問題があると思う。私は機能を実行するためにcv2.imshow()の実装中に直面する問題

cv2.imshow('frame',frame) 

を試みるたびに、それは私が実行しようとしたコードが

import numpy as numpy 
import cv2 
import matplotlib.pyplot as plt 

cap = cv2.VideoCapture(0) 
bg = cv2.bgsegm.createBackgroundSubtractorMOG() 

while True: 
    ret,frame = cap.read() 
    vid = bg.apply(frame) 

    cv2.imshow('frame',frame) 
    cv2.imshow('vid',vid) 
    key = cv2.waitKey(0) & 0xff 
    if key == 27: 
     break 

cap.release() 
cap.destroyAllWindows() 

私はすべての可能なものをGoogleにしようとしたのですすべてをしたある

OpenCV Error: Unspecified error (The function is not implemented. 
Rebuild the library with Windows, GTK+ 2.x or Carbon support. 
If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script) in cvShowImage, file /tmp/build/80754af9/opencv_1512687413662/work/modules/highgui/src/window.cpp, line 611 
Traceback (most recent call last): 
    File "hands.py", line 12, in <module> 
    cv2.imshow('frame',frame) 
    cv2.error: /tmp/build/80754af9/opencv_1512687413662/work/modules/highgui/src/window. 
cpp:611: error: (-2) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. 
    If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function cvShowImage 

このエラーを提起します可能ですが、それでも問題を解決することはできません。

私はまた、代わりに

cv2.imshow('frame',frame) 

matplotlib.pyplot.imshow('frame',frame) 
matplotlib.pyplot.show() 

を使用してみましたが、これは私のウェブカメラからキャプチャしたビデオを表示するには、エラーに

TypeError: unhashable type: 'numpy.ndarray' 

を与えます。 ビデオまたはこのエラーではなく、単に画像とエラーをcv2.waitkey()に表示します。 このエラーを解決する方法はありますか?またはcv2のGUI機能を実装するには?

+0

を参照してくださいだろう[MCVE]読んで理解してください。エラーを取得するためにどのコードを実行しているのかは不明です。どうやってここで助けてくれるの? – ImportanceOfBeingErnest

+0

私の質問の不完全さについては申し訳ありません、私は自分のコードの一部を投稿しました。それで私を助けてくれますか? – Darshan

答えて

0

あなたのcv2インストールに問題があるようです。私はそれを手助けすることはできませんが、私は再インストールし、お使いのシステム(OS、ビット深度とPythonのバージョンに一致する)の正しいバージョンが使用されていることを確認することをお勧めします。

回避策として、実際には画像を表示するためにmatplotlibを使用することがあります。最小限の例では、

import cv2 
import matplotlib.pyplot as plt 

cap = cv2.VideoCapture(0) 

plt.ion() 
fig, ax = plt.subplots() 
ret,frame = cap.read() 
im = ax.imshow(frame) 

while True: 
    ret,frame = cap.read() 
    im.set_data(frame) 
    plt.pause(0.5) 

plt.ioff() 
plt.show() 

はまたupdate frame in matplotlib with live camera preview

+0

答えをありがとうが、私はこのエラーが発生しています。 '画像データをfloatに変換できません。 ' – Darshan

+0

最後の行では不十分です。完全なエラートレースバックを知る必要があります。 – ImportanceOfBeingErnest

+0

'----> 9 im = ax.imshow(frame)' – Darshan

関連する問題