added code of shack also (canny_test). produces same result. But canny very different from the opencv one (there must be some kind of optimization done in the opencv one)