webentwicklung-frage-antwort-db.com.de

android-Bildverarbeitungs-Tutorial?

Kennt jemand gute Bildverarbeitungs-Tutorials für Android? Ich bin neu in Android und programmiere eine App, die einen Effekt auf eine Bitmap setzt. Ich kann viele Tutorials in Java finden, aber Android unterstützt kein awt. Ich möchte die Pixel in der Bitmap nur mit der Android-SDK bearbeiten, z. Warping, Fisheye usw. Ich kann auf die Pixel zugreifen und deren Farbe ändern, aber ich bin nicht gut mit Transformationen und nicht sicher, wo ich anfangen soll. 

23
turtleboy

Schauen Sie sich das an (scrollen Sie nach [The Basics] 29 nach unten):

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

Hat einige tolle Tutorials wie:

  • Mittlerer Entfernungseffekt
  • Glatte Wirkung
  • Prägeeffekt
  • Gravureffekt
  • Steigern Sie die Farbintensität
  • Bild mit abgerundeten Ecken
  • Wasserzeichen im laufenden Betrieb
  • Spiegeln/Spiegeln von Bildern
  • Ersetzen der Pixelfarbe
  • Farbtonfarbe
  • Floh-/Geräuscheffekt
  • Schwarzfilter (Erhöhung der Dunkelheit)
  • Schnee-Effekt
  • Schattierungsfilter
  • Sättigungsfilter
  • Farbtonfilter
  • Bildreflexionseffekt
  • Zeichnen Sie Text auf einer Kurve
18
Oded Breiner

Sie können auch JavaCV auschecken, die Ihnen Java-Objekte mit Bindungen zu opencv lib ..__ gibt. Auf diese Weise brauchen Sie keine c/c ++ - Codierung. Sie können alles direkt in Java ausführen und auf Funktionen von opencv zugreifen.

Google-Code-Projekt

Antwort auf Ihre Folgefrage:

Nehmen Sie zum Beispiel eine zylindrische Projektion: Schauen Sie sich das Bild an -

image

(Sorry, ich darf keine Bilder posten) Dies stammt aus dem Szeliskis-Buch ( http://szeliski.org/Book/ ) ..__ Die Beziehung, die Sie hier am Ende haben, ist 

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

und 

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

wobei f die Brennweite einer Kamera und s der Radius des Zylinders ist, können Sie f = s verwenden. Um dies in Schleifen zu bringen, hier ein 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 ist das neue Bild, dieses Array hat die gleiche Größe wie BildAlt (das Originalbild).

Die Zeile mit BildNeu und BildAlt am Ende der inneren Schleife könnte wie folgt aussehen:

/** 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 wird aufgrund der Benutzerfreundlichkeit auf einer Android-Plattform bevorzugt, obwohl es möglicherweise Einschränkungen gibt. Hier einige Referenzen, die helfen könnten:

1. Die beste Möglichkeit, die Bildverarbeitung auf einer Android-Plattform zu erlernen, ist die Implementierung. Versuchen Sie, die vorhandenen OpenCV4Android-Beispiele unter Android Studio/Eclipse auszuführen und zu verstehen. Sie sind unter https://github.com/joaopedronardari/OpenCV-AndroidSamples verfügbar.

Die Beschreibung der einzelnen Beispiele finden Sie auf der Seite OpenCVAndroid-Beispiele. Gemischte Verarbeitung, Kamerasteuerung, Bildmanipulationen und Erkennung von Farbflecken betreffen Vorverarbeitungen und Bildmanipulationen. Sie umfassen:

RGBA- und GRAU-Vorschau

Canny (Kantenerkennung)

Funktionen finden

Farbeffekte

Histogramme

Sepia

Sobel-Filter

Zoomen

Pixelisieren

Posterieren

Wasserscheidenumwandlung

Marker (Blob-Erkennung) 

  1. Da Sie auf einer Java-Plattform arbeiten, können Sie die OpenCV-Java-Tutorials verwenden.

  2. http://web.stanford.edu/class/ee368/Android/ hat Beispielprojekte.

4.Überprüfen Sie das Android-Arsenal für Bildverarbeitungsbibliotheken.

Hinweis: Ein Mat-Objekt muss in ein Bitmap-Objekt konvertiert werden, um es auf dem Gerätebildschirm anzuzeigen (ImageView). 

3
Sukriti

Vielleicht werden Sie mit den OpenCV-Java-Bindungen Erfolg haben. Abgesehen davon gibt es nicht wirklich etwas, von dem ich weiß, dass es helfen wird.

0