Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

You could try the top hat operation as suggested in this post:http://answers.opencv.org/question/30130/best-method-for-multiple-particle-tracking-with/?answer=30135#post-id-30135 But it may not work so well if your dots have a size of 1 pixel.

Another morphological operation that could work is opening: image description

        int morphOpSize = 3;
        StructuringElementEx element =
            new StructuringElementEx(
                morphOpSize,
                morphOpSize,
                morphOpSize / 2,
                morphOpSize / 2,
                Emgu.CV.CvEnum.CV_ELEMENT_SHAPE.CV_SHAPE_ELLIPSE);

        filtered = gray.MorphologyEx(
            element,
            Emgu.CV.CvEnum.CV_MORPH_OP.CV_MOP_OPEN,
            2);

(sorry for my Emgu dialect)

Otherwise look for edge preserving low pass filtering.

click to hide/show revision 2
Removed tophat remark

You could try the top hat operation as suggested in this post:http://answers.opencv.org/question/30130/best-method-for-multiple-particle-tracking-with/?answer=30135#post-id-30135 But it may not work so well if your dots have a size of 1 pixel.

Another A morphological operation that could work is opening: image description

        int morphOpSize = 3;
        StructuringElementEx element =
            new StructuringElementEx(
                morphOpSize,
                morphOpSize,
                morphOpSize / 2,
                morphOpSize / 2,
                Emgu.CV.CvEnum.CV_ELEMENT_SHAPE.CV_SHAPE_ELLIPSE);

        filtered = gray.MorphologyEx(
            element,
            Emgu.CV.CvEnum.CV_MORPH_OP.CV_MOP_OPEN,
            2);

(sorry for my Emgu dialect)

Otherwise look for edge preserving low pass filtering.