ฉันต้องการถ่ายภาพโดยใช้เว็บแคมจากเครื่องเทอร์มินัล ภาพนี้จะถูกบันทึกเป็นไฟล์ สิ่งนี้สามารถทำได้?
ฉันต้องการถ่ายภาพโดยใช้เว็บแคมจากเครื่องเทอร์มินัล ภาพนี้จะถูกบันทึกเป็นไฟล์ สิ่งนี้สามารถทำได้?
คำตอบ:
หากคุณกำลังมองหาสิ่งที่webcam
เป็นไปโดยอัตโนมัติค่อนข้างดี มีตัวเลือกที่น่ารักมากมายสำหรับการผลักภาพถ่ายผ่านอินเทอร์เน็ต
หากคุณต้องการคู่มือเพิ่มเติมและเรากำลังพูดถึงกล้องที่รองรับโดย V4L / UVC (ส่วนใหญ่) คุณสามารถใช้streamer
เพื่อจับภาพเฟรมจากอุปกรณ์:
streamer -f jpeg -o image.jpeg
มีโปรแกรมอื่นที่สามารถนำมาใช้ในการจับภาพจากเว็บแคมที่มีชื่อเป็น Fswebcam คุณสามารถติดตั้งได้ด้วย
sudo apt-get install fswebcam
คุณสามารถถ่ายภาพตัวอย่างด้วยคำสั่งต่อไปนี้
fswebcam -r 640x480 --jpeg 85 -D 1 web-cam-shot.jpg
ในไวยากรณ์รหัสข้างต้น-r
หมายถึงความละเอียดของภาพ--jpeg
ยืนสำหรับประเภทรูปแบบของภาพและ85
มาตรฐานคุณภาพ-D
ย่อมาจากการตั้งค่าความล่าช้าก่อนการจับภาพ
ตอนนี้ภาพของคุณจะถูกบันทึกด้วยชื่อ web-cam-shot.jpg
หวังว่าจะช่วย
fswebcam -r 640x480 --jpeg 100 -D 3 -S 13 fswebcam.jpg
avconv
ทำงานได้ดีขึ้น
--no-banner
(ลบแบนเนอร์ด้านล่างที่มีการประทับเวลา)
ใช้avconv
หรือffmpeg
คุณสามารถจับภาพเฟรมจากอุปกรณ์ของคุณเช่นกัน ตัวอย่างเช่น:
avconv -f video4linux2 -s 640x480 -i /dev/video0 -ss 0:0:2 -frames 1 /tmp/out.jpg
หรือ
ffmpeg -f video4linux2 -s 640x480 -i /dev/video0 -ss 0:0:2 -frames 1 /tmp/out.jpg
นี้จะเปิด/dev/video0
เป็นvideo4linux2
อุปกรณ์ที่รองรับ, การตั้งค่าความละเอียดในการ640x480
สตรีมเป็นเวลา 2 วินาที ( 00:00:02
หรือเพียงแค่2
) แล้วจับกรอบเดียวประหยัดมันone
/tmp/out.jpg
ตรวจสอบว่าอุปกรณ์ของคุณเป็น/dev/video0
เพราะมันจะแตกต่างกันสำหรับคุณ
ความละเอียดที่มีจะขึ้นอยู่กับเว็บแคมของคุณ ฉันไปถึง 640x480 และฉันตรวจสอบด้วยเครื่องมือที่เรียกว่าqv4l2
ซึ่งใช้ในการกำหนดค่าอุปกรณ์ video4linux2
-ss
พารามิเตอร์จะใช้ในการช่วยให้อุปกรณ์ที่จะเริ่มต้นขึ้นอย่างถูกต้อง ที่นี่ในการทดสอบของฉันมีผลจางในขณะที่กล้องกำลังเปิดดังนั้นถ้าฉันเพิ่งละเว้น-ss 2
กรอบการจับภาพจะมืดมาก