甚至, 我們下學期要開的互動視訊遊戲製作, 也會用到 connected component 的觀念!
2009年10月23日 星期五
2009年10月16日 星期五
Week 05: 影像如何旋轉? (2)
1. 兩角和與差的三角函数公式
sin(θ1+θ2) = sinθ1 cosθ2 + cosθ1 sinθ2
sin(θ1-θ2) = sinθ1 cosθ2 - cosθ1 sinθ2
cos(θ1+θ2) = cosθ1 cosθ2 - sinθ1 sinθ2
cos(θ1-θ2) = cosθ1 cosθ2 + sinθ1 sinθ2
要推導出旋轉座標轉換公式, 必須用到上述的公式。
2. 影像旋轉演算法
輸入: 原始影像 imOriginal[][]
輸出: 旋轉後影像 imRotation[][]
a. 根據原始影像的大小(高與寬), 計算旋轉後影像的大小。
以對角線長度當作旋轉後影像之大小。
int iImageHeight; //原始影像的高
int iImageWidth; //原始影像的寬
int iImageDiagonal; //原始影像的對角長度, 旋轉後影像的高與寬
iImageDiagonal = ceil(sqrt(iImageHeight*iImageHeight+iImageWidth+iImageWidth));
b. 動態宣告大小為 iImageDiagonal * iImageDiagonal 的二維陣列
c. 計算兩張影像的旋轉中心之座標
int iOriginalCenterI,iOriginalCenterJ;
int iRotationalCenterI,iRotationalCenterJ;
iOriginalCenterI = iImageHeight / 2;
iOriginalCenterJ = iImageWidth / 2;
d. 針對旋轉後影像的每一個像素的座標, 分別計算原始影像的對應像素之座標
int iNewI, iNewsJ; //旋轉後影像, 像素 (i, j) 相對於旋轉中心的座標
iNewJ = j - iNewOriginX;
iNewI = i - iNewOriginY;
// 使用旋轉公式, 計算出旋轉前的相對座標
iOldJ = iNewI * dCosAngle - iNewJ * dSinAngle;
iOldI = iNewI * dSinAngle + iNewJ * dCosAngle;
// 還原出影像陣列的座標
iOldJ = iOldJ + iOldOriginY;
iOldI = iOldI + iOldOriginX;
// 開始搬移影像內容
ucRotationalMatrixR[i][j] = ucMatrixR[iOldI][iOldJ];
ucRotationalMatrixG[i][j] = ucMatrixG[iOldI][iOldJ];
ucRotationalMatrixB[i][j] = ucMatrixB[iOldI][iOldJ];
sin(θ1+θ2) = sinθ1 cosθ2 + cosθ1 sinθ2
sin(θ1-θ2) = sinθ1 cosθ2 - cosθ1 sinθ2
cos(θ1+θ2) = cosθ1 cosθ2 - sinθ1 sinθ2
cos(θ1-θ2) = cosθ1 cosθ2 + sinθ1 sinθ2
要推導出旋轉座標轉換公式, 必須用到上述的公式。
2. 影像旋轉演算法
輸入: 原始影像 imOriginal[][]
輸出: 旋轉後影像 imRotation[][]
a. 根據原始影像的大小(高與寬), 計算旋轉後影像的大小。
以對角線長度當作旋轉後影像之大小。
int iImageHeight; //原始影像的高
int iImageWidth; //原始影像的寬
int iImageDiagonal; //原始影像的對角長度, 旋轉後影像的高與寬
iImageDiagonal = ceil(sqrt(iImageHeight*iImageHeight+iImageWidth+iImageWidth));
b. 動態宣告大小為 iImageDiagonal * iImageDiagonal 的二維陣列
c. 計算兩張影像的旋轉中心之座標
int iOriginalCenterI,iOriginalCenterJ;
int iRotationalCenterI,iRotationalCenterJ;
iOriginalCenterI = iImageHeight / 2;
iOriginalCenterJ = iImageWidth / 2;
d. 針對旋轉後影像的每一個像素的座標, 分別計算原始影像的對應像素之座標
int iNewI, iNewsJ; //旋轉後影像, 像素 (i, j) 相對於旋轉中心的座標
iNewJ = j - iNewOriginX;
iNewI = i - iNewOriginY;
// 使用旋轉公式, 計算出旋轉前的相對座標
iOldJ = iNewI * dCosAngle - iNewJ * dSinAngle;
iOldI = iNewI * dSinAngle + iNewJ * dCosAngle;
// 還原出影像陣列的座標
iOldJ = iOldJ + iOldOriginY;
iOldI = iOldI + iOldOriginX;
// 開始搬移影像內容
ucRotationalMatrixR[i][j] = ucMatrixR[iOldI][iOldJ];
ucRotationalMatrixG[i][j] = ucMatrixG[iOldI][iOldJ];
ucRotationalMatrixB[i][j] = ucMatrixB[iOldI][iOldJ];
2009年10月9日 星期五
2009年10月2日 星期五
2009年9月28日 星期一
Week 02: 如何開啟並讀取一張影像?
1. 本週的程式示範是如何開啟一張影像?
2. 如果同學從來沒有使用過 C++ Builder, 請務必準備一本 C++ Builder 的相關使用手冊, 這樣會對你撰寫本課程作業有很大的助益。我們推薦的是:

3. 本課程第一個作業是: 開啟並讀取一張影像到二維陣列中。
作業參考網頁
林詣棋學長的優良作業
注意: 如果是一張彩色影像, 那每個像素就會有紅, 綠, 藍三個顏色的資料。在這個資料中, 用 0 ~ 255 值(unsigned char) 來告訴你紅色的成分有多紅, 綠色的成分有多綠, 藍色的成分有多藍。因此, 你勢必要動態宣告三個二維陣列來儲存這些色彩資料。
4. 本週課本指定閱讀範圍:
從第一章起到第二章第三節 (pp. 1 - 49)
2. 如果同學從來沒有使用過 C++ Builder, 請務必準備一本 C++ Builder 的相關使用手冊, 這樣會對你撰寫本課程作業有很大的助益。我們推薦的是:
3. 本課程第一個作業是: 開啟並讀取一張影像到二維陣列中。
作業參考網頁
林詣棋學長的優良作業
注意: 如果是一張彩色影像, 那每個像素就會有紅, 綠, 藍三個顏色的資料。在這個資料中, 用 0 ~ 255 值(unsigned char) 來告訴你紅色的成分有多紅, 綠色的成分有多綠, 藍色的成分有多藍。因此, 你勢必要動態宣告三個二維陣列來儲存這些色彩資料。
4. 本週課本指定閱讀範圍:
從第一章起到第二章第三節 (pp. 1 - 49)
2009年9月18日 星期五
Week 01: 本課程的評分原則
1. 本課程 98 學年度的評分原則如下:
a. 影像處理程式作業共 7 次 ( 70% )
b. 學習態度 ( 30% )
點名未到者(包含遲到者), 一次扣 1 分, 以 10 分為限。
上課睡覺 or 玩電玩 (電腦遊戲, 掌上遊戲機, 手機遊戲) 一次扣一分。
上課學習認真, 互動良好者, 一次加 1 分, 以 20 分為限。
所以原則上, 每位同學目前有 10 分的基本分。
2. 作業繳交部落格 Homework Show @ IPC
請修課同學在本篇文章中, 留下學號與 email , 我會發共同作者的邀請信給你, 讓你有權限可以在作業部落格繳交作業。
3. 教科書: 數位影像處理
4. 指紋影像處理論文
5. 本週之程式練習題
a. 如何撰寫影像色彩 RGB 的 直方圖

b. 如何找到一張影像中最亮的一點
6. 下課上課時請攜帶下列物品:
a. 教科書 or 費用
b. 自己指紋的 bmp 檔 ( 高寬各約512 )
c. 指紋影像處理之論文
a. 影像處理程式作業共 7 次 ( 70% )
b. 學習態度 ( 30% )
點名未到者(包含遲到者), 一次扣 1 分, 以 10 分為限。
上課睡覺 or 玩電玩 (電腦遊戲, 掌上遊戲機, 手機遊戲) 一次扣一分。
上課學習認真, 互動良好者, 一次加 1 分, 以 20 分為限。
所以原則上, 每位同學目前有 10 分的基本分。
2. 作業繳交部落格 Homework Show @ IPC
請修課同學在本篇文章中, 留下學號與 email , 我會發共同作者的邀請信給你, 讓你有權限可以在作業部落格繳交作業。
3. 教科書: 數位影像處理
4. 指紋影像處理論文
5. 本週之程式練習題
a. 如何撰寫影像色彩 RGB 的 直方圖
b. 如何找到一張影像中最亮的一點
6. 下課上課時請攜帶下列物品:
a. 教科書 or 費用
b. 自己指紋的 bmp 檔 ( 高寬各約512 )
c. 指紋影像處理之論文
2009年9月14日 星期一
教科書: 數位影像處理
這是 98 學年度上學期的影像處理選修課的教科書!

原著: Rafael C. Gonzales, Richard E. Woods
譯者: 繆紹綱 教授 (中原大學電子系)
ISBN: 978-986-6534-10-2 (aNobii)
出版: 台灣培生教育出版股份有限公司
發行: 普林斯頓國際有限公司
代理: 高立圖書有限公司
聯絡電話: (02)2290-0318 分機 235 蔡小姐
定價: 880 元 (團購價: 740 元)
本書特色:
♦ 空間域與頻率域影像處理的全新探討方式。
♦ 新增模糊集合及其在影像處理應用的討論。
♦ 新增電腦斷層掃描的章節。
♦ 小波轉換章節的重大修訂。
♦ 資料壓縮章節的全新改版,包括新的壓縮技術、數位視訊壓縮標準以及浮水印。
♦ 形態學影像處理的更深入討論。
♦ 新加入的邊緣檢測方法,包括 Marr-Hildreth 演算法和 Canny 演算法。
♦ 加入超過 400 張新影像、超過 200 個線狀圖和表格以及 80 個以上的新習題。
♦ 對於複雜的處理程序,以逐步的演算法形式整理出。
第一章 緒論
第二章 數位影像基礎
第三章 強度轉換與空間濾波
第四章 頻率域上的濾波
第五章 影像復原與重建
第六章 彩色影像處理
第七章 小波和多解析度處理
第八章 影像壓縮
第九章 形態學影像處理
第十章 影像分割
第十一章 表示與描述
第十二章 物體辨識
影像壓縮用的編碼表
參考文獻
英中文索引
請要參與團購的修課同學, 留下學號, 姓名, 9/25 日即可在課堂上繳錢領書。
原著: Rafael C. Gonzales, Richard E. Woods
譯者: 繆紹綱 教授 (中原大學電子系)
ISBN: 978-986-6534-10-2 (aNobii)
出版: 台灣培生教育出版股份有限公司
發行: 普林斯頓國際有限公司
代理: 高立圖書有限公司
聯絡電話: (02)2290-0318 分機 235 蔡小姐
定價: 880 元 (團購價: 740 元)
本書特色:
♦ 空間域與頻率域影像處理的全新探討方式。
♦ 新增模糊集合及其在影像處理應用的討論。
♦ 新增電腦斷層掃描的章節。
♦ 小波轉換章節的重大修訂。
♦ 資料壓縮章節的全新改版,包括新的壓縮技術、數位視訊壓縮標準以及浮水印。
♦ 形態學影像處理的更深入討論。
♦ 新加入的邊緣檢測方法,包括 Marr-Hildreth 演算法和 Canny 演算法。
♦ 加入超過 400 張新影像、超過 200 個線狀圖和表格以及 80 個以上的新習題。
♦ 對於複雜的處理程序,以逐步的演算法形式整理出。
第一章 緒論
第二章 數位影像基礎
第三章 強度轉換與空間濾波
第四章 頻率域上的濾波
第五章 影像復原與重建
第六章 彩色影像處理
第七章 小波和多解析度處理
第八章 影像壓縮
第九章 形態學影像處理
第十章 影像分割
第十一章 表示與描述
第十二章 物體辨識
影像壓縮用的編碼表
參考文獻
英中文索引
請要參與團購的修課同學, 留下學號, 姓名, 9/25 日即可在課堂上繳錢領書。
訂閱:
文章 (Atom)