在Ruby中是否有类似于使用matplotlib.image的等价物

8

我一直在尝试在jupyter笔记本中使用Ruby语言。使用Python时,我可以这样做:

import matplotlib.image as mpimg

有人知道 Ruby 的等效方法吗?我在 iRuby 或 sciruby 的文档中没有找到它。

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

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

但是我似乎无法访问我在Python中使用的matplotlibimage部分。

我正在尝试找到Ruby版本,就像在Python中我会这样写:

#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

非常感谢您提供的建议。

您可能会发现这个线程很有帮助,特别是其中的Python具有灵活的命名空间处理部分以及这个答案。 - Maciej Nędza
当然,我知道它们的用处,但我的问题更大范围,因为我找不到任何访问所需库的方法,因为它甚至不存在于Ruby环境中,我很好奇如何在Ruby中获取它,或者它是否存在于Ruby版本中。 - Rockwell Rice
不好意思,据我所知 Ruby 版本中没有这个功能。如果您不介意的话,我可以建议您使用 mini_magick(它应该已经被 iRuby 支持),或者是 chunky_png(您可以使用 IRuby.display png.to_blob, mime: "image/png" 将其图像放入 iRuby 中)。 - Amadan
1个回答

7
这是我在MacOSX上在jupyter笔记本中所能做到的程度:
require 'matplotlib/pyplot'
plt = Matplotlib::Pyplot

image = plt.imread 'test.png'

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

plt.imshow(image)
plt.show()

我使用了你的Gemfile,并添加了rbczmq gem,以避免内核死亡(提示在这里找到):

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

请注意,我使用了 .png 格式,因为 matplotlib 只能在未安装 PIL 的情况下本地读取 PNG 文件。
这是最终效果的样子:

enter image description here

在Python版本中,将结果内联显示:

enter image description here

似乎是不可能的。


它实际上显示了图片吗?使用你的代码时,我的程序打印出了图片的尺寸,但没有显示图片。plt.imshow(image)应该在尺寸下显示图片。 - Rockwell Rice
plt.imshow(image) 不会显示渲染结果,您必须显式调用 plt.show() - Alexander Presber
抱歉,我在那里放错了代码,5分钟后无法编辑。我尝试了相同的方法,但没有成功,我正在尝试安装一些东西并查看是否可以解决问题。 - Rockwell Rice
我需要这个能够在笔记本中内联显示(最好是这样),或者至少可以从运行文件中工作。但是我无法让它显示任何内容。 - Rockwell Rice

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接