J'essaie d'utiliser la transformation Hough de DLIB mais je ne peux pas afficher plus d'une ligne. L'exemple de Dlib docs utiliser un seul point fort:Le filtrage à travers les résultats de la transformation Hough dans DLIB
point p = max_point(mat(himg));
Comment puis-je obtenir tous forts (au-dessus certain seuil ou N) la plupart des votes des lignes pour montrer?
J'ai essayé de boucle à travers les points et le masque chacun déjà trouvé, mais le dlib::max_point
garde trouver le même point bien qu'il soit remis à zéro déjà:
for(int i = 0; i < nPoints; ++i){
dlib::point p = dlib::max_point(dlib::mat(hImg));
maxPoints.push_back(p);
std::cout << "Turning point " << p.x() << ", " << p.y() << " = " << hImg[p.x()][p.y()] << std::endl;
hImg[p.x()][p.y()] = 0;
std::pair<dlib::point, dlib::point> line = ht.get_line(p);
dlib::draw_line(temp, line.first+5, line.second+5, dlib::rgb_pixel(255,255,0));
}
qui produit la même valeur après la première itération de boucle:
Turning point 595, 584 = 78540
Turning point 595, 584 = 0
Turning point 595, 584 = 0
Existe-t-il une approche «correcte» du filtrage à travers un espace creux dans DLIB? Comme Davis King a souligné, j'ai échangé les coordonnées (ligne, col) vs (x, y) qui a résolu le problème immédiat, mais le problème de base est toujours là. Mon espace ien ressemble à ceci:
Comme on le voit, il y a un certain nombre de maxima locaux, mais tout est dominé par l'énorme blob au milieu. Mon idée initiale était que chaque zone floue pouvait être réduite à un seul point dominant
Je pensais à regrouper chaque goutte de points au-dessus d'un certain seuil, mais en bouclant toute l'image pour trouver de tels points ET des points d'alimentation trouvés l'algorithme de clustering sera très inefficace, il doit donc y avoir un moyen plus intelligent, peut-être que les bords internes de l'image elle-même pourraient être supprimés (petits objets comme un fouillis irrégulier)?
Merci, je me mêle parfois quand on utilise un endroit x, y et l'autre rangée, col – user3002166