1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
|
_is_init = 0
def init():
global list_cameras, Camera, colorspace, _is_init
import os,sys
use_opencv = False
use_vidcapture = False
use__camera = True
if sys.platform == 'win32':
use_vidcapture = True
elif "linux" in sys.platform:
use__camera = True
else:
use_opencv = True
# see if we have any user specified defaults in environments.
camera_env = os.environ.get("PYGAME_CAMERA", "")
if camera_env == "opencv":
use_opencv = True
if camera_env == "vidcapture":
use_vidcapture = True
# select the camera module to import here.
# the _camera module has some code which can be reused by other modules.
# it will also be the default one.
import _camera
colorspace = _camera.colorspace
if use__camera:
list_cameras = _camera.list_cameras
Camera = _camera.Camera
if use_opencv:
try:
import _camera_opencv_highgui
except:
_camera_opencv_highgui = None
if _camera_opencv_highgui:
_camera_opencv_highgui.init()
list_cameras = _camera_opencv_highgui.list_cameras
Camera = _camera_opencv_highgui.Camera
if use_vidcapture:
try:
import _camera_vidcapture
except:
_camera_vidcapture = None
if _camera_vidcapture:
_camera_vidcapture.init()
list_cameras = _camera_vidcapture.list_cameras
Camera = _camera_vidcapture.Camera
_is_init = 1
pass
def quit():
global _is_init
_is_init = 0
pass
def _check_init():
global _is_init
if not _is_init:
raise ValueError("Need to call camera.init() before using.")
def list_cameras():
"""
"""
_check_init()
raise NotImplementedError()
class Camera:
def __init__(self, device =0, size = (320, 200), mode = "RGB"):
"""
"""
_check_init()
raise NotImplementedError()
def set_resolution(self, width, height):
"""Sets the capture resolution. (without dialog)
"""
pass
def start(self):
"""
"""
def stop(self):
"""
"""
def get_buffer(self):
"""
"""
def set_controls(self, **kwargs):
"""
"""
def get_image(self, dest_surf = None):
"""
"""
def get_surface(self, dest_surf = None):
"""
"""
if __name__ == "__main__":
# try and use this camera stuff with the pygame camera example.
import pygame.examples.camera
#pygame.camera.Camera = Camera
#pygame.camera.list_cameras = list_cameras
pygame.examples.camera.main()
|