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.
Vérifiez ceci (faites défiler après [The Basics] 29):
http://xjaphx.wordpress.com/learning/tutorials/
A quelques bons tutoriels comme:
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.
Répondez à votre question suivante:
Par exemple, prenons une projection cylindrique: Jetez un coup d’œil à l’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);
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)
Puisque vous travaillerez sur une plate-forme Java, les didacticiels OpenCV Java seront utiles.
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).
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.