10
$\begingroup$

I always have this demand,but Mathematica cannot implement this perfectly for me.For example,I have such binary image

binImg = Uncompress[FromCharacterCode[
     Flatten[ImageData[Import["http://i.stack.imgur.com/9mJL2.png"],"Byte"]]]]
BinaryImageQ[binImg]

Mathematica graphics

True

I want to get a smooth ridge as far as possible.This is current method I can think out.

Pruning[Thinning[binImg], 10]

Mathematica graphics

Of course,the SkeletonTransform can provide a little bit better result.But I have to say there is a long way to go.I mean I hope to get a result,the line more like a line,a rectangle more like a rectangle,a circle more like a circle in the result ridge image.In my case,I hope the result will more close to following red commponent.

$\endgroup$
  • 2
    $\begingroup$ Maybe something like ImageAdjust[binImg~Blur~12~Erosion~6~RidgeFilter~1] $\endgroup$ – Simon Woods Jul 4 '17 at 10:11
  • $\begingroup$ @SimonWoods Magic,man.. :) $\endgroup$ – yode Jul 4 '17 at 10:12
  • $\begingroup$ @SimonWoods And you don't intend to post it as a answer?That will be a wonderful start I think. $\endgroup$ – yode Jul 4 '17 at 10:18
  • $\begingroup$ I don't know Mathematica, but morphological processing (successive dilation and erosion) will go a long way. $\endgroup$ – Sanchises Jul 4 '17 at 17:47
18
$\begingroup$

You could try some kind of blurring or low-pass filter to smooth out some of the irregularity. For example

ImageAdjust[binImg ~Blur~ 12 ~Erosion~ 6 ~RidgeFilter~ 1]

enter image description here

| improve this answer | |
$\endgroup$
  • $\begingroup$ I always think the upvote is a mysterious thing.Anyway,that include my one. :) $\endgroup$ – yode Jul 6 '17 at 11:16
5
$\begingroup$

Almost

Thinning@SkeletonTransform@Binarize[Blur[binImg, 10], Method -> "Entropy"]

Mathematica graphics

| improve this answer | |
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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