Write a MATLAB GUI code that can upload any image and enable the user to apply basic image processing methods. The required main methods are:
- Convert the image to a gray level.
- Convert the image to binary (use one of the thresholding methods).
- Enable the user to reset to the original image.
- Show the image histogram.
- Enable the user to complement the image.
- Apply edge detection on the image (use one of the leading edge detection methods).