Я хочу получить одно изображение с камеры (например, встроенной веб-камеры в ноутбуке) с помощью Python.
Я ищу библиотеку, которая делает это возможным в нескольких строках кода (я не собираюсь писать драйвер камеры или что-то в этом роде). Изображение должно быть в каком-то стандартном растровом формате.
Пожалуйста, также
simplecv
(и Pygame
?)В системах на базе Debian:
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")
Хотя ситуация с освещением не изменилась, изображение Python намного темнее. Я не уверен, почему это так.
cv2
(нет в PyPI)В системах на базе Debian:
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()
в pygameя только что изменил код @Martin Thoma.
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()
для решения проблемы с черным экраном. я надеюсь, что это будет помощь. благодарю вас.
Этот ответ частично взят из https://stackoverflow.com/a/11094891/562769 - спасибо Фройо !
Спасибо Phani за помощь в его улучшении.
В системах на базе Debian:
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)
. В противном случае изображения темныеcam.start()
. Также мне 0.1
не хватает моего ноутбука Dell. 0.5
работал на меня.cam = ...
и cam.start()
. Я (ошибочно) предположил, что он должен быть там, потому что он работал после его изменения.ImportError: cannot import name '_camera'
.Монтаж
pip install ecapture
Код
from ecapture import ecapture as ec
ec.capture(0,"test","img.jpg")
Я бы разделил эту проблему на две части.
Я надеюсь, что вы используете операционную систему, такую как Linux, в которой есть командная строка.
AFAIK gphoto2 может сделать что-то подобное
Используйте модуль подпроцесса Python
subprocess.call(['yourtoo', 'arg1, ...])
Чтобы решить проблему с черным экраном, дайте камере прогреться.
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
пользователь416
Мартин Тома
гетли