moviepy音視頻剪輯:mask clip遮罩剪輯、遮片、蒙版的作用以及其包含的構成內容

☞ ░ 前往老猿Python博文目錄

在閱讀moviepy的類ImageClip的構造方法代碼時,對於其中涉及遮罩的處理沒有理解,到處查找遮罩的資料沒有查到,最後到moviepy的官網上嘗試了一下,終於有所收穫。

下面結合官網材料結合本人的理解介紹一下:

  1. mask:有人譯爲遮罩、遮片、蒙版,而這三個詞在不同的剪輯處理或圖像處理軟件中可能有不同含義,在此不詳細介紹,爲了連貫和一致性,老猿還是將其翻譯爲遮罩;
  2. mask遮罩是一種特殊的視頻剪輯,它指示當帶遮罩的視頻剪輯與其他視頻剪輯合成時,帶遮罩的剪輯對應幀哪些像素可見、哪些不可見。mask還可以在將剪輯導出爲GIF或PNG圖像時,用於定義圖像的透明度;
  3. 遮罩和標準剪輯之間的根本區別在於,標準剪輯輸出的幀每像素包含RGB的3個0-255之間的值,而遮罩對應剪輯每像素只有一個0-1之間的值(1表示完全可見的像素,0表示透明的像素),實際上該值是與灰度類似的概念(關於灰度請參考《圖像處理術語解釋:灰度、色相、飽和度、亮度、明度、阿爾法通道、HSL、HSV、RGBA、ARGB和PRGBA以及Premultiplied Alpha(Alpha預乘)等基礎概念詳解》)。這也可以大致解釋《moviepy音視頻剪輯:視頻剪輯基類VideoClip詳解》介紹to_RGB方法時的疑問“將剪輯的幀像素YUV各乘以255,再將每個像素的YUV三元組變成一個九元組”的原因;
  4. 將RGB或RGBA對應的視頻和圖像轉換爲遮罩時,如果它們不是灰色的(灰色即RGB三者值相等),moviepy將自動將其轉換爲灰色的,轉換時取像素的RGB或RGBA中的一個值(具體取值時,對於RGBA格式的圖像或對應幀,取alpha通道層的值,對於RGB格式圖像或幀,則默認取R值,也可以根據參數決定取G或B的值)除以255作爲mask對應像素的值;
  5. 任何剪輯通過 to_mask()方法都可以轉換爲遮罩,而一個遮罩可以使用to_RGB()方法轉換爲RGB視頻剪輯;
  6. mask遮罩可以將標準視頻剪輯一樣進行剪輯和輸出以及進行快照。

因此綜上所述,mask遮罩是一種只有灰度值的像素構成的幀組成的剪輯,其作用就是在帶mask的剪輯與其他剪輯合成時確認是否顯示帶mask剪輯的對應像素。

更多moviepy的介紹請參考《PyQt+moviepy音視頻剪輯實戰文章目錄》或《專欄:使用PyQt開發圖形界面Python應用》。

跟老猿學Python、學5G!

☞ ░ 前往老猿Python博文目錄

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章