图片未显示在 ipython
image does not display in ipython
如果图像是 while 循环的一部分,则不会加载图像。例如以下按预期工作:
from IPython.display import Image
Image(filename='someimage.jpg')
但这不起作用:
while True:
Image(filename='someimage.jpg')
break
更新:
如何显示列表中的多张图片?
这在这里工作正常:
from IPython.display import display, Image
path1 = "/some/path/to/image1.png"
path2 = "/some/path/to/image2.png"
for path in path1, path2:
img = Image(path)
display(img)
在 IPython 笔记本中工作时,解释器将在作为单独的命令键入时给出响应。
例如:
>>>>a = 5
>>>>a
5
但是如果我们在函数或循环中做同样的事情,我们将得不到响应。
因此,如果您想显示 loop/function 中的图像,则必须使用显示函数 (IPython.display.display)
from IPython.display import display, Image
for image_path in images: # images is a list of paths
display(Image(image_path))
所以 Image 函数正在返回图像。在解释器中时,它会被显示,否则不会。
为了保证显示出来,我们使用display函数。
这类似于打印命令。在解释器中,不需要使用print 命令来查看变量,而运行 是一个程序。
好的,我遇到的问题与上面的问题完全相同。我将通过一个详细的示例,其中 IPython 用于创建图像。经过多次尝试,我已经成功显示了一个文件中的.jpg图片,并且确认MacOSXYosemite可以使用Python+PIL 显示图像。
我不得不卸载 PIL,改用 Pillow,以便正确识别 libjpeg 库。 Python 代码 创建 图像 - 但它不会 显示 图像。
我尝试创建图像:
f = BytesIO()
PIL.Image.fromarray(a).save(f, 'jpeg')
clear_output(wait = True)
display(Image(data=f.getvalue()))
运行Python里的小程序看到的是:
<IPython.core.display.Image object>
In :
This In : 看起来是一个 IPython 提示符。
看来我正在处理的代码示例是专门为使用 IPython Notebook 而设计的 而不是 与 IPython 相同,或交互式 Python.
要使用上面的代码,它来自 Google TensorFlow 教程,需要配置 "IPython Notebook Server" 和 运行 一个叫做 "Jupyter" 的东西。 Jupyter 的文档位于:
http://jupyter-notebook.readthedocs.io/en/latest/
apler 的观点很好。我们应该能够使用普通 Python 创建一个 .jpg 文件,并将其显示在 Mac 运行ning OSX 上。我已经将一些代码放在一起以展示如何执行此操作。它创建一个 .jpg 图像,将其写出到文件中,然后使用 PIL 的 Pillow 版本显示它。 (注意:我不得不使用 pip 卸载原始 PIL,然后 pip install Pillow,然后我从 Ethan.Tira-Thompson.com/Mac_OS_X_Ports 中选择了 "libjpeg" 库作为 .dmg 文件。 html 站点)。您还需要 numpy 和 scipy.misc 模块。
#
# --- Make+Show immediately a simulated Moire pattern as a .jpg file
#
# --- start Python and import this file with: import MakeShowMoire
# --- or use: execfile ("MakeShowMoire.py")
#
# --- import modules we need
from PIL import Image, ImageDraw
import numpy as np
import scipy.misc
#
# --- Ok, lets go..
width = 1020
height = 710
channels = 3
#
img = np.zeros((height, width, channels), dtype=np.uint8)
xx, yy = np.mgrid[:height, :width]
circle = (xx - 100) ** 2 + (yy - 100) ** 2
for y in range(img.shape[0]):
for x in range(img.shape[1]):
r, g, b = circle[y][x], circle[y][x], circle[y][x]
img[y] [x] [0] = r
img[y] [x] [1] = g
img[y] [x] [2] = b
#
# --- now, we have made the image, lets save it
scipy.misc.imsave("testimg.jpg", img)
#
# --- Since we have saved it, we should be able to display it
image = Image.open("testimg.jpg")
image.show()
将此文件另存为 MakeShowMoire.py。为了运行这个,启动一个终端会话,然后运行Python。我在达尔文上使用 Python 2.7.10 [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang 600.0.39)],Mac OSX 是 10.10.5 Yosemite .当Python 运行s时,只要输入:
>>> execfile ("MakeShowMoire.py")
并且该示例应该显示在您的 Mac 上,在一个名为 "tmpblahblah.BMP" 的 window 中,当您关闭 window 时将显示该示例,但是您的 testimg.jpg当然会被保留。
我在 Python 提示符下使用 "import MakeShowMoire" 到 运行 文件,但名称空间未映射到交互式 Python 会话。如果使用 execfile 函数,则可以再次使用 image.show() 重新显示文件内容。希望这有用。
我尝试了选择的答案,以及太阳下的几乎所有其他内容,但无论我尝试什么,它只会显示最后一张照片。我终于能够让它与 matplotlib 一起工作了。
import glob
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
def display_photo(path):
print("File: {}".format(path))
img = mpimg.imread(path)
imgplot = plt.imshow(img)
plt.show()
for path in glob.iglob('my_photos/*'):
display_photo(path)
注意:图像显示在不同的 window - 图像查看器中。如果使用 QtConsole,可以使用 %matplotlib inline
将显示设置为内联
希望对您有所帮助。
Imports 并且该函数可以重写如下。它完美地打开了 windows 照片查看器和结果分形图像
import tensorflow as tf
import numpy as np
from PIL import Image
from io import BytesIO
from IPython.display import display
def DisplayFractal(a, fmt='jpeg'):
a_cyclic = (6.28*a/20.0).reshape(list(a.shape)+[1])
img = np.concatenate([10+20*np.cos(a_cyclic),
30+50*np.sin(a_cyclic),
155-80*np.cos(a_cyclic)], 2)
img[a==a.max()] = 0
a = img
a = np.uint8(np.clip(a, 0, 255))
Image.fromarray(a).show()
如果图像是 while 循环的一部分,则不会加载图像。例如以下按预期工作:
from IPython.display import Image
Image(filename='someimage.jpg')
但这不起作用:
while True:
Image(filename='someimage.jpg')
break
更新:
如何显示列表中的多张图片?
这在这里工作正常:
from IPython.display import display, Image
path1 = "/some/path/to/image1.png"
path2 = "/some/path/to/image2.png"
for path in path1, path2:
img = Image(path)
display(img)
在 IPython 笔记本中工作时,解释器将在作为单独的命令键入时给出响应。
例如:
>>>>a = 5
>>>>a
5
但是如果我们在函数或循环中做同样的事情,我们将得不到响应。
因此,如果您想显示 loop/function 中的图像,则必须使用显示函数 (IPython.display.display)
from IPython.display import display, Image
for image_path in images: # images is a list of paths
display(Image(image_path))
所以 Image 函数正在返回图像。在解释器中时,它会被显示,否则不会。 为了保证显示出来,我们使用display函数。
这类似于打印命令。在解释器中,不需要使用print 命令来查看变量,而运行 是一个程序。
好的,我遇到的问题与上面的问题完全相同。我将通过一个详细的示例,其中 IPython 用于创建图像。经过多次尝试,我已经成功显示了一个文件中的.jpg图片,并且确认MacOSXYosemite可以使用Python+PIL 显示图像。
我不得不卸载 PIL,改用 Pillow,以便正确识别 libjpeg 库。 Python 代码 创建 图像 - 但它不会 显示 图像。
我尝试创建图像:
f = BytesIO()
PIL.Image.fromarray(a).save(f, 'jpeg')
clear_output(wait = True)
display(Image(data=f.getvalue()))
运行Python里的小程序看到的是:
<IPython.core.display.Image object>
In :
This In : 看起来是一个 IPython 提示符。
看来我正在处理的代码示例是专门为使用 IPython Notebook 而设计的 而不是 与 IPython 相同,或交互式 Python.
要使用上面的代码,它来自 Google TensorFlow 教程,需要配置 "IPython Notebook Server" 和 运行 一个叫做 "Jupyter" 的东西。 Jupyter 的文档位于: http://jupyter-notebook.readthedocs.io/en/latest/
apler 的观点很好。我们应该能够使用普通 Python 创建一个 .jpg 文件,并将其显示在 Mac 运行ning OSX 上。我已经将一些代码放在一起以展示如何执行此操作。它创建一个 .jpg 图像,将其写出到文件中,然后使用 PIL 的 Pillow 版本显示它。 (注意:我不得不使用 pip 卸载原始 PIL,然后 pip install Pillow,然后我从 Ethan.Tira-Thompson.com/Mac_OS_X_Ports 中选择了 "libjpeg" 库作为 .dmg 文件。 html 站点)。您还需要 numpy 和 scipy.misc 模块。
#
# --- Make+Show immediately a simulated Moire pattern as a .jpg file
#
# --- start Python and import this file with: import MakeShowMoire
# --- or use: execfile ("MakeShowMoire.py")
#
# --- import modules we need
from PIL import Image, ImageDraw
import numpy as np
import scipy.misc
#
# --- Ok, lets go..
width = 1020
height = 710
channels = 3
#
img = np.zeros((height, width, channels), dtype=np.uint8)
xx, yy = np.mgrid[:height, :width]
circle = (xx - 100) ** 2 + (yy - 100) ** 2
for y in range(img.shape[0]):
for x in range(img.shape[1]):
r, g, b = circle[y][x], circle[y][x], circle[y][x]
img[y] [x] [0] = r
img[y] [x] [1] = g
img[y] [x] [2] = b
#
# --- now, we have made the image, lets save it
scipy.misc.imsave("testimg.jpg", img)
#
# --- Since we have saved it, we should be able to display it
image = Image.open("testimg.jpg")
image.show()
将此文件另存为 MakeShowMoire.py。为了运行这个,启动一个终端会话,然后运行Python。我在达尔文上使用 Python 2.7.10 [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang 600.0.39)],Mac OSX 是 10.10.5 Yosemite .当Python 运行s时,只要输入:
>>> execfile ("MakeShowMoire.py")
并且该示例应该显示在您的 Mac 上,在一个名为 "tmpblahblah.BMP" 的 window 中,当您关闭 window 时将显示该示例,但是您的 testimg.jpg当然会被保留。 我在 Python 提示符下使用 "import MakeShowMoire" 到 运行 文件,但名称空间未映射到交互式 Python 会话。如果使用 execfile 函数,则可以再次使用 image.show() 重新显示文件内容。希望这有用。
我尝试了选择的答案,以及太阳下的几乎所有其他内容,但无论我尝试什么,它只会显示最后一张照片。我终于能够让它与 matplotlib 一起工作了。
import glob
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
def display_photo(path):
print("File: {}".format(path))
img = mpimg.imread(path)
imgplot = plt.imshow(img)
plt.show()
for path in glob.iglob('my_photos/*'):
display_photo(path)
注意:图像显示在不同的 window - 图像查看器中。如果使用 QtConsole,可以使用 %matplotlib inline
希望对您有所帮助。
Imports 并且该函数可以重写如下。它完美地打开了 windows 照片查看器和结果分形图像
import tensorflow as tf
import numpy as np
from PIL import Image
from io import BytesIO
from IPython.display import display
def DisplayFractal(a, fmt='jpeg'):
a_cyclic = (6.28*a/20.0).reshape(list(a.shape)+[1])
img = np.concatenate([10+20*np.cos(a_cyclic),
30+50*np.sin(a_cyclic),
155-80*np.cos(a_cyclic)], 2)
img[a==a.max()] = 0
a = img
a = np.uint8(np.clip(a, 0, 255))
Image.fromarray(a).show()