The software does more than take pictures of the check. It has some OCR and validation built in so that helps to reduce the number of submissions that fail.
Imagine if you could just submit any image to the bank. Someone wants to do a DOS(Denial of Service) attack all they have to do is flood the service with random images pulled from the internet. The server has to spend time trying to process images that are not even checks.
Instead the image is processed through a software that can do the initial processing to make sure that the image being submitted is an actual check. I do not have access to the specs but I would suspect that the software takes a first guess at what the check should be, sends that to the server for it to check against. This will help detect attacks and fraud attempts as well.
In addition there are different compression utilities that can be used on images. The images can appear practically identical when rendered but looking at the data that the computer processes they are completely different files. Since the computer has to work with the data part of the file having a standard image format greatly reduces the complexity of making the software usable for end users.