Consider an example of automating the functional tests for a web application. The first test tool that would come to our minds would be Selenium for its obvious benefits of being free and lot of support as it is widely used.
However, when you start exploring the functionality of the application you figure out that your product is primarily a video sharing website. A lot of the content on the website are videos which are previewed using the flash player. It is not possible to detect the flash player elements, play the videos and validate video playback using Selenium.
One possible strategy to test your application would be to eliminate automating all the test cases related to video playback and validation. However, when you do that you are left with very few test cases that can be automated. The bulk of the test cases would have to be run manually. Since the benefits of introducing automation is almost negligible in this scenario it becomes very difficult to convince the stakeholders to use automation testing as a strategy.
Here is where Sikuli comes to our aid with its image detection capabilities. As I have already mentioned, Sikuli can detect and perform actions on anything it can see on the screen. So, as long as your site opens up on your machine and you can see that flash video playing on your screen Sikuli also can see it. All you need to do now is build an automation framework around the Sikuli APIs to automate most of the functional test cases.