Why is watershed function from SciKit too slow?
It's hard to know without more details why your particular application runs slowly. In general, though, the scikit-image code is not as optimized as OpenCV, but covers many more use cases. For example, it can work with floating point values as input, rather than just uint8, and it can work with 3D or even higher-dimension images.
About the performance: OpenCV is coded in highly optimized C/C++, while scikit-image is coded in Cython, a hybrid language that compiles Python code to C, achieving C-performance. However, several optimizations are not available in Cython, and as I mentioned above, there are differences in what is actually implemented, resulting in a performance difference.
I have made a comparison between time of execution only for watershed functions in OpenCV, Skimage(SciPy) and BoofCV. Although OpenCV appears to be much faster than the other two (average time: 0.0031 seconds on 10 samples), Skimage time of execution varies significantly (from 0.03 to 0.554 seconds). I am wondering why this happens? Isn´t it supposed to be a native python function?