SRL Archive - RS3 Help

How to get a text properly and accurately?


mastah

2014-06-19 15:12:51

I tried TesseractGetText but it's just to unreliable and it makes too many mistakes.
For example I want to get text 'x' at some area for multiple fonts.

So I tried making my own bitmaps:
http://villavu.com/forum/showthread.php?t=60451

I tried loading the font..

But then I got this error: Exception in Script: Runtime error: "Error while reading stream: Wrong image format"

GetTextAt I don't understand either, could someone explain the parameters?

Is it possible to get a text in an area which is for example 'hello SRL' accurately?

Olly

2014-06-19 17:00:28

Show us a image of the text you want to read?

mastah

2014-06-19 18:03:46

[ATTACH=CONFIG]23416[/ATTACH]
Thanks alot for your help!

Olly

2014-06-19 18:35:14

Tesseract works perfect for me.. It's all how you process the image.

{$i srl-6/srl.simba}
var
bmp, w, h: integer;
begin
bmp := BitmapFromString(197, 22, 'meJztmq2LlUEUxlX8BFFwi4gYBBWL4A0WURC0GEzCVsFkE7PFYLCIRaxis2gw+mI1mawGu/+EP/ZxD49nPva9e6/CwsDhMu+Zr2fOPHPOmdm9dWOxf9++48cObJw4eGbj0JAhq8jGqZNwicLFs4eHDFlRcE34JQqXzx25cv7okCGryNHDf1wT5cWFY0OGrCKDTkPWKJE4DToNWV1adHr0+OGn7z+mn7/4pexVDx7eR3/v7jVX8vn28xf0779+iyo6onEpAbx89zbpvT21XvXk6ROhQoCB5umLZ2kKH+32zUtvPnyUEngJc/Qtq/pSLn++0LFqh7IZltyxZQcJVZubd6otV8HflyqdgMGMkIGCKBHAKGhDHer1q6fRsNcon79+hR1CjwZh6+lFgzQ7mkQAWVu9EPgQVYzMIAxFG34Z3KeQQB5nIDxBQ3tE3X3qGE1VPteOm+jLX0pk2x2bYUPYvgoSNk4mKj+Xwo9l5nOvSie2wNdCGU1skLxTwhMziloJAFscI7hhxTE3b8va0vfXBR9Sm/IzYCd6Aw9SzTTaf6DTTAeyOyRL9VqqcZVOmNpH0L7PnEJ7ms4FZ801aqZZ5P1CD1dpTG3yFeF20KehQuBDIq28k9qnfZT7TSDTgGyox8qAxKccGoUYX8LRk57RFI4XW0dMMZ0qOjqMCLjuVBXmNEiYS7mE8HjYArmq5Gxbe5R6qUrGD/wlmMgf3DjVNXbolJCUB6pDpxRu1JjZUQZsCiDRbiY6RfiT6WIHGQGjReLkozmNEyop1Z7uDix5pwQj6ITpRGCNECsKzgMyOExjWVjHJDy8nDONU0ZEA7GU8ZN7TGuRVZVLeJWzKC0hnZfUS4mEK1tgEpLWGtdOJ2CAB0kbjQ2V1YTZHW0yAo0V5dNOecKstD+RtnRNUspEcYQDtudOce+oHpAAFg18HOm15JZZ3DMoVSjHSSHAqzSCTlbigFLWFmf6dEoHvwWm9HKd2Dcn2CmR7tOJZULatMWpgWxSXvck6f7oXTSj+1XflNLILZyiUHyG01ZMLIMdw7KiCD1VGsRnP+srP8XDqXEnTZvbqursdZ9OknD+HTAdJDPp1EnFW3Qq3cVi61iV3ECpq5ZE8ZpCmRE5ndJRSj6t6ppKnB1rVG9SKBlZjsX7OreX9U4xjvucPvK+d9odnSj7/agDZmpfZ2bSqfNQoMg1bT8LuEn9wi69APOpnLa64yUxtIMpPmoKdlxV2mg3RXWNerVQoFeS770EjN9qjF5YKIlXtdB77hQ8T3lF5FpaiNp77qRYHG8prbC1sNOk07cWOimDjUlbYNJBa62RMqtb9hkz+UM/uS5CHjeaqZY8O3Xj0x8eUxexSFWetSqHbJ0X5a5aiJtF4XLavm21sGnG9KAx2c0u+eRd3Oyqt6TkE4KHKQMsXUd5favSKbJQ71IFUz6oVpuJveOPLHtIlBJMf7/DzJR+kFqXDDrtCdEfAvj194r5Un0G+Rcy/qNgT4gu19Pfb3EzhZCUrur/TgadhqxRxn9jDlmjjP8VH7JG+Q3MgK5n');
GetBitmapSize(bmp, w, h);
ResizeBitmapEx(bmp, RM_Bilinear, w * 4, h * 4);
ThresholdAdaptiveBitmap(bmp, 0, 255, false, TM_Mean, 50);
Writeln(Tesseract_GetText(bmp)); // Using different include.. I think it's tesseractGetText(bmp) for you.
debugBitmap(bmp);
freeBitmap(bmp);
end;

01234567 89 abcdefghijketc.

KeepBotting

2014-06-20 00:00:49

Wrong image format? Well then, in what format are you attempting to have Simba read the text? For most (if not all) intents and purposes, Simba will only accept files in bitmap (.bmp) format.

Showing us the portion of your code which you think causes the issue is a good thing to do when asking for help!

mastah

2014-06-20 05:05:13

From: Olly
Tesseract works perfect for me.. It's all how you process the image.

{$i srl-6/srl.simba}
var
bmp, w, h: integer;
begin
bmp := BitmapFromString(197, 22, 'meJztmq2LlUEUxlX8BFFwi4gYBBWL4A0WURC0GEzCVsFkE7PFYLCIRaxis2gw+mI1mawGu/+EP/ZxD49nPva9e6/CwsDhMu+Zr2fOPHPOmdm9dWOxf9++48cObJw4eGbj0JAhq8jGqZNwicLFs4eHDFlRcE34JQqXzx25cv7okCGryNHDf1wT5cWFY0OGrCKDTkPWKJE4DToNWV1adHr0+OGn7z+mn7/4pexVDx7eR3/v7jVX8vn28xf0779+iyo6onEpAbx89zbpvT21XvXk6ROhQoCB5umLZ2kKH+32zUtvPnyUEngJc/Qtq/pSLn++0LFqh7IZltyxZQcJVZubd6otV8HflyqdgMGMkIGCKBHAKGhDHer1q6fRsNcon79+hR1CjwZh6+lFgzQ7mkQAWVu9EPgQVYzMIAxFG34Z3KeQQB5nIDxBQ3tE3X3qGE1VPteOm+jLX0pk2x2bYUPYvgoSNk4mKj+Xwo9l5nOvSie2wNdCGU1skLxTwhMziloJAFscI7hhxTE3b8va0vfXBR9Sm/IzYCd6Aw9SzTTaf6DTTAeyOyRL9VqqcZVOmNpH0L7PnEJ7ms4FZ801aqZZ5P1CD1dpTG3yFeF20KehQuBDIq28k9qnfZT7TSDTgGyox8qAxKccGoUYX8LRk57RFI4XW0dMMZ0qOjqMCLjuVBXmNEiYS7mE8HjYArmq5Gxbe5R6qUrGD/wlmMgf3DjVNXbolJCUB6pDpxRu1JjZUQZsCiDRbiY6RfiT6WIHGQGjReLkozmNEyop1Z7uDix5pwQj6ITpRGCNECsKzgMyOExjWVjHJDy8nDONU0ZEA7GU8ZN7TGuRVZVLeJWzKC0hnZfUS4mEK1tgEpLWGtdOJ2CAB0kbjQ2V1YTZHW0yAo0V5dNOecKstD+RtnRNUspEcYQDtudOce+oHpAAFg18HOm15JZZ3DMoVSjHSSHAqzSCTlbigFLWFmf6dEoHvwWm9HKd2Dcn2CmR7tOJZULatMWpgWxSXvck6f7oXTSj+1XflNLILZyiUHyG01ZMLIMdw7KiCD1VGsRnP+srP8XDqXEnTZvbqursdZ9OknD+HTAdJDPp1EnFW3Qq3cVi61iV3ECpq5ZE8ZpCmRE5ndJRSj6t6ppKnB1rVG9SKBlZjsX7OreX9U4xjvucPvK+d9odnSj7/agDZmpfZ2bSqfNQoMg1bT8LuEn9wi69APOpnLa64yUxtIMpPmoKdlxV2mg3RXWNerVQoFeS770EjN9qjF5YKIlXtdB77hQ8T3lF5FpaiNp77qRYHG8prbC1sNOk07cWOimDjUlbYNJBa62RMqtb9hkz+UM/uS5CHjeaqZY8O3Xj0x8eUxexSFWetSqHbJ0X5a5aiJtF4XLavm21sGnG9KAx2c0u+eRd3Oyqt6TkE4KHKQMsXUd5favSKbJQ71IFUz6oVpuJveOPLHtIlBJMf7/DzJR+kFqXDDrtCdEfAvj194r5Un0G+Rcy/qNgT4gu19Pfb3EzhZCUrur/TgadhqxRxn9jDlmjjP8VH7JG+Q3MgK5n');
GetBitmapSize(bmp, w, h);
ResizeBitmapEx(bmp, RM_Bilinear, w * 4, h * 4);
ThresholdAdaptiveBitmap(bmp, 0, 255, false, TM_Mean, 50);
Writeln(Tesseract_GetText(bmp)); // Using different include.. I think it's tesseractGetText(bmp) for you.
debugBitmap(bmp);
freeBitmap(bmp);
end;

01234567 89 abcdefghijketc.


Yes in this case it works but sometimes it doesn't I tried, I want something more secure. You even now see a space between the output.

From: KeepBotting
Wrong image format? Well then, in what format are you attempting to have Simba read the text? For most (if not all) intents and purposes, Simba will only accept files in bitmap (.bmp) format.

Showing us the portion of your code which you think causes the issue is a good thing to do when asking for help!


Great thanks!

I'm saving it as a .bmp I created only the letter '1' and saved is as 1.bmp
Then I tried searching for it.

This is the code:

{$I SRL-6/SRL.simba}
{$I SPS/lib/SPS-RS3.Simba}

var
text: string;

procedure declareVariables();
begin
LoadFont('Chars', false); //->shadow???
end;

begin
clearDebug();
setupSRL();
declarePlayers();
declareVariables();
text:= GetTextAt(300, 316, 0, 0, 0, 3111603, 0, 1, 'Chars');
WriteLn(text);

end.