<br>Hi Gopal,<br><br>Thanks for posting your images.<br><br>They are quite interesting.<br><br>ITK can provide you the low level "feature detection" functionalities that<br>you need here. For example : line, corner, crossing detection.
<br><br>All based on analyzing the parametric space of the Hessian image.<br><br>We just run a quick test with the application:<br><br> /InsightApplications/Curves2DExtractor/Curves2DExtractor<br><br>By loading as input image:
<br><br> Output_Bottom_Left.JPG<br><br>Setting the Sigma value ( for the Hessian) to 0.8 and<br>using the following parameters in the "Spatial Function" panel:<br><br>Angle Z = 34.5<br>Aperture X = 18.8
<br>Aperture Y = 3<br>Apex Coordinates<br>X= 0.3<br>Y = 0<br>Z = 1<br>Top Plane = 0.05<br>Bottom Plane = 2<br><br>We put a screen shot of the results at:<br>
<br> <a href="http://public.kitware.com/pub/itk/UsersITK/Curve2DExtractor/">http://public.kitware.com/pub/itk/UsersITK/Curve2DExtractor/</a><br>
<br>
<br>The results indicate that you should be able to extract many<br>of the features, *BUT* you will need higher resolution images.<br>(Maybe 5 to 10 times higher that what you sent. This need for<br>higher resolution is related to the use of Second derivative
<br>operators in the Hessian. <br><br><br>When you click on the button : "Parametric Space"<br><br>You will see appearing a scatter plot of the pixel values<br>in the parametric space. Different features (lines, corners, crossings)
<br>are located in different places of this parametric space. For example,<br>Lines are located along in the plane Y=0, along the spine of a line <br>that goes from the apex of the truncated pyramid to a middle point<br>in the X axis.
<br><br><br>You will have to work out different spatial functions to capture the points<br>corresponding to every particular feature.<br><br> <br> Please let us know if you have further questions,<br><br><br> Thanks
<br><br><br> Luis<br><br><br><br>-------------------------------------------------------------------------<br><div><span class="gmail_quote">On 8/5/07, <b class="gmail_sendername"><a href="mailto:gkaremore@scai.fraunhofer.de" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
gkaremore@scai.fraunhofer.de
</a></b> <<a href="mailto:gkaremore@scai.fraunhofer.de" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">gkaremore@scai.fraunhofer.de</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi Luis<br><br>Thanks for your comments. Please check this link :<br><br><a href="http://www.gopalrk.com/forITKCommunity.html" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://www.gopalrk.com/forITKCommunity.html
</a><br><br><br>If this link doesn´t work. Please check following.
<br><br><br>Input Image : <a href="http://www.gopalrk.com/Input_Image.jpg" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://www.gopalrk.com/Input_Image.jpg</a><br><br>Output Image 1: <a href="http://www.gopalrk.com/Output_left_top.jpg" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://www.gopalrk.com/Output_left_top.jpg
</a><br><br>Output Image 2: <a href="http://www.gopalrk.com/output_Rt_Top.jpg" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://www.gopalrk.com/output_Rt_Top.jpg</a><br><br>Output Image 3: <a href="http://www.gopalrk.com/Output_Bottom_Left.JPG" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://www.gopalrk.com/Output_Bottom_Left.JPG
</a><br><br>Please me know your comments, I will surely go through the approach we<br>discussed in previous email.<br><br>Thanks!<br><br><br>Sincerely<br>Gopal<br><br><br><br><br>Luis Ibanez wrote:<br>><br>> Hi Gopal,
<br>><br>><br>> Thanks for better describing your problem.<br>><br>><br>> In your case, it seems that what you are segmenting<br>> (rather classifying) are the symbols in the document.<br>><br>
> Is that right ?<br>><br>> It will still help a lot if you post somewhere a representative<br>> image of your problem.<br>><br>><br>><br>> Before getting to a classification stage you will need to
<br>> define appropriate *descriptors* that capture the uniqueness<br>> of each one of the symbols.<br>><br>><br>> Funny enough, you the first step is to start by considering<br>> your "binary" image as a grayscale images, and apply for
<br>> example a Hessian image filter.<br>><br>> Then pass the output of Hessian filter to the EigenAnalysis<br>> filter and obtain the eigen vectors and eigen values at<br>> every pixel in your image.<br>
>
<br>> If your image is composed of letters, then you will be able<br>> to "detect" the linear part of the letters as "ridges"<br>> in intensity.<br>><br>> You will also be able to detect the crossings between lines
<br>> as regions where the two eigen values are similar.<br>><br>> Look for example at:<br>><br>> <a href="http://www.itk.org/HTML/Curve2DExtraction.htm" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://www.itk.org/HTML/Curve2DExtraction.htm</a>
<br>><br>> You will find the code of this application in the<br>> InsightApplications checkout.<br>><br>> Note that this applications is only looking for ridges,<br>> and therefore uses a pattern recognition approach that
<br>> is very specific to ridges.<br>><br>> You may want to extend it in order to capture also<br>> corners, crossings.... etc.<br>><br>><br>> Do you already have a way of defining regions of interest
<br>> around letters ? words ? in the document. If not, you should<br>> explore a method for it.<br>><br>> Given a region of interest, and having detected particular<br>> features of the letter traits (ridges, corners, crossings,
<br>> ends), you could use the combination of features in order<br>> to distinguish some letters from others.<br>><br>> for example the letter "O" doesn't have crossings, ends,<br>> or corners), while the letter "A" has two crossings, two
<br>> ends, one corner, and 5 segments that look like ridges.<br>><br>><br>> Note that code for analyzing vasculature has a lot in common<br>> with the problems that you will face when performing text<br>> recognition.
<br>><br>><br>> Please give it a try at the Curve2DExtractor application,<br>> and let us know how it goes for you.<br>><br>><br>> Regards,<br>><br>><br>> Luis<br>><br>><br>
> -------------------------------------
<br>> <a href="mailto:gkaremore@scai.fraunhofer.de" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">gkaremore@scai.fraunhofer.de</a> wrote:<br>>> Hello Dan<br>>><br>>> Thanks for your effort in understanding the problem. I meant by word
<br>>> segmenting is not with respect to medical(or other)image processing, my
<br>>> application is Document image segmentation. In another words , It would<br>>> be<br>>> called as multiclass labeling problem. Please see following papers<br>>> related<br>>> to binary image segmentation.
<br>>><br>>> Bayesian decision feedback for segmentation of binary images<br>>> Kadaba, S.R.; Gelfand, S.B.; Kashyap, R.L. Acoustics, Speech, and Signal<br>>> Processing, 1995. ICASSP-95., 1995 International Conference on
<br>>> Volume 4, Issue , 9-12 May 1995 Page(s):2543 - 2546 vol.4<br>>><br>>> Strzelecki M., Segmentation of Binary Images Using Network of<br>>> Oscillators,<br>>> 2 Krajowa, Konferencja Komputerowe Systemy Rozpoznawania KOSYR 2001,
<br>>> 28-31<br>>> May 2001<br>>><br>>> Especially papers from "International Journal of Document Analysis and<br>>> Recognition (IJDAR) - Computer Imaging, Vision, PR and Graphics "
<br>>><br>>> My criterion to cluster is Shape:<br>>><br>>> I want rectangular,square, and horz and verticle line component to be<br>>> labbled in separation to Text and graphics on the document(Under
<br>>> segmentation/clustering/labeling).<br>>><br>>> currently I am trying with "Feature extraction" section of ITK toolbox.<br>>> Results are not appreciable. So looking for a different approach using
<br>>> ITK<br>>> library.<br>>><br>>> Thanks in advance.<br>>><br>>> Sincerely<br>>> Gopal<br>>><br>>><br>>> Dan Homerick wrote:<br>>><br>>>>Hi Gopal,
<br>>>><br>>>>I'm not sure if I understand what you mean by segmenting a binary image.<br>>>>"Segmentation" is typically reducing a grayscale or color image so that<br>>>>only
<br>>>>a few values are used, done in such a way that each color in the<br>>>> resulting<br>>>>image has some semantic meaning. If you're starting with a binary image,<br>>>>there's not much segmentation that can be done.
<br>>>><br>>>>It sounds like what you really want is to cluster (unconnected)<br>>>> components<br>>>>of your binary image into logical objects. By what criteria do you want<br>>>> to
<br>>>>cluster them (spatial proximity, similarity of size, shape, other)? I<br>>>>don't<br>>>>think there will be a simple filter to accomplish that, but if you can<br>>>>provide more details of what you intend to do, the mailing-list may be
<br>>>>able<br>>>>to provide some guidance.<br>>>><br>>>>Cheers,<br>>>> - Dan<br>>>><br>>>>On 8/2/07, <a href="mailto:gkaremore@scai.fraunhofer.de" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
gkaremore@scai.fraunhofer.de
</a> <<a href="mailto:gkaremore@scai.fraunhofer.de" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">gkaremore@scai.fraunhofer.de</a>><br>>>>wrote:<br>>>><br>>>>>Dear All
<br>>>>><br>>>>>Does ITK help in segmenting binary images. In another words ITK
<br>>>>>segmentation library provides function to segment only gray scale and<br>>>>>color image. Will ITK helpfull in segmenting binary images in to<br>>>>>different clusters. (Tried Binary threshold filter, connected component
<br>>>>>algorithms).<br>>>>><br>>>>>Is there any other method by which we can segment binary image in ITK.<br>>>>><br>>>>>Any comments would be appreciable.<br>
>>>>
<br>>>>>Sincerely<br>>>>>Gopal<br>>>>><br>>>>>Research Scholar<br>>>>>Fraunhofer Institute<br>>>>>Germany<br>>>>>_______________________________________________
<br>>>>>Insight-users mailing list<br>>>>><a href="mailto:Insight-users@itk.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">Insight-users@itk.org</a><br>>>>>
<a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://www.itk.org/mailman/listinfo/insight-users
</a><br>>>>><br>>>><br>>><br>>> _______________________________________________<br>>> Insight-users mailing list<br>>> <a href="mailto:Insight-users@itk.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
Insight-users@itk.org
</a><br>>> <a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://www.itk.org/mailman/listinfo/insight-users</a><br>>><br>>
<br><br>_______________________________________________<br>Insight-users mailing list
<br><a href="mailto:Insight-users@itk.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">Insight-users@itk.org</a><br><a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://www.itk.org/mailman/listinfo/insight-users</a><br></blockquote></div><br>