Opencv Edge экстракция - PullRequest
4 голосов
/ 26 мая 2009

У меня есть изображение, и я хочу создать гистограмму ребер. Я делю изображение на 1100 блоков изображения и пытаюсь найти ребро и его направление (горизонтальное, вертикальное, диагональ 45 °, диагональ 135 ° или ненаправленное) в каждом блоке.

Как я могу извлечь эту информацию о ребрах? У вас есть идеи?

Привет! * * 1005

1 Ответ

9 голосов
/ 27 мая 2009

Я нашел ответ в этой статье: Эффективное использование дескриптора краевой гистограммы MPEG-7 от Won.

Моей целью было найти следующие ребра:

Edge types

Выделите каждый блок изображения на 4 части, рассчитайте средний уровень серого в каждой из них и используйте следующие коэффициенты:

coeffs

Мы используем следующие коэффициенты и получаем 5 значений:

indicators

Используя пороговое значение, мы оцениваем каждый тип ребра:

program SetEdgeType(max, m_nd, m_h, m_v, m_d_45, m_d_135)
{
if (max < TEdge) then EdgeHisto(0)++
else
{
 if (m_nd > T0)    then EdgeHisto(1)++
 if (m_h > T1)     then EdgeHisto(2)++
 if (m_v > T1)     then EdgeHisto(3)++
 if (m_d_45 > T2)  then EdgeHisto(4)++
 if (m_d_135 > T2) then EdgeHisto(5)++
}
endif
return(EdgeHisto)
}

Пороговые значения были выбраны Savvas A. Chatzichristofis: TEdge = 14, T0 = 0,68, T1 = T2 = 0,98.

...