Форум сайта python.su
у меня подключено 2 камеры , исходя из примера на сайте http://videocapture.sourceforge.net/ можно понять что:
from VideoCapture import Device
cam = Device()
cam.saveSnapshot('image.jpg')
Офлайн
точнее там есть описание класса __init__ и пункт
__init__(self, devnum=0, showVideoWindow=0)
devnum: VideoCapture enumerates the available video capture devices
on your system. If you have more than one device, specify
the desired one here. The device number starts from 0.
showVideoWindow: 0 ... do not display a video window (the default)
1 ... display a video window
Mainly used for debugging, since the video window
can not be closed or moved around.
Офлайн
всем спасибо :)
>>> cam = Device(devnum=1)
>>> cam.saveSnapshot('image1.jpg')
>>> cam = Device(devnum=0)
>>> cam.saveSnapshot('image0.jpg')
Офлайн
from VideoCapture import Device
import datetime, os
camers = 2
director = "F:\\cam\\"
start = 1
while(start > 0):
#####
try:
os.makedirs(director + str(datetime.datetime.now().strftime("%d%B%Y")))
except OSError:
pass
#####
####
for i in range(camers):
cam = Device(devnum=i)
cam.setResolution(1024, 768)
cam.saveSnapshot(director + str(datetime.datetime.now().strftime("%d%B%Y")) + "\\" + "cam" + str(i) + "-" + str(datetime.datetime.now().strftime("%H-%M-%S")) + '.jpg')
####
Отредактировано (Июнь 25, 2011 13:46:34)
Офлайн
только что то вылетает программа , надо походу смотреть чтоб проверял запущенный процесс или в БД кидать :)
Офлайн
# -*- coding: utf-8 -*-
#! /usr/bin/env python
from VideoCapture import Device
import datetime, os
import win32serviceutil
import win32service
import win32event
import servicemanager
camers = 2
director = "F:\\cam\\"
start = 1
class AppServerSvc (win32serviceutil.ServiceFramework):
_svc_name_ = "web_cam_Service"
_svc_display_name_ = "web_cam_Service"
_svc_description_ = "web_cam_Service"
def __init__(self,args):
win32serviceutil.ServiceFramework.__init__(self,args)
self.hWaitStop = win32event.CreateEvent(None,0,0,None)
self.hWaitResume = win32event.CreateEvent(None, 0, 0, None)
self.timeout = 10 #Пауза между выполнением основного цикла службы в миллисекундах
self.resumeTimeout = 10
self._paused = False
def SvcStop(self):
self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
win32event.SetEvent(self.hWaitStop)
servicemanager.LogMsg(servicemanager.EVENTLOG_INFORMATION_TYPE,
servicemanager.PYS_SERVICE_STOPPED,
(self._svc_name_, ''))
def SvcPause(self):
self.ReportServiceStatus(win32service.SERVICE_PAUSE_PENDING)
self._paused = True
self.ReportServiceStatus(win32service.SERVICE_PAUSED)
servicemanager.LogInfoMsg("The %s service has paused." % (self._svc_name_, ))
def SvcContinue(self):
self.ReportServiceStatus(win32service.SERVICE_CONTINUE_PENDING)
win32event.SetEvent(self.hWaitResume)
self.ReportServiceStatus(win32service.SERVICE_RUNNING)
servicemanager.LogInfoMsg("The %s service has resumed." % (self._svc_name_, ))
def SvcDoRun(self):
servicemanager.LogMsg(servicemanager.EVENTLOG_INFORMATION_TYPE,
servicemanager.PYS_SERVICE_STARTED,
(self._svc_name_,''))
self.main()
#В этом методе реализовываем нашу службу
def main(self):
#Здесь выполняем необходимые действия при старте службы
servicemanager.LogInfoMsg("Hello! I'm a web_cam Service.")
while True:
#Здесь должен находиться основной код сервиса
servicemanager.LogInfoMsg("I'm still here.")
##############################
try:
os.makedirs(director + str(datetime.datetime.now().strftime("%d%B%Y")))
except OSError:
pass
#####
####
for i in xrange(camers):
cam = Device(devnum=i)
cam.setResolution(1024, 768)
cam.saveSnapshot(director + str(datetime.datetime.now().strftime("%d%B%Y")) + "\\" + "cam" + str(i) + "-" + str(datetime.datetime.now().strftime("%H-%M-%S")) + '.jpg')
##############################
#Проверяем не поступила ли команда завершения работы службы
rc = win32event.WaitForSingleObject(self.hWaitStop, self.timeout)
if rc == win32event.WAIT_OBJECT_0:
#Здесь выполняем необходимые действия при остановке службы
servicemanager.LogInfoMsg("Bye!")
break
#Здесь выполняем необходимые действия при приостановке службы
if self._paused:
servicemanager.LogInfoMsg("I'm paused... Keep waiting...")
#Приостановка работы службы
while self._paused:
#Проверям не поступила ли команда возобновления работы службы
rc = win32event.WaitForSingleObject(self.hWaitResume, self.resumeTimeout)
if rc == win32event.WAIT_OBJECT_0:
self._paused = False
#Здесь выполняем необходимые действия при возобновлении работы службы
servicemanager.LogInfoMsg("Yeah! Let's continue!")
break
if __name__ == '__main__':
win32serviceutil.HandleCommandLine(AppServerSvc)
Офлайн
Здравствуйте, подскажите пожалуйста как сделать так чтобы окно которое показывает видео ( у меня с веб-камеры ноутбука) всегда появлялось в определенном месте (можно было указать точные координаты на экане), и было поверх всех окон. Какими свойствами или методами это управляется?
Заранее спасибо
Офлайн