from IPython.html.widgets import DOMWidget from IPython.utils.traitlets import Unicode, Bytes, Instance from IPython.display import display import base64 from PIL import Image import StringIO from numpy import array, ndarray class Camera(DOMWidget): _view_name = Unicode('CameraView', sync=True) imageurl = Unicode('', sync=True) image = Instance(ndarray) def _imageurl_changed(self, name, new): head, data = new.split(',', 1) im = Image.open(StringIO.StringIO(base64.b64decode(data))) self.image = array(im) %%javascript require(["widgets/js/widget"], function(WidgetManager){ var CameraView = IPython.DOMWidgetView.extend({ render: function(){ // based on https://developer.mozilla.org/en-US/docs/WebRTC/taking_webcam_photos var video = $('