Ipywidgets在Jupyter生態系統中扮演著重要角色,它帶來了用戶和數據之間的互動。小工具組件是多種的Python對象,通常在Jupyter Notebook或JupyterLab中具有可視化表示:按鈕,滑塊,文本輸入,復選框等。
Ipywidgets鏈接:
https://github.com/jupyter-widgets/ipywidgets
用戶無需編寫Python代碼就可以使用鼠標操作并設置滑塊完成交互
表示Python小組件的對象是在服務器端(后端)的Python內核(負責執行Jupyter Notebook中的代碼的部分)中工作的。Python對象包含有所有小組件狀態的信息。對于滑塊小部件,Python對象包含最小值,最大值,以及當前值。這個Python對象(在后端,服務器端)可以與窗口小組件的Javascript模型(在前端,客戶端)同步,這個前端模型也包含了有關小組件的相同信息。每次用戶在筆記本中顯示小組件時,它都會創建一個與Javascript模型保持同步的視圖。在上面示例中,您可以看到兩個視圖是同步的。
ipywidgets不僅僅是一個交互式小組件庫,它也是一個功能強大的框架,可以直接創建新的自定義小組件。開發人員可以通過使用widget-cookiecutter項目快速啟動包含代碼結構和封裝的最佳實踐的小組件庫。
widget-cookiecutter鏈接:
https://github.com/jupyter-widgets/widget-cookiecutter/
已經有許許多多不同的小組件庫被創建好了,你可以直接使用mybinder在線試用它們,而無需安裝任何東西,下面的一些功能均可以在線操作試用,鏈接如下:
https://mybinder.org/
bqplot:2-D交互式數據
ipyleaflet:交互式地圖
pythreejs:交互式三維場景
ipyvolume:3-D交互式數據可視化和多卷渲染
nglview:三維交互式分子可視化
gmaps:Google地圖上的數據可視化
itk-jupyter-widgets:交互式2-D和3-D數據可視化
從ipywidgets 7.4開始,我們有兩個新的小組件:音頻和視頻,可以在Jupyter Notebook和Jupyterlab中輕松進行圖像/音頻處理。
與Image小組件一樣,新的音頻和視頻小組件在后端和前端之間同步二進制數據。你可以使用自己喜歡的庫(OpenCV,scikit-image 等)輕松操作此數據,并動態更新窗口小組件值。
在視頻小組件上使用OpenCV進行邊緣檢測
這兩個小組件都是用于創建ipywebrtc庫不錯的構建塊。ipywebrtc由Maarten Breddels創建(Maarten是著名庫vaex和ipyvolume的作者)。它利用WebRTC瀏覽器API的強大功能,允許在Jupyter筆記本內部進行媒體流傳輸。
ipywebrtc的API非常簡單:首先,用戶將創建我們稱之為媒體流的小組件API。媒體流小組件也可以是:
一個WidgetStream小組件,給定任何輸入小組件
一個VideoStream小組件,給定一個視頻小組件作為輸入
一個ImageStream小組件,給定一個圖像小組件作為輸入
一個AudioStream小組件,給定一個音頻小部件作為輸入
一個CameraStream小組件,它為用戶的網絡攝像頭創建視頻/音頻流
使用媒體流小組件,你可以:
使用VideoRecorder小組件錄制電影
使用ImageRecorder小部件拍攝快照
使用AudioRecorder小部件錄制音頻
使用簡單的聊天功能將其流式傳輸到同級
至于其他小部件庫,只需點擊此鏈接即可立即試用。你將能夠嘗試所有這些工作流程。
https://mybinder.org/v2/gh/maartenbreddels/ipywebrtc/master?filepath=docs/source
假設你想使用計算機上的攝像頭動態地執行圖像處理,并運行人臉識別,邊緣檢測或任何其他奇特的算法。使用ipywebrtc實現起來非常簡單。你需要做的就是創建一個CameraStream小組件的實例,在攝像頭視頻流作為輸入的情況下創建一個ImageRecorder,并實現處理圖像的回調(例如使用scikit-image)。
使用CameraStream的快照創建ImageRecorder,并使用scikit-image動態處理圖像
ipywebrtc的另一個不錯的功能是能夠從任何小組件創建媒體小組件。這意味著你可以輕松地從您喜歡的小組件庫中記錄圖像和視頻,以進行二維或三維數據可視化(此處為ipyvolume)。
使用ipyvolume小組件作為輸入創建WidgetStream,并使用VideoRecorder錄制視頻
一旦你使用了庫的這些不錯功能,你就可以下載你創建的視頻/圖像。或者,你可以使用聊天功能直接共享它們。此功能將聊天室名稱和你要共享的流(默認為CameraStream)作為輸入,并允許您將Jupyter Notebook轉換為會議室!
在PyPairs演講期間,使用ipywebrtc創建的聊天室
Github上制作這些圖像的示例:
https://github.com/QuantStack/quantstack-talks/tree/master/2018-11-14-PyParis-widgets/notebooks
-
二進制
+關注
關注
2文章
795瀏覽量
41697 -
代碼
+關注
關注
30文章
4807瀏覽量
68787 -
python
+關注
關注
56文章
4801瀏覽量
84849
原文標題:你知道Jupyter notebook還可以用來做 “視頻聊天室” 嗎?
文章出處:【微信號:AI_shequ,微信公眾號:人工智能愛好者社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論