0

Je suis nouveau au traitement d'image et j'espère que quelqu'un peut m'aider/guider dans la bonne direction. J'ai donc une image en noir/blanc et je veux trouver les coordonnées de coin de la partie noire intérieure de la preprocessed picture. Ma question est de savoir quel type de méthode donnera le résultat le plus précis?Trouver des coordonnées de coin dans l'image en utilisant openCV

Je veux quelque chose comme this (points rouges montre les coins intérieurs)

+0

Parmi les nombreux résultats que google vous adresse pour "la détection de coin opencv", avez-vous essayé et pourquoi ne répond-il pas à vos besoins? – Piglet

+0

Mentionnez ce que vous avez essayé. –

+0

Essayez le détecteur d'angle ['cornerHarris()'] (http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_feature2d/py_features_harris/py_features_harris.html). –

Répondre

0

partez avec cv::goodFeaturesToTrack() et jouez avec les paramètres jusqu'à ce que vous obteniez votre résultat.

vous pouvez vous référer à ce pourquoi choisir cette et non cornerHarris: goodFeaturesToTrack vs cornerHarris

et aussi à cette réponse SO pour un exemple: opencv-using-cvgoodfeaturestotrack-with-c-mat-variable

bien sûr, je suppose que vous utilisez C++, si vous utilisez python, ne changera pas beaucoup ...

ont la chance et essayer de faire une recherche avant de demander la prochaine fois

+0

Merci pour une bonne réponse, cela a parfaitement fonctionné! Je vais essayer de faire une meilleure recherche la prochaine fois – hfalk

0

Je ne sais pas quelle langue que vous utilisez ce qui le rend plus difficile de répondre à cette question, mais la façon dont je l'ai fait ma dernière fois en appliquant canny edge detection algorithm d'openCV. Cela vous permet de voir les bords de l'image. Suivant find the contours. Avec ces deux fonctions et un peu d'aide de votre ami Google, vous serez en mesure de comprendre cela. Bonne chance!

0

l'un des aproaches serait d'utiliser juste Sobel indépendamment dans X et Y (en ima d'origine ge). Puisque vous avez déjà binaire, il suffit de trouver le bord interne, ce qui sera facile.

Ces bords peuvent ensuite être échantillonnés - prendre quelques points du bord. Et avec l'aide de la fonction de bibliothèque OpenCVcv::fitLine trouver la ligne du bord. Faites de même avec tous les bords intérieurs et calculez les intersections. Cette approche devrait être assez précise, car à partir de la fonction fitLine sur vous calculer les angles dans la précision du sous-pixel.