Ich möchte mit Python ein einzelnes Bild von einer Kamera (z. B. einer eingebauten Webcam in einem Notebook) erhalten.
Ich suche nach einer Bibliothek, die dies in wenigen Codezeilen ermöglicht (ich möchte keinen Kameratreiber oder ähnliches schreiben). Das Bild sollte in einem Standard-Bitmap-Format vorliegen.
Bitte auch
simplecv
(und Pygame
?)Auf Debian-basierten Systemen:
sudo apt-get install python-opencv
import time
from SimpleCV import Camera
cam = Camera()
time.sleep(0.1) # If you don't wait, the image will be dark
img = cam.getImage()
img.save("simplecv.png")
Obwohl sich die Beleuchtungssituation nicht geändert hat, ist das Python-Bild viel dunkler. Ich bin mir nicht sicher, warum das so ist.
cv2
(nicht in PyPI)Auf Debian-basierten Systemen:
sudo apt-get install python-opencv
import time
import cv2
camera_port = 0
camera = cv2.VideoCapture(camera_port)
time.sleep(0.1) # If you don't wait, the image will be dark
return_value, image = camera.read()
cv2.imwrite("opencv.png", image)
del(camera) # so that others can use the camera as soon as possible
cam.stop()
im PygameIch habe gerade den @Martin Thoma Code geändert.
import cv2
camera = cv2.VideoCapture(0)
while True:
return_value,image = camera.read()
gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
cv2.imshow('image',gray)
if cv2.waitKey(1)& 0xFF == ord('s'):
cv2.imwrite('test.jpg',image)
break
camera.release()
cv2.destroyAllWindows()
um das Problem mit dem schwarzen Bildschirm zu lösen. ich hoffe es wird geholfen. Danke.
Diese Antwort stammt teilweise von https://stackoverflow.com/a/11094891/562769 - danke Froyo !
Danke an Phani für die Hilfe, es zu verbessern.
Auf Debian-basierten Systemen:
sudo apt-get install python-pygame
import pygame
import pygame.camera
import time
pygame.camera.init()
pygame.camera.list_cameras()
cam = pygame.camera.Camera("/dev/video0", (640, 480))
cam.start()
time.sleep(0.1) # You might need something higher in the beginning
img = cam.get_image()
pygame.image.save(img, "pygame.jpg")
cam.stop()
time.sleep(0.1)
. Ansonsten sind die Bilder dunkelcam.start()
. Auch für mich 0.1
reicht mein Dell-Laptop nicht aus. 0.5
hat bei mir funktioniert.cam = ...
und zu verschieben cam.start()
. Ich bin (fälschlicherweise) davon ausgegangen, dass es da sein muss, weil es nach dem Ändern funktioniert hat.ImportError: cannot import name '_camera'
.Installation
pip install ecapture
Code
from ecapture import ecapture as ec
ec.capture(0,"test","img.jpg")
Ich würde dieses Problem in zwei Teile schneiden.
Ich hoffe, Sie verwenden ein Betriebssystem wie Linux, das über eine Befehlszeile verfügt.
AFAIK gphoto2 kann so etwas tun
Verwenden Sie das Python-Unterprozessmodul
subprocess.call(['yourtoo', 'arg1, ...])
Lassen Sie die Kamera aufwärmen, um das Problem mit dem schwarzen Bildschirm zu lösen.
import time
import cv2
camera_port = 0
camera = cv2.VideoCapture(camera_port)
time.sleep(0.1)
return_value, image = camera.read()
cv2.imwrite("opencv.jpg", image)
del(camera) # so that others can use the camera as soon as possible
Benutzer416
Martin Thomas
Güttli