電腦圖像學

電腦圖像學係研究電腦圖像嘅一個電腦科學子領域。

二維圖像

點陣圖 

一幅點陣圖由若干粒像素組成。一部電腦所顯示嘅點陣圖每一幅都係由一大柞像素所組成嘅，每一粒像素都有一個坐標記住佢喺邊個位置，並且有一隻色水，隻色水係由唔同濃度嘅紅、綠、同藍結合形成，從而一齊組成一幅圖。舉個例說明，喺用紅綠藍色彩模式將一幅圖存入去佢嘅記憶體嗰陣，部電腦會記住類似
  [[207, 229, 78], [141, 159, 138], [146, 109, 81], ...]
噉嘅一系列數字，每組數字有三個數，每個最細可以係 0 最大可以係 255，第一個數代表嗰一點有幾多紅，第二個數代表嗰一點有幾多綠，而第三個數代表嗰一點有幾多藍，而成串嘢當中有  組「每組三個數」嘅數－ 就係幅圖嘅像素；最後形成一個矩陣，令到部電腦可以記住幅圖嘅樣。

一幅點陣圖嘅解像度係指幅圖有幾多粒像素，解像度愈高，幅圖就會愈精細，但同時亦都需要嘥更多嘅記憶體嚟保存。廿一世紀嘅電腦經已先進到幅幅圖像都閒閒地都有過 1,000,000 粒像素，用佢哋整嘅圖像就噉用肉眼睇望落好似冇點點噉，但係無論一幅電腦圖像幾精細都好，如果靠得夠近，係可以睇到佢由一點點組成嘅。

向量圖像 

向量圖像係相對於點陣圖嘅一種圖像記憶法。點陣圖嘅做法將一幅圖像以一大柞像素同埋「每粒像素係乜嘢色水」嘅方式嚟代表，並且要部電腦死記住每粒像素嘅色水數值。相比之下，向量圖像用嘅係一種冇咁靠死記嘅做法：喺向量圖像當中，部電腦會記住幅圖有啲乜嘢形狀同每個形狀喺乜嘢位置，仲有係幅圖每一忽係乜嘢色水，當個用家想睇幅圖像嗰時，部電腦再用呢啲資訊即場砌返幅圖出嚟。例：部電腦記住一幅向量圖像當中背景係白色，有一個紅色嘅圓形，圓形直徑係幾多幾多，圓心坐標喺邊，然後當個用家叫部電腦顯示幅圖像嗰時，部電腦就即刻按照佢所知嘅呢啲資訊即刻砌返幅圖出嚟。喺某啲情況下，向量圖像儲起上嚟比較慳記憶體，而且無論放幾大，幅圖都唔會起格。

記住啲顏色 

電腦圖像學界有研究唔同嘅方法嚟向部電腦表示一點嘅顏色。頭先提到嘅紅綠藍色彩模式係最常用嘅，幅圖每點用三個由 0 到 255 嘅數嚟表達嗰點有幾多紅幾多綠同幾多藍，但電腦圖像學界仲有第啲方法嚟向部電腦表示一點嘅顏色，例如 HSV 色彩模式噉，都係用三個數字代表一點嘅顏色，不過三個數字代表嘅唔係紅綠藍嘅濃度，而係代表色相、飽和度、同光度。有電腦圖像學方面嘅學者指出，一般人類思考一隻顏色嗰陣都係傾向諗「呢隻係乜嘢色」，而唔係諗「呢隻係幾多紅幾多綠幾多藍」，所以 HSV 色彩模式比較合乎直覺，對唔係專業做圖像嘢嘅人嚟講比較易用。

精靈圖 

精靈圖係指一啲用嚟結合埋一齊，並且產生一部大嘅景嘅二維圖像。例如係喺一隻二維嘅超級瑪利奧電子遊戲入面，個遊戲嘅程式會內含主角嘅精靈圖同埋啲怪獸嘅精靈圖，而個主角瑪利奧嘅精靈圖又會包含咗佢企喺度嗰陣嘅樣、佢行路嗰陣嘅樣、同埋佢跳嗰陣嘅樣等等。喺每一個時間點，個程式都會
接收玩家俾嘅輸入，
按照「個主角同每隻怪獸喺邊個位置，喺度做緊乜」呢樣資訊，揀應該用邊幾幅精靈圖，並且
按照每件物件嘅位置會要部電腦記住一啲三維嘅圖像。呢啲圖像會要求部電腦記住三維嘅資訊，即係長度、闊度、同高度－相比之下，二維嘅圖像淨係使部電腦記住一幅圖像長度同闊度。三維電腦圖像嘅處理會用到一啲二維圖像會用嘅技術，但又會涉及一啲二維圖像唔需要嘅技術，例如係彩現噉。

三維模型 

三維模型，或者叫「立體模型」，係指一個用數字呈現嘅三維物體。三維模型可以用自動或者手動嘅方法整：有研究者會用一啲架生掃描一件真實嘅物件，再將啲數據傳去部電腦嗰度，等部電腦計算出個三維模型嘅樣，例如個掃描器嘅感應器可以射啲波出嚟，喺每一點嗰度量度吓「啲波射出去嘅時間」同「返到個感應器度嘅時間」之間差幾遠，噉就可以知道喺每個點度件物件嘅表面離個感應器幾遠，跟手將呢個數據傳過去部電腦，就係有關件物件嘅形狀嘅數據；另一方面，研究者又有得手動噉整啲 3D 模型出嚟。

舉個簡單例子說明，以下呢段 VRML 原始碼代表咗一個喺一條好幼嘅藍色圓柱上面嘅紅色球體：

Shape {     // 整一件物體出嚟。
   geometry Cylinder {    // 設佢形狀係「圓柱體」。
      radius 0.1
      height 3.0}    // 碌圓柱嘅高度係 3.0 個單位，但係半徑得嗰 0.1 個單位－係一碌好幼嘅圓柱。
   appearance Appearance {
      material Material { diffuseColor 0.1 0.1 0.9 }     // 設佢色水係藍色。
   }
}

Transform {     // 整一件新物體
   translation 0 2.5 0     // 將佢移去第一件物體對上 2.5 單位高嘅位置。
   children [
      Shape {
         geometry Sphere { radius 1 }     // 設佢形狀係「球體」，半徑係 1 個單位。
         appearance Appearance {
            material Material { diffuseColor 1 0 0 }     // 設佢色水係紅色。
         }
      }
     ]
}
呢段碼係一個簡單嘅例子，一啲複雜啲嘅模型－好似係一個人類角色嘅立體模型－閒閒地可以有成幾千幾萬行呢啲噉嘅碼。

線框模型 

線框模型係三維模型嘅一種。呢啲模型會用類似上面嗰段 VRML 碼噉嘅源碼，話俾部電腦聽件物體有邊啲邊，每條連接住兩個喺數學上連續嘅平滑表面，又或者俾部電腦知件物體有邊啲頂點同每隻角嘅位置坐標以及邊啲角之間有邊，再俾部電腦喺要睇個模型嗰陣按某啲法則做彩現，砌個模型俾個用家睇。線框模型淨係考慮角同邊，唔似得多邊形網格噉會講埋表面嘅色水同光源等嘅資訊，所以一旦一個線框模型做咗彩現，望落會好似用鐵線幫件物體整咗個模型噉。如果喺個線框模型上加色水同光源等嘅資訊，就會變成一個完整嘅多邊形網格。即係好似噉：

一個線框模型例子：
每隻角嘅坐標

個模型有邊幾條邊

多邊形網格 

多邊形網格係完整過－即係更加接近出得街嘅完成品－線框模型嘅三維模型。呢啲模型又係會用類似上面嗰段 VRML 碼噉嘅語言，話俾部電腦聽個模型有幾多個角、每隻角嘅位置坐標、每兩個角之間有冇邊、同埋塊表面係乜嘢色水呀噉。而當個用家要睇個三維模型嗰陣，部電腦就會即場砌返個模型出嚟，再考慮個用家由乜嘢角度睇緊個模型，計出最後個平面影像應該係點嘅樣。廿一世紀開始嘅電腦運算能力勁到可以俾個用家即場改變觀察角度，即刻以肉眼睇唔到嘅速度計出由呢個新角度睇個模型會係乜樣，等個用家可以自由噉睇個模型嘅唔同面。

好似係以下呢個立方體嘅立體模型噉：

上面幅圖嘅意思係：部電腦記住咗一串數字，代表每隻角嘅坐標位置，跟住另一串數字記住每條邊喺邊兩隻角之間，最後再有一串數字記住邊啲邊之間有表面。當要用個模型嗰陣，部電腦就會睇吓個用家由乜嘢角度睇緊個模型，計出個模型由嗰個角度睇應該係點嘅樣嘅。

材質貼圖 

材質貼圖指嘅係，個圖像處理程式要加一啲仔細位、色水、或者表面材質落一個立體模型嗰度。個電腦圖像設計師喺整好咗一個立體模型之後，好多時會想個模型表面唔淨係只係得純色，而係想個模型望落似真實嘅物體，而真實嘅物體嘅表面好少可真係純色嘅，所以佢哋就會想加啲材質落個模型嗰度，令到個模型表面好似用木頭造嘅噉；佢要搵一幅二維嘅圖像返嚟，幅圖像望落似佢想要嗰款材質，然後再教部電腦將幅材質圖貼落去個模型嘅表面嗰度；成個過程可以想像成將一張有圖案嘅紙包落去一件立體物件嗰度噉。

攷 

電腦科學
電腦圖像