** Session de lecture "Première reconnaissance de formes" ** est sur le point de se terminer, donc le sujet de ce qu'il faut lire dans la prochaine série est "Practical Computer Vision ”est apparu.
Il est juste stocké dans ma maison, alors j'ai pensé le sortir et le lire pendant un moment, mais j'étais accro à la création de l'environnement. Et pour une raison qui n'a pas vraiment d'importance. Pathétique ...
Prenez note pour que personne ne suive la même ornière.
Je peux l'installer par pip install PIL sans penser à rien, mais lorsque je lis le fichier jpeg et que j'essaye de le montrer avec pylab, j'obtiens l'erreur suivante.
IOError: decoder jpeg not available
On m'a dit qu'il n'y avait pas de décodeur jpeg, donc quand je l'ai googlé, il semble que libjpeg-dev doit être installé. Cependant, quand j'ai sudo apt-get install libjpeg-dev, j'étais en colère contre "je l'ai déjà!".
Lorsque j'installe libjpeg-dev avec apt, libjpeg.so est créé sous / usr / lib / x86_64-linux-gnu /, mais il semble que ce dossier ne soit pas vu lors de l'installation de PIL avec pip.
Alors, mettons un lien symbolique où vous pouvez le voir à partir de pip.
sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/libjpeg.so
Après la liaison, j'ai réinstallé PIL et cela a bien fonctionné.
http://atasatamatara.hatenablog.jp/entry/20120723/1343044059
matplotlib peut également être entré avec pip. Numpy est également inclus en raison de la dépendance.
Cependant, rien ne s'affiche lorsque pylab.show () est exécuté. Je n'ai même pas d'erreur. Qu'est-ce que c'est? ?? ??
Après enquête, il semble que le backend pour l'affichage de l'écran soit configuré de manière appropriée. Où le définir est un fichier appelé matplotlibrc. La commande suivante vous indiquera l'emplacement.
>>> import matplotlib
>>> matplotlib.matplotlib_fname()
matplotlibrc
backend : agg
Avec un backend appelé agg, vous pouvez écrire dans un fichier, mais vous ne pouvez pas ouvrir une fenêtre et l'afficher à l'écran.
En fait, matplotlib est également inclus dans python à l'échelle du système, mais quand je regarde ce matplotlibrc, le backend est Tkagg. Il semble que vous utilisez Tkinter.
Je vais donc réécrire d'agg en Tkagg. Ensuite, l'erreur suivante est apparue cette fois.
No module named _tkagg
Il semble qu'un fichier nommé _tkagg.py ne soit pas généré lors de la compilation de matplotlib. Pour résoudre ce problème, vous devez installer tk-dev.
sudo apt-get install tk-dev
Cette fois, ce sera sous / usr / lib, il n'est donc pas nécessaire de mettre un lien. Si vous réinstallez matplotlib après avoir installé tk-dev, tout va bien.
Je l'ai écrit dans l'ordre où j'ai essayé diverses choses en tâtonnant, mais il devrait être mis en place comme ça.
sudo apt-get install libjpeg tk-dev
sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/libjpeg.so
pip install PIL
pip install matplotlib
vim /path/to/your/matplotlibrc
###Réécrire le backend sur Tkapp
À propos, si vous recherchez sur Google, les informations seront publiées telles quelles, mais parce que j'ai décidé que "s'il s'agit d'un matplotlib à l'échelle du système, il s'affichera correctement avec tk, il n'y a donc aucune raison pour que tk-dev ne soit pas inclus" et je ne l'ai pas confirmé. J'en suis accro.
Je ne me souviens pas comment cela s'est passé, mais peut-être que quand je l'ai mis dans tout le système, c'était apt, et depuis que je l'ai mis en binaire, _tkagg a été inclus même sans tk-dev ...
Recommended Posts