星期二, 3月 10, 2009

Week 4: 取得視訊裝置驅動程式的資訊與效能

1. WebCam Programming

 a. 取得視訊裝置驅動程式的資訊

 b. 取得視訊裝置驅動程式的效能

2. 範例程式 SampleProgram2.txt 說明:

 a. 取得裝置內容代碼 GetDC

 在我們所設計的靜態影像擷取之實驗中, 我們在範例程式 SampleProgram2.txt 使用了以下的 GetDC 指令,

  hDC = GetDC(pnlCapture->Handle);

  這行指令的目的就是取得 顯示裝置內容 (display device context) 的代碼, 由於我們範例程式 SampleProgram1.txt 是將視訊顯示在 pnlCapture 物件中, 我們使用 GetDC 指令來獲知這個顯示裝置的代碼, 因此 pnlCapture->Handle 為 GetDC 函式的輸入參數。

3. 如何計算兩個色彩 TColor type 變數之間的差異?

  假設, 我們宣告了兩個變數, 如下:

  TColor tcColor1, tcColor2;
 
  我們該如何計算 tcColor1 與 tcColor2 之間的距離呢?

  TColor 資料型態為長度 4 個位元組的 enum (列舉) 資料型態, 除了最高位元組保留沒用之外, 接著由高至低依序為藍、綠、紅的色彩值。使用 GetBValue, GetGValue, GetRValue, 三個函數, 分別可以取出藍、綠、紅的色彩值。

  假設 tcColor1 = 0x00ff0000;
  ucB1 = GetBValue(tcColor1);
  那麼 ucB1 的值就是 0xff = 255;

  如果我們將一個色彩值視為一個 (R, G, B) 的三維向量, 那每一個色彩值就是三度空間中的一個點, 要計算兩個色彩值之間的差異, 就可以計算這兩個色彩值在三度色彩空間中的距離, 換句話說, 就是計算空間中兩點的直線距離, 也就是 歐基里德距離 ( Euclidean Distance )。  

  範例程式 SampleProgram3.txt
 

沒有留言: