Scripted Usage¶
A simple way to run the application form a scripted environment:
>>> from raspicam import Application
>>> app = Application()
>>> app.init()
>>> app.run()
The init
method is implemented separately from the __init__
initialiser
to provide a no-args “constructor” which does not perform any magic. This
should make testing easier.
Note that configuration is handled via a config-file which controls
site-specific configuration and is searched for by config_resolver Have a look at app.ini.dist
as
well, which lives in the source repository for a template of the config file.
Customized Pipeline¶
See also Architecture
By following the script above, you will get the exact same behaviour as running
the application from the main
module. It is likely that you would like to
control the steps taken to modify images. This can be achieved by providing an
alternative “pipeline”. The easiest way to achieve this is to subclass
DefaultPipeline
and supply an alternative set of
operations (see raspicam.operations
for available operations):
from raspicam.main import Application
from raspicam.pipeline import DetectionPipeline, resizer, togray, blur
from raspicam.localtypes import Dimension
class MyPipeline(DetectionPipeline):
def __init__(self):
super().__init__([
resizer(Dimension(320, 240)),
togray,
blur(11),
])
app = Application()
# Using "None" as cli_args will default to "sys.argv[1:]"
app.init(None, custom_pipeline=MyPipeline())
app.run()