我需要通过ssh使用OpenCV执行python脚本。问题是调用任何opencv函数时都会出现X错误。
例如:
import numpy as np
import cv2 as cv
a = np.zeros((200, 100), dtype=np.uint8)
b = cv.resize(a, (100, 50)) # got error here
错误不是异常或断言,它只是停止程序并打印:
X Error of failed request: BadRequest (invalid request code or no such operation)
Major opcode of failed request: 154 (DRI2)
Minor opcode of failed request: 1 (DRI2Connect)
Serial number of failed request: 11
Current serial number in output stream: 11
我知道opencv函数以某种方式使用X的DRI。 (直接渲染基础结构)所以我可能需要以某种方式使用远程PC X,而不要使用ssh X11转发。
问题: 有谁知道如何强制在ssh会话中运行的opencv使用远程X或任何其他方式来解决此问题?
谢谢。
答案 0 :(得分:0)
解决方案很简单,请确保已在本地主机上禁用 X11转发。
这意味着不要使用任何-X -Y
选项,并确保未在配置中启用X11转发。
~/.ssh/config
/etc/ssh/ssh_config)
ForwardX11 no