Skip to content

SimpleBlobDetector radius sorting bug (possible) #12244

@lilo00

Description

@lilo00
System information (version)
  • OpenCV => 3.4
  • Operating System / Platform => any
  • Compiler => any
Detailed description

Hi,
If it is intended to accumulate blob radiuses in a sorted way ( I believe it is because centers[j].size() / 2 then have a sence of a median radius) at SimpleBlobDetectorImpl::detect, then bubble sort insert is broken.
Current code:

                    centers[j].push_back(curCenters[i]);

                    size_t k = centers[j].size() - 1;
                    while( k > 0 && centers[j][k].radius < centers[j][k-1].radius )
                    {
                        centers[j][k] = centers[j][k-1];
                        k--;
                    }
                    centers[j][k] = curCenters[i];

Suggested substitute:

                    centers[j].push_back(curCenters[i]);

                    size_t k = centers[j].size() - 1;
                    while( k > 0 && centers[j][k].radius < centers[j][k-1].radius )
                    {
                        centers[j][k] = centers[j][k-1];
                        k--;
                        centers[j][k] = curCenters[i];
                    }

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions