【教程】 MaskTools入門教程
发表于 : 2012-06-22 7:12
AviSynth作為視頻處理工具,非常重要的特性在於它是一個非線性的處理工具。非線的視頻編輯工具很多,不過非線的處理工具就很少了。如果在AviSynth裡仍然用filterA.filterB.filterC這種簡單的濾鏡堆積的話,AviSynth顯然比不上virtual dub、aviutl之類所見即所得的工具。而想要使用AviSynth非線性的處理,有兩個工具是非常重要的,spatial處理裡廣泛使用的masktools,以及temporal處理裡廣泛使用的mvtools。
雖然masktools並不算難用,使用到的原理相對來說都不算複雜,但遺憾的是對於本身不了解mask以及yuv的人來說,masktools的官方文檔並不適合入門,而目前也缺少對於masktools進行基礎介紹的文章,所以我一直想寫一篇masktools的入門教程。mvtools則略有不同。mvtools裡使用到的motion estimate算法對沒有相關專業知識的人來說並不容易理解,而這些基礎的理解程度對mvtools的實際使用有不小的影響。所以如果有時間的話必須要從最基礎的ME理論進行介紹。這種麻煩事嘛…嗯我還是回老家結(ry
下面這篇教程就是對masktools的入門級介紹。既然是入門,就不會牽扯到中高級的應用。實際上masktools如果了解基礎的話,官方文檔還是比較容易理解的。大部分人只是不熟悉其基本術語而已,一旦了解了,masktools就完全不是什麼有難度的工具了,絕大部分應用方法配合官方文檔都可以融會貫通。但是即使作為masktools的入門教程,在閱讀本文之前,還是應該確保有紮實的AviSynth語法及使用基礎,對於本文內出現的基本術語、AviSynth語法、內置濾鏡及常見的外部濾鏡應該已經熟練掌握,本文並不會過多介紹。其他基本要求只有最低限度初中水平以上的數學與英語基礎,以及對視頻相關理論的了解。可能的話,熟悉yuv顏色空間及編程相關知識會對本文的有一定的幫助。大部分情況下,我會使用實例來進行介紹。雖然對於部分不直觀的代碼配合實例會給出截圖,我還是希望在閱讀本文的同時能將所有工具都去自己實際應用一次,哪怕只是將本文的代碼直接複製出來看一遍效果,對實際理解都很有幫助。另外本文並不著力於完全替代官方文檔,即使在本文閱讀的過程中,最好還是配合官方文檔對應的函數說明部分一起查閱,因此對於具體的函數內有哪些參數,參數類型之類的,本文會從簡,以官方文檔為準。
目錄:
1. 了解Masktools
2. YUV colorspace
3. 從mt_merge到mt_lut
4. 深入淺出mt_lut(xy(z))
5. 基於mt_lut的強大工具——make/adddiff
6. mt_lut的擴展(一)——mt_lutf、mt_luts、mt_lutsx
7. 其他鄰域處理(morphologic filter)——mt_ex/inpand、mt_in/deflate
8. mt_lut的擴展(二)——mt_lutspa
9. 回歸mask——mask製作函數mt_edge與mt_motion
10. mask處理函數——hysteresis、logic、invert、binarize
11. convolution及其他mask處理技巧
12. 輔助函數——鄰域字符串生成工具
雖然masktools並不算難用,使用到的原理相對來說都不算複雜,但遺憾的是對於本身不了解mask以及yuv的人來說,masktools的官方文檔並不適合入門,而目前也缺少對於masktools進行基礎介紹的文章,所以我一直想寫一篇masktools的入門教程。mvtools則略有不同。mvtools裡使用到的motion estimate算法對沒有相關專業知識的人來說並不容易理解,而這些基礎的理解程度對mvtools的實際使用有不小的影響。所以如果有時間的話必須要從最基礎的ME理論進行介紹。這種麻煩事嘛…嗯我還是回老家結(ry
下面這篇教程就是對masktools的入門級介紹。既然是入門,就不會牽扯到中高級的應用。實際上masktools如果了解基礎的話,官方文檔還是比較容易理解的。大部分人只是不熟悉其基本術語而已,一旦了解了,masktools就完全不是什麼有難度的工具了,絕大部分應用方法配合官方文檔都可以融會貫通。但是即使作為masktools的入門教程,在閱讀本文之前,還是應該確保有紮實的AviSynth語法及使用基礎,對於本文內出現的基本術語、AviSynth語法、內置濾鏡及常見的外部濾鏡應該已經熟練掌握,本文並不會過多介紹。其他基本要求只有最低限度初中水平以上的數學與英語基礎,以及對視頻相關理論的了解。可能的話,熟悉yuv顏色空間及編程相關知識會對本文的有一定的幫助。大部分情況下,我會使用實例來進行介紹。雖然對於部分不直觀的代碼配合實例會給出截圖,我還是希望在閱讀本文的同時能將所有工具都去自己實際應用一次,哪怕只是將本文的代碼直接複製出來看一遍效果,對實際理解都很有幫助。另外本文並不著力於完全替代官方文檔,即使在本文閱讀的過程中,最好還是配合官方文檔對應的函數說明部分一起查閱,因此對於具體的函數內有哪些參數,參數類型之類的,本文會從簡,以官方文檔為準。
目錄:
1. 了解Masktools
2. YUV colorspace
3. 從mt_merge到mt_lut
4. 深入淺出mt_lut(xy(z))
5. 基於mt_lut的強大工具——make/adddiff
6. mt_lut的擴展(一)——mt_lutf、mt_luts、mt_lutsx
7. 其他鄰域處理(morphologic filter)——mt_ex/inpand、mt_in/deflate
8. mt_lut的擴展(二)——mt_lutspa
9. 回歸mask——mask製作函數mt_edge與mt_motion
10. mask處理函數——hysteresis、logic、invert、binarize
11. convolution及其他mask處理技巧
12. 輔助函數——鄰域字符串生成工具