Ask Your Question

Best method to detect hematoma from white skin

asked 2015-02-02 10:49:44 -0500

Nemesis gravatar image

updated 2015-02-03 08:20:46 -0500

berak gravatar image

Hi guys,

does anyone know what would be the best way to detect hematoma from white skin? I have image of skin with hematoma and I want to detect just hematoma.

I wrote algorithm to detect hematoma by hue color, as you can see it is not the best way because i have gaps there and some wrong detected pixels. image description

My question is what would be better method. Haar cascade? Active contours? Edge derector? or is there something what I can try?

Thank you for your help.

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted

answered 2015-02-02 11:15:55 -0500

Petty gravatar image

Throw away areas that are only a couple of pixels in size. Even if it is the right color and on skin, I don't think that just a couple of pixels (something the size of a freckle) is what you're looking for, right?

edit flag offensive delete link more


Thank you for your quick answer. Good idea I will do that. But do you think there is some better method to detect in my case hematoma? I mean some other method as detecting by color.

Nemesis gravatar imageNemesis ( 2015-02-02 11:24:31 -0500 )edit

A hematoma is more or less defines by its color, so I guess a color segmentation is the right way to go. I was just thinking about using a different wavelength (do hematoma maybe look different in IR light? ) Or are they a bit colder as there is less blood flow in this area?)

BTW: The right hematoma looks like a ghost :)

FooBar gravatar imageFooBar ( 2015-02-02 13:42:13 -0500 )edit

Haha actually it does look like a ghost indeed :D I don't know about hematoma temperature or how it looks like under IR light but thanks for the new idea. I will definitely check it out :)

Nemesis gravatar imageNemesis ( 2015-02-02 13:55:17 -0500 )edit

Moreover, if you still get gaps within your big contours you can use the CV_FILLED option in order to fill them. But in general as the people above proposed I think colour segmentation is the right way to go. Furthermore, try to use some morphology operation to the binary image in order to refine your blobs and get better results.

theodore gravatar imagetheodore ( 2015-02-02 17:15:41 -0500 )edit

thank you for advice but can you be more specific? I am new in this area opencv. Also I want to ask if using new lib cvBlob would improve me results?

Nemesis gravatar imageNemesis ( 2015-02-03 06:49:04 -0500 )edit

for the CV_FILLED option check this. As for the morphology operations the official opencv tutorials I think will help you. Erosion or opening is what you are looking for.

theodore gravatar imagetheodore ( 2015-02-03 08:20:27 -0500 )edit

I am already doing morfology operation by opening(dilation(erosion(image))) and then I get contour by taking the Image - erode but I need to find out how to get rid of gaps

Nemesis gravatar imageNemesis ( 2015-02-03 08:34:23 -0500 )edit

then check the link about the cv_filled option in the drawcontours() function

vector<vector<Point> > contours;
findContours(bwImage, contours, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE);
drawContours(bwImage, contours, -1, Scalar(255), CV_FILLED);
theodore gravatar imagetheodore ( 2015-02-03 08:48:58 -0500 )edit

I fixed it adding some blur medianBlur(smallHSV, smallHSV, 13); I will try also your suggestion, thank you

Nemesis gravatar imageNemesis ( 2015-02-03 09:31:53 -0500 )edit

works as a charm :) It gives me better result after your suggested way because after blur image lose "quality"

BTW: sorry for my english :D

Nemesis gravatar imageNemesis ( 2015-02-03 09:51:27 -0500 )edit

Question Tools

1 follower


Asked: 2015-02-02 10:49:44 -0500

Seen: 733 times

Last updated: Feb 02 '15