Извлечение Opencv Edge
-
05-09-2019 - |
Вопрос
У меня есть изображение, и я хочу создать гистограмму края.Я делю изображение на 1100 блоков изображения и пытаюсь найти край и его направление (горизонтальное, вертикальное, диагональное 45°, диагональное 135° или ненаправленное) в каждом блоке.
Как я могу извлечь эту информацию о краях?Есть ли у вас какие-либо идеи?
С уважением!
Решение
Я нашел ответ в этой статье:Эффективное использование дескриптора краевой гистограммы MPEG-7, автор Won.
Моей целью было найти следующие ребра:
Разделите каждый блок изображения на 4 части, вычислите средний уровень серого в каждой из них и используйте следующие коэффициенты:
Мы используем эти коэффициенты следующим образом и получаем 5 значений:
Используя пороговую обработку, мы оцениваем каждый тип ребра:
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)
}
Пороговые значения были выбраны Саввасом А.Хацихристофис должен быть:TEdge=14, T0=0,68, T1=T2=0,98.