Hello everyone. :)
I was wondering... Can I make a program that will pick up images on a screen and "do" something based on what it sees? For instance, my computer screen shows 2+2. Is there a way that the program can tell me the answer is 4?
If so, what type of programming language must I use?
Thanks in advance for any advice, suggestions, or comments.
Catching Images on Screen
Started by Migan, Jul 30 2009 11:35 AM
13 replies to this topic
#1
Posted 30 July 2009 - 11:35 AM
|
|
|
#2
Posted 30 July 2009 - 01:18 PM
Can it be done? Yes. Is it easy? No. Text recognition isn't very easy.
#3
Posted 30 July 2009 - 01:22 PM
Thank you so much for the reply, just one more question to be answered if you happen to know.
What type of programming language would be best to use to accomplish this? Or would this be a matter of preference?
Thanks again for the reply :)
What type of programming language would be best to use to accomplish this? Or would this be a matter of preference?
Thanks again for the reply :)
#4
Posted 30 July 2009 - 01:35 PM
You can use any programming language you like. I personally prefer java.
It's possible, but very hard for a beginner to accomplish. Lets make it clear - computer doesn't understand abstractions, so it basically can't see anything on the picture. It just sees every pixel as three figures. So when you have 100x100 picture, then computer doesn't see the picture, but 100x100x3 numbers, which means only things it knows about the picture are these 30000 numbers, which are all in range of 0-255.
So you need to teach the computer to understand abstract shapes based on those numbers and pixel location compared to other pixels, which could give you major headache, if you realize that some shape you see as "2", might be disfigured, rotated, or whatever, and you have to teach computer that it is still "2".
It's possible, but very hard for a beginner to accomplish. Lets make it clear - computer doesn't understand abstractions, so it basically can't see anything on the picture. It just sees every pixel as three figures. So when you have 100x100 picture, then computer doesn't see the picture, but 100x100x3 numbers, which means only things it knows about the picture are these 30000 numbers, which are all in range of 0-255.
So you need to teach the computer to understand abstract shapes based on those numbers and pixel location compared to other pixels, which could give you major headache, if you realize that some shape you see as "2", might be disfigured, rotated, or whatever, and you have to teach computer that it is still "2".
#5
Posted 30 July 2009 - 02:19 PM
Interesting idea... Programming language is a matter of preference, mostly, yes. Any one of the "big" popular languages should be able to do something like this - after all, this mostly boils down to pure math... I would go for C++. C or Java would also be fine. Even C# or VB, if that's what you know.
You probably want to go for a language that you're familiar with, as this problem will be more than enough to worry about - you wouldn't want to struggle with learning a new programming language at the same time.
When it comes to the task itself, I pretty much agree with Sinipull. The computer sees a bunch of numbers. There are, however, libraries around that might help you a bit. Unless you want to spend the rest of your life writing one yourself, I suggest that you do some research on that... :P If you choose to go with C or C++, I'm sure you will find lots of information and pre-written libraries/classes.
Good luck! (Hope we didn't scare you too much... :p)
You probably want to go for a language that you're familiar with, as this problem will be more than enough to worry about - you wouldn't want to struggle with learning a new programming language at the same time.
When it comes to the task itself, I pretty much agree with Sinipull. The computer sees a bunch of numbers. There are, however, libraries around that might help you a bit. Unless you want to spend the rest of your life writing one yourself, I suggest that you do some research on that... :P If you choose to go with C or C++, I'm sure you will find lots of information and pre-written libraries/classes.
Good luck! (Hope we didn't scare you too much... :p)
Hey! Check out my new Toyota keyboaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
#6
Posted 30 July 2009 - 02:58 PM
This does seem VERY scary indeed, but hopefully when all is said and done it will be well worth it.
Time to use that old thing they call a search engine and try to find some answers to the many questions I have now.
Thanks for the replies you have all been very helpful.
:)
Time to use that old thing they call a search engine and try to find some answers to the many questions I have now.
Thanks for the replies you have all been very helpful.
:)
#7
Posted 31 July 2009 - 02:20 PM
Hello again everyone :)
Out of curiousity, if I were to make a Windows program to control the "game engine" how hard would it be to then add the text recognition software to it? Should I first get the OCR and build around it?
I have come across some scripts that may help me start out but I would hate to get the engine done and realize I can't use it with the text recognition software.
Any suggestions on which steps I should take to lessen the chance of a "do over" would be greatly appreciated and please forgive for my ignorance on this subject.
Out of curiousity, if I were to make a Windows program to control the "game engine" how hard would it be to then add the text recognition software to it? Should I first get the OCR and build around it?
I have come across some scripts that may help me start out but I would hate to get the engine done and realize I can't use it with the text recognition software.
Any suggestions on which steps I should take to lessen the chance of a "do over" would be greatly appreciated and please forgive for my ignorance on this subject.
#8
Posted 31 July 2009 - 04:38 PM
Back up a bit. Why do you need the OCR in the first place? There are frequently other ways to get what you want, such as the text being displayed from memory.
#9
Posted 31 July 2009 - 05:12 PM
hmm, why do I want it?
Well, there's a game that I know of that has scrambled letters on the screen. The object is to unscramble the word as fast as possible. It's similiar to Scrabble in the sense that it has random placed double and triple letters and also double and triple words. I could only find one program available online that will let me edit the positions of the "bonuses", but it's still not fast enough. There's a bonus for entering the solution as fast as possible and a bonus if I use all 7 letters.
That being said... I guess I wanna cheat at this game so I can beat a friend that is too good for me to beat alone.
Well, there's a game that I know of that has scrambled letters on the screen. The object is to unscramble the word as fast as possible. It's similiar to Scrabble in the sense that it has random placed double and triple letters and also double and triple words. I could only find one program available online that will let me edit the positions of the "bonuses", but it's still not fast enough. There's a bonus for entering the solution as fast as possible and a bonus if I use all 7 letters.
That being said... I guess I wanna cheat at this game so I can beat a friend that is too good for me to beat alone.
#10
Posted 31 July 2009 - 06:55 PM
Odds are you would be better to probe the program's memory for the letters and solution.
#11
Posted 31 July 2009 - 07:40 PM
I am not sure exactly what you mean by "probe the program's memory".
How exactly would I accomplish something like this?
How exactly would I accomplish something like this?
#12
Posted 31 July 2009 - 08:05 PM
That depends somewhat on the operating system and programming language.


Sign In
Create Account

Back to top









