Το FindChessboardCorners δεν μπορεί να εντοπίσει σκακιέρα σε πολύ μεγάλες εικόνες με φακό μεγάλης εστιακής απόστασης

Το FindChessboardCorners δεν μπορεί να εντοπίσει σκακιέρα σε πολύ μεγάλες εικόνες με φακό μεγάλης εστιακής απόστασης

Μερικά σημεία.

  1. Η μείωση του μεγέθους, όπως παρατηρήσατε, βοηθά τον ανιχνευτή. Αυτό συμβαίνει επειδή τα φίλτρα ανίχνευσης γωνιών που χρησιμοποιούνται στο OpenCV για την εύρεση των γωνιών έχουν σταθερό μέγεθος και αυτό το μέγεθος της μάσκας συνέλιξης μπορεί να είναι πολύ μικρό για να ανιχνεύσει τις γωνίες σας - η εικόνα πλήρους μεγέθους μπορεί να φαίνεται πραγματικά "ομαλή" σε αυτήν την κλίμακα, ιδιαίτερα όπου είναι ελαφρώς θολή. Ωστόσο, με τη μείωση της κλίμακας απορρίπτετε κάποια ακρίβεια τοποθεσίας στη γωνία.
  2. Για τον ίδιο λόγο, το ακόνισμα βοηθά επίσης. Ωστόσο, έρχεται σε αντίθεση με την ακρίβεια, επειδή προσθέτει προκατάληψη στις θέσεις υποπίξελ των γωνιών - ακόμα και στην ιδανική περίπτωση χωρίς θόρυβο. Για να πείσετε τον εαυτό σας ότι αυτό συμβαίνει, σκεφτείτε το 1D ανάλογο:η ένταση της εικόνας γύρω από μια γωνία (σε 1D, μια έντονη μετάβαση μαύρου-λευκού) μοιάζει ιδανικά με σιγμοειδές καμπύλη (ράμπα με ομαλές γωνίες) και θέλετε για να βρείτε τη θέση του σημείου καμπής του. Το ακόνισμα κάνει την καμπύλη πιο απότομη, κάτι που γενικά θα μετακινήσει τη θέση αυτού του σημείου. Τα πράγματα χειροτερεύουν όταν λαμβάνετε υπόψη ότι το ακόνισμα γενικά ενισχύει τον θόρυβο.
  3. Ο πιθανός σωστός τρόπος για να προχωρήσετε είναι να ξεκινήσετε με χαμηλότερη ανάλυση (δηλαδή μείωση μεγέθους), στη συνέχεια να αυξήσετε τις θέσεις των γωνιών που βρέθηκαν και να τις χρησιμοποιήσετε ως αρχικές εκτιμήσεις για μια εκτέλεση του cvFindCornersSubpix σε πλήρη ανάλυση.