WoTStat: A WoT Battle Log Analyzer
Kajiryu
23 Feb 2012
Download WoTStat 1.7 (Compatible with WoT 7.5)
FAQ
I am developing a tool called WoTStat which can extract data out of garage screenshots from World of Tanks. It uses optical character recognition to get the amount of credits, exp, repairs, ammo and consumables from a screenshot. It works already quite well, but it needs some testing in non-developer environments now.
If you always wanted to know which of your tanks is the most profitable one, you should give WoTStat a try!
WoTStat is build on top of the Netbeans Platform. This means everybody could develop new plugins which then could be integrated seamlessly.
For some more screenshots and features look at my website: WoTStat
Important Requirements!!
I hope someone finds this tool useful and I am open for suggestions on how to improve WoTStat.
Edit: Whenever a new update is released, I advise that you separate your old screenshots from the new ones until I have updated the Tank Support Module. If there are new tanks, I have to add them to the supported list first. If WoTStat doesn't know a tank, it will find the tank name which is the most closest.
P.S.: To Wargaming: If there are copyright problems with the splash screen image, logo, or link to your website in my application, just tell me. I will replace it then.
FAQ
I am developing a tool called WoTStat which can extract data out of garage screenshots from World of Tanks. It uses optical character recognition to get the amount of credits, exp, repairs, ammo and consumables from a screenshot. It works already quite well, but it needs some testing in non-developer environments now.
If you always wanted to know which of your tanks is the most profitable one, you should give WoTStat a try!
WoTStat is build on top of the Netbeans Platform. This means everybody could develop new plugins which then could be integrated seamlessly.
For some more screenshots and features look at my website: WoTStat
Spoiler
Important Requirements!!
- Till now WoTStat can only recognize garage screenshots with english text! (Regular Expressions for other languages can be created in the "OCRLanguages" folder. Only languages with characters in the ASCII range are recognizable. Also if the language has accents you need all the trained language files which are in the tessdata directory for this language. You can find Tesseract 2.0 languages here: http://code.google.c.../downloads/list)
- Java RE 7 (32bit) must be installed for WoTStat to run.
- For the ReadabilityMod installation to succeed, you need to have permissions to write in the World of Tanks folder.
I hope someone finds this tool useful and I am open for suggestions on how to improve WoTStat.
Edit: Whenever a new update is released, I advise that you separate your old screenshots from the new ones until I have updated the Tank Support Module. If there are new tanks, I have to add them to the supported list first. If WoTStat doesn't know a tank, it will find the tank name which is the most closest.
P.S.: To Wargaming: If there are copyright problems with the splash screen image, logo, or link to your website in my application, just tell me. I will replace it then.
xpnotoc
23 Feb 2012
This is really cool. The only drawback is the fact that you have to take screenshots after every game.. Obviously this is necessary since this is an optical recognition approach, but it may not be an easy way for most users (that are lazy)
Kajiryu
23 Feb 2012
Yeah, you are absolutely right. But before I was typing my battle log numbers into Excel/Calc manually and it was really annoying and time consuming. Taking a screenshot is the lesser evil.
I still hope WG will implement a battle log file eventually. That would make scanning so much easier and faster. But till then this has to do.
I still hope WG will implement a battle log file eventually. That would make scanning so much easier and faster. But till then this has to do.
Vertius
25 Feb 2012
WOT Colored Battle Messages can affect your program?
I'm getting this error:
I'm getting this error:
java.lang.NoSuchMethodError: java.io.File.toPath()Ljava/nio/file/Path; [catch] at org.brainnucleus.wotstat.screenshotimporter.AnalyzerTask.run(AnalyzerTask.java:87)
daanoontje
25 Feb 2012
I got the same thing:
java.lang.NoSuchMethodError: java.io.File.toPath()Ljava/nio/file/Path;
[catch] at org.brainnucleus.wotstat.screenshotimporter.AnalyzerTask.run(AnalyzerTask.java:87)
Don't have the color blind mod though.
java.lang.NoSuchMethodError: java.io.File.toPath()Ljava/nio/file/Path;
[catch] at org.brainnucleus.wotstat.screenshotimporter.AnalyzerTask.run(AnalyzerTask.java:87)
Don't have the color blind mod though.
Kajiryu
25 Feb 2012
Vertius, on 25 February 2012 - 08:49 PM, said:
WOT Colored Battle Messages can affect your program?
I'm getting this error:
I'm getting this error:
java.lang.NoSuchMethodError: java.io.File.toPath()Ljava/nio/file/Path; [catch] at org.brainnucleus.wotstat.screenshotimporter.AnalyzerTask.run(AnalyzerTask.java:87)
The OCR engine is quite sensitive to changes in color, so I think it can create some problems. But if the OCR engine can't recognize a screenshot it will get rejected and continue to run fine.
I think the reason for this error is that this method was added only at Java 1.7. Seems like I have to update the requirements in my post. Thanks for pointing that out.
Trent
26 Feb 2012
Brilliant idea.
However...
Any plans for changing that in the future? I have garage screenshots of my last ~2000 battles. Many of them have floating messages, unfortunately.
However...
Kajiryu, on 23 February 2012 - 07:01 PM, said:
WoTStat can only recognize the system messages in the garage which are not floating.
daanoontje
26 Feb 2012
Kajiryu, is there gonna be a quick fix or is this something for in the long run?
Kajiryu
26 Feb 2012
Trent, on 26 February 2012 - 05:16 AM, said:
Brilliant idea.
However...
Any plans for changing that in the future? I have garage screenshots of my last ~2000 battles. Many of them have floating messages, unfortunately.
However...
Any plans for changing that in the future? I have garage screenshots of my last ~2000 battles. Many of them have floating messages, unfortunately.
I thought about it, but at the moment I don't know how to implement this. The thing is, the non-floating messages have a background, which is blank if the message is shorter (e.g if you didn't need to restock ammo or repair). And this message window has always the same size. The floating messages however have the tank stats as a background, which would interfere with the text recognition. Besides that, I first would have to distinguish between floating and non-floating messages, so I could apply the ocr algorithm to the correct image area.
I have some ideas with checking the image for horizontal lines and finding the borders of the messages. But that would be higly experimental. I will try to look into it. Don't get your hopes up yet.
BTW, could you post one of your screenshots? I am using a laptop and it only can run one resolution (1366x768). I have to check, if the floating messages are also always at the same position.
Kajiryu
26 Feb 2012
daanoontje
26 Feb 2012
No i actually meant the Error:
java.lang.NoSuchMethodError: java.io.File.toPath()Ljava/nio/file/Path;
[catch] at org.brainnucleus.wotstat.screenshotimporter.AnalyzerTask.run(AnalyzerTask.java:87)
Or is that the same thing? Because in that case i can just delete all the floating images
java.lang.NoSuchMethodError: java.io.File.toPath()Ljava/nio/file/Path;
[catch] at org.brainnucleus.wotstat.screenshotimporter.AnalyzerTask.run(AnalyzerTask.java:87)
Or is that the same thing? Because in that case i can just delete all the floating images
Kajiryu
26 Feb 2012
daanoontje, on 26 February 2012 - 04:09 PM, said:
No i actually meant the Error:
java.lang.NoSuchMethodError: java.io.File.toPath()Ljava/nio/file/Path;
[catch] at org.brainnucleus.wotstat.screenshotimporter.AnalyzerTask.run(AnalyzerTask.java:87)
Or is that the same thing? Because in that case i can just delete all the floating images
java.lang.NoSuchMethodError: java.io.File.toPath()Ljava/nio/file/Path;
[catch] at org.brainnucleus.wotstat.screenshotimporter.AnalyzerTask.run(AnalyzerTask.java:87)
Or is that the same thing? Because in that case i can just delete all the floating images
Ah ok, the quick fix would be to install Java RE 7. Then it should work fine. I didn't get a response about it yet though. If this works for you please tell me.
Renovatio74
26 Feb 2012
Thanks for this tool, it is nearly exactly what I have been searching for
The only thing, as others already mentioned is, that you have to import the data manually via screenshots. But I am looking forward to future developement. Can we have a "Stay tuned" on that please ? ^^
daanoontje
26 Feb 2012
Kajiryu, on 26 February 2012 - 04:23 PM, said:
Ah ok, the quick fix would be to install Java RE 7. Then it should work fine. I didn't get a response about it yet though. If this works for you please tell me.
Nope, still getting the error:
java.lang.NoSuchMethodError: java.io.File.toPath()Ljava/nio/file/Path; [catch] at org.brainnucleus.wotstat.screenshotimporter.AnalyzerTask.run(AnalyzerTask.java:87)
Kajiryu
26 Feb 2012
Renovatio74, on 26 February 2012 - 05:35 PM, said:
Thanks for this tool, it is nearly exactly what I have been searching for
The only thing, as others already mentioned is, that you have to import the data manually via screenshots. But I am looking forward to future developement. Can we have a "Stay tuned" on that please ? ^^
daanoontje, on 26 February 2012 - 05:44 PM, said:
Nope, still getting the error:
java.lang.NoSuchMethodError: java.io.File.toPath()Ljava/nio/file/Path; [catch] at org.brainnucleus.wotstat.screenshotimporter.AnalyzerTask.run(AnalyzerTask.java:87)
Renovatio74
26 Feb 2012
Kajiryu, on 26 February 2012 - 06:34 PM, said:
I thought about directory monitoring though. WoTStat would just monitor your screenshot folder and imports new ones when they are written by WoT.
Kajiryu, on 26 February 2012 - 06:34 PM, said:
This seems to be a problem with the Java environment. Do you have by chance two or more different Java environments installed. Please look in your "Program Files/Java" directory. If there is a folder beginning with "JRE6" then maybe you had JRE6 environment installed before and it is still registered as default.
But after removing the old Java, I get a message that it can not find tessdll module, even though the file tessdll.dll is residing in the bin directory (I changed nothing after extracting).
The error occurs after pressing start to start scanning the screenshots.
Kajiryu
26 Feb 2012
Renovatio74, on 26 February 2012 - 07:03 PM, said:
But after removing the old Java, I get a message that it can not find tessdll module, even though the file tessdll.dll is residing in the bin directory (I changed nothing after extracting).
The error occurs after pressing start to start scanning the screenshots.
The error occurs after pressing start to start scanning the screenshots.
The Tesseract Library is 32bit DLL, but it should also run fine on 64bit systems. It would be good when some other people with 64bit systems would report if they have the same error.
Renovatio74, can you copy and pm me the full ide log text? You find the IDE Log under the View->IDE Log menu.
Renovatio74
26 Feb 2012
Kajiryu, on 26 February 2012 - 07:36 PM, said:
The Tesseract Library is 32bit DLL, but it should also run fine on 64bit systems. It would be good when some other people with 64bit systems would report if they have the same error.
Renovatio74, can you copy and pm me the full ide log text? You find the IDE Log under the View->IDE Log menu.
Yes it's a 64 Bit Windows 7.
I PM you the log you requested.
daanoontje
26 Feb 2012
Renovatio74, on 26 February 2012 - 08:05 PM, said:
Yes it's a 64 Bit Windows 7.
I PM you the log you requested.
I PM you the log you requested.
I had the old Java 6 still running and deleting that indeed worked, but now i got myself a new error. Probably the same one as Renovatio74.
java.lang.UnsatisfiedLinkError: Unable to load library 'tessdll': The specified module could not be found. at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:169) at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:242) at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:205) at com.sun.jna.Native.register(Native.java:1033) at net.sourceforge.tess4j.TessDllAPI1.<clinit>(TessDllAPI1.java:35) at org.brainnucleus.wotstat.ocr.OCR.getTextFromImageWithTesseract2OCR(OCR.java:168) [catch] at org.brainnucleus.wotstat.screenshotimporter.AnalyzerTask.run(AnalyzerTask.java:77)
Aslo 64bit windows 7



