Ich habe ein Bild und mit Tesseract finde ich Text von ihm. Ich habe Bounding-Box des Textes in Form von rect (links, oben, rechts, unten)Ermitteln Schriftfarbe aus Bild in Android nach OCR
Ich möchte die Schriftfarbe des Textes, für den ich versucht, die 2D-Bounding-Box-Matrix zu überqueren und ich bin Vergleichen der Hintergrundfarbe mit jedem Farbpixel in der Bounding Box. Wo auch immer ich eine andere Farbe als Hintergrundfarbe bekomme, gebe ich die Farbe zurück, die die Schriftfarbe wäre.
//rectArrayList is an array list of rect for a line in the image
for(int i=rectArrayList.get(0).left;i<rectArrayList.get(0).right ;i++){
for(int j=rectArrayList.get(0).top;j<rectArrayList.get(0).bottom;j++){
pixel=colorbit.getPixel(i,j);
R = (pixel & 0xff0000) >> 16; //channel the pixel in RGB values
G = (pixel & 0xff00) >> 8;
B = pixel & 0xff;
//backColour is the background colour of the image
if(backColour!=Color.rgb(R,G,B)){
return Color.rgb(R,G,B);
}
}
Nehmen wir an, die Hintergrundfarbe ist ein Schatten von gelb. Aber während ich die Matrix durchquere, erhalte ich eine andere gelbe Farbe, die Hintergrundfarbe hinter der Schriftfarbe und nicht die Schriftfarbe ist. So bekomme ich falsche Schriftfarbe.
Ich weiß, diese Technik als Hintergrundfarbe des Bildes scheitert unterschiedliche Schattierungen von derselben Farbe je nach Helligkeit usw. hätte
Was soll ich tue genaue Schriftfarbe von Bild zu bekommen?
Danke für Ihre Antwort. Ich werde versuchen, alles umzusetzen, was Sie vorgeschlagen haben. Aber sobald ich fertig bin, sie zu implementieren, hoffe ich auf "diese" besseren und komplexeren Lösungen von Ihnen. Prost! –