Python OpenCV imshow 失败

Python OpenCV imshow fails

我在我的 Ubuntu 14.04 系统上安装了 opencv

pip install python-opencv

我的Python版本是2.7.14

import cv2
cv2.__version__

告诉我我有 OpenCV 版本 3.4.0。

之后我想按照 OpenCV 网站上的教程进行操作

import numpy as np
import cv2 as cv
img = cv.imread('messi5.jpg',0)
print img

在此之前它工作正常,但我应该输入

cv.imshow('image',img)

我收到以下错误:

QObject::moveToThread: Current thread (0x233cdb0) is not the object's thread (0x2458430).
Cannot move to target thread (0x233cdb0)

QObject::moveToThread: Current thread (0x233cdb0) is not the object's thread (0x2458430).
Cannot move to target thread (0x233cdb0)

QPixmap: Must construct a QApplication before a QPaintDevice

有人知道问题出在哪里吗?

尝试检查您正在阅读的图片是否正在加载

image = cv2.imread(filepath,0) #0 for gray scale
if image is None:
    print "Cant Load Image"  
else:
    cv2.imshow("Image", image)
    cv2.waitKey(0)

显然

pip install python-opencv

根本不起作用,不应使用。在我从他们的网站安装 Opencv 后它工作了

似乎很难在 ubuntu 上安装 opencv,我终于用 docker 图像

搞定了

https://hub.docker.com/r/jjanzic/docker-python3-opencv/

或者您可以下载源代码并按照说明进行安装 https://milq.github.io/install-opencv-ubuntu-debian/ 使用 bash 脚本