J'utilise opencv2 en python avec le code
import cv2
cv2.namedWindow("output", cv2.WINDOW_NORMAL)
cv2.imshow("output",im)
cv2.resizeWindow('output', 400,400)
cv2.waitKey(0)
cv2.destroyAllWindows()
J'ai l'erreur comme
QObject::moveToThread: Current thread (0x1d2c9cf0) is not the object's thread (0x1d347b20).
Cannot move to target thread (0x1d2c9cf0)
Je débogue et trouve que c'est arrivé quand j'utilise cv2.waitKey(0)
. Comment dois-je résoudre ce problème? Merci
Mise à jour: J'utilise 3.3.0.0. Si j'utilise une version plus ancienne, j'ai une erreur
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 cvDestroyAllWindows, file /io/opencv/modules/highgui/src/window.cpp, line 577
Traceback (most recent call last):
File "tools/demo_handbone.py", line 220, in <module>
demo(net, im_name)
File "tools/demo_handbone.py", line 159, in demo
cv2.destroyAllWindows()
cv2.error: /io/opencv/modules/highgui/src/window.cpp:577: 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 cvDestroyAllWindows
Tout d’abord, désinstallez toutes les versions d’OpenCV que vous avez installées. Si vous avez installé avec pip
:
Sudo pip uninstall opencv-python
Ensuite, essayez d’installer OpenCV en utilisant le gestionnaire de paquets de votre distribution Linux. Pour Ubuntu/Debian, il s’agit de:
Sudo apt-get install libopencv-dev python-opencv
J'ai résolu ce problème sous Ubuntu 18.04 LTS en désinstallant les packages OpenCV de pip
et apt
et en installant OpenCV directement à partir du code source. Peut-être que ce tutoriel vous aidera:
https://www.pyimagesearch.com/2018/08/15/how-to-install-opencv-4-on-ubuntu/
J'ai essayé la méthode mentionnée ci-dessus et j'ai pu faire fonctionner le module opencv pour mon projet utilisant un interpréteur python3.x.
Après avoir effectué quelques expériences, je l’ai obtenu en procédant comme suit:
1) Installez opencv-python sur votre machine en utilisant:
Sudo pip3 install opencv-python
2) Sur le terminal python3.x, recherchez la version:
>>> import cv2
>>> cv2.__version__
'3.4.1'
3) Obtenez la même version d'OpenCV depuis leur page officielle .
4) Effectuez les réglages de CMake comme indiqué dans opencv tutorial . Notez l'emplacement spécifié dans PYTHON3_PACKAGES_PATH
5) Une fois la construction effectuée, accédez à l'emplacement d'installation spécifié dans PYTHON3_PACKAGES_PATH. Déplacez la bibliothèque nommée cv2.cpython - * - gnu.so vers le chemin actuel de python3.x dist-packages:
usr/local/lib/python3.5/dist-packages/cv2
6) Rechargez votre projet python3 et réessayez!
Ce problème n'existe pas si vous exécutez opencv sans virtualenviroment. Mon système: Kbuntu 18.04 LTS GTX 1050 CUDA 9.2 Tensorflow 1.9
La réponse de @Mateen fonctionne à merveille si vous utilisez Ubuntu version 17 ou ultérieure. Pour Ubuntu 16, il est préférable de compiler à partir de sources votre python ouvert. Comme @Varun l'a mentionné, suivez le didacticiel opencv . Cependant, pour compiler avec succès opencv avec Python 3, je dois ajouter quelques drapeaux dans la commande cmake:
cmake -DCMAKE_BUILD_TYPE=RELEASE -DPYTHON_DEFAULT_EXECUTABLE=$(which python3) -DPYTHON_INCLUDE_DIR2=/usr/include/x86_64-linux-gnu/python3.5m/ -DPYTHON3_NUMPY_INCLUDE_DIRS=/usr/local/lib/python3.5/dist-packages/numpy/core/include/ ..
J'espère que cela vous sera utile.