python — Как отобразить изображение из файла в Jupyter Notebook?
спросил
Изменено 5 месяцев назад
Просмотрено 428 тысяч раз
Я хотел бы использовать блокнот IPython для интерактивного анализа некоторых диаграмм генома, которые я делаю с помощью Biopython 9Модуль 0011 GenomeDiagram . Хотя существует обширная документация о том, как использовать matplotlib
для получения графиков, встроенных в блокнот IPython, GenomeDiagram использует набор инструментов ReportLab, который, как я думаю, не поддерживается для встроенных графиков в IPython.
Я думал, однако, что способ обойти это будет заключаться в том, чтобы записать график/диаграмму генома в файл, а затем открыть встроенное изображение, которое даст тот же результат, что-то вроде этого:
gd_diagram.write(" test.png", "PNG") дисплей (файл = "test.png")
Однако я не могу понять, как это сделать, и не знаю, возможно ли это. Так кто-нибудь знает, можно ли открывать/отображать изображения в IPython?
- python
- jupyter-notebook
- ipython
Благодаря этому сообщению вы можете сделать следующее:
из IPython.display import Image Изображение (имя файла = 'test.png')
(официальная документация)
6
Если вы пытаетесь отобразить изображение таким образом внутри цикла, вам нужно обернуть конструктор изображения в методе отображения.
из IPython.display import Image, display listOfImageNames = ['/path/to/images/1.png', '/путь/к/изображениям/2.png'] для imageName в listOfImageNames: дисплей (изображение (имя файла = имя изображения))
5
Обратите внимание, до сих пор опубликованные решения работают только для png и jpg!
Если вы хотите еще проще без импорта дополнительных библиотек или хотите отобразить анимированный или неанимированный файл GIF в своем блокноте Ipython. Преобразуйте строку, где вы хотите ее отобразить, в уценку и используйте этот хороший короткий лайфхак!
![альтернативный текст](test.gif "Название")
1
Будет импортировано и отображено изображение .jpg
в Jupyter (протестировано с Python 2.7 в среде Anaconda)
из IPython.display import display из изображения импорта PIL путь="/путь/к/изображению.jpg" дисплей (изображение. открыть (путь))
Возможно, вам потребуется установить PIL
в Anaconda. Для этого введите
conda install Pillow.
Если вы хотите эффективно отображать большое количество изображений, я рекомендую использовать пакет IPyPlot
импорт ipyplot ipyplot.plot_images (images_array, max_images = 20, img_width = 150)
В этом пакете есть несколько других полезных функций, с помощью которых вы можете отображать изображения на интерактивных вкладках (отдельная вкладка для каждой метки/класса), что очень полезно для всех задач классификации ML.
2
Вы можете использовать в html-коде в разделе уценки: пример:
1
Более чистая версия Python3, в которой используются стандартные numpy, matplotlib и PIL. Слияние ответа для открытия с URL.
импортировать matplotlib.pyplot как plt из изображения импорта PIL импортировать numpy как np pil_im = Image.open('image.png') #Возьмите jpg + png ## Раскомментируйте, чтобы открыть с URL #импорт запросов #r = request.get('https://www.vegvesen.no/public/webkamera/kamera?id=131206') #pil_im = Image.open(BytesIO(r.content)) im_array = np.asarray (pil_im) plt.imshow(im_array) plt.show()
Благодаря этой странице я обнаружил, что это работает, когда приведенные выше предложения не работают:
import PIL.Image из cStringIO импортировать StringIO импортировать IPython. display импортировать numpy как np def showarray(a, fmt='png'): а = np.uint8 (а) f = строка ввода-вывода () PIL.Image.fromarray(a).save(f, fmt) IPython.display.display(IPython.display.Image(data=f.getvalue()))
0
из IPython.display import Image Изображение (имя файла =r'C:\user\path')
Я видел некоторые решения, и некоторые из них не будут работать из-за необработанного каталога, при добавлении кодов, подобных приведенному выше, просто не забудьте добавить «r» перед каталогом. это должно избежать такого рода ошибок: (ошибка юникода) кодек ‘unicodeescape’ не может декодировать байты в позиции 2-3: усеченный \UXXXXXXXX escape
Если вы хотите встроить свое изображение в блокнот ipython с локального хоста, вы можно сделать следующее:
Первый : найти текущий локальный путь:
# показать текущий каталог импорт ОС cwd = os.getcwd() cwd
Например, результат будет таким:
'C:\\Users\\lenovo\\Tutorials'
Next , вставьте изображение следующим образом:
из IPython. display import display из изображения импорта PIL path="C:\\Users\\lenovo\\Tutorials\\Data_Science\\DS images\\your_image.jpeg" дисплей (изображение. открыть (путь))
Убедитесь, что вы выбрали правильный тип изображения: jpg, jpeg или png.
Другим вариантом построения встроенного графика из массива изображений может быть:
импорт IPython деф показывает(а): IPython.display.display(PIL.Image.fromarray(a))
где a — массив
a.shape (720, 1280, 3)
Другой вариант:
из matplotlib импортировать pyplot как plt из io импортировать BytesIO из изображения импорта PIL импорт Ipython f = байты ввода-вывода () plt.savefig(f, формат='png') Ipython.display.display(Ipython.display.Image(data=f.getvalue())) е.закрыть()
1
При использовании GenomeDiagram
с Jupyter (iPython) самым простым способом отображения изображений является преобразование GenomeDiagram в изображение PNG.
от Bio.Graphics импортировать GenomeDiagram из Bio.SeqFeature импортировать SeqFeature, FeatureLocation из дисплея импорта IPython.display, изображение gd_diagram = GenomeDiagram.Diagram("Тестовая диаграмма") gd_track_for_features = gd_diagram.new_track(1, name="Аннотированные объекты") gd_feature_set = gd_track_for_features.new_set() gd_feature_set.add_feature(SeqFeature(FeatureLocation(25, 75), strand=+1)) gd_diagram.draw (формат = "линейный", ориентация = "пейзаж", размер страницы = 'A4', фрагменты=1, начало=0, конец=100) Изображение(gd_diagram.write_to_string("PNG"))
[см. Блокнот]
Вы можете использовать это напрямую вместо импорта PIL
из IPython.display import Image, display дисплей (изображение (base_image_path))
Это решение с использованием opencv-python, но оно открывает новые окна, которые заняты ожиданием
import cv2 # pip install opencv-python изображение = cv2. imread("foo.png") cv2.imshow('тест',изображение) cv2.waitKey(duration) # в миллисекундах; duration=0 означает вечное ожидание cv2.destroyAllWindows()
, если вы не хотите отображать изображение в другом окне, используя вместо этого matplotlib
или что-то еще cv2.imshow()
import cv2 импортировать matplotlib.pyplot как plt изображение = cv2.imread("foo.png") plt.imshow (cv2.cvtColor (изображение, cv2.COLOR_BGR2RGB)) plt.show()
1
Зарегистрируйтесь или войдите в систему
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя адрес электронной почты и пароль
Опубликовать как гость
Электронная почта
Обязательно, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
python — Как вставить изображение из URL-адреса в блокнот Jupyter (Markdown)
спросил
Изменено 2 года, 4 месяца назад
Просмотрено 4к раз
Я хочу вставить изображение из источника URL в блок кода Markdown в Jupyter Notebooks.
Пока это то, что у меня есть:
![информация об изображении](https://scikit-learn.org/stable/_static/ml_map.png)
Однако он не включает и изображение, когда я запускаю ячейку.
- python
- python-3.x
- jupyter-notebook
- markdown
- jupyter-lab
Обе эти две инструкции работают для отображения изображений в ячейке Jupyter 90 note018 ! (https://scikit-learn.org/stable/_static/ml_map.png)
или с HTML
Изображение отображается при выполнении ячейки уценки ( run
Я ввел код, немного отличающийся от вашего кода. Я получил изображение для отображения при запуске ячейки уценки.
Ниже приведен код, используемый для отображения .jpg в ячейке Markdown. Фото вывода также следует ниже.
![image.png](https://scikit-learn.org/stable/_static/ml_map.