Example #1
0
def camp():
    # send 3d set to compute - without display
    #num = request.args.get('number')
    send_start()
    camera = init_camera()
    camera.resolution =(160,160)
    #camera.framerate_range =(10,10)
    cam_settings = CameraSettings(camera)
    init_3d_camera(cam_settings)
    size = request.args.get('size', None)
    if size:
        camera.resolution =(int(size),int(size))
    set_dias(False)
    set_flash(FLASH_LEVEL)
    warm_up()
    fd1 = BytesIO()
    camera.capture(fd1, format='jpeg', use_video_port=True, quality=JPEG_QUALITY)
    fd1.truncate()
    fd1.seek(0)
    (fd2, fd3) = get_picture_set(camera)
    send_picture([fd1,fd2,fd3], 1)
    camera.close()
    led_off()
    send_stop()
    res = { "device": DEVICEID }
    return res
Example #2
0
def get_picture_set(camera):
    # used by /3d
    if _DEBUG:
        print ("Flash", get_exposure_info(camera))
    set_flash(False)
    set_dias(DIAS_LEVEL)
    fd2 = BytesIO()
    sleep(CAPTURE_DELAY)
    if _DEBUG:
        print ("Dias", get_exposure_info(camera))
    camera.capture(fd2, format='jpeg', use_video_port=True, quality=JPEG_QUALITY)
    fd2.truncate()
    fd2.seek(0)
    fix_exposure(camera)
    set_dias(False)
    sleep(CAPTURE_DELAY)
    if _DEBUG:
        print ("Dark", get_exposure_info(camera))
    fd3 = BytesIO()
    camera.capture(fd3, format='jpeg', use_video_port=True, quality=JPEG_QUALITY)
    fd3.truncate()
    fd3.seek(0)
    auto_exposure(camera)
    #set_flash(FLASH_LEVEL)
    return (fd2, fd3)
Example #3
0
def light():
    dias = get_dias()
    flash = get_flash()
    if request.method == 'POST':
        print(request.form)
        dias = float(request.form['dias'])
        flash = float(request.form['flash'])
        set_dias(dias)
        set_flash(flash)
    return render_template('light.html',
                           header="Light",
                           dias=dias,
                           flash=flash)
Example #4
0
def test():
    mycamera = init_camera()
    mycamera.resolution = (640, 480)
    warm_up()
    settings = CameraSettings(mycamera)
    dias = None
    flash = None
    if request.method == 'POST':
        print(request.form)
        settings.contrast = int(request.form['contrast'])
        settings.brightness = int(request.form['brightness'])
        settings.saturation = int(request.form['saturation'])
        settings.iso = int(request.form['iso'])
        settings.exposure_compensation = int(
            request.form['exposure_compensation'])
        settings.exposure_mode = request.form['exposure_mode']
        settings.awb_mode = request.form['awb_mode']
        settings.sharpness = int(request.form['sharpness'])
        settings.meter_mode = request.form['meter_mode']
        settings.drc_strength = request.form['drc_strength']
        settings.resolution = request.form['resolution']
        settings.shutter_speed = int(request.form['shutter_speed']) * 1000
        dias = request.form.get('dias')
        flash = request.form.get('flash')
    #print ("Flash", flash)
    #print ("Dias", dias)
    fd = capture_picture(mycamera)
    exposure1 = Markup(
        get_exposure_info(mycamera) + "<br>" + get_white_balance(mycamera))
    img1 = base64.b64encode(fd.getvalue()).decode()
    settings.set()
    mysettings = "Camera: " + settings.str()
    if flash:
        set_flash(True)
    if dias:
        set_dias(True)
    warm_up()
    fd2 = capture_picture(mycamera)
    exposure2 = Markup(
        get_exposure_info(mycamera) + "<br>" + get_white_balance(mycamera) +
        " " + mysettings)
    img2 = base64.b64encode(fd2.getvalue()).decode()
    mycamera.close()
    set_flash(False)
    set_dias(False)
    return render_template('calibrate.html',
                           header="Calibrate",
                           img1=img1,
                           img2=img2,
                           exposure1=exposure1,
                           exposure2=exposure2)
Example #5
0
def test():
    server_up = send_start()
    if not server_up:
        return '{"result": 0, "reason": "no connection to compute server"}'
    camera = init_camera()
    camera.resolution =(160,160)
    camera.framerate_range =(10,10)
    cam_settings = CameraSettings(camera)
    mode = ''
    mode = request.args.get('mode', None)
    init_3d_camera(cam_settings)
    # start
    set_dias(False)
    set_flash(FLASH_LEVEL)
    warm_up()
    return Response(get_test_pictures(camera, mode=mode),mimetype='multipart/x-mixed-replace; boundary=frame')
Example #6
0
def get_picture_infoset(camera):
    # get picture and exposure info
    # used by /3d
    st1 = perf_counter()
    if TESTINFO:
        flash_exp = get_exposure_info_dict(camera)
    if _DEBUG:
        print ("Flash", get_exposure_info(camera))
    set_flash(False)
    set_dias(DIAS_LEVEL)
    fd2 = BytesIO()
    sleep(CAPTURE_DELAY)
    if TESTINFO:
        dias_exp = get_exposure_info_dict(camera)
    if _DEBUG:
        print ("Dias", get_exposure_info(camera))
    camera.capture(fd2, format='jpeg', use_video_port=True, quality=JPEG_QUALITY)
    fd2.truncate()
    fd2.seek(0)
    fix_exposure(camera)
    set_dias(False)
    sleep(CAPTURE_DELAY)
    if TESTINFO:
        dark_exp = get_exposure_info_dict(camera)
    if _DEBUG:
        print ("Dark", get_exposure_info(camera))
    fd3 = BytesIO()
    camera.capture(fd3, format='jpeg', use_video_port=True, quality=JPEG_QUALITY)
    fd3.truncate()
    fd3.seek(0)
    auto_exposure(camera)
    if TESTINFO:
        info = { "color": flash_exp, "dias": dias_exp, "nolight": dark_exp }
        #print(info)
        fdinfo = StringIO(json.dumps(info, indent=4))
        fileobj = [ ("dias.jpg",fd2),("nolight.jpg", fd3),("pict_info.json", fdinfo)]
    else:
        fileobj = [ ("dias.jpg",fd2),("nolight.jpg", fd3)]
    end = perf_counter()
    if _TIMING:
        print(f"Get_picture_infoset { end-st1 }")
    return fileobj
Example #7
0
def cam():
    # send 3d set to compute
    no_pictures = request.args.get('no_pictures', NUMBER_PICTURES, type=int)
    picture_interval = request.args.get('picture_interval', PICTURE_INTERVAL, type=float)
    server_up = send_start()
    if not server_up:
        return '{"result": 0, "reason": "no connection to compute server"}'
    camera = init_camera()
    camera.resolution =(160,160)
    camera.framerate_range =(10,10)
    cam_settings = CameraSettings(camera)
    init_3d_camera(cam_settings)
    size = request.args.get('size', None)
    if size:
        camera.resolution =(int(size),int(size))
    # start
    set_dias(False)
    set_flash(FLASH_LEVEL)
    warm_up()
    return Response(get_pictures(camera, no_pictures=no_pictures, picture_interval=picture_interval),mimetype='multipart/x-mixed-replace; boundary=frame')
Example #8
0
def cam3dias():
    # send a serie of pictures
    send_start()
    camera = init_camera()
    camera.resolution =(160,160)
    camera.framerate_range =(10,10)
    cam_settings = CameraSettings(camera)
    init_3d_camera(cam_settings)
    size = request.args.get('size', None)
    if size:
        camera.resolution =(int(size),int(size))
    print (get_exposure_info(camera))
    set_dias(False)
    set_flash(True)
    print (get_exposure_info(camera))
    warm_up()
    print (get_exposure_info(camera))
    warm_up()
    print (get_exposure_info(camera))
    warm_up()
    print (get_exposure_info(camera))

    return Response(get_dias(camera, 10),mimetype='multipart/x-mixed-replace; boundary=frame')
Example #9
0
def camera():
    sleeptime = 1.5
    os.makedirs("/tmp/calib", mode=0o777, exist_ok=True)
    mycamera = init_camera()
    #mycamera.resolution =(2592,1944)
    set_dias(0)
    set_flash(0)
    warm_up()
    if _DEBUG:
        print(get_camera_settings(mycamera))
    #normal
    mycamera.capture('/tmp/calib/color.png', use_video_port=False)
    if _DEBUG:
        print("Color", get_exposure_info(mycamera))
    mycamera.capture('/tmp/calib/color.jpg', use_video_port=False)
    write_picture_info("/tmp/calib/color.json",
                       get_picture_info_json(mycamera))
    #dias
    set_dias(1)
    sleep(sleeptime)
    mycamera.capture('/tmp/calib/dias.png', use_video_port=False)
    if _DEBUG:
        print("Dias:", get_exposure_info(mycamera))
    mycamera.capture('/tmp/calib/dias.jpg', use_video_port=False)
    write_picture_info("/tmp/calib/dias.json", get_picture_info_json(mycamera))
    #full flash
    set_dias(0)
    set_flash(1)
    sleep(sleeptime)
    mycamera.capture('/tmp/calib/flash.png', use_video_port=False)
    if _DEBUG:
        print("Flash", get_exposure_info(mycamera))
    mycamera.capture('/tmp/calib/flash.jpg', use_video_port=False)
    write_picture_info("/tmp/calib/flash.json",
                       get_picture_info_json(mycamera))
    fix_exposure(mycamera)
    #dark
    set_flash(0)
    sleep(sleeptime)
    mycamera.capture('/tmp/calib/nolight.png', use_video_port=False)
    if _DEBUG:
        print("NoLight", get_exposure_info(mycamera))
    mycamera.capture('/tmp/calib/nolight.jpg', use_video_port=False)
    write_picture_info("/tmp/calib/nolight.json",
                       get_picture_info_json(mycamera))
    auto_exposure(mycamera)
    #low flash
    set_dias(0)
    set_flash(0.1)
    sleep(sleeptime)
    mycamera.capture('/tmp/calib/flash01.png', use_video_port=False)
    if _DEBUG:
        print("Flash01", get_exposure_info(mycamera))
    mycamera.capture('/tmp/calib/flash01.jpg', use_video_port=False)
    write_picture_info("/tmp/calib/flash01.json",
                       get_picture_info_json(mycamera))
    fix_exposure(mycamera)
    set_flash(0)
    sleep(sleeptime)
    mycamera.capture('/tmp/calib/nolight01.png', use_video_port=False)
    mycamera.close()
    filelist = [
        '/tmp/calib/color.png',
        '/tmp/calib/color.jpg',
        '/tmp/calib/color.json',
        '/tmp/calib/dias.png',
        '/tmp/calib/dias.jpg',
        '/tmp/calib/dias.json',
        '/tmp/calib/flash.png',
        '/tmp/calib/flash.jpg',
        '/tmp/calib/flash.json',
        '/tmp/calib/nolight.png',
        '/tmp/calib/nolight.jpg',
        '/tmp/calib/nolight.json',
        '/tmp/calib/flash01.png',
        '/tmp/calib/flash01.jpg',
        '/tmp/calib/flash01.json',
        #'/tmp/calib/nolight01.png', '/tmp/calib/nolight01.jpg', '/tmp/calib/nolight01.json'
    ]
    res = send_files(filelist,
                     post_data={
                         "cmd": "calcamera",
                         "sice": 160,
                         "zoom": ZOOM
                     })
    if res:
        return res
    print("det gik skidt", res)
    return '{ "result": "false"}'
Example #10
0
def led_off():
    set_flash(0)
    set_dias(0)
Example #11
0
def get_set_led():
    dias = float(request.args.get('dias', 0))
    set_dias(dias)
    flash = float(request.args.get('flash', 0))
    set_flash(flash)
    return "dias=" + str(dias) + "&flash=" + str(flash)
Example #12
0
print("Loading Webservice " + VERSION)
app = Flask(__name__)
app.debug = True
app.register_blueprint(pic)
app.register_blueprint(pic2d)
app.register_blueprint(pic3d)
app.register_blueprint(calibrate)
#app.register_blueprint(calibrate_flash)

app.secret_key = b'_5#y2xyzQ8z\n\xec]/'

# initialization
print("Test LED")
set_flash(1)
set_dias(1)
set_dias(0)
set_flash(0)

@app.route('/')
def home1():
    return render_template('index.html')

@app.route('/version')
def version():
    return "Webservice " + VERSION

if __name__ == '__main__':
    print("Script server running version "+ VERSION)
    #app = Flask(__name__)
    app.debug = True