5
私は写真を撮りたい2つのウェブカムを持っています。次のコードはそれを達成します:pygameでウェブカメラのフォーカスを制御する方法はありますか?
import pygame
import pygame.camera
from datetime import datetime
import Image
import threading
import time
class Camera (threading.Thread):
def __init__(self, camera):
self.camera = pygame.camera.Camera(camera,(2304,1536))
self.stop = False
threading.Thread.__init__(self)
def run(self):
self.camera.start()
srf = self.camera.get_image()
img = pygame.image.tostring(srf, 'RGB')
img = Image.fromstring('RGB', srf.get_size(), img)
img.save('%s.png'%datetime.now(), 'PNG')
s = datetime.now()
pygame.init()
pygame.camera.init()
cam1 = Camera("/dev/video0")
cam2 = Camera("/dev/video1")
cam1.start()
cam2.start()
cam1.join()
cam2.join()
print datetime.now() - s
しかし、私はフォーカスを設定する必要があります。
私はこれらのコマンドラインを見つけた:
apt-get install uvcdynctrl
uvcdynctrl --device=/dev/video1 --clist
uvcdynctrl --device=/dev/video1 --get='Focus, Auto'
uvcdynctrl --device=/dev/video1 --set='Focus, Auto' 0
uvcdynctrl --device=/dev/video1 --set='Focus (absolute)' 20
私も次のように使用できます。
import os
os.system('command to set the focus')
しかし、私の(ロジクール)カメラ上では動作しません、と私はからこの出力を取得コマンドライン(Ubuntuの12.04、のpython 2.7):
uvcdynctrl --device=/dev/video1 --set='Focus, Auto' 0
[libwebcam] Unsupported V4L2_CID_EXPOSURE_AUTO control with a non-contiguous
range of choice IDs found
[libwebcam] Invalid or unsupported V4L2 control encountered: ctrl_id = 0x009A0901, name = 'Exposure, Auto'
[libwebcam] Unsupported V4L2_CID_EXPOSURE_AUTO control with a non-contiguous
range of choice IDs found
[libwebcam] Invalid or unsupported V4L2 control encountered: ctrl_id = 0x009A0901, name = 'Exposure, Auto'
編集:
カメラはLogitech HD Pro Webcam C920
ランニングである:
uvcdynctrl --device=/dev/video1 --clist
出力を与える:
[libwebcam] Unsupported V4L2_CID_EXPOSURE_AUTO control with a non-contiguous
range of choice IDs found
[libwebcam] Invalid or unsupported V4L2 control encountered: ctrl_id = 0x009A0901, name = 'Exposure, Auto'
[libwebcam] Unsupported V4L2_CID_EXPOSURE_AUTO control with a non-contiguous
range of choice IDs found
[libwebcam] Invalid or unsupported V4L2 control encountered: ctrl_id = 0x009A0901, name = 'Exposure, Auto'
Listing available controls for device /dev/video1:
Brightness
Contrast
Saturation
White Balance Temperature, Auto
Gain
Power Line Frequency
White Balance Temperature
Sharpness
Backlight Compensation
Exposure (Absolute)
Exposure, Auto Priority
Pan (Absolute)
Tilt (Absolute)
Focus (absolute)
Focus, Auto
Zoom, Absolute
最初に行うこと - 最新バージョンをダウンロードし、ソースからビルドする。これは活発なプロジェクトのようです。 http://sourceforge.net/p/libwebcam/wiki/Home/ – avishayp
これはウェブカメラのモデルに依存しませんか?問題が発生しているWebカメラの特定のモデル番号に言及することから始めることができます。このモデルでは、手動でフォーカスを調整することはできません。 – jozzas
モデルはLogitech HD Pro Webcam C920で、フォーカス機能をサポートしています。 – Delta