Reputation: 149
I'm currently implementing a image processing algorithm that needs segments of the image, clustered by their mean intensity.
I have a working function using the OpenCV K-Means clustering algorithm, however it is slow in performance. I was wondering if other segmenting algorithms exist that are faster.
I found other segmentation algorithms, but most are for detecting objects. I need seperation based on intensity.
Any ideas?
Upvotes: 2
Views: 4922
Reputation: 114816
A fast and efficient graph-based segmentation algorithm can be found here.
This algorithm is described in the paper of
Pedro F. Felzenszwalb and Daniel P. Huttenlocher, Efficient Graph-Based Image Segmentation,
IJCV 2004.
It works fast and capable of extracting regions with roughly similar intensities. I used it once or twice in the past and it works quite well.
Upvotes: 0
Reputation: 14011
Have you looked at the pyrMeanShiftFiltering function? It is not particularly fast, so it may not be faster than what you currently have, but you can try it and find out. Here is the OpenCV sample using pyrMeanShiftFiltering
. This function operates on color for clustering, which may not be what you need, but you can take a look at how it is implemented here; it might give you some more ideas to try.
Upvotes: 4