Actually, I made a slight boo boo as it's been awhile. Lazarus wasn't the program I was thinking of... that will search the disk for any unallocated space and write it to a separate image, but it doesn't really help with restoring individual files. What I was thinking of was foremost.
This will examine any unallocated blocks/clusters and look for file markers. I.e., any particular file type typically starts with a particular byte value which signifies its type - the file extension is really just a Windows thing and more or less not really necessary to determine a file type. Many file types also should have a file footer. So... foremost knows where the file starts and (in most cases) where it ends, so it can carve out the files from the unallocated space to recreate it. I believe all jpegs should have a footer, so you're golden there. Only issue is that, while it should work when pointing to the original device, you obviously don't want to write the files generated from foremost back to the original device (or at least not to the same partition) or you could be overwriting data from files you still want to recover. Also, foremost only really works if the file is contiguous, since it is looking at the raw data for a specific file header and footer. If the images are large, and the files are fragmented, then it won't work so well.
There are also other tools that can recover files based on metadata contained in a package called The Sleuth Kit. The metadata layer contains information about the files (even deleted files, for most filesystems), specifically, where they actually resided on the disk. Since these tools access this information, it doesn't matter whether or not the files are contiguous. Bad news is that if you are using a FAT32 filesystem, you're probably SOL as the metadata is stored in the directory entries. If the directory is deleted, you lost the metadata for its contents. If you were using NTFS, the metadata is stored in a single master file table, so is not lost when the directory is deleted.
Back to TSK... All the "i" commands (i.e., icat, istat, ils, etc.) in TSK are meant for use on the metadata layer. However, these are even a bit more cryptic to use. There are a few others tools that make them a bit easier. There is a pretty powerful tool called "sorter" included, that is basically just a script that uses other individual tools to look at the data, parse the file type, restore and sort all files by file type in the appropriate directory. You could configure sorter to only look for deleted files and only look for images.
There is a GUI, called Autopsy, available that does most of the heavy lifting and acts as a front end to those tools. The bad news is that Autopsy, I believe, only works on an image file - you can't just point it to the original disk or partition. So, you'd first need to make an bitwise image file of the partition you want to recover data from - which means you'll need another disk or partition to write to that is at least as large as the partition you want to image.
As you can see, you are getting into some more complicated stuff... Most of it aimed at "real" forensics, where you need to take extra caution in not altering the original device, will likely know much less about it, could have been otherwise tampered with, etc. If all you need to do is recover deleted files, I know there are commercial Windows programs that do this (they are all likely based on using the metadata layer). However, the ones I've seen all need to be installed, and each time you write to the disk you risk writing to that unallocated space that has your data.