It was my course project for Machine Vision, so do not expect something quite professional. I think it performs quite nicely already, so I don't think any of you will have any problems. It has quite a description in the beginning of the code, also suitable for
Some methods and usages may not be preferably feasible, but they had to be included in the program, in order to provide the code working just like it is told in the original paper of Canny's. So it is quite suitable for also gaining the understanding of the concept, I suppose. I also tried to include as much feasible usages as I could, like the use of morphological operations.
Have fun, hope it works for you...