我正在尝试在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运行代码,则不会出现此错误。
答案 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 在电池上运行时,它发生在我身上
一旦我将它连接到电源线,这种情况就会停止。