Bytes pro Pixelwert für die Byte -Darstellung von Bild in Android
Frage
Ich schreibe derzeit eine Android -Anwendung, die OCR darin verwenden muss.
Um dies zu erreichen, verwende ich Tesseract in Verbindung mit dem Tesseract-Android-Tools-Projekt.
Ich habe es geschafft, die Tesseract -API zum Initialisieren zu bringen und die folgende SetImage -Funktion zu verwenden:
void com.googlecode.tesseract.android.TessBaseAPI.setImage(byte[] imagedata, int width, int height, int bpp, int bpl)
Ich kämpfe mit, wie ich die richtigen Werte für BPP (Bytes pro Pixel) und BPL (Bytes pro Linie) erhalten kann. Weiß jemand, wie ich diese Werte bekommen kann? Ich habe momentan ziemlich zufällige Werte eingesetzt und glaube, dass es später Fehler verursacht.
Ich sollte beachten, dass die Anwendung auch JavaCV zur Bilderkennung verwendet, die Bilder in Ordnung erkennt, und ich verwende dieselbe Quelle für Bilddaten für diesen Tesseract -Aufruf.
Vielen Dank.
Lösung
Ich habe das Gleiche getan und es zum Laufen gebracht. Ich denke, Sie werden irgendwie die Kamera und die Kamera -Vorschau verwenden, um den Bildschirm für die OCR -Erkennung zu erfassen. Daher können Sie das Kamera -Vorschau -Format erhalten, mit dem Sie das Bytesperpixel durch den PixelFormat abrufen können.
Ich werde Ihnen ein kurzes Beispiel geben:
Camera.Parameters cameraParameters = camera.getParameters(); // retrieve the camera parameters
previewFormat = cameraParameters.getPreviewFormat(); // retrieve the Previewformat according to your camera
PixelFormat pf = new PixelFormat(); // create a PixelFormat object
PixelFormat.getPixelFormatInfo(previewFormat, pf); // get through the previewFormat-int the PixelFormat
int bpp = pf.bytesPerPixel; // save the BytesPerPixel for this Pixelformat
int bpl = bpp*width; // BytesPerLines is just the "BPP * width" of your PreviewFormat/Picture
tess.setImage(imagedata, width, height, bpp, bpl); // setImage with imagedata[], width and height of the previewFormat, etc.
Ich hoffe, es hilft. Wenn Sie weitere Fragen haben, lassen Sie mich jetzt.
Beste Wünsche und viel Glück, Volker