Reduce line thickness - skeletonization and canny related
Hey guys. I have a set of shapes with varying border thicknesses. How can I reduce their thickness to the smallest amount? (i.e. a trace of each shape with 1 pixel thickness).
When I use the "canny" method, I get the usual double border issue b/c of the large thickness of the original shape's border. When I use a skeletonization approach, I am not really sure how to implement "when to stop" the skeletonization process. The erosion & opening sequence reduces the border thickness nicely on each iteration, but if you don't stop at the right moment, then some shapes just disappear. If you stop too early, then some shapes will still be "too thick". In fact, you can't find an iteration that is satisfactory to all shapes. May have to do the skeletonization a shape at a time - then it still leaves the issue of when to stop.
Do you guys have any ideas what other techniques I can use? Thanks.