Эта тема дала мне подсказку: изображение не отображается в ipython
к сожалению, scipy.misc.imsave устарел, и я должен использовать imageio
Но тогда я не мог просто
pip install imageio
. Это дало мне некоторое недоумение по поводу использования sudo и флага -H.Ну, я сделал это, и действительно, когда я запустил Python, я мог сделать это
>>>import imageio
>>>
, но когда я запустил ноутбук-юпитер, ноутбук был глупым и сказал «нет модуля с именем imageio»
Тогда я попытался установить его снова и получил
$pip install imageio
Requirement already satisfied: imageio in /usr/local/lib/python3.6/dist-packages (2.5.0)
Requirement already satisfied: pillow in /usr/lib/python3/dist-packages (from imageio) (5.1.0)
Requirement already satisfied: numpy in /usr/lib/python3/dist-packages (from imageio) (1.13.3)
Как все закончилось в директории python3?Поэтому я решил попробовать это
$python -m pip install imageio --user
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7.
Requirement already satisfied: imageio in ./.local/lib/python2.7/site-packages (2.5.0)
Requirement already satisfied: futures in /usr/local/lib/python2.7/dist-packages (from imageio) (3.2.0)
Requirement already satisfied: numpy in /usr/lib/python2.7/dist-packages (from imageio) (1.13.3)
Requirement already satisfied: enum34 in /usr/lib/python2.7/dist-packages (from imageio) (1.1.6)
Requirement already satisfied: pillow in /usr/local/lib/python2.7/dist-packages (from imageio) (5.4.1)
Почему я хочу продолжать использовать Python 2.7?Ну, потому что у меня есть эти довольно длинные программы на Python, которые я не чувствую, как устранение неполадок, чтобы заставить их работать в python3.Во всяком случае, теперь, когда я открываю jupyter-notebook, я могу сделать это
import numpy as np
import PIL.Image
import imageio
from IPython.display import clear_output, Image, display
img2 = np.float32(PIL.Image.new('RGB', (256,512)))
imageio.imwrite('test.jpg', img2[:, :, 0])
, и он сохраняет нужный jpg на диск.Но если я попытаюсь просмотреть это так
display(img2)
, очевидно, я просто получу массив numpy.Чтобы отобразить его, мне нужно преобразовать массив с makePic def следующим образом:
img2 = np.float32(PIL.Image.new('RGB', (125,512)))
imageio.imwrite('test.jpg', img2[:, :, 0])
#display(img2)
image=makePic(img2)
display(image)
Интересно, что вызов imageio.imwrite просто записывает массив numpy на диск, но когда я иду в файл и открываюочевидно, что в Ubuntu программа просмотра изображений выполняет преобразование массива в изображение.