繁体   English   中英

如何在远程Jupyter Notebook执行中使用OpenCV?

[英]How to use opencv in a remote jupyter notebook execution?

在我使用macOS Mojave的本地机器上,我安装了一个带有Python 3.6,opencv软件包和一些其他不相关软件包的虚拟环境。

我启动了一个非常简单的Jupyter Notebook,它执行起来没有问题,这是代码:

import cv2
print(cv2.__version__)
my_img = cv2.imread("colibri_763_460.jpeg",1)
cv2.imshow("Original", my_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

现在,我正在尝试在我的远程Ubuntu机器中的Jupyter Notebook中执行相同的代码,但我无法使其工作。 这些是我采取的步骤:

  • 我将图像文件和Notebook ypnb文件复制到远程ubuntu机器上。
  • 我打开了一个ssh会话,选择了一个与我的本地机器相同的包的virtualenv并执行了“jupyter notebook”
  • 我用ssh -L 8000开了另一个终端:localhost:8888 mpastorg @ mpgubu18用于ssh隧道
  • 我在localhost:8000中打开了本地浏览器,以执行远程Ubuntu计算机中的笔记本,它可与任何不涉及opencv的笔记本一起使用。

我试图用两种不同的方式解决我的问题:

  • 在ubuntu远程机器上安装软件包opencv-contrib-python-headless:当我尝试使用cv2.imshow时 ,我发现了错误的方法
  • 在ubuntu远程计算机上安装软件包opencv-contrib-python:我收到内核已死的错误。

有人知道是否可以执行远程jupyter笔记本并在本地查看图片吗? 也许可以通过一种解决方法将图片嵌入浏览器窗口?

非常感谢Marcos Pastor

我想知道在你的主机和ssh隧道中是否使用X渲染图像 - 你没有明确启用它。

在主机上。 (你想在哪里看到图像)。 输入此评论

xhost+

现在,这允许远程X-Hosts向您发送数据。 当您使用Mac时 - 您需要安装XQuartz软件包。

现在修改你的ssh命令。 - 这样你就允许X - 这通常使用-X标志来完成(或者它可以放在你的.ssh / config文件中

Host *
  ForwardX11 yes
  ForwardX11Trusted no
  XAuthLocation /opt/X11/bin/xauth
  ForwardAgent yes
  Compression yes
  KeepAlive yes
  Compression yes

如果您没有使用配置,请尝试使用-X开头。

希望有所帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM