The first step is a Requirements Analysis. What kind of images need to be handled? Is there a size limit beyond which your code is permitted to reject the image? What mechanism is to be used to indicate which images are to be used? Are there restrictions on the number or style of the graphic menus? Is there a limit on execution time of the analysis? If the images are to be displayed, then what should be done if the images are too large for the screen? Which algorithms are required to be implemented? For each of the algorithms, if there is a choice of parameters, then are there restrictions on the parameter values that are permitted to be used? What are the required outputs? Is there a need for a printed report? Is there a need for saving the output as images? Is there a need to be able to submit the output to a print queue? Back for choosing the images, is there a need to remember "recently used" selections so that the next time the user uses the program they can easily work with the same images (or same directory) again? And so on.
Until you know what the program has to do, you are going to have a difficult time writing a program that does it.