2016-09-18 78 views
0

当我尝试使用cv2.imshow()时,它会显示一秒图像,然后使窗口变灰。除了我应该使用cv2.waitKey(0),而且我也使用cv2.namedWindow(),我似乎无法找到任何有关它的信息。我的代码:imshow()函数显示空的灰色图像。我该怎么办?

import numpy as np 
import cv2 
import sys 

cv2.namedWindow('img') 
img = cv2.imread(sys.argv[1]) 
cv2.imshow('img', img) 
cv2.waitKey(0) 
cv2.destroyAllWindows 

同样,它显示图像一秒钟然后灰显。提前致谢。

+0

此代码适用于我可以通过Fedora 24中的dnf安装的OpenCV 2.4.12版本。您使用的是什么版本的OpenCV?你从头开始编译它吗? –

+0

@RobertPrévost我正在使用OpenCV 3.0.0。另外,我从头开始编译它。 – Awesomeness01

+0

关于这个代码,OpenCV 3.0.0应该和2.4.12非常相似。我必须拉它,然后试一试。同时,我唯一的想法是运行时存在一些问题。也许有OpenCV的多个版本或像libpython一些依赖库? –

回答

0
  1. 检查sys.argv中[1],尝试用真实的路径(即 “图像/ 1.png”)
  2. destroyAllWindows()是函数(使用括号内)的
  3. 参数替换waitKey(在你的例子0)它是在毫秒延时,0表示“永远”,延迟的默认值是其实你不需要namedWindow这里destroyAllWindows

试试这个0

  • import cv2 
    import sys 
    
    img = cv2.imread(sys.argv[1]) 
    cv2.imshow('img', img) 
    cv2.waitKey() 
    
  • +0

    这是它的图像路径。谢谢 – Awesomeness01