麻烦“cv2.imshow()”函数

时间:2016-12-09 18:49:33

标签: python python-2.7 opencv numpy matplotlib

我在python 2.7中安装了openCV和numpy库。

我使用命令import cv2import numpy测试了它们并进行了编译。

但是当我使用cv2.imshow('frame', ----)函数时,它会显示一个窗口但不显示图像。它显示“框架没有响应”。

所以,我尝试使用matplotlib函数来显示图像并且它有效。

我在第二种情况下插入了cv2.imshow功能,但它确实有效。

版本[Python-2.7.10,OpenCV-2.4.11]

以下是代码,

案例1:不工作,显示窗口但不显示图像(显示框架没有响应)

import cv2
import numpy 

img = cv2.imread('a.jpg')
cv2.imshow('FRAME',img)

案例2:工作

import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import numpy as np
import cv2

img = mpimg.imread('a.jpg')
img2 = cv2.imread('b.jpg')
cv2.imshow('FRAME',img2)
plt.imshow(img)
plt.show()

2 个答案:

答案 0 :(得分:15)

imshow后面应跟waitKey函数,该函数显示指定毫秒的图像。否则,它将不显示图像。例如,waitKey(0)将无限显示窗口,直到任何按键(适用于图像显示)。 waitKey(25)将显示一个25毫秒的帧,之后显示将自动关闭。 (如果你把它放在一个循环中来阅读视频,它将逐帧显示视频)。这是一个有效的例子:

import cv2

img = cv2.imread('a.jpg')
cv2.imshow('FRAME', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

答案 1 :(得分:-1)

尝试使用像这样的imread

@OneToMany(mappedBy="entitie")
@OrderBy("theFieldYouWantOrder ASC")