在多个窗口上的OpenCV授予错误“ qasciikey.cpp,行495中的文件“ ASSERT:“ false””

时间:2018-11-14 23:07:05

标签: python opencv opencv3.0 nvidia-jetson

我正在尝试在Jetson TX2的python中使用多个OpenCV窗口。但是,我得到了错误:“ qasciikey.cpp文件中第495行的“ ASSERT:” false“”

下面是可复制的最小代码:

import cv2
import numpy as np

img1=np.random.randn(300,400)
img2=np.random.randn(600,400)

cv2.imshow('win1', img1)
cv2.imshow('win2', img2)

这是错误跟踪:

Could not initialize OpenGL for RasterGLSurface, reverting to RasterSurface.
QXcbConnection: XCB error: 145 (Unknown), sequence: 164, resource id: 0, major code: 139 (Unknown), minor code: 20
Could not initialize OpenGL for RasterGLSurface, reverting to RasterSurface.
ASSERT: "false" in file qasciikey.cpp, line 495
Aborted (core dumped)

请帮助。谢谢!

编辑: 仅当我通过Jet(通过MobaXterm v10.5)进入Jetson时,才会发生该错误。如果我直接从Jetson运行代码,则不会出现此错误。

3 个答案:

答案 0 :(得分:1)

我发现在MobaXterm / Settings / X11中取消选中“ Unix兼容键盘”,而键盘设置为“ us”为我解决了此错误。

答案 1 :(得分:0)

在Raspberry Pi上运行代码时,我收到了类似的错误消息(ASSERT: "false" in file qasciikey.cpp, line 495)。通过首先使用cv2.namedWindow()创建了一个应在其中显示图像的窗口,我能够解决此问题。

您应该尝试此解决方案,看看问题是否消失:

import cv2
import numpy as np

img1=np.random.randn(300,400)
img2=np.random.randn(600,400)

cv2.namedWindow('win1')
cv2.namedWindow('win2')

cv2.imshow('win1', img1)
cv2.imshow('win2', img2)

答案 2 :(得分:0)

我不知道这是什么原因,但是当我使用 CUDA 运行 OpenCV 并且我的 ubuntu latptop 在电池上运行时,它发生在我身上

一旦我将它连接到电源线,这种情况就会停止。