It may be a good idea to upsample your image before doing canny, because edges lie in between pixels, and can only be accurately marked with enough resolution.