calcul de l'image

Je suis en train de développer une image en se concentrant algorithme pour certains d'automatisation des tests de travail. J'ai choisi d'utiliser AForge.net car il semble comme une belle maturité .net système convivial.

Malheureusement, je n'arrive pas à trouver de l'information sur la construction de l'autofocus des algorithmes à partir de zéro, donc j'ai donné le meilleur de moi-essayez:

prendre de l'image. appliquer sobel bord de filtre de détection, ce qui génère une échelle de gris de bord contour. générer un histogramme et enregistrer la norme dev. le mouvement de la caméra un pas de plus vers le sujet et prendre une autre photo. si la norme de dev est plus petite que la précédente, nous sommes de plus en plus à se concentrer. sinon, nous avons passé la distance optimale pour prendre des photos.

est-il un meilleur moyen?

mise à jour: ÉNORME faille dans ce, par la manière. comme je vous passé optimale de mise au point, mon image de "en bref" de la valeur continue de croître. vous attendez un parabolique-ish fonction de recherche à distance/mise au point-valeur, mais en réalité, vous obtenez quelque chose qui est plus logarithmique

mise à jour 2: ok, alors je suis retourné à ce et la méthode actuelle, nous explorons est donné un peu connu bords (ok, je sais exactement ce que les objets dans la photo), je fais un manuel de pixel d'intensité de comparaison. comme le graphe obtenu devient plus raide, je reçois au centre de l'attention. Je vais poster le code une fois que l'algorithme de base est porté à partir de matlab en c# (ouais, matlab.. :S)

mise à jour 3: yay dernière mise à jour. revint à nouveau. la version finale du code ressemble à ceci:

étape 1: obtenir une image à partir de la liste des images (j'ai pris une centaine de photos à travers le point focalisé)

étape 2: trouver un avantage pour l'objet que je me concentre (Dans mon cas sa un objet rectangulaire qui est toujours à la même place, donc je récolte un HAUT et ÉTROIT rectangle de bord)

étape 3: obtenir la HorizontalIntensityStatistics (Aforge.net classe) pour que l'image recadrée.

étape 4: obtenir l'Histogramme (gris, dans mon cas)

étape 5: calculer la dérivée des valeurs de l'histogramme

étape 6: lorsque la pente est la plus grande, c'est quand vous êtes dans le plus concentré point.

source d'informationauteur Oren Mazor