2012-03-14 36 views
16

Cách đơn giản nhất trong Ubuntu 11.10 để hướng dẫn lập trình (hoặc từ Bash hoặc Python) người dùng chụp ảnh webcam của chính họ là gì?Cách lập trình chụp ảnh webcam

Tôi có thể khởi chạy một ứng dụng đơn giản như Cheese, nhưng tôi không thấy cách dễ dàng để phát hiện hoặc truy xuất ngay ảnh mà ảnh chụp. Tôi cũng có thể truy cập và ghi lại luồng webcam trực tiếp qua OpenCV, nhưng tôi phải phát minh lại GUI để giao tiếp với người dùng.

Có loại tập lệnh nào là phương tiện vui vẻ không, nơi tôi có thể khởi chạy nó, và nó in trên stdout tên tệp của hình ảnh mà người dùng đã chụp?

+0

'sudo apt-get cài đặt streamer' – wim

+1

Xem thêm: [Làm thế nào tôi có thể chụp ảnh bằng Python?] (Http://stackoverflow.com/q/28418962/562769) –

Trả lời

12

Nếu bạn muốn thực hiện điều này thông qua Python, có vẻ như bạn có một vài tùy chọn. The Pygame library has the ability to access cameras.

nếu điều đó không đạt yêu cầu, bạn có thể xuống cấp thấp hơn nhiều và truy cập trực tiếp Video 4 Linux 2 API bằng cách sử dụng cuộc gọi ioctl sử dụng Python's fcntl library.

+0

Liên kết cho Thư viện Pygame đã bị lỗi . Không tìm thấy URL được yêu cầu /docs/tut/camera/CameraIntro.html trên máy chủ. – Andark

35

Tôi thích sử dụng pygame cho điều đó - nó không yêu cầu bạn phải mở cửa sổ Pygame SDL, không giống như khi bạn muốn sử dụng nó để nắm bắt các sự kiện bàn phím, chẳng hạn.

import pygame.camera 
pygame.camera.init() 
cam = pygame.camera.Camera(pygame.camera.list_cameras()[0]) 
cam.start() 
img = cam.get_image() 
import pygame.image 
pygame.image.save(img, "photo.bmp") 
pygame.camera.quit() 

Mặc dù Pygame sẽ chỉ lưu các tệp "bmp" không nén - bạn có thể kết hợp nó với PIL để ghi sang các định dạng khác.

+2

Bây giờ, pygame có thể lưu vào png, jpg, tiff và bmp. Ít nhất là những người tôi đã thử nghiệm. Chỉ cần thay đổi phần mở rộng và pygame phát hiện nó. – steffen

+0

pygame.camera.quit() không hoạt động; sử dụng cam.stop() để thay thế. – ingroxd

Các vấn đề liên quan