Ambil gambar dari terminal

58

Saya ingin dapat mengambil gambar menggunakan webcam dari terminal. Gambar ini kemudian akan disimpan ke file. Bagaimana ini bisa dilakukan?

Luis Alvarado
sumber

Jawaban:

32

Jika Anda mencari sesuatu yang otomatis webcamcukup baik. Ini memiliki banyak pilihan indah untuk mendorong foto melalui Internet.

Jika Anda menginginkan sesuatu yang lebih manual, dan kami berbicara tentang kamera yang didukung oleh V4L / UVC (kebanyakan dari mereka) yang dapat Anda gunakan streameruntuk mengambil bingkai dari perangkat:

streamer -f jpeg -o image.jpeg
Oli
sumber
Oli terima kasih. Tidak tahu ada program webcam bernama WEBCAM (ironi ...). Dan ya, webcam ada dalam daftar yang didukung V4L.
Luis Alvarado
46

Ada aplikasi lain yang dapat digunakan untuk mengambil gambar dari webcam bernama Fswebcam . Anda dapat menginstalnya dengan

sudo apt-get install fswebcam

Anda dapat memiliki contoh pengambilan gambar dengan perintah berikut.

fswebcam -r 640x480 --jpeg 85 -D 1 web-cam-shot.jpg

Dalam sintaks kode di atas, -rsingkatan dari Resolusi gambar, --jpegsingkatan dari jenis format gambar & 85untuk standar kualitasnya, -Dsingkatan dari delay yang diatur sebelum ditangkap.

Sekarang gambar Anda akhirnya disimpan dengan nama web-cam-shot.jpg.

Semoga itu bisa membantu.

rɑːdʒɑ
sumber
9
Dalam kasus saya, mesin uji saya, saya harus melewati bingkai untuk mendapatkan gambar yang benar. Jika saya mengambil frame pertama gambarnya sangat gelap, karena kamera belum siap. fswebcam -r 640x480 --jpeg 100 -D 3 -S 13 fswebcam.jpg
msmafra
@tenshimsm saya menghabiskan 10 menit mencari tahu apa yang salah dengan fswebcam saya dan kemudian menghapus paket. Dipasang lagi hanya untuk mencoba pendekatan Anda, 30 frame bekerja untuk saya. Terima kasih :)
Chirag Bhatia - chirag64
Dengan webcam Sodial edge 5,99 € berdarah saya, avconvbekerja lebih baik.
Avio
Apa yang saya sangat membantu adalah: v4lctl bright 50% # apt-get install xawtv
Grzegorz Wierzowiecki
--no-banner (menghapus spanduk bawah dengan cap waktu)
João Cartucho
20

Menggunakan avconvatau ffmpeg, Anda dapat mengambil bingkai dari perangkat Anda juga. Sebagai contoh:

avconv -f video4linux2 -s 640x480 -i /dev/video0 -ss 0:0:2 -frames 1 /tmp/out.jpg

atau

ffmpeg -f video4linux2 -s 640x480 -i /dev/video0 -ss 0:0:2 -frames 1 /tmp/out.jpg

Ini akan terbuka /dev/video0sebagai video4linux2perangkat yang kompatibel, mengatur resolusi ke 640x480, streaming selama 2 detik ( 00:00:02atau hanya 2), kemudian menangkap oneframe tunggal, menyimpannya /tmp/out.jpg.

Periksa apakah perangkat Anda /dev/video0, karena dapat berbeda untuk Anda.

Resolusi yang tersedia tergantung pada webcam Anda. Milik saya naik ke 640x480 dan saya memeriksanya dengan alat yang disebut qv4l2, yang digunakan untuk mengkonfigurasi perangkat video4linux2.

The -ssparameter digunakan untuk memungkinkan perangkat untuk memulai dengan benar. Di sini, di pengujian saya, ada efek fade-in saat kamera sedang dinyalakan, jadi, jika saya hilangkan saja -ss 2, bingkai yang diambil akan menjadi sangat gelap.

Alexandre Schmidt
sumber
Saya lebih suka solusi ini karena saya sudah menginstal avconv. Juga, output dari avconv juga memberikan petunjuk untuk resolusi maksimum, seperti yang ditunjukkan oleh driver v4l jika harus kembali ke spesifikasi yang lebih rendah.
es
10

Anda juga dapat mencoba uvcapture .

uvccapture -m
Bibhas
sumber