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