Générer une image avec des pixels non rectangulaires

Présentation
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 :
  • 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
Téléchargement
Compatibilité
Linux Mac Windows
2  0 
Téléchargé 39 fois Voir les 12 commentaires
Détails
Catégories : Images et videos
Avatar de Jérôme Briot
Rédacteur / Modérateur
Voir tous les téléchargements de l'auteur
Licence : Libre
Date de mise en ligne : 4 novembre 2014




Avatar de magelan magelan - Modérateur https://www.developpez.com
le 12/10/2010 à 17:13
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
Avatar de Jerome Briot Jerome Briot - Rédacteur/Modérateur https://www.developpez.com
le 12/10/2010 à 17:25
Citation Envoyé par magelan  Voir le message
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.

Je me doutais bien... c'est pour ça que j'ai une version 2 en cours... mais je n'ai pas fini de coder tous les pattern !

Je fais ça au plus tôt
Avatar de Jerome Briot Jerome Briot - Rédacteur/Modérateur https://www.developpez.com
le 13/10/2010 à 10:40
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.
Avatar de Jerome Briot Jerome Briot - Rédacteur/Modérateur https://www.developpez.com
le 06/11/2013 à 11:17
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.
Avatar de Jerome Briot Jerome Briot - Rédacteur/Modérateur https://www.developpez.com
le 13/11/2013 à 13:59
Il y a un bug avec les patterns circulaires de la version 1.2

Je corrige ça le plus vite possible
Avatar de Jerome Briot Jerome Briot - Rédacteur/Modérateur https://www.developpez.com
le 18/11/2013 à 15:47
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
Avatar de Gooby Gooby - Modérateur https://www.developpez.com
le 30/10/2014 à 12:09
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!
Avatar de Jerome Briot Jerome Briot - Rédacteur/Modérateur https://www.developpez.com
le 30/10/2014 à 12:48
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.
Avatar de Jerome Briot Jerome Briot - Rédacteur/Modérateur https://www.developpez.com
le 31/10/2014 à 8:53
@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.
Contacter le responsable de la rubrique MATLAB