Python OpenCV imshow 失败

Posted

技术标签:

【中文标题】Python OpenCV imshow 失败【英文标题】:Python OpenCV imshow fails 【发布时间】:2018-02-01 10:59:11 【问题描述】:

我在我的 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

有谁知道问题出在哪里?

【问题讨论】:

“print img”显示什么? 不相关:为什么是 2.7?为什么不是 3.6.x? 试试from matplotlib import pyplot as plt @jms print img 显示 rgb 值 @Thomas Kühn 这似乎没有任何改变 【参考方案1】:

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

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)

【讨论】:

【参考方案2】:

显然

pip install python-opencv

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

【讨论】:

【参考方案3】:

在ubuntu上似乎很难安装opencv,我终于用docker镜像搞定了

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

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

【讨论】:

以上是关于Python OpenCV imshow 失败的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV之自定义滤波器

OpenCV之自定义滤波器

Python 3.6 + opencv 3.4 中imshow 函数报错

OpenCV之图像锐化

OpenCV之图像锐化

opencv 读取图像断言失败