Machine Vision

cancel
Showing results for 
Search instead for 
Did you mean: 

Removing triple-points from skeletonized objects

I would like to remove the triple-points from a skeleton. A triple-point is the point at which line segments cross in the skeleton.
 
Does anyone know how to do this using IMAQ in VB?
 
Thanks!
 
 
0 Kudos
Message 1 of 5
(3,848 Views)
Hello,
 
I would like to help, but I'm not 100% sure what it is you are looking for.  What do you mean by "remove" a point?  And what are the "lines" you are referring to?  Are these lines that are drawn or overlaid on your image or do you just mean, where the bones meet?  The only way I can think of to find meeting points is some combination of edge detections.  If you wanted to send me a sample image and explain what you want to do with it, I may be able to help more.
 
Regards,
 
Aaron B.
National Instruments
 
P.S.  I didn't find an example of edge detection in VB, but I did find a VB example of line profiling.  It can be found at this URL: "http://sine.ni.com/apps/we/niepd_web_display.display_epd4?p_guid=B45EACE3DFAA56A4E034080020E74861&p_node=DZ52500&p_source=External"
0 Kudos
Message 2 of 5
(3,824 Views)
A triple point is a point where at least three branches of the skeleton meet. I want to remove that point, yet preserve the three branches.
 
For example, open the file "bolt00.png" supplied with the NI IMAQ Vision programming examples. Threshold from 0 to 150, which produces a binary representation of the bolt. The perform a Skeletonization-L on the binary, and you will see a "herring bone"-like skeleton. I want to remove the intersections of such a skeleton, leaving only the branches.
 
Many image processing products have this function, it is not that uncommon.
 
Thanks.
0 Kudos
Message 3 of 5
(3,810 Views)

Hello,

I've done a lot of searching and asked a number of people about this. None of us could find built in functionality to remove the points. You could write an algorithm in VB that identifies the tripple points and set their value to zero. You could convert the image to an array and then determine which array elements that are part of the skeleton (ie: have a non-zero value) are directly adjacent to more than 2 other pixels that are part of the skeleton. It would then be a simple matter to change these pixels to zero. I am sorry that there is nothing designed yet that does this automatically. I will look into getting some examples written that do this posted on our website (and possibly included in future Vision packages). Take care!

Regards,

Aaron B.
National Instruments
0 Kudos
Message 4 of 5
(3,779 Views)
This isn't exactly what you were asking for, but it may prove useful.

Kevin C.
NI Vision
0 Kudos
Message 5 of 5
(3,768 Views)