Max/MSP/Jitter 官方教程翻譯12 - Chromakeying 視訊去背景合成
00 翻譯自 Cycling74 的 Max/MSP/Jitter 官方文件:Tutorial 10: Chromakeying
本教程介紹如何使用 jit.chromakey
對兩個源視訊Chromakeying(去背景合成,chroma-純色,key-抽離顏色)。還將學習如何使用 suckah
物件獲取螢幕上任意畫素的顏色。
開啟教程 patch,由 loadbang
傳送 read
訊息到兩個 jit.movie
物件,自動讀取兩個視訊(oh.mov 和 traffic.mov):
其他引數也由連線到右側訊息框的 loadbang
初始化。訊息框傳送訊息到 patch 中其他名為 receive
的物件完成初始化。(參見教程 18:Remote Messaging)。
點選開關啟動 metro
。三個 jit.pwindow
物件中出現了影象。開關不僅可以啟動和停止 metro
,還可以啟動和停止兩個 jit.movie
視訊播放。
教程 patch 的下半部分(三個 jit.pwindow
中的兩個)是這樣的:
點選左側 jit.pwindow
物件的藍色區域(即視訊中男性頭部後面的區域)。
第三個 jit.pwindow
(在 patch 右下角)將顯示:
歷史說明:藍屏合成(在藍色啞光背景下拍攝現場鏡頭的過程)在 20 世紀 30 年代就出現了,目的是為了後期用其他影象替換藍色。藍屏合成涉及平版印刷分色,起初是非常昂貴的電影工藝,它(現在更常見的是綠屏合成)已經演變成影視製作中最常見的特效。通過數字疊加完成 Chromakeying(藍屏處理的術語)讓它更普及。Chromakeying 在電視行業中常被稱為 CSO(色彩分離疊加),由 1960 年代開發它的 BBC 團隊命名。藍屏發明者 Petro Vlahos 在 1994 年被授予了電影藝術與科學學院終身成就獎,以表彰這項無可替代的技術。
jit.chromakey 物件
去背景合成 - 將一個影象疊加在另一個上面,選擇性替換顏色的過程 - 由 jit.chromakey
物件實現。通過指定顏色和其他引數, jit.chromakey
在第一個(左側)矩陣中檢測包含該顏色的單元,並在生成輸出矩陣時,用第二個(右側)矩陣中的對應單元替換它們。這樣,來自第一個矩陣的單元疊加到第二個矩陣上。
可以選擇任何顏色為要去除的背景,請嘗試點選左側 jit.pwindow
中的其他區域。不同的顏色會從男人的臉上移除,而顯示出第二個視訊中的影象。
jit.chromakey
用 color
屬性(稱為參考顏色)來定義中心色。這個屬性是一個值列表,應用於等待摳圖的矩陣中的所有平面。tol
屬性定義中心色的容差範圍。此範圍內的顏色也會被去除。
將 jit.chromakey
與 char 矩陣一起使用時,屬性值的範圍在 0.0~1.0,然後對映到 char 資料所需的 0~255。所以可以將屬性設定為 color 0 0 1.0 0
,而不是 0 0 255 0
。tol
為 0.5 時會去除距離參考色一半色階的所有顏色(key all values within half of the chromatic distance from the reference color)。tol
為 0 時只會用精確的參考色來完成摳圖。
再次點選左側視訊中的藍色區域,然後調整 tol
屬性檢視輸出的變化。在低容差時,左圖中的一些藍屏將保留。容差值非常高時,男人臉部的部分可能會消失。
在教程 patch 中,我們通過點選不可見的物件來設定 jit.chromakey
的顏色屬性。解鎖 patch,會看到左側 jit.pwindow
上面的同心紅色方塊區域:
該區域是名為 suckah
的 Max UI 物件,可以在 interface 工具欄找到它:
suckah
物件獲取它所覆蓋的螢幕畫素的 RGB 值。當單擊物件時(patch 處於鎖定狀態),它會獲取 0.0~1.0 範圍內的浮點數值。例如,單擊視訊中的純藍色區域,suckah
會傳送 0 0 1.0
列表(suckah 的初始版本使用 0~255 範圍。如果需要,可以在 inspector 中選擇這個設定)
suckah
物件獲取 RGB 顏色列表後,用 prepend 0
在前面加上 0(增加 alpha 值到列表最前面)來設定 jit.chromakey
的顏色屬性。然後再 prepend color
併傳送給 jit.chromakey
。
Chromakey 選項
jit.chromakey
物件有附加屬性:minkey,maxkey 和 fade。當矩陣從左入口進入,jit.chromakey
基於該矩陣在內部建立一個灰度(單平面)遮罩。輸入矩陣中,在容差(tol)範圍內顏色值的單元格,將設定為遮罩中的 maxkey 屬性值(預設為 1)。容差範圍之外的區域乘以 minkey 屬性(預設為 0)。如果 minkey 和 maxkey 為 0 和 1,生成的影象在去背景的位置應該看起來是白色,而在要保留原始影象的位置看起來是黑色。
將得到的遮罩及其負片,分別乘以右矩陣和左矩陣。然後新增乘法的結果以形成合成影象。下圖說明了這個過程:
maxkey 屬性設定右邊輸出矩陣的強度,minkey 屬性設定左邊矩陣的強度。如果要反轉 minkey 和 maxkey 屬性,chromakey 將被反轉:
fade 屬性在被去除和保留的區域之間生成插值,可以生成柔化邊緣。左邊矩陣中的顏色略微超出了容差範圍,但是在參考顏色的 tol + fade 的範圍內,在原始顏色和右側矩陣對應單元格中的顏色之間插值。插值取決於 fade 值的大小,以及顏色距離容差邊界有多遠。
嘗試不同的 tol,fade,minkey,maxkey 和 color 值。觀察五個屬性如何影響不同的摳圖效果,以及 minkey 和 maxkey 值如何相互補充。
完全去除背景很困難。選取合適的 tol 和 fade 屬性值,才能確保第一個影象中的區域對第二個影象起作用。包含很多細節的影象,通常會在摳圖和保留區域之間顏色變化的區域,出現輕微的斑點。此外,單一顏色(例如藍色)基本上滿足不了去背景的需要,必須使用一系列值。但是你會發現,希望去除的顏色會出現在想要保留的區域中!平衡所有因素以獲得滿意的效果,是使用 jit.chromakey
物件最困難的部分。
小結
jit.chromakey
物件實現兩個 Jitter 物件的 chromakeying。可以使用 color 和 tol 屬性設定摳圖的顏色範圍,並用 fade,minkey 和 maxkey 值來定義兩個矩陣在合成時的工作方式。suckah
物件放置在 jit.pwindow
上方,點選即可以獲取所在位置的顏色。
- Max/MSP/Jitter 教程 01 - 什麼是矩陣?
- Max/MSP/Jitter 教程 02 - Jitter 物件的屬性
- Max/MSP/Jitter 教程 03 - 播放 QuickTime 視訊
- Max/MSP/Jitter 教程 04 - 建立矩陣
- Max/MSP/Jitter 教程 05 - 矩陣的數學運算
- Max/MSP/Jitter 教程 06 - 控制視訊播放
- Max/MSP/Jitter 教程 07 - ARGB 顏色
- Max/MSP/Jitter 教程 08 - 調整顏色
- Max/MSP/Jitter 教程 09 - 調整影象顏色
- Max/MSP/Jitter 教程 10 - 簡單混合
友情提示:獨自折騰 Max 易患上癔症……不妨入群互助
???
00 的文集
相關文章
- Max/MSP/Jitter 官方教程翻譯11 - 矩陣混合矩陣
- Max/MSP/Jitter 官方教程翻譯05 - 矩陣的數學運算矩陣
- ZooKeeper 官方教程[翻譯]
- [翻譯]CMAKE官方教程
- lxml官方入門教程(The lxml.etree Tutorial)翻譯XML
- Moya官方文件翻譯
- docker官方文件翻譯3Docker
- docker官方文件翻譯5Docker
- docker官方文件翻譯2Docker
- docker官方文件翻譯1Docker
- rabbitmq 官方文件翻譯-2MQ
- docker官方文件翻譯4Docker
- HTTPie 官方文件中文翻譯版HTTP
- Flutter-Cookbook 非官方翻譯Flutter
- BBNorm官方指導文件翻譯ORM
- 組複製官方翻譯四、MonitoringGroupReplication
- jepsen 官方文件的中文翻譯版本
- NetworkX教程中文翻譯
- PendingIntent 是個啥?官方文件描述的很到位。我給翻譯翻譯Intent
- kotlinx協程官方文件中文翻譯版本Kotlin
- ExoPlayer的使用與解析(官方文件翻譯)
- ARC186A 官方題解-ChatGPT翻譯ChatGPT
- 騰訊互動翻譯的坑爹翻譯
- voltDB官方文件第三章翻譯
- 翻譯:INSERT(已提交到MariaDB官方手冊)
- TypeScript 官方手冊翻譯計劃【十二】:類TypeScript
- Electron教程翻譯2:安裝
- logback官方文件中文翻譯第七章:FiltersFilter
- 翻譯:window function(已提交到MariaDB官方手冊)Function
- 翻譯:TRUNCATE TABLE(已提交到MariaDB官方手冊)
- 翻譯:SET Variable(已提交到MariaDB官方手冊)
- TypeScript 官方手冊翻譯計劃【十三】:模組TypeScript
- TypeScript 官方手冊翻譯計劃【一】:基礎TypeScript
- 歡迎參與 KubeVela 官方文件翻譯活動
- 批量將一個視訊新增到多個視訊中的背景,一鍵生成視訊背景
- 視訊提取圖片/圖片合成視訊ffmpeg(二十)
- [翻譯] 用 CSS 背景混合模式製作高階效果CSS模式
- [譯]記一次Kotlin官方文件翻譯的PR(內聯類)Kotlin