Alpha 通道的概念與功能

RGBA
??????? 采用的顏色是RGB,可以屬于任何一種RGB顏色空間,但是Catmull和Smith在1971至1972年間提出了這個不可或缺的alpha數值,使得alpha渲染和alpha合成變得可能。提出者以alpha來命名是源于經典的線性插值方程αA + (1-α)B所用的就是這個希臘字母。
??????? alpha通道一般用作不透明度參數。如果一個像素的alpha通道數值為0%,那它就是完全透明的(也就是看不見的),而數值為100%則意味著一個完全不透明的像素(傳統的數字圖像)。在0%和100%之間的值則使得像素可以透過背景顯示出來,就像透過玻璃(半透明性),這種效果是簡單的二元透明性(透明或不透明)做不到的。它使數碼合成變得容易。

??????? alpha通道值可以用百分比、整數或者像RGB參數那樣用0到1的實數表示。有時它也被寫成ARGB(像RGBA一樣,但是第一個數據是alpha),是Macromedia的產品使用的術語。比如,0x80FFFF00是50%透明的黃色,因為所有的參數都在0到255的范圍內表示。0x80是128,大約是255的一半。PNG是一種使用RGBA的圖像格式。

擴展RGBA理解編輯
??????? 我對Alpha通道的認識還是主要局限于應用和操作,或者說基于軟件,浮于表面。直至今天看到Alvy Ray Smith的《Alpha and the history of digital compositing》一文,才算比較深入的理解了Alpha通道及其相關概念。要理解Alpha通道,還要追溯其產生和應用的淵源,只有這樣,才可更深層的理解Alpha通道。否則如果舍本逐末,必然導致一知半解,這也是學習其他知識時的大忌。
?????? 看過Alvy Ray Smith的這篇論文,我才知道,原來Alpha通道的產生是伴隨著盧卡斯電影工作室的發展而誕生的,而Smith本人就是Alpha通道的發明人之一。所以Alpha通道的誕生和數字影視合成密不可分。

?????? 下面我將論文中有關Alpha通道的主要知識點概括一下。
?????? 要理解Alpha通道,首先來看看他們為何要發明Alpha通道這一概念。在電影工業中,常常需要前景和背景合成,無論是傳統膠片電影還是現在的數字電影,合成都是必須的。那么在數字電影出現之前,從事傳統膠片電影制作和合成的人們積累了大量的傳統合成經驗,例如藍屏、Matte Creation等。
?????? 隨著計算機圖形學的發展,后來出現了數字電影。這樣人們開始通過電腦來模擬傳統電影合成的一些技巧,如藍屏、Matte、Mask等,但這些并沒有為數字合成真正的作出貢獻,只不過是將化學、光學操作轉換為計算機計算而已,雖說可以比傳統的合成操作有所提高,但基本概念沒有改變。
?????? 首先區分一下Matte和Mask。可以這么說,Mask是Matte的一種特例。在Mask里,只有兩種透明度,1和0,即完全透明和完全不透明。Mask的產生是為了去除合成時的鋸齒而設計的,但鋸齒沒了,不過合成痕跡太明顯,顯得很不真實。而Matte則可以包含很多層次的透明度,圖像中每個像素都可以有自己的透明度,這些像素的透明度有著豐富的層級,可以合成、融合。
?????? Alpha通道的產生是對數字合成的一大貢獻。為什么這么說呢?在傳統電影合成操作中,為了制作Matte,通常需要兩盤獨立的膠片,一盤記錄運動影像,一盤則記錄Matte信息。合成時,需要背景膠片、前景膠片、Matte膠片。也就是說Matte信息和圖像信息獨立存在。而Catmull / Smith小組開發的Alpha通道概念就方便了很多,而且可以讓任何人使用Alpha通道。他們首次推出RGBA概念,即將Alpha通道和RGB通道并列,并一同存儲在圖像信息中。這樣隨著一幅圖像的建立(這里說的是CGI),其Alpha通道也會隨之產生或者存儲。這樣Alpha通道其實是Matte的概念,但它和圖像信息一并存儲和移動,這樣Matte信息就變成影像的一部分,而不像傳統電影合成時,需要單獨的一盤膠片提供Matte信息,這也是RGBA的優勢所在。有了RGBA的概念,數字合成變得更加輕松容易。當然為了提高合成效率,后來Catmull / Smith小組又在Integral Alpha 的基礎上提出Premultiplied Alpha,這里就不再細說了



本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/255606.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/255606.shtml
英文地址,請注明出處:http://en.pswp.cn/news/255606.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【ValueError: Target is multiclass but average=‘binary‘. Please choose another average setting, one 】

完整報錯為:ValueError: Target is multiclass but averagebinary. Please choose another average setting, one of [None, micro, macro, weighted]. 解決方法 對于多分類任務,將 from sklearn.metrics import f1_score f1_score(y_test, y_pred) 改為…

debian apt-get聯網安裝mysql服務

安裝mysql和卸載mysql 1.安裝數據庫:sudo apt-get install mysql-server 安裝過程中需要設置密碼。 2.安裝客戶端:sudo apt-get install mysql-client 3.登錄MySQL:mysql -u root -p 4.配置文件:/etc/mysql/my.cnf a.設…

【資料下載區】【iCore、 iCore2相關資料】更新日期2017/1/11

【新產品發布】【iCore2 ARM / FPGA 雙核心板】 【iCore系列核心板視頻教程】之 SDRAM 讀寫實驗 【iCore雙核心組合是開發板例程】【uCGUI 例程及代碼包下載】【iCore雙核心組合是開發板例程】【12個 verilog 中級實驗例程發布】【iCore、iCore2 雙核心板】EPCS 實驗&#xff0…

圖像數據格式基礎知識

JPEG文件格式簡單分析 作者:小爽 摘要: 這篇文章大體上介紹了JPEG文件的結構信息以及它的壓縮算法和編碼方式。使讀者能夠對JPEG文件格式有大體上的了解。為讀者進一步進行學習JPEG文件壓縮做好準備 關鍵字:十六進制,段格式&am…

SQL語句:從一個表里按年份統計條目數

比如一個數據表名稱叫deploypool, 需要知道里面每一年的記錄數, 而add_date字段里有增加記錄時的時間, 那么語句如下: SELECT EXTRACT(YEAR from add_date),COUNT(id) FROM deploypool GROUP BY EXTRACT(YEAR from add_date);

為什么需要架構圖,怎么畫?

Technorati 標簽: 架構圖,架構,交流,布局不知不覺中做架構師也已經4年了,最初的感覺只是一個名號,不再把代碼作為強制的任務,后來開始慢慢的轉變工作內容。畫圖,成為了我的主要工作。我可能不是每天都在寫代碼,但卻是每…

Jenkins構建時間Poll Scm的設置(常用設置)

每15分鐘構建一次:H/15 * * * * 或*/5 * * * * 每天8點構建一次:0 8 * * * 每天8點~17點,兩小時構建一次:0 8-17/2 * * * 周一到周五,8點~17點,兩小時構建一次:0 8-17/2 * * 1-5 每月1號、15號…

圖像格式基礎

所謂位映像,即是指一個二維的像素矩陣,而位圖就是采用位映像方法顯示和存儲圖像。一幅圖像的顯示就是將圖像的像素映射到屏幕的像素上并顯示一定的顏色。當一幅圖形的像素由彩色表示時就是我們通常所說的彩色圖像了。 由于數字圖像可以表示為矩陣…

aop理解

1.切面(Aspects)常常通過通知(advice)、切點(pointcuts)和織入點(join points)來描述 2.通知(advice)有5種 Before——前置通知,在調用目標方法之…

Php 與 Json

PHP與JSON 在PHP中存在兩個與JSON相關的函數: json_encode($array或$object)函數:把一個數組或對象轉化為JSON格式的字符串 json_decode($json,$flag)函數:把一個JSON格式的字符串轉化為數組或對象 $flag :true,代表轉…

docker supervisor + compose

一: Supervisor Docker 容器在啟動的時候開啟單個進程,比如,一個 ssh 或者 apache 的 daemon 服務。但我們經常需要在一個機器上開啟多個服務,這可以有很多方法,最簡單的就是把多個啟動命令放到一個啟動腳本里面…

AngularJS(1)——入門學習

AngularJs相關概念 在w3schools中針對AngularJs的介紹為: AngularJS extends HTML with new attributes. AngularJS is perfect for Single Page Applications (SPAs). ProAuditObject ProAuditObj1 new ProAuditObject(); ProAuditObj1.setLproid(proId); Pr…

C# 字符,字符串和文本處理。

1. 字符: 在.net中 字符是表示成16為Unicode代碼值。每個字符都是System.Char結構(一個值類型)的實例。 public class StringTempte{public static void GetChar(){double d;d char.GetNumericValue(\u0033);Console.WriteLine(d.ToString()…

opencv2.2.0源代碼(include文件)分析

由于openCV2.2.0源文件很龐大,這里我只分析openCV2.2.0文件組織結構的各個模塊的include文件(重點分析各個模塊下引用的算法和實現的功能),而不是src文件。這里分析各個模塊有助于更好的從整體把握和理解openCV2.2.0。這里只是自己…

【pyqt5學習】——tableWidget學習

設置單元格列寬 self.tableWidget.setColumnWidth(0,200) 設置第一行和表頭之間的表格線 self.tableWidget.horizontalHeader().setStyleSheet("QHeaderView::section{background:skyblue;color: black;}")

SUSE團隊已將重心偏向GCC 7

2019獨角獸企業重金招聘Python工程師標準>>> SUSE的Andreas Jaeger在博客中發表了一篇關于SUSE Linux Enterprise Server 12操作系統更新工具鏈以及它所帶來的新開發工具的博文。文章指出,隨著GNU Compiler Collection 7的發布,GCC團隊為開發…

eclipse-連接TFS錯誤 the server to respond with a valid http response解決方法

解決辦法 如果普通憑證有多個,則將普通憑證給刪除。 轉載于:https://www.cnblogs.com/nidongde/p/6277243.html

Mysql源碼安裝

首先去http://dev.mysql.com/downloads/mysql/5.6.html 下載mysql的源代碼,記住是source code,別下別的版本 1.安裝依賴的包 yum -y install cmake gcc-c bison ncurses ncurses-devel 2.創建mysql的安裝目錄及數據庫存放目錄 mkdir -p /usr/local/mysql…

PDB文件:每個開發人員都必須知道的

一 什么是PDB文件 大部分的開發人員應該都知道PDB文件是用來幫助軟件的調試的。但是他究竟是如何工作的呢,我們可能并不熟悉。本文描述了PDB文件的存儲和內容。同時還描 述了debugger如何找到binay相應的PDB文件,以及debugger如何找到與binay對應的源代碼…

【pyqt5學習】——graphicView顯示opencv圖像

imgpath "result.jpg"img cv2.imread(imgpath) # 讀取圖像img cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # 轉換圖像通道x img.shape[1] # 獲取圖像大小y img.shape[0]self.zoomscale 1 # 圖片放縮尺度frame QImage(img, x, y, x * 3, QImage.Format_RGB888)…