MCPcopy
hub / github.com/makelove/OpenCV-Python-Tutorial / TestSceneRender

Class TestSceneRender

官方samples/tst_scene_render.py:14–96  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

12defaultSize = 512
13
14class TestSceneRender():
15
16 def __init__(self, bgImg = None, fgImg = None,
17 deformation = False, speed = 0.25, **params):
18 self.time = 0.0
19 self.timeStep = 1.0 / 30.0
20 self.foreground = fgImg
21 self.deformation = deformation
22 self.speed = speed
23
24 if bgImg is not None:
25 self.sceneBg = bgImg.copy()
26 else:
27 self.sceneBg = np.zeros(defaultSize, defaultSize, np.uint8)
28
29 self.w = self.sceneBg.shape[0]
30 self.h = self.sceneBg.shape[1]
31
32 if fgImg is not None:
33 self.foreground = fgImg.copy()
34 self.center = self.currentCenter = (int(self.w/2 - fgImg.shape[0]/2), int(self.h/2 - fgImg.shape[1]/2))
35
36 self.xAmpl = self.sceneBg.shape[0] - (self.center[0] + fgImg.shape[0])
37 self.yAmpl = self.sceneBg.shape[1] - (self.center[1] + fgImg.shape[1])
38
39 self.initialRect = np.array([ (self.h/2, self.w/2), (self.h/2, self.w/2 + self.w/10),
40 (self.h/2 + self.h/10, self.w/2 + self.w/10), (self.h/2 + self.h/10, self.w/2)]).astype(int)
41 self.currentRect = self.initialRect
42
43 def getXOffset(self, time):
44 return int( self.xAmpl*cos(time*self.speed))
45
46
47 def getYOffset(self, time):
48 return int(self.yAmpl*sin(time*self.speed))
49
50 def setInitialRect(self, rect):
51 self.initialRect = rect
52
53 def getRectInTime(self, time):
54
55 if self.foreground is not None:
56 tmp = np.array(self.center) + np.array((self.getXOffset(time), self.getYOffset(time)))
57 x0, y0 = tmp
58 x1, y1 = tmp + self.foreground.shape[0:2]
59 return np.array([y0, x0, y1, x1])
60 else:
61 x0, y0 = self.initialRect[0] + np.array((self.getXOffset(time), self.getYOffset(time)))
62 x1, y1 = self.initialRect[2] + np.array((self.getXOffset(time), self.getYOffset(time)))
63 return np.array([y0, x0, y1, x1])
64
65 def getCurrentRect(self):
66
67 if self.foreground is not None:
68
69 x0 = self.currentCenter[0]
70 y0 = self.currentCenter[1]
71 x1 = self.currentCenter[0] + self.foreground.shape[0]

Callers 3

__init__Method · 0.90
__init__Method · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected