added canny code