I am developing an Android application using Opencv to detect objects from images.

I used Canny edge detector to detect the edges and extract contours, and it's working good so far.

But I need to understand the difference of usage of Canny and Watershed segmentation algorithm.

What's the difference between those two algorithms in terms of performance and accuracy ? Or it just depends on the application ?

And can Watershed works on a generic way? That means can it detect unknown number objects from an image and detect objects with different colors ?

  • 1
    $\begingroup$ Canny is an edge detection algorithm, while WST is a segmentation algorithm. You can't really compare them in terms of performance since they do 2 completely different things. $\endgroup$
    – T A
    Commented Jun 12, 2019 at 13:46
  • $\begingroup$ Thank you for your response,but they can serve both for the same thing but I can't seem to find anything to not use this or that and the opposite case. $\endgroup$
    – Amine
    Commented Jun 13, 2019 at 15:18

1 Answer 1


Quoting T A: "Canny is an edge detection algorithm, while WST is a segmentation algorithm.".

The main limitation of WST in that context is that it depends on the quality of the edge detection.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.