⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 contcapt.py

📁 reduced python source for embedded apps
💻 PY
字号:
import sysimport sv, SVimport gl, GL, DEVICEdef main():	format = SV.RGB8_FRAMES	framerate = 25	queuesize = 16	samplingrate = 2	v = sv.OpenVideo()	# Determine maximum window size based on signal standard	param = [SV.BROADCAST, 0]	v.GetParam(param)	if param[1] == SV.PAL:		width = SV.PAL_XMAX		height = SV.PAL_YMAX		framefreq = 25	else:		width = SV.NTSC_XMAX		height = SV.NTSC_YMAX		framefreq = 30	# Allow resizing window if capturing RGB frames, which can be scaled	if format == SV.RGB8_FRAMES:		gl.keepaspect(width, height)		gl.maxsize(width, height)		gl.stepunit(8, 6)		gl.minsize(120, 90)	else:		if format == SV.YUV411_FRAMES_AND_BLANKING_BUFFER:			height = height + SV.BLANKING_BUFFER_SIZE		gl.prefposition(300, 300+width-1, 100, 100+height-1)	# Open the window	gl.foreground()	win = gl.winopen('Continuous Capture')	gl.RGBmode()	gl.gconfig()	if format == SV.RGB8_FRAMES:		width, height = gl.getsize()		gl.pixmode(GL.PM_SIZE, 8)	else:		gl.pixmode(GL.PM_SIZE, 32)	svci = (format, width, height, queuesize, samplingrate)	[svci]	svci = v.InitContinuousCapture(svci)	width, height = svci[1:3]	[svci]	hz = gl.getgdesc(GL.GD_TIMERHZ)	gl.noise(DEVICE.TIMER0, hz / framerate)	gl.qdevice(DEVICE.TIMER0)	gl.qdevice(DEVICE.WINQUIT)	gl.qdevice(DEVICE.WINSHUT)	gl.qdevice(DEVICE.ESCKEY)	ndisplayed = 0	lastfieldID = 0	while 1:		dev, val = gl.qread()		if dev == DEVICE.REDRAW:			oldw = width			oldh = height			width, height = gl.getsize()			if oldw != width or oldh != height:				v.EndContinuousCapture()				gl.viewport(0, width-1, 0, height-1)				svci = (svci[0], width, height) + svci[3:]				svci = v.InitContinuousCapture(svci)				width, height = svci[1:3]				[svci]				if ndisplayed:					print 'lost',					print fieldID/(svci[4]*2) - ndisplayed,					print 'frames'				ndisplayed = 0		elif dev == DEVICE.TIMER0:			try:				captureData, fieldID = v.GetCaptureData()			except sv.error, val:				if val <> 'no data available':					print val				continue			if fieldID - lastfieldID <> 2*samplingrate:				print lastfieldID, fieldID			lastfieldID = fieldID			if svci[0] == SV.RGB8_FRAMES:				rgbbuf = captureData.InterleaveFields(1)			else:				rgbbuf = captureData.YUVtoRGB(1)			captureData.UnlockCaptureData()			gl.lrectwrite(0, 0, width-1, height-1, rgbbuf)			ndisplayed = ndisplayed + 1		elif dev in (DEVICE.ESCKEY, DEVICE.WINQUIT, DEVICE.WINSHUT):			v.EndContinuousCapture()			v.CloseVideo()			gl.winclose(win)			print fieldID, ndisplayed, svci[4]			print 'lost', fieldID/(svci[4]*2) - ndisplayed,			print 'frames'			returnmain()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -