web-dev-qa-db-fra.com

tutoriel de traitement d'image android?

Est-ce que quelqu'un connaît de bons tutoriels de traitement d'images pour Android? Je suis nouveau sur Android et je code une application qui place un effet sur un bitmap. Je peux trouver beaucoup de tutoriels en Java, mais Android ne supporte pas awt. J'aimerais manipuler les pixels du bitmap en utilisant simplement le sdk Android, par exemple. warp, fisheye, etc. Je peux accéder aux pixels et en changer la couleur, mais je ne suis pas très doué pour les transformations et je ne sais pas par où commencer. 

23
turtleboy

Vérifiez ceci (faites défiler après [The Basics] 29):

http://xjaphx.wordpress.com/learning/tutorials/

A quelques bons tutoriels comme:

  • Effet d'élimination moyen
  • Effet lisse
  • Effet de relief
  • Effet de gravure
  • Augmenter l'intensité de la couleur
  • Image de coin arrondi
  • Filigranage à la volée
  • Retournement d'image/mise en miroir
  • Remplacement de couleur de pixel
  • Teinte
  • Effet Bruit/Bruit
  • Filtre noir (augmentation des ténèbres)
  • Effet de neige
  • Filtre d'ombrage
  • Filtre de saturation
  • Filtre de teinte
  • Effet de réflexion de l'image
  • Dessiner du texte sur une courbe
18
Oded Breiner

Vous pouvez également extraire JavaCV qui vous donne des objets Java avec des liaisons à opencv lib . De cette manière, vous n’auriez pas besoin de coder c/c ++, vous pouvez tout faire directement en Java et accéder aux fonctions d’opencv.

Google code Project

Répondez à votre question suivante:

Par exemple, prenons une projection cylindrique: Jetez un coup d’œil à l’image -

image

(désolé je ne suis pas autorisé à poster des images) ceci est tiré du livre de Szeliskis ( http://szeliski.org/Book/ ) . La relation que vous avez ici à la fin est 

x'=s*tan⁻¹(x/f) 

et 

y'=s*(y/sqrt(x²+f²)) 

où f est la longueur focale d'une caméra et s le rayon du cylindre, vous pouvez utiliser f = s. Maintenant, pour mettre ceci en boucle, voici un pseudocode: 

%% xMitte , yMitte are the coordinates for the point in the middle
for yNeu =1: height
   for xNeu =1: width
      dx = xNeu - xMitte ; %% X relativ to Origin
      dy = yNeu - yMitte ; %% Y relativ to Origin
      theta = atan(dx / f);
      h = dy / sqrt(dx ^2+f^2);
      x = (f * theta) + xMitte ;
      y = (f * h) + yMitte ;
      BildNeu (xNeu ,yNeu) = BildAlt (x, y);
   end
end

BildNeu est la nouvelle image, ce tableau a la même taille que BildAlt (l’image originale).

La ligne avec BildNeu et BildAlt à la fin de la boucle interne pourrait ressembler à ceci:

/** returns the color value of that pixel **/
CvScalar pixel = cvGet2D(originalImage, i, j);
/** writes the new color value of that pixel **/
cvSet2D(destinationImage, y, x, pixel);
8
rac2030

OpenCV Android est préféré en raison de la facilité d'utilisation sur une plate-forme Android, bien qu'il puisse y avoir des limites. Voici quelques références qui pourraient aider:

1.Le meilleur moyen d'apprendre le traitement d'images sur une plate-forme Android consiste à l'implémenter. Essayez d’exécuter et de comprendre les exemples OpenCV4Android existants sur Android Studio/Eclipse. Ils sont disponibles sur https://github.com/joaopedronardari/OpenCV-AndroidSamples .

La description de chaque échantillon est disponible sur la page OpenCVAndroid Samples. Traitement mixte, contrôle de la caméra, manipulations d'image et détection de taches de couleur avec pré-traitement et manipulations d'image. Ils comprennent:

Aperçu RGBA et GREY

Canny (détection de bord)

Trouver des fonctionnalités

Effets de couleur

Les histogrammes

Sépia

Filtre Sobel

Zoom

Pixéliser

Postériser

Transformation des bassins versants

Marqueurs (détection de blob) 

  1. Puisque vous travaillerez sur une plate-forme Java, les didacticiels OpenCV Java seront utiles.

  2. http://web.stanford.edu/class/ee368/Android/ a des exemples de projets.

4.Vérifiez The Android Arsenal, pour les bibliothèques de traitement d'images.

Remarque: un objet Mat doit être converti en objet Bitmap afin de pouvoir l'afficher sur l'écran du périphérique (ImageView). 

3
Sukriti

Peut-être aurez-vous du succès avec les liaisons Java OpenCV . Autre que cela il n'y a pas vraiment quelque chose que je sache qui aidera.

0
Robert Massaioli