Вопрос по hough-transform, opencv – OpenCV Hough сильнейшие линии

13

Функции HoughLines или HoughLinesP в OpenCV возвращают список строк в порядке накопления, как функция HoughCircles? Я хотел бы знать порядок строк. Также было бы очень удобно получить значение аккумулятора для линий, чтобы вместо фиксированного можно было использовать интеллектуальный и адаптивный порог. Доступны ли значения заказа или значения аккумулятора безсам переписываю OpenCV?

Неплохо. Я всегда предполагал, что линии были приведены в порядке. И это предположение до сих пор соответствовало моим результатам ... Однако было бы неплохо быть уверенным. Quentin Geissmann

Ваш Ответ

1   ответ
15

HoughTransform ордеров по убыванию количества голосов. Вы можете увидеть кодВот

Однако при возврате функции счетчик голосов теряется - единственный способ получить его - изменить OpenCV.

Хорошей новостью является то, что это не очень сложно - я сделал это сам один раз. Это метра минут, чтобы изменить вывод сvector< Vec2f > вvector< Vec3f > и заполните последний параметр с подсчетом голосов.

Кроме того, вы должны изменить CvLinePolar, чтобы добавить третий параметр - хотя это реализовано вCи над ним есть оберткаC++Таким образом, вы должны изменить как реализацию, так и оболочку.

Основной код для изменения здесь

 for( i = 0; i < linesMax; i++ )
 {
        CvLinePolar line;
        int idx = sort_buf[i];
        int n = cvFloor(idx*scale) - 1;
        int r = idx - (n+1)*(numrho+2) - 1;
        line.rho = (r - (numrho - 1)*0.5f) * rho;
        line.angle = n * theta;

        // add this line, and a field voteCount to CvLinePolar
        // DO NOT FORGET TO MODIFY THE C++ WRAPPER
        line.voteCount = accum[idx];          

        cvSeqPush( lines, &line );
 }
Спасибо за разъяснение и указание на код. Я использую вероятностную версию и перебираю код, было бы неплохо вывести в линию linesMax, чтобы ускорить процесс. zzzz
Вероятностный находится в том же файле, я думаю, вы уже нашли его. Другой подход в поиске строк означает, что подсчет голосов не так актуален, как в классическом H. Пока строка имеет минимальное количество необходимых голосов, она помещается в очередь результатов. Сортировка не производится.
Здравствуйте, извините за обновление этой темы, но у вас есть идея, как получить значение аккумулятора в пробалистическом преобразовании Хафа? Я не совсем уверен, где в матрице накопителя находятся линейные голоса.

Похожие вопросы