2010-11-26 41 views
2

Je crée une applet qui permet aux utilisateurs de recadrer une partie d'une image et de l'enregistrer. Pour le recadrage, je vais mettre en place un outil "magic wand". Je peux faire tout ça dans Matlab mais j'ai du mal à trouver les bibliothèques Java. Voici quelques tâches que je dois accomplir:Comment devrais-je faire du traitement d'image en Java?

  • accès pixels dans une Randomly image en (x, y) et retourner un seul objet (java.awt.Color, ARVB int, short [], quel que soit - tant que je ne suis pas traiter avec les chaînes individuellement)
  • Créer un canal alpha d'un booléen [] []
  • Créer une N par l'image M qui est initialisé à vert

Tous les pros là-bas qui peut m'aider? Juste quelques extraits de code sur le dessus de votre tête serait bien.

Un grand merci,

Neal

+2

Avez-vous regardé Java Advanced Imaging API? –

Répondre

8

Vous souhaitez utiliser les bibliothèques Java2D. Plus précisément, vous souhaitez utiliser la classe BufferedImage de la bibliothèque pour gérer vos images. Vous pouvez accéder à des pixels individuels et faire toutes les choses que vous avez spécifiées ci-dessus. Sun/Oracle a un good tutorial pour vous aider à démarrer dans la bonne direction. La deuxième partie de ce tutoriel va plus créer un canal alpha. Oh, et pour accéder aux pixels individuels, vous voulez utiliser la classe WritableRaster. Donc, vous pouvez faire quelque chose comme ça. J'espère que cela vous a aidé à démarrer.

WritableRaster imageRaster = Bufferedimg.getRaster(); 
//use java random generation to get a random x and y coordinate, then call this to access the pixel 
imageRaster.getPixel(x, y,(int[])null); 
+0

BTW, votre lien vers le tutoriel est cassé, il a un 'l' supplémentaire à la fin de l'URL. – misha

+0

Merci ... l'ai réparé maintenant. –

+0

Merci! C'est ce que j'ai fini par utiliser. –

2

ImageJ est un cadre de traitement d'image open-source mature, qui prend en charge les macros, plugins et une foule d'autres features.

0

Marvin est un framework de traitement d'image Java qui peut vous aider. Il fournit des algorithmes pour le filtrage, l'extraction de caractéristiques, l'analyse morphologique, les transformations, la segmentation, etc. De plus, son architecture supporte le traitement vidéo en temps réel avec les mêmes algorithmes.