Disclaimer: abandoned the main function since it was pretty hard to generalize. For each part, call the corresponding script. All scripts take in an image path (or sometimes two image paths), a boolean if you want to save the image, and a boolean if your image is in color or not.
python gradients.py -i <img path> -f <function name>
For function name, call dx, dy, gauss, dxog (derivative of gaussian), dyog, or grad_magnitude
python sharpen.py -i <img path> -a <alpha level>
python combine.py -i <img path> -l <second image>
python freq_stack.py -i <img path>
python blend.py -i <img path> --img2 <second img>