Comment désactiver par programmation l'autofocus d'une webcam?
Je suis en train de faire de la vision par ordinateur à l'aide d'une webcam (le modèle est Hercules Dualpix). Je sais que ce n'est pas l'appareil idéal à utiliser, mais je n'ai pas le choix ici.
Le problème, c'est l'auto-focus rend difficile/impossible de calibrer la caméra. Quelqu'un connaît un moyen pour désactiver l'auto-fonctionnalité de mise au point. Ou, si quelqu'un a une idée de traiter avec elle et de calibrage de la caméra avec l'auto-focus.
source d'informationauteur jslap
Vous devez vous connecter pour publier un commentaire.
L'Hercule caméras sont compatible UVC, de sorte qu'ils devraient travailler avec l'Interface DirectShow IAMCameraControl. Vous pouvez définir le focus à une valeur spécifique, et d'utiliser les indicateurs pour que vous ne souhaitez pas qu'elle soit automatique. Vous pouvez utiliser
IAMCameraControl::Get
pour interroger l'état actuel, parce que pas toutes les caméras en charge d'éteindre le foyer.A une gamme qui est définie par chaque appareil séparément, de sorte que vous devriez interroger, comme indiqué pour trouver la valeur par défaut et le min, le max si vous le souhaitez.
Dans cet exemple, le
pFilter
est un pointeur vers le filtre d'entrée que vous avez de DirectShow. Vous pouvez l'obtenir en l'énumération des périphériques et de trouver celui que vous voulez.Essayez d'utiliser uvcdynctrl
où l'option-l est une liste vous les caractéristiques
et-s peut être utilisé pour définir une fonctionnalité
http://manpages.ubuntu.com/manpages/natty/man1/uvcdynctrl.1.html
Avec l'aide d'un peu de OpenCV et Python, vous pouvez le faire très facilement:
cap = cv2.VideoCapture(1) # my webcam
cap.set(3, 1280) # set the resolution
cap.set(4, 720)
cap.set(cv2.CAP_PROP_AUTOFOCUS, 0) # turn the autofocus off
J'utilise OpenCV 3.1.0-dev, Python 2.7.5 et la Logitech HD Pro Webcam C920