Chcę móc zrobić zdjęcie za pomocą kamery internetowej z terminala. Ten obraz zostanie następnie zapisany w pliku. Jak można to zrobić?
Chcę móc zrobić zdjęcie za pomocą kamery internetowej z terminala. Ten obraz zostanie następnie zapisany w pliku. Jak można to zrobić?
Odpowiedzi:
Jeśli szukasz czegoś zautomatyzowanego, webcam
jest całkiem przyzwoite. Ma wiele uroczych opcji przesyłania zdjęć przez Internet.
Jeśli potrzebujesz czegoś bardziej ręcznego, a mówimy o kamerze obsługiwanej przez V4L / UVC (większość z nich), której możesz użyć streamer
do przechwytywania ramki z urządzenia:
streamer -f jpeg -o image.jpeg
Istnieje inna aplikacja, której można użyć do przechwytywania obrazów z kamery internetowej o nazwie Fswebcam . możesz to zainstalować za pomocą
sudo apt-get install fswebcam
możesz wykonać próbny strzał za pomocą następującego polecenia.
fswebcam -r 640x480 --jpeg 85 -D 1 web-cam-shot.jpg
W powyższej składni kodu -r
oznacza rozdzielczość obrazu, --jpeg
oznacza typ formatu obrazu, a 85
jego standard jakości -D
oznacza opóźnienie ustawione przed przechwyceniem.
Teraz twój obraz został ostatecznie zapisany pod nazwą web-cam-shot.jpg.
Mam nadzieję, że to pomaga.
fswebcam -r 640x480 --jpeg 100 -D 3 -S 13 fswebcam.jpg
avconv
działa lepiej.
--no-banner
(usuwa dolny baner ze znacznikiem czasu)
Za pomocą avconv
lub ffmpeg
możesz także przechwycić ramkę z urządzenia. Na przykład:
avconv -f video4linux2 -s 640x480 -i /dev/video0 -ss 0:0:2 -frames 1 /tmp/out.jpg
lub
ffmpeg -f video4linux2 -s 640x480 -i /dev/video0 -ss 0:0:2 -frames 1 /tmp/out.jpg
Otworzy się to /dev/video0
jako video4linux2
kompatybilne urządzenie, ustawi rozdzielczość 640x480
, przesyła strumieniowo przez 2 sekundy ( 00:00:02
lub po prostu 2
), a następnie przechwytuje one
pojedynczą klatkę, zapisując ją /tmp/out.jpg
.
Sprawdź, czy Twoje urządzenie jest /dev/video0
, ponieważ może być inne.
Dostępne rozdzielczości zależą od kamery internetowej. Mój idzie do 640x480 i sprawdziłem to za pomocą narzędzia o nazwie qv4l2
, które służy do konfiguracji urządzenia video4linux2.
Ten -ss
parametr umożliwia prawidłowe uruchomienie urządzenia. Tutaj, w moich testach, efekt włączania pojawia się podczas włączania aparatu, więc jeśli tylko pominę -ss 2
, przechwycona klatka będzie bardzo ciemna.
Możesz także spróbować uvccapture .
uvccapture -m