Не уверен, что я полностью понимаю этот вопрос, но по поводу разделенной части не-максимального подавления:
Один простой способ для двумерного не-максимального подавления - это: расширить изображение.Расширение в OpenCV устанавливает значение каждого пикселя в max () локальной окрестности.Повторите несколько раз или используйте большее ядро, чтобы получить желаемый радиус.
Затем сравните расширенное изображение с оригиналом и установите все пиксели с разными значениями на ноль.
Остальные пиксели являются локальными максимумами.
# some code I once used in OpenCV/Python
# given an image, sets all pixels to zero, unless they are local maxima
def supressNonMaxima(img):
localMax = cvCreateImage (cvGetSize(img), IPL_DEPTH_16U, 1)
cvDilate(img, localMax, null, 3) # max() with radius of 3
mask = cvCreateImage( cvGetSize(img), 8, 1)
cvCmp(img, localMax, mask, CV_CMP_LT)
cvSet(img,0,mask)