Byte per pixel valore per la rappresentazione del byte dell'immagine in Android
Domanda
Attualmente sto scrivendo un'applicazione Android che deve utilizzare l'OCR al suo interno.
Per raggiungere questo obiettivo sto usando tesseract insieme a Project tesseract-android-tools.
Sono riuscito a far inizializzare l'API Tesseract e ho bisogno di utilizzare la seguente funzione SetImage:
void com.googlecode.tesseract.android.TessBaseAPI.setImage(byte[] imagedata, int width, int height, int bpp, int bpl)
Ciò con cui sto lottando è come ottenere i valori corretti per BPP (byte per pixel) e BPL (byte per riga). Qualcuno sa come posso ottenere questi valori? Al momento ho messo valori abbastanza casuali e credo che stia causando errori in seguito.
Dovrei notare che l'applicazione utilizza anche JavaCV per il riconoscimento delle immagini che sta riconoscendo bene le immagini e sto usando la stessa fonte di dati di immagine per questa chiamata in tesseract.
Grazie.
Soluzione
In realtà ho fatto lo stesso e l'ho fatto funzionare. Immagino che utilizzerai in qualche modo la fotocamera e l'anteprima della fotocamera per catturare lo schermo per il riconoscimento OCR. Pertanto è possibile ottenere il formato di anteprima della fotocamera, che ti consente di recuperare i bytesperpixel.
Ti darò un breve esempio:
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.
Spero possa essere d'aiuto. Se avrai ulteriori domande, lasciamelo ora.
I migliori auguri e buona fortuna, Volker