Vote des utilisateurs
2
0
Détails
Licence : Libre
Mise en ligne le 4 novembre 2014
Plate-formes :
Linux, Mac, Windows
Langue : Français
Référencé dans
Navigation
Générer une image avec des pixels non rectangulaires
Générer une image avec des pixels non rectangulaires
Mise à jour : j'ai posté une version améliorée de ce code sur le File Exchange : Image with non-square pixels
-------------------
Voici un code MATLAB qui imite le fonctionnement de la fonction image de MATLAB mais qui produit des pixels non rectangulaires.
Le premier argument X est le même que pour la fonction image.
Cela peut être un tableau 2D MxN (image en couleurs indexées) ou 3D MxNx3 (image en couleurs vraies)
Le second argument shape définit la forme des pixels :
Un troisième argument pattern est utilisé avec les formes circulaire, losange et hexagonale.
Ceci permet d'obtenir différentes répartitions des pixels pour une même forme.
L'objet affiché n'est pas de type Image mais de type Patch.
L'affichage peut se faire dans un objet Axes en précisant son identifiant en quatrième argument d'entrée de la fonction.
L'archive zip contient un script demo
-------------------
Voici un code MATLAB qui imite le fonctionnement de la fonction image de MATLAB mais qui produit des pixels non rectangulaires.
Le premier argument X est le même que pour la fonction image.
Cela peut être un tableau 2D MxN (image en couleurs indexées) ou 3D MxNx3 (image en couleurs vraies)
Le second argument shape définit la forme des pixels :
- rhb' : losange
- 'oct' : octogone
- 'hex' : hexagone
- 'cir' : disque
Un troisième argument pattern est utilisé avec les formes circulaire, losange et hexagonale.
Ceci permet d'obtenir différentes répartitions des pixels pour une même forme.
L'objet affiché n'est pas de type Image mais de type Patch.
L'affichage peut se faire dans un objet Axes en précisant son identifiant en quatrième argument d'entrée de la fonction.
L'archive zip contient un script demo
Voici une version 1.1 avec quelques patterns supplémentaires
Si vous avez des suggestions... n'hésitez pas.
J'avoue que personnellement, je n'ai jamais eu à utiliser de telles "images".
Ce n'est pas du tout mon domaine.
Si vous avez des suggestions... n'hésitez pas.
J'avoue que personnellement, je n'ai jamais eu à utiliser de telles "images".
Ce n'est pas du tout mon domaine.
Salut Dut,
dans les logiciels de traitement d'images qui utilisent des grilles hexagonales pour les pixels, en général (enfin ceux que je connais), c'est un pavage régulier qui ne possède pas de trous entre les hexagones. Ce qui implique que 2 lignes consécutives ne possèdent pas le même nombre de pixels.
Mais bon, ton code donne tous les éléments pour créer ce type d'image.
Bonne contribution
dans les logiciels de traitement d'images qui utilisent des grilles hexagonales pour les pixels, en général (enfin ceux que je connais), c'est un pavage régulier qui ne possède pas de trous entre les hexagones. Ce qui implique que 2 lignes consécutives ne possèdent pas le même nombre de pixels.
Mais bon, ton code donne tous les éléments pour créer ce type d'image.
Bonne contribution
Voici une version 1.2 avec des patterns circulaires en plus
Voir le premier message de cette discussion
Si vous avez des suggestions pour de nouveaux pattern, n'hésitez pas.
Voir le premier message de cette discussion
Si vous avez des suggestions pour de nouveaux pattern, n'hésitez pas.
Il y a un bug avec les patterns circulaires de la version 1.2
Je corrige ça le plus vite possible
Je corrige ça le plus vite possible
Les patterns circulaires sont corrigés.
J'en ai profité pour revoir l'algorithme, d'où une version 2.0 de pixshape.
Voir le premier message de cette discussion
J'en ai profité pour revoir l'algorithme, d'où une version 2.0 de pixshape.
Voir le premier message de cette discussion
Bonjour,
Je viens donner mon maigre retour sur la fonction pixshape. Je l'ai testé sur des images 500x215. Avec les pixels hexagonaux cela a marché mais la figure était assez lourde, elle mettait longtemps à charger. J'ai ensuite tenté de l'utiliser avec les pixels circulaires et la command window m'a envoyé un message d'erreur de type out of memory. J'ai ensuite essayé de fermer la fenêtre figure et la command window m'a affiché des messages de type warning (très rapidement et en continu, difficile de lire le contenu) ce qui a eu pour conséquence le plantage de ma command window et l'obligation de fermer matlab par le gestionnaire des tâches.
Attention si vous chargez des images de grande taille de sauvegarder votre travail avant!
Je viens donner mon maigre retour sur la fonction pixshape. Je l'ai testé sur des images 500x215. Avec les pixels hexagonaux cela a marché mais la figure était assez lourde, elle mettait longtemps à charger. J'ai ensuite tenté de l'utiliser avec les pixels circulaires et la command window m'a envoyé un message d'erreur de type out of memory. J'ai ensuite essayé de fermer la fenêtre figure et la command window m'a affiché des messages de type warning (très rapidement et en continu, difficile de lire le contenu) ce qui a eu pour conséquence le plantage de ma command window et l'obligation de fermer matlab par le gestionnaire des tâches.
Attention si vous chargez des images de grande taille de sauvegarder votre travail avant!
J'ai posté récemment une version améliorée sur le File Exchange : Image with non-square pixels
Elle génère sans doute des "images" aussi lourdes mais devrait mieux gérer les avertissements et les erreurs.
Elle génère sans doute des "images" aussi lourdes mais devrait mieux gérer les avertissements et les erreurs.
@Gooby :
- pourrais-tu essayer à nouveau avec la version disponible sur le File Exchange ?
- pour le cas des cercles, essaie en diminuant le nombre de points dans l'appel à linspace à la ligne 96 de imageWithNonSqrPix.m
- si tu travailles sur Windows, pourrais-tu me montrer la configuration de ta machine : http://www.mathworks.fr/matlabcentra...thardwareinfos ?
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.