Removing Hair and annotating dark spots

This is my first try at image analysis ever. There are two requirements:


1. 1st is to mark and remove hair in the attached image,

So far, I have input the image , used "Gaussian convolution-> "DoG Spot Detection". The hair are distinctively darker. How can I now filter them out from original image?


I also tried using interactive labeller and labelled hair using free lines. How can I characterize these segments in terms of some features and then use this to recognize other hair in the image and remove them?


2. 2nd req is to mark and annotate dark spots.

After gaussian convolution and CLAHE the image quality clearly brings out the two spots. SPOT identification does not work. What segmentation should I use to recognize and mark these dark spots?

If these spots are again interactively labeled how can one identify their segment features (image features for these segments) and mark similar spots in other images?


Thanks in advance for your inputs!



interesting problem. There are many ways to analyze these spots and hairs. I hope the following ideas will help you with your analysis.

1. Remove Hairs:

I played some minutes with some of our classical image processing nodes and tried to identify the hairs. See the upper-part of the attached workflow as a first step. Anyway, I think there is a much better way to get the hair positions: This plugin allows you to calculate pixel features and then classify each pixel, in this case hair vs no-hair. This should actually work pretty well.

2. Detect and quantify spots

Again, you find some ideas and examples in the attached workflow. Please note, that this workflow is by far complete, but I think it nicely demonstrates some techniques. To quantify the detected spots, you first have to get the segmentation (which is represented as a labeling in our plugin). Afterwards, you can join the labeling and the image and calculate features for each spot. Typical features are texture, shape, geometry or first order statistics. In one of our next releases we will provide many more features.

Question: In this case you would also need some color features to quantify the spots right? Do you know some feature sets which are used in this type of skin analysis? Since now we only support grey-scale features (this means you need to project the color channel first), so maybe we have to implement something for you in this case.

Furthermore, if you find a nice ImageJ plugin doing a good job analysing your images, we can _easily_ integrate this plugin into KNIME. Just tell me if you find something. You could also try to use the SUISE Framework to detect your spots.

I hope this helps, let me know if you have any further questions. I'm happy to help.



Thanks Christian!

Will have a look at your work at home since this is a personal project at present. Indeed color would be an important criterion e.g. for distinguising haemoglobin vs melanin (red/black).




detection of micro calcification

Dear KNIME Community, I am new and tried to open a new topic. But since several days, when I check my content the state is "revision pending". Therefore I post my problem here.

We have a work in which I have to detect micro calcifications. The data I have are a csv-file with the following structure:

x y abs dci cal
1 1 0.3568890 0.9137022 0
2 1 0.3568890 0.9137022 0
3 1 0.3593777 0.9380856 0
4 1 0.3596850 1.0087227 0
5 1 0.3604175 1.0206963 0
6 1 0.3584114 0.9282873 0

"x" and "y" represent the position of the pixel (in pixels), "abs" is the absorption intensity, "dci" is the scattering intensity. "cal" is the likelihood that the value is part of calcification (not normalized). In the attachment you find the picture with the absorption values (abs_picture.png) and the cal_picture.

If you want to download the csv file I can only provide my dropbox link, since it is larger than the 4 MB allowed to upload in the forum (


The goal is the identify the cal pixels from the abs, dci channels of the given and surrounding (x-x')^2+(y-y')^2<R^2 pixels. Therefore a receiver operating characteristic (ROC) curve was made, which compares the processed image with the cal_picture image. (See workflow, open the meta node Calculate ROC area and view the output of the ROC Curve). 

We tried to get a high value as close as possible to 1.0. With the workflow microcalcification_update we reached 0.6581 for the absorption. We try to get a better value and also a good value for the scattering data.

Do you have an idea how we can reach this? Any help is very appreciated.

Best wishes,

Matthias, Vittora, Federica

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.