Jump to content

Processing after skeletonization


Recommended Posts

I was trying to process some fiber images. One of the steps is to get the skeletons of all fibers and count the numbers. But the skeletons are not very clean, small branches at the end. Usually imaging software has the trimming function to get rid of those, but I have difficulty finding such a function in LabVIEW vision, or LavVIEW doesn't have one at all? And another function which can return the numbers of neighbors for each pixel seems also unavailable in LavVIEW.

Does anyone have any idea how to achieve these two functions? Appreciate it.

Link to comment

QUOTE(Norm Kirchner @ Nov 1 2007, 05:05 PM)

I hope you could have seen the smiling face right ahead of the title. Complaining? How could that be a possibility :thumbup: Anyway, I appreciate every response.

QUOTE(eaolson @ Nov 1 2007, 05:20 PM)

What you mean here really isn't clear. On a 2D grid, any pixel has eight neighbors.

The neighbors I mentioned here refer to those foreground pixels, which are part of an object.or put it in a simple way, the neighbors with a value 1

Link to comment

QUOTE(menghuihantang @ Nov 2 2007, 08:33 AM)

The neighbors I mentioned here refer to those foreground pixels, which are part of an object.or put it in a simple way, the neighbors with a value 1

I don't know a built-in function for that (but have only lightly ever used Vision), but couldn't you just do a correlation with a matrix like:

1 1 1 1 0 1 1 1 1

Link to comment

QUOTE(menghuihantang @ Nov 1 2007, 09:22 AM)

I was trying to process some fiber images. One of the steps is to get the skeletons of all fibers and count the numbers. But the skeletons are not very clean, small branches at the end. Usually imaging software has the trimming function to get rid of those, but I have difficulty finding such a function in LabVIEW vision, or LavVIEW doesn't have one at all? And another function which can return the numbers of neighbors for each pixel seems also unavailable in LavVIEW.

Does anyone have any idea how to achieve these two functions? Appreciate it.

I don't have a lot of experience with vision, but I know that once you convert the image to binary (it looks like you have already done this) there are multiple methods of trimming, filling, finding neighboring pixels, and counting individual objects. Unfortunately I don't have vision installed on my new laptop so I can't point you to anything specific.

Link to comment

QUOTE(TobyD @ Nov 2 2007, 11:38 AM)

I don't have a lot of experience with vision, but I know that once you convert the image to binary (it looks like you have already done this) there are multiple methods of trimming, filling, finding neighboring pixels, and counting individual objects. Unfortunately I don't have vision installed on my new laptop so I can't point you to anything specific.

The counting objects function is there, so is filling holes function. BUT the trimming/pruning and finding neighbor pixels are not available unless I am totally blind to them. I hope you can prove me wrong.

Link to comment

QUOTE(menghuihantang @ Nov 2 2007, 10:56 AM)

The counting objects function is there, so is filling holes function. BUT the trimming/pruning and finding neighbor pixels are not available unless I am totally blind to them. I hope you can prove me wrong.

The trimming I was thinking of was the erode and dilate functions found under Processing Functions: Binary>>Basic Morphology. The erode and dilate functions can be setup based on the number of neighboring pixels.

There are also many different particle filter parameters available that you may be able to setup to "trim" the way you want.

Link to comment

QUOTE(TobyD @ Nov 2 2007, 01:26 PM)

The trimming I was thinking of was the erode and dilate functions found under Processing Functions: Binary>>Basic Morphology. The erode and dilate functions can be setup based on the number of neighboring pixels.

There are also many different particle filter parameters available that you may be able to setup to "trim" the way you want.

I see your point. :thumbup: That's worth trying. Thanks for reminding of that. I will post what I got later.

Link to comment

QUOTE(TobyD @ Nov 2 2007, 12:26 PM)

The trimming I was thinking of was the erode and dilate functions found under Processing Functions: Binary>>Basic Morphology. The erode and dilate functions can be setup based on the number of neighboring pixels.

There are also many different particle filter parameters available that you may be able to setup to "trim" the way you want.

TobyD, I tried, but I don't think it's going to work. Playing with structure elements is a mess and complicated, because for an end point, it can have one or two neighbors whose positions can be anywhere around the end point. So one type of structure only covers one of the many possible cases. I don't know, it doesn't seem promising to me.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.