Generally, there are two ways to search for a image or picture.
- By text
- By image
Implements of searching by text is easy and efficient. There are many search engines of this kind, among which google image search is a nice one.
However, search by text is not what people expected, and is not that user-friendly. Have you ever imagined a scene that could hardly be described? Or do you have less famous paintings whose name and author are not known?
Then you would draw your imaginations or take pictures of your favourite paintings and search for them. Of course, you can not search by text, because you do not have any idea of the text description of your targets.
But, up till now, there is no such engine that could search images worldwide effectively and efficiently. (Suggestions are appreciated ;))
Instead, according to my experience, image search engines behave in this way. They scan your uploaded image or picture, calculate color distributions with certain functions, match the colors with what are in their database, and finally send the results back to users.
So, you are expected to find those pictures with the same colors, do you?
If you search for a "white cat", you will probably find snow.
That's color search!
I think shape search is closer to the way of thinking of human being, though it could not be the same. But there are several difficulties for this not-so-perfect solution. First is how to distinguish shapes. Second, how to match shapes? How to define a regulation to match certain shapes? And this is also based on how to define shapes, especially complex shapes. Third, huge calculations. A compressed picture of ordinary size could be 100K. Finding shapes and storing them are time consuming, and could require more than 10 times of spaces. It's not just slow. It could be unsolvable because of high space complexities.
We, human beings, could easily distinguish a smile face from faces with a glance. :) However, distinguishing a smile face in black-white is hard enough for computers. :( Why? Because computers do not have eyes and brains. They only have scanners and CPUs. After defining many complicated regulations, it is possible for computers to find a smile face that meets the requirements of human beings. But implementations would be hard and bugs would be everywhere. This (;)) is a smile or not?