алгоритм - объединение похожих строк в одну - PullRequest
0 голосов
/ 11 января 2019

Я использую алгоритм преобразования Хафа для определения линий. Прямо сейчас я просто беру пиковые значения из матрицы, которые превышают определенный порог, но я получаю много дублирующих строк, которые я хочу объединить в одну.

Это код для поиска пиков:

 int prevVal = INT_MIN;

const int NOISE = 110;

enum
{
    Ascending,
    Descending
} direction = Ascending;

std::vector<Peak>peaks;

for (int x = 0; x < m_matrixWidth - 1; x++) {
    for (int y = 0; y < m_matrixHeight - 1; y++) {

        double currentValue = m_matrix[x*m_matrixHeight + y];

        if (prevVal < currentValue) {  
            direction = Ascending;
        }
        else if (prevVal > currentValue) { 
            if (direction != Descending) { 
                if (currentValue > NOISE) {
                    Peak peak(x, y, currentValue);
                    peaks.push_back(peak);
                    std::cout << "peak at index " << x*m_matrixHeight + y << ": " << prevVal << std::endl;
                }
                direction = Descending;
            }
        }

        prevVal = currentValue;

    }
}


return peaks;

Вот как это выглядит: enter image description here

Если кто-нибудь знает, спасибо.

...