需求描述:
在VSCode中通過SSH連接服務器,使用cv2.imshow或plt.show()無法顯示圖像。
解決思路如下:
1、首先查看與服務器之間的網(wǎng)絡連接問題(百分之九十問題就是出在第一步驟,哈哈哈)
在本地端打開cmd,使用指令ping xxx.xxx.xxx.xxx,其中(xxx.xxx.xxx.xxx為服務器的IP地址)
在VSCode或者MobaXterm中從服務器ping本地端
使用指令ping xxx.xxx.xxx.xxx,其中(xxx.xxx.xxx.xxx為本地端的IP地址)
?這一步,默認狀態(tài)下的Windows 11系統(tǒng)是ping不通的,這是因為防火墻直接給攔截了,去系統(tǒng)中關(guān)閉防火墻,再次嘗試,直到能ping通為止。
關(guān)閉防火墻步驟:
控制面板搜索Defender
?然后關(guān)閉防火墻
?2、在服務器端
~/.bashrc文件中加入:
export DISPLAY="172.22.205.229:0.0"
其中引號中內(nèi)容為本地端IP地址+:0.0。
然后終端運行source ~/.bashrc使生效。
3、在本地端安裝MobaXterm,
點擊Settings-->Configurations-->X11,設置如下:
Display offset設置為0,如果設置為1的話,對應的第二步驟引號的內(nèi)容改為本地端IP地址+:1.0,以此類推。
X11 remote access改為full,表示開放遠程訪問所有權(quán)限。
4、保持MobaXterm開啟的狀態(tài)下,在VSCode中運行xclock,會顯示一個時鐘。
?5、opencv顯示測試(測試過程中需保持MobaXterm開啟的狀態(tài))
示例代碼:
import cv2 as cv
src = cv.imread("LaSOT/LaSOTBenchmark/bicycle/bicycle-1/img/00000001.jpg")
cv.namedWindow("test",0)
cv.imshow("test",src)
cv.waitKey(0)
cv.destroyAllWindows()
結(jié)果:
6、?matplotlib顯示測試(測試過程中需保持MobaXterm開啟的狀態(tài))
?示例代碼:
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
ax = plt.axes(projection='3d')
ax.scatter(np.random.rand(10),np.random.rand(10),np.random.rand(10))
plt.show()
結(jié)果:
文章來源:http://www.zghlxwxcb.cn/news/detail-551645.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-551645.html
到了這里,關(guān)于SSH通過VSCode遠程訪問服務器Opencv和matplotlib等無法直接顯示圖像問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!