Je souhaite afficher 2 images PNG côte à côte dans l'iPython.
Mon code pour faire ceci est:
from IPython.display import Image, HTML, display
img_A = '\path\to\img_A.png'
img_B = '\path\to\img_B.png'
display(HTML("<table><tr><td><img src=img_A></td><td><img src=img_B></td></tr></table>"))
Mais il ne génère pas les images et affiche uniquement des espaces réservés pour les 2 images:
J'ai aussi essayé le suivant:
s = """<table>
<tr>
<th><img src="%s"/></th>
<th><img src="%s"/></th>
</tr></table>"""%(img_A, img_B)
t=HTML(s)
display(t)
Mais le résultat est le même:
Les images sont dans le chemin à coup sûr, car j'ai vérifié en les affichant dans une fenêtre contextuelle:
plt.imshow(img_A)
plt.imshow(img_B)
et ils apparaissent dans les pop-ups.
Comment faire en sorte que les 2 images apparaissent côte à côte dans iPython?
Vous pouvez essayer d'utiliser matplotlib
. Vous pouvez lire une image dans le tableau numpy
en utilisant mpimg.imread
( documentation ) de matplotlib. Vous pouvez ensuite utiliser subplots
(documentation) et créer deux colonnes pour figures et enfin imshow
(documetation) pour afficher des images.
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
from matplotlib import rcParams
%matplotlib inline
# figure size in inches optional
rcParams['figure.figsize'] = 11 ,8
# read images
img_A = mpimg.imread('\path\to\img_A.png')
img_B = mpimg.imread('\path\to\img_B.png')
# display images
fig, ax = plt.subplots(1,2)
ax[0].imshow(img_A);
ax[1].imshow(img_B);
J'ai pu les imprimer les uns au dessus des autres comme ceci:
from IPython.display import Image, display
for img in [img_A, img_B]:
display(Image(filename = img))
Mais je ne peux toujours pas les afficher côte à côte.
EDIT: Ceci le fait.