【问题标题】:Is there an equivalent for using matplotlib.image in ruby是否有在 ruby​​ 中使用 matplotlib.image 的等价物
【发布时间】:2018-08-26 00:27:16
【问题描述】:

一直在尝试在 jupyter notebook 中使用 Ruby。使用 Python 我可以做到这一点

import matplotlib.image as mpimg

有谁知道 Ruby 的等价物,我在任何 iRuby 或 sciruby 文档中都找不到它?

澄清一下,在我的 gemfile 中有这个

gem 'iruby'
gem 'cztop'
gem 'matplotlib'

但似乎无法访问我习惯在 python 中使用的matplotlibimage 部分。

我正在尝试在 Python 中找到我会这样写的 Ruby 版本

#importing some useful packages
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
...

%matplotlib inline

#reading in an image
image = mpimg.imread('test_images/solidWhiteRight.jpg')

#printing out some stats and plotting
print('This image is:', type(image), 'with dimesions:', image.shape)
plt.imshow(image)  #call as plt.imshow(gray, cmap='gray') to show a grayscaled image

非常感谢您的任何建议

【问题讨论】:

  • 当然我知道这些是如何有用的,我的问题是更大的范围,我找不到任何方法来访问我需要的库,因为它甚至不存在于 ruby​​ 环境中,我很好奇我是如何得到的它在 Ruby 中,或者如果它存在于 Ruby 版本中。
  • 不,AFAIK 它在 Ruby 版本中不存在。在不确切说明您需要什么的情况下,我可能会建议 mini_magick(iRuby 应该已经支持),或者 chunky_png(您可以使用 IRuby.display png.to_blob, mime: "image/png" 将图像从它放入 iRuby)。

标签: ruby matplotlib jupyter-notebook


【解决方案1】:

这是我可以让它在 MacOSX 上的 jupyter notebook 中工作的程度:

require 'matplotlib/pyplot'
plt = Matplotlib::Pyplot

image = plt.imread 'test.png'

puts "This image's dimensions: #{image.shape}"

plt.imshow(image)
plt.show()

我将您的 Gemfile 与额外的 gem rbczmq 一起使用以避免内核死机(发现提示 here):

gem 'iruby'
gem 'cztop'
gem 'matplotlib'
gem 'rbczmq'

请注意,我使用了 .png,因为 matplotlib 只能在未安装 PIL 的情况下原生读取 PNG。

结果如下所示:

显示结果 inline 与 python 版本一样:

似乎是不可能的。

【讨论】:

  • 它真的向您显示了图像吗?我的打印尺寸但在使用您的代码时不显示图像。 plt.imshow(image) 应该在尺寸下显示图像。
  • plt.imshow(image)不显示渲染结果,你必须显式调用plt.show()
  • 对不起,在那里输入了错误的代码,5 分钟后无法编辑。我尝试了确切的东西但没有用,我正在尝试安装一些东西,看看我能不能得到它
  • 好吧,我需要通过在笔记本中显示内联(理想情况下)来工作,或者至少通过运行文件来工作。但我根本无法让它显示任何东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-20
  • 1970-01-01
  • 2019-03-11
  • 2014-03-08
  • 2011-08-31
  • 2010-12-04
  • 2014-02-24
相关资源
最近更新 更多