2009-05-26 6 views
3

J'ai une image et je veux créer un histogramme d'adge. Je divise l'image en 1100 blocs-images et essaie de trouver le bord et sa direction (horizontale, verticale, 45 ° diagonale, 135 ° diagonale ou non directionnelle) dans chaque bloc.Opencv Extraction de bords

Comment puis-je extraire cette information sur les arêtes? As tu des idées?

Cordialement!

Répondre

8

J'ai trouvé la réponse dans cet article: Utilisation efficace du descripteur d'histogramme MPEG-7 Edge par Won.

Mon objectif était de trouver les bords suivants:

Edge types

Won diviser chaque bloc d'image en 4 parties, calculer le niveau de gris moyen dans chacun d'eux et d'utiliser les coefficients suivants:

coeffs

Nous utilisons ces coefficients comme suit et obtenir 5 valeurs:

indicators

Utilisation de seuillage nous estimons chaque type de bord:

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) 
} 

Les valeurs de seuil ont été sélectionnés par Savvas A. Chatzichristofis être: TEdge = 14, T0 = 0,68, T1 = T2 = 0,98.

+0

pouvez-vous partager le code complet si vous avez? – user973743