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

評論