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

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

ただいまの
回答率

89.55%

cv2.imshowだけ使用できない

受付中

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 672

Yuki_7300

score 2

前提・実現したいこと

opnecvをcondaでインストールしてimport cv2ができるようになり動かしてみたらこのエラーがでました。
これ以外のopencvを使用したプログラムは動いていましたが、このプログラムだけこのようなエラーを出しており、一行ずつ実行した結果、どうやら
cv2.imshow と cv2.waitKey でこのエラーを出しているようでした
数時間考えたり調べたりしましたが、解決しませんでした。
よろしくお願いいたします

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

Corrupt JPEG data: 4 extraneous bytes before marker 0xd6
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 /home/jhelmus/conda/conda-bld/opencv_1512148862464/work/modules/highgui/src/window.cpp, line 605
Traceback (most recent call last):
  File "face_camera.py", line 38, in <module>
    frame = cv2.imshow("Show FRAMW Image", frame)
cv2.error: /home/jhelmus/conda/conda-bld/opencv_1512148862464/work/modules/highgui/src/window.cpp:605: 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

該当のソースコード

# -*- coding: UTF-8 -*-
import cv2
import os
import time
import Adafruit_PCA9685

pwm = Adafruit_PCA9685.PCA9685()
pwm.set_pwm_freq(60)

cascade_path = "haarcascade_frontalface_alt.xml"
cascade = cv2.CascadeClassifier(cascade_path)

cap = cv2.VideoCapture(0)
cap.set(3, 320)
cap.set(4, 320)
color = (255, 255, 255)

while(True):
    ret, frame = cap.read()
    now_degree_x, now_degree_y, move_degree_x, move_degree_y = 475, 325, 0, 0
    facerect = cascade.detectMultiScale(frame, scaleFactor=1.2, minNeighbors=2, minSize=(10, 10))

    for rect in facerect:
        img_x = rect[0]+rect[2]/2
        img_y = rect[1]+rect[3]/2
        print(img_x, img_y)
        move_degree_x = now_degree_x - (img_x-160)*0.4
        move_degree_y = now_degree_y + (img_y-160)*0.4
        print('deg: ', move_degree_x , move_degree_y)
        pwm.set_pwm(0, 0, int(move_degree_x))
        pwm.set_pwm(1, 0, int(move_degree_y))
        time.sleep(0.1)
        now_degree_x = now_degree_x + move_degree_x
        now_degree_y = now_degree_y + move_degree_y
        cv2.circle(frame, (int(img_x), int(img_y)), 10, (255,255,255), -1)
        cv2.rectangle(frame, tuple(rect[0:2]),tuple(rect[0:2] + rect[2:4]), color, thickness=3)

    frame = cv2.imshow("Show FRAMW Image", frame)

    k = cv2.waitKey()
    if k == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

試したこと

sudo apt-get install pkg-config
sudo apt-get install libgtk2.0-dev  無事インストール成功、しかし同じエラー

一度opencvをアンストし
conda install -c conda-forge opencv 同じエラーを吐く
pip3で試すもそもそもインストールに成功しない

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

使用ハード Raspberry Pi3 B+
使用OS   Raspbian 9.11
Python 3.6.6
OpenCV 3.3.0
print(cv2.getBuildInformation())の結果です

General configuration for OpenCV 3.3.0 =====================================
  Version control:               unknown

  Extra modules:
    Location (extra):            /home/jhelmus/conda/conda-bld/opencv_1512148862464/work/opencv_contrib-3.3.0/modules
    Version control (extra):     unknown

  Platform:
    Timestamp:                   2017-12-01T17:28:04Z
    Host:                        Linux 4.9.35-v7+ armv7l
    CMake:                       3.6.2
    CMake generator:             Unix Makefiles
    CMake build tool:            /usr/bin/make
    Configuration:               Release

  CPU/HW features:
    Baseline:
      requested:                 DETECT
      disabled:                  VFPV3 NEON

  C/C++:
    -----省略-----
  GUI: 
    QT:                          NO
    GTK+:                        NO
    GThread :                    NO
    GtkGlExt:                    NO
    OpenGL support:              NO
    VTK support:                 NO

  Media I/O: 
    ZLib:                        /home/pi/berryconda3/lib/libz.so (ver 1.2.11)
    JPEG:                        /home/pi/berryconda3/lib/libjpeg.so (ver 90)
    WEBP:                        /home/pi/berryconda3/lib/libwebp.so (ver encoder: 0x0209)
    PNG:                         /home/pi/berryconda3/lib/libpng.so (ver 1.6.28)
    TIFF:                        /home/pi/berryconda3/lib/libtiff.so (ver 42 - 4.0.6)
    JPEG 2000:                   /home/pi/berryconda3/lib/libjasper.so (ver 1.900.1)
    OpenEXR:                     build (ver 1.7.1)
    GDAL:                        NO
    GDCM:                        NO

  Video I/O:
    DC1394 1.x:                  NO
    DC1394 2.x:                  NO
    FFMPEG:                      YES
      avcodec:                   YES (ver 57.64.101)
      avformat:                  YES (ver 57.56.101)
      avutil:                    YES (ver 55.34.101)
      swscale:                   YES (ver 4.2.100)
      avresample:                YES (ver 3.1.0)
    GStreamer:                   NO
    OpenNI:                      NO
    OpenNI PrimeSensor Modules:  NO
    OpenNI2:                     NO
    PvAPI:                       NO
    GigEVisionSDK:               NO
    Aravis SDK:                  NO
    UniCap:                      NO
    UniCap ucil:                 NO
    V4L/V4L2:                    NO/YES
    XIMEA:                       NO
    Xine:                        NO
    Intel Media SDK:             NO
    gPhoto2:                     NO

  Parallel framework:            OpenMP

  Trace:                         YES ()

  Other third-party libraries:
    Use Intel IPP:               NO
    Use Intel IPP IW:            NO
    Use VA:                      NO
    Use Intel VA-API/OpenCL:     NO
    Use Lapack:                  YES (/home/pi/berryconda3/lib/libopenblas.so)
    Use Eigen:                   NO
    Use Cuda:                    NO
    Use OpenCL:                  NO
    Use OpenVX:                  NO
    Use custom HAL:              YES (carotene (ver 0.0.1))

  Python 2:
    Interpreter:                 NO

  Python 3:
    Interpreter:                 /home/pi/berryconda3/bin/python (ver 3.6.3)
    Libraries:                   /home/pi/berryconda3/lib/libpython3.6m.so (ver 3.6.3)
    numpy:                       /home/pi/berryconda3/lib/python3.6/site-packages/numpy/core/include (ver 1.11.3)
    packages path:               /home/pi/berryconda3/lib/python3.6/site-packages

  Python (for build):            /home/pi/berryconda3/bin/python

  Java:
    ant:                         /usr/bin/ant (ver 1.9.4)
    JNI:                         NO
    Java wrappers:               NO
    Java tests:                  NO

  Matlab:                        NO

  Tests and samples:
    Tests:                       NO
    Performance tests:           NO
    C/C++ Examples:              NO

  Install path:                  /home/pi/berryconda3

  cvconfig.h is in:              /home/jhelmus/conda/conda-bld/opencv_1512148862464/work/build
-----------------------------------------------------------------
  • 気になる質問をクリップする

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

質問への追記・修正、ベストアンサー選択の依頼

  • nomuken

    2019/11/02 15:18

    import cv2
    print(cv2.getBuildInformation())
    の結果を追記すると解決のヒントになるかもしれません。

    キャンセル

  • Yuki_7300

    2019/11/02 15:22

    追記依頼ありがとうございます。
    早速追記させていただきます!

    キャンセル

  • nomuken

    2019/11/02 15:50

    使用しているopencvはGUI関連オプションを無効にしてビルドされているみたいですね。
    どっかからGTKサポート有効でビルドされたopencvを持ってくるか自分でソースからビルドする必要があると思います。

    キャンセル

  • Yuki_7300

    2019/11/02 15:58

    回答ありがとうございます。
    なるほど、自分で使うものをしっかり選んで再チャレンジしようと思います!

    キャンセル

回答 1

0

cmakeで自分でビルドすることで出来ました

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

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

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

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