VIDEO AI視覺
最強入門邁向頂尖高手
王者歸來
【書籍內容】
◎ 台灣作者第一本「AI視覺」專書!五大最強亮點
✔1. AI 影像技術全解析,從入門到頂尖高手
✔2. 影像不只是影像,讓 AI 賦予它智慧與靈魂
✔3. 數學、演算法、函數與Python程式,三大學習核心,建立的AI影像專案
✔4. AI 影像應用無極限,打造你的專屬智慧影像系統
✔5. 最完整 AI 視覺學習資源,帶你進入與設計 AI 影像時代
◎ AI視覺最強入門,從新手到頂尖高手!
在 AI 影像技術的浪潮下,你是否曾想過,如何讓影像處理不只是單純的圖像變換,而是賦予它智慧,讓程式「看見」並理解世界?本書 《AI視覺最強入門邁向頂尖高手》 將帶你從零開始,一步步掌握 AI 視覺的核心技術,讓你的影像程式不再只是空洞的代碼,而是充滿靈魂與創意的智慧應用!
◎ 這本書,適合誰?
★ Python & AI 初學者:從影像基礎開始,循序漸進學習。
★ 影像處理 & OpenCV 愛好者:探索影像創意與高級應用。
★ 開發者 & 工程師:打造 AI 監控、人臉識別、物件追蹤專案。
★ 學生 & 研究人員:數學 + 演算法 + OpenCV,全方位掌握 AI 視覺技術。
◎ AI 影像技術,從基礎到進階
★ 影像處理基礎:影像讀取、色彩空間(BGR、RGB、HSV)、影像儲存與計算。
★ 影像創意與特效:數位浮水印、動態影像(GIF、MP4)、藝術畫作設計。
★ 影像增強與變換:圖像去霧、濾波降噪、傅立葉變換、直方圖對比度增強。
★ AI 影像識別應用:手寫數字辨識、人臉偵測、車牌識別、醫學影像分析。
★ AI 監控與自動追蹤:動態車道偵測、AI 監控系統、模板匹配物件搜尋。
◎ 為什麼選擇這本書?
★ 獨家「三步驟」學習法:
★ 數學原理 → 演算法邏輯 → Python x OpenCV x MediaPipe 實作,讓你學得深入又靈活應用!
★ 從基礎到高階 AI 視覺應用,完整解構影像處理技術!
★ 結合 OpenCV x MediaPipe x Python,打造創新影像應用專案!
◎ AI 影像技術,開啟無限可能!
影像處理與 AI 的結合,正顛覆我們的世界。無論是攝影特效、醫學影像、智慧監控還是自動駕駛,AI 視覺技術都是未來不可或缺的核心技能。現在,就是你踏入這個領域的最佳時機!
☆立即入手《AI視覺最強入門邁向頂尖高手》,解鎖影像處理的無限可能,讓你的程式擁有真正的智慧與創意!☆
作者簡介:
洪錦魁 2023年和2024年連續2年獲選博客來10大暢銷華文作家,多年來唯一電腦書籍作者獲選,也是一位跨越電腦作業系統與科技時代的電腦專家,著作等身的作家,下列是他在各時期的代表作品。 ◇ DOS 時代:「IBM PC 組合語言、Basic、C、C++、Pascal、資料結構」。 ◇ Windows 時代:「Windows Programming 使用 C、Visual Basic」。 ◇ Internet 時代:「網頁設計使用 HTML」。 ◇ 大數據時代:「R 語言邁向 Big Data 之路」。 ◇ AI 時代:「機器學習 Python 實作、AI視覺」。 ◇ 通用AI時代:「ChatGPT、Copilot、無料AI、AI(職場、行銷、影片、賺錢術)」。 作品曾被翻譯為簡體中文、馬來西亞文,英文,近年來作品則是在北京清華大學和台灣深智同步發行: 1:C、Java、Python、C#、R 最強入門邁向頂尖高手之路王者歸來 2:Python 網路爬蟲/ 影像創意/ 演算法邏輯思維/ 資料視覺化 - 王者歸來 3:網頁設計HTML+CSS+JavaScript+jQuery+Bootstrap+Google Maps 王者歸來 4:機器學習基礎數學、微積分、真實數據、專題Python實作王者歸來 5:Excel 完整學習、Excel 函數庫、AI 助攻學Excel VBA 應用王者歸來 6:Python x AI 辦公室自動化之路 7:Power BI 最強入門 – AI 視覺化+ 智慧決策+ 雲端分享王者歸來 8:無料AI、AI 職場、AI 行銷、AI 繪圖、AI 創意影片的作者 他的多本著作皆曾登上天瓏、博客來、Momo 電腦書類,不同時期暢銷排行榜第1 名,他的著作特色是,所有程式語法或是功能解說會依特性分類,同時以實用的程式範例做說明,不賣弄學問,讓整本書淺顯易懂,讀者可以由他的著作事半功倍輕鬆掌握相關知識。
作者序
在數位時代快速演進的浪潮中,「AI視覺」已從過往的技術領域,躍升為改變人類生活、工作與創作方式的關鍵力量。從手機拍照的即時濾鏡、臉部辨識解鎖,到自動駕駛車輛的車道偵測、攝影機偵測臉部或是我們的肢體動作,影像處理與人工智慧的結合,正在以驚人的速度改寫我們所熟知的世界。 多次與教育界的朋友聊天,一致感覺目前國內缺乏這方面完整敘述的書籍,這也是筆者撰寫這本書的動力。而這本《AI視覺最強入門邁向頂尖高手之路王者歸來》正是為了幫助更多人踏入並精進這一領域而撰寫。這本書籍雖是用「AI視覺」為標題,但是採用從認識影像原理說起,然後介紹影像創意、動態影像(GIF、MP4或AVI)與AI視覺。 其實一幅影像要做分析,讓電腦認知影像本質,牽涉許多複雜的數學運算,所幸OpenCV已經將這些複雜的數學運算封裝在一個個的函數內,讓整個學習變的簡化與容易許多。然而學習一個知識如果只是會呼叫函數,不了解函數內部數學原理,所設計的程式只是空洞沒有靈魂的程式碼,為此筆者在撰寫這本書除了採用當下最熱門的Python程式語言,同時採用3個步驟說明。 1:數學原理。 2:演算法邏輯流程。 3:套用OpenCV和MediaPipe模組函數講解影像創意與AI視覺的實例。 當讀者遵循這步驟學習時,相信所設計的物件就是一個帶有靈魂與智慧的程式碼了,本書特色與內容如下: ◆完整解說操作OpenCV需要的Numpy知識 ◆影像讀取、輸出與儲存 ◆認識色彩空間BGR、RGB、HSV與平滑色彩技術 ◆建立藝術畫作、閃爍的星空 ◆影像計算與影像的位元運算 ◆重複曝光、負片影像技術 ◆影像加密與解密 ◆建立靜態與動態影像、打破OpenCV限制建立中文字輸出函數 ◆設計GIF、MP4與聚光燈視角(Spotlight View)影片設計 ◆動態閾值展示影像處理過程 ◆數位情報員、深藏在影像的情報秘密 ◆數位浮水印、版權所有翻譯必究 ◆影像幾何變換、翻轉、仿射、透視、重映射與創作波浪效果動畫 ◆影像遮罩與影像濾波器 ◆認識卷積 ◆認識與刪除影像雜質 ◆數學形態學、腐蝕、膨脹、開運算、閉運算、禮帽運算、黑帽運算 ◆從影像梯度到內部圖形的邊緣偵測 ◆影像金字塔 – 老照片的修復 ◆影像輪廓特徵與匹配 – 建立創意字型 ◆輪廓的擬合、凸包與幾何測試 – 輪廓用動畫展示 ◆醫學應用器官影像的徵 – 用動畫展示 ◆霍夫變換(Hough Transform)與直線檢測 ◆從靜態圖片駕駛車道檢測技術到動態車道檢測影片 ◆直方圖、增強影像對比度、修復太曝或太黑影像、去霧處理 ◆聚光效果的影像增強技術 ◆模板匹配、找尋距離最近的機場、找尋某區域高山數量 ◆傅立葉變換的方法與意義、空間域與頻率域的切換 ◆傅立葉變換 – 清晰前景與夢幻背景影像設計 ◆分水嶺演算法執行複雜圖像,例如:車道與人群分割 ◆前景影像擷取 – 模糊與更換背景 ◆影像或舊照片修復 – 搶救蒙娜麗莎的微笑 ◆辨識手寫數字 ◆OpenCV的攝影功能、活用拍照與錄影 ◆應用OpenCV內建的哈爾(Haar)特徵階層式分配器 ◆偵測人臉、身體、眼睛、貓臉、俄羅斯車牌 ◆設計自己的哈爾爾偵測分配器、影用在偵測台灣汽車車牌 ◆人臉辨識原理與應用 – 攝影機與人臉辨識專題 ◆專題實作AI監控系統設計 ◆執行車牌辨識 ◆MediaPipe模組剪刀、石頭與布的專題,這是AI與人機互動的實作 撰寫這本書的初衷,在於希望讀者不僅能夠「學會」各種影像處理與AI視覺技術,更能透過這些案例實踐與程式碼範例,激發屬於自己的想像與創造力。每個章節都嘗試在理論、程式示例與實際應用之間取得平衡,讓初學者能夠無痛入門,也讓已具備一定基礎的工程師和設計師能夠進一步精進並開發更具創意的專案。 願本書能陪伴你在AI視覺的道路上穩健成長,從入門邁向頂尖高手,最終以王者之姿歸來,將創意與技術的火花帶到日常生活與工作領域,推動更智慧、更美好的未來。編著本書雖力求完美,但是學經歷不足,謬誤難免,尚祈讀者不吝指正。 洪錦魁2025/02/15 jiinkwei@me.com 教學資源說明 教學資源有教學投影片、本書實例與習題解答,內容超過1500頁。 如果您是學校老師同時使用本書教學,歡迎與本公司聯繫,本公司將提供教學投影片。請老師聯繫時提供任教學校、科系、Email、和手機號碼,以方便深智數位股份有限公司業務單位協助您。 臉書粉絲團 歡迎加入:王者歸來電腦專業圖書系列 歡迎加入:MQTT與AIoT整合應用 歡迎加入:iCoding程式語言讀書會(Python, Java, C, C++, C#, JavaScript, 大數據, 人工智慧等不限),讀者可以不定期獲得本書籍和作者相關訊息 歡迎加入:穩健精實AI技術手作坊 讀者資源說明 請至本公司網頁https://deepwisdom.com.tw下載本書程式實例與習題所需的影像素材檔案。
在數位時代快速演進的浪潮中,「AI視覺」已從過往的技術領域,躍升為改變人類生活、工作與創作方式的關鍵力量。從手機拍照的即時濾鏡、臉部辨識解鎖,到自動駕駛車輛的車道偵測、攝影機偵測臉部或是我們的肢體動作,影像處理與人工智慧的結合,正在以驚人的速度改寫我們所熟知的世界。 多次與教育界的朋友聊天,一致感覺目前國內缺乏這方面完整敘述的書籍,這也是筆者撰寫這本書的動力。而這本《AI視覺最強入門邁向頂尖高手之路王者歸來》正是為了幫助更多人踏入並精進這一領域而撰寫。這本書籍雖是用「AI視覺」為標題,但是採用從認識影...
目錄
第1章影像的讀取、顯示與儲存 1-0 建議閱讀書籍 1-1 程式導入OpenCV 模組 1-1-1 安裝主要模組 1-1-2 擴展模組安裝 1-1-3 導入模組 1-1-4 OpenCV 版本 1-2 讀取影像檔案 1-2-1 影像讀取imread( ) 的語法 1-2-2 可讀取的影像格式 1-3 顯示影像與關閉影像視窗 1-3-1 使用OpenCV 顯示影像 1-3-2 關閉OpenCV 視窗 1-3-3 等待按鍵的事件 1-3-4 建立OpenCV 影像視窗 1-4 儲存影像 第2章認識影像表示方法 2-1 位元影像表示法 2-2 GRAY 色彩空間 2-3 RGB 色彩空間 2-3-1 由色彩得知RGB 通道值 2-3-2 使用RGB 通道值獲得色彩區塊 2-3-3 RGB 彩色像素的表示法 2-4 BGR 色彩空間 2-5 獲得影像的屬性 2-6 像素的BGR 值 2-6-1 讀取特定灰階影像像素座標的BGR 值 2-6-2 讀取特定彩色影像像素座標的BGR 值 2-6-3 修改特定影像像素座標的BGR 值 第3章學習OpenCV 需要的Numpy 知識 3-1 陣列ndarray 3-2 Numpy 的資料型態 3-3 建立一維或多維陣列 3-3-1 認識ndarray 的屬性 3-3-2 使用array( ) 建立一維陣列 3-3-3 使用array( ) 函數建立多維陣列 3-3-4 使用zeros( ) 建立內容是0 的多維陣列 3-3-5 使用ones( ) 建立內容是1 的多維陣列 3-3-6 使用empty( ) 建立未初始化的多維陣列 3-3-7 使用random.randint( ) 建立隨機數內容的多維陣列 3-3-8 使用arange( ) 函數建立陣列數據 3-3-9 使用reshape( ) 函數更改陣列形式 3-4 一維陣列的運算與切片 3-4-1 一維陣列的四則運算 3-4-2 一維陣列的關係運算子運算 3-4-3 陣列切片 3-4-4 使用參數copy=True 複製數據 3-4-5 使用copy( ) 函數複製陣列 3-5 多維陣列的索引與切片 3-5-1 認識axis 的定義 3-5-2 多維陣列的索引 3-5-3 多維陣列的切片 3-6 陣列水平與垂直合併 3-6-1 陣列垂直合併vstack( ) 3-6-2 陣列水平合併hstack( ) 第4章認識色彩空間到藝術創作 4-1 BGR 與RGB 色彩空間的轉換 4-2 BGR 色彩空間轉換至GRAY 色彩空間 4-2-1 使用cvtColor( ) 函數 4-2-2 OpenCV 內部轉換公式 4-3 HSV 色彩空間 4-3-1 認識HSV 色彩空間 4-3-2 將影像由BGR 色彩空間轉為HSV 色彩空間 4-3-3 將RGB 色彩轉換成HSV 色彩公式 4-4 拆分色彩通道 4-4-1 拆分BGR 影像的通道 4-4-2 拆分HSV 影像的通道 4-5 合併色彩通道 4-5-1 合併B、G、R 通道的影像 4-5-2 合併H、S、V 通道的影像 4-6 拆分與合併色彩通道的應用 4-6-1 色調Hue 調整 4-6-2 飽和度Saturation 調整 4-6-3 明度Value 調整 4-7 alpha 通道 第5章妙手空空建立影像 5-1 影像座標 5-2 建立與編輯灰階影像 5-2-1 建立灰階影像 5-2-2 編輯灰階影像 5-2-3 使用隨機數建立灰階影像 5-3 建立彩色影像 第6章影像處理的基礎知識 6-1 灰階影像的編輯 6-1-1 自創灰階影像與編輯的基礎實例 6-1-2 讀取灰階影像與編輯的實例 6-2 彩色影像的編輯 6-2-1 了解彩色影像陣列的結構 6-2-2 自創彩色影像與編輯的實例 6-2-3 讀取彩色影像與編輯的實例 6-3 編輯含alpha 通道的彩色影像 6-4 影像感興趣區域的編輯 6-4-1 擷取影像感興趣區塊 6-4-2 建立影像馬賽克效果 6-4-3 感興趣區塊在不同影像間移植 6-5 負片影像處理 6-5-1 負片的基本概念與應用 6-5-2 負片應用在灰階影像 6-5-3 負片應用在彩色影像 6-5-4 ROI 負片處理 第7章從靜態到動態的繪圖功能 7-1 建立畫布 7-2 繪製直線 7-3 畫布背景色彩的設計 7-3-1 單區塊的底部色彩 7-3-2 建立含底色圖案的畫布 7-3-3 漸層色背景設計 7-4 繪製矩形 7-5 繪製圓 7-5-1 繪製圓的基礎知識 7-5-2 隨機色彩的應用 7-6 繪製橢圓或橢圓弧度 7-7 繪製多邊形 7-8 輸出文字 7-8-1 預設英文字輸出 7-8-2 中文字輸出 7-9 反彈球的設計 7-10 滑鼠事件 7-10-1 OnMouseAction( ) 7-10-2 setMouseCallback( ) 7-10-3 建立隨機圓 7-10-4 滑鼠與鍵盤的混合應用 7-11 滾動條的設計 7-12 滾動條當作開關的應用 第8章影像計算邁向影像創作 8-1 影像加法運算 8-1-1 使用add( ) 函數執行影像加法運算 8-1-2 使用數學加法 + 符號執行影像加法運算 8-1-3 加總B、G、R 原色的實例 8-2 遮罩mask 8-2-1 遮罩的基本概念 8-2-2 遮罩的應用場景 8-3 重複曝光技術 8-3-1 影像的加權和觀念 8-3-2 OpenCV 的影像加權和方法 8-4 影像的位元運算 8-4-1 邏輯的and 運算 8-4-2 邏輯的or 運算 8-4-3 邏輯的not 運算 8-4-4 邏輯的xor 運算 8-5 影像加密與解密 8-6 動態影像GIF 設計 8-6-1 移動遮罩的設計與應用 8-6-2 保存為 GIF 動畫 8-7 設計MP4 影片檔案 8-7-1 MP4 檔案設計步驟 8-7-2 MP4 影片實作 第9章閾值處理邁向數位情報 9-1 threshold( ) 函數 9-1-1 基礎語法 9-1-2 二值化處理THRESH_BINARY 與現代情報戰 9-1-3 反二值化處理THRESH_BINARY_INV 9-1-4 截斷閾值處理THRESH_TRUNC 9-1-5 低閾值用0 處理THRESH_TOZERO 9-1-6 高閾值用0 處理THRESH_TOZERO_INV 9-2 Otsu 演算法 9-3 自適應閾值方法adaptiveThreshold( ) 函數 9-4 平面圖的分解 9-5 隱藏在影像內的數位浮水印 9-5-1 驗證最低有效位元對影像沒有太大的影響 9-5-2 建立數位浮水印 9-5-3 取得原始影像的row 和column 9-5-4 建立像素值是254 的提取矩陣 9-5-5 取得原始影像的高7 位影像 9-5-6 建立浮水印影像 9-5-7 將浮水印影像嵌入原始影像 9-5-8 擷取浮水印影像 9-6 動態展示影像處理過程 第10章影像的幾何變換 10-1 認識幾何變換 10-2 影像縮放效果 10-2-1 使用dsize 參數執行影像縮放 10-2-2 使用fx 和fy 執行影像的縮放 10-3 影像翻轉 10-4 影像仿射 10-4-1 仿射的數學基礎 10-4-2 仿射的函數語法 10-4-3 影像平移 10-4-4 影像旋轉 10-4-5 影像傾斜 10-5 影像透視 10-6 重映射 10-6-1 解說map1 和map2 10-6-2 影像複製 10-6-3 垂直翻轉 10-6-4 水平翻轉的實例 10-6-5 影像縮放 10-6-6 影像垂直壓縮 10-7 重映射創意應用 - 波浪效果 10-7-1 波浪效果 10-7-2 設計波浪動畫 第11章影像除噪與平滑技術 11-1 建立平滑影像需認識的名詞 11-1-1 濾波核 11-1-2 影像噪音 11-1-3 刪除噪音 11-2 均值濾波器 11-2-1 理論基礎 11-2-2 像素位於邊界的考量 11-2-3 濾波核與卷積 11-2-4 均值濾波器函數 11-3 方框濾波器 11-3-1 理論基礎 11-3-2 方框濾波器函數 11-4 中值濾波器 11-4-1 理論基礎 11-4-2 中值濾波器函數 11-5 高斯濾波器 11-5-1 理論基礎 11-5-2 高斯濾波器函數 11-6 雙邊濾波器 11-6-1 理論基礎 11-6-2 雙邊濾波器函數 11-7 2D 濾波核 11-8 創意應用 – 圖像油畫效果模擬 第12章數學形態學 12-1 腐蝕(Erosion) 12-1-1 理論基礎 12-1-2 腐蝕函數 12-2 膨脹(Dilation) 12-2-1 理論基礎 12-2-2 膨脹函數dilate( ) 12-3 OpenCV 應用在數學形態學的通用函數 12-4 開運算(Opening) 12-4-1 開運算於AI 視覺場景的應用 12-4-2 開運算的程式應用 12-5 閉運算(Closing) 12-5-1 閉運算與開運算功能差異 12-5-2 閉運算在 AI 視覺中的應用場景 12-5-3 閉運算的程式應用 12-6 形態學梯度(Morphological gradient) 12-6-1 形態學梯度的作用與影響 12-6-2 形態學梯度在 AI 視覺中的場景應用 12-6-3 閉運算的程式應用 12-7 禮帽運算(tophat) 12-7-1 禮帽運算的特色與影響 12-7-2 禮帽運算在 AI 視覺中的場景應用 12-7-3 禮帽運算的程式應用 12-8 黑帽運算(blackhat) 12-8-1 黑帽運算的特色與影響 12-8-2 黑帽運算在 AI 視覺中的場景應用 12-8-3 黑帽運算的程式應用 12-9 核函數 第13章影像梯度與邊緣偵測 13-1 影像梯度的基礎觀念 13-1-1 直覺方法認識影像邊界 13-1-2 認識影像梯度 13-1-3 機器視覺 13-2 OpenCV 函數Sobel( ) 13-2-1 Sobel 運算子 13-2-2 使用Sobel 運算子計算x 軸方向影像梯度 13-2-3 使用Sobel 運算子計算y 軸方向影像梯度 13-2-4 Sobel( ) 函數 13-2-5 考量ddepth 與取絕對值函數convertScaleAbs( ) 13-2-6 x 軸方向的影像梯度 13-2-7 y 軸方向的影像梯度 13-2-8 x 軸和y 軸影像梯度的融合 13-3 OpenCV 函數Scharr( ) 13-3-1 Scharr 算子 13-3-2 Scharr( ) 函數 13-4 OpenCV 函數Laplacian( ) 13-4-1 二階微分 13-4-2 Laplacian 運算子 13-4-3 Laplacian( ) 函數 13-5 Canny 邊緣檢測 13-5-1 認識Canny 邊緣檢測 13-5-2 Canny 演算法的步驟 13-5-3 Canny( ) 函數 13-6 灰階圖像在邊緣檢測中的優勢 第14章影像金字塔 14-1 影像金字塔的原理 14-1-1 認識層次(level) 名詞 14-1-2 基礎理論 14-1-3 濾波器與採樣 14-1-4 高斯濾波器與向下採樣 14-1-5 向上採樣 14-1-6 影像失真 14-2 OpenCV 的pyrDown( ) 函數 14-3 OpenCV 的pyrUp( ) 函數 14-4 採樣逆運算的實驗 14-4-1 影像相加與相減 14-4-2 反向運算的結果觀察 14-5 拉普拉斯金字塔(Laplacian Pyramid, LP) 14-6 影像金字塔的應用與老照片修復實作 14-6-1 影像金字塔的應用 14-6-2 修復老舊照片原理解釋 14-6-3 實作老照片修復 第15章輪廓的檢測與匹配 15-1 影像內圖形的輪廓 15-1-1 找尋圖形輪廓findContours( ) 15-1-2 繪製圖形的輪廓 15-2 繪製影像內圖形輪廓的系列實例 15-2-1 找尋與繪製影像內圖形輪廓的基本應用 15-2-2 認識findCountours( ) 函數的回傳值contours 15-2-3 輪廓索引contoursIdx 15-2-4 輪廓的外形與特徵提取 15-2-5 輪廓內有輪廓 15-2-6 繪製一般影像的圖形輪廓 15-2-7 輪廓動畫 15-3 輪廓層級Hierarchy 15-3-1 輪廓層級的基本觀念 15-3-2 檢測模式RETR_EXTERNAL 15-3-3 檢測模式RETR_LIST 15-3-4 檢測模式RETR_CCOMP 15-3-5 檢測模式RETR_TREE 15-3-6 輪廓層級的創意場景 15-4 輪廓的特徵 – 影像矩(Image moments) 15-4-1 矩特徵moments( ) 函數 15-4-2 基礎影像矩推導 – 輪廓質心 15-4-3 影像矩實例 15-4-4 計算輪廓面積 15-4-5 計算輪廓周長 15-5 輪廓外形的匹配 – Hu 矩 15-5-1 OpenCV 計算Hu 矩的函數 15-5-2 第0 個Hu 矩的公式驗證 15-5-3 輪廓匹配 15-6 再談輪廓外形匹配 15-6-1 建立形狀場景距離 15-6-2 Hausdorff 距離 第16章輪廓擬合與凸包的相關應用 16-1 輪廓的擬合 16-1-1 矩形包圍 16-1-2 最小包圍矩形 16-1-3 最小包圍圓形 16-1-4 最優擬合橢圓 16-1-5 最小包圍三角形 16-1-6 近似多邊形 16-1-7 最優擬合直線 16-2 凸包 16-2-1 獲得凸包 16-2-2 凸缺陷 16-3 輪廓的幾何測試 16-3-1 測試輪廓包圍線是否凸形 16-3-2 計算任意座標點與輪廓包圍線的最短距離 16-4 創意應用 第17章輪廓的特徵 17-1 寬高比(Aspect Ratio) 17-2 輪廓的極點 17-2-1 認識輪廓點座標 17-2-2 Numpy 模組的argmax( ) 和argmin( ) 函數 17-2-3 找出輪廓極點座標 17-3 Extent 17-4 Solidity 17-5 等效直徑(Equivalent Diameter) 17-6 遮罩和非0 像素點的座標訊息 17-6-1 使用Numpy 的陣列模擬獲得非0 像素點座標訊息 17-6-2 獲得空心與實心非0 像素點座標訊息 17-6-3 使用OpenCV 函數獲得非0 像素點座標訊息 17-7 找尋影像物件最小值與最大值與他們的座標 17-7-1 從陣列找最大值與最小值和他們的座標 17-7-2 影像實作與醫學應用說明 17-8 計算影像的像素的均值與標準差 17-8-1 計算影像的像素均值 17-8-2 影像的像素均值簡單實例 17-8-3 使用遮罩觀念計算像素均值 17-8-4 計算影像的像素標準差 17-9 方向 17-10 輪廓動態創意設計 17-10-1 圓形輪廓動畫 17-10-2 不規則外形的外框收縮 17-10-3 動畫標記像素點 第18章自動駕駛車道檢測 18-1 霍夫變換的基礎原理解說 18-1-1 認識笛卡兒座標與霍夫座標 18-1-2 映射 18-1-3 認識極座標的基本定義 18-1-4 霍夫變換與極座標 18-2 HoughLines( ) 函數 18-3 HoughLinesP( ) 函數 18-4 霍夫圓環變換檢測 18-5 高速公路車道檢測 18-5-1 高速公路車道檢測 18-5-2 優化版的車道檢測 - 均值左右車道線 第19章直方圖均衡化 - 增強影像對比度 19-1 認識直方圖 19-1-1 認識直方圖 19-1-2 正規化直方圖 19-2 繪製直方圖 19-2-1 使用matplotlib 繪製直方圖 19-2-2 使用OpenCV 取得直方圖數據 19-2-3 繪製彩色影像的直方圖 19-2-4 繪製遮罩的直方圖 19-3 直方圖均衡化 19-3-1 直方圖均衡化演算法 19-3-2 直方圖均衡化equalizeHist( ) 19-3-3 直方圖均衡化應用在彩色影像 19-4 限制自適應直方圖均衡化方法 19-4-1 直方圖均衡化的優缺點 19-4-2 直方圖均衡化的缺點實例 19-4-3 自適應直方圖函數createCLAHE( ) 和apply( ) 函數 19-5 區域化直方圖增強技術 第20章模板匹配Template Matching 20-1 模板匹配的基礎觀念 20-2 模板匹配函數matchTemplate( ) 20-2-1 認識匹配函數matchTemplate( ) 20-2-2 模板匹配結果 20-2-3 TM_SQDIFF_NORMED 模板匹配結果 20-3 單模板匹配 20-3-1 回顧minMaxLoc( ) 函數 20-3-2 單模板匹配的實例 20-3-3 找出比較接近的影像 20-3-4 多目標匹配的實例 20-3-5 在地圖搜尋山脈 20-3-6 計算距離最近的機場 20-4 多模板匹配 第21章傅立葉(Fourier) 變換 21-1 數據座標軸轉換的基礎知識 21-2 傅立葉基礎理論 21-2-1 認識傅立葉(Fourier) 21-2-2 認識弦波 21-2-3 正弦函數的時域圖與頻率域圖 21-2-4 傅立葉變換理論基礎 21-3 使用Numpy 執行傅立葉變換 21-3-1 實作傅立葉變換 21-3-2 逆傅立葉變換 21-4 訊號與濾波器 21-4-1 高頻訊號與低頻訊號 21-4-2 高通濾波器與低通濾波器 21-5 使用OpenCV 完成傅立葉變換 21-5-1 使用dft( ) 函數執行傅立葉變換 21-5-2 使用OpenCV 執行逆傅立葉運算 21-5-3 低通濾波器 21-6 低通濾波器的藝術創作 第22章影像分割使用分水嶺演算法 22-1 影像分割基礎 22-2 分水嶺演算法與OpenCV 官方推薦網頁 22-2-1 認識分水嶺演算法 22-2-2 OpenCV 官方推薦網頁 22-3 分水嶺演算法步驟1 – 認識distanceTransform( ) 22-4 分水嶺演算法步驟2 – 找出未知區域 22-5 分水嶺演算法步驟3 – 建立標記 22-6 完成分水嶺演算法 22-7 分水嶺演算法專案 – 複雜圖像分割 第23章影像擷取 23-1 認識影像擷取的原理 23-2 OpenCV 的grabCut( ) 函數 23-3 grabCut( ) 基礎實作 23-4 自定義遮罩實例 23-5 影像擷取創意應用 23-5-1 更換影像背景 23-5-2 模糊背景凸顯主題 第24章影像修復- 搶救蒙娜麗莎的微笑 24-1 影像修復的演算法 24-1-1 Navier-Stroke 演算法 24-1-2 Alexander 演算法 24-1-3 Navier-Strokes 與Alexander 演算法的比較 24-2 影像修復的函數inpaint( ) 24-3 修復蒙娜麗莎的微笑 24-4 局部修復圖像 第25章辨識手寫數字 25-1 認識KNN 演算法 25-1-1 數據分類的基礎觀念 25-1-2 手寫數字的特徵 25-1-3 不同數字特徵值的比較 25-1-4 手寫數字分類原理 25-1-5 簡化特徵比較 25-2 認識Numpy 與KNN 演算法相關的知識 25-2-1 Numpy 的ravel( ) 函數 25-2-2 Numpy 的flatten( ) 函數 25-2-3 數據分類 25-2-4 建立與分類30 筆訓練數據 25-3 OpenCV 的KNN 演算法函數 25-3-1 基礎實作 25-3-2 更常見的分類 25-4 有關手寫數字識別的Numpy 基礎知識 25-4-1 vsplit( ) 垂直方向分割數據 25-4-2 hsplit( ) 水平方向分割數據 25-4-3 元素重複repeat( ) 25-5 識別手寫數字 25-5-1 實際設計識別手寫數字 25-5-2 儲存訓練和分類數據 25-5-3 下載訓練和分類數據 第26章OpenCV 的攝影功能 26-1 啟用攝影機功能VideoCapture 類別 26-1-1 初始化VideoCapture 26-1-2 檢測攝影功能是否開啟成功 26-1-3 讀取攝影鏡頭的影像 26-1-4 關閉攝影功能 26-1-5 讀取影像的基礎實例 26-1-6 影像翻轉 26-1-7 保存某一時刻的幀 26-2 使用VideoWriter 類別執行錄影 26-3 播放影片 26-3-1 播放所錄製的影片 26-3-2 播放iPhone 所錄製的影片 26-3-3 灰階播放影片 26-3-4 暫停與繼續播放 26-3-5 更改顯示視窗大小 26-4 認識攝影功能的屬性 26-4-1 獲得攝影功能的屬性 26-4-2 設定攝影功能的屬性 26-4-3 顯示影片播放進度 26-4-4 裁剪影片 26-5 車道辨識影片專題 26-5-1 取得車道辨識影片 26-5-2 車道辨識影片程式實作 第27章認識物件偵測原理與資源檔案 27-1 物件偵測原理 27-1-1 階層分類器原理 27-1-2 Haar 特徵緣由 27-1-3 哈爾特徵原理 27-2 找尋OpenCV 的資源檔案來源 27-3 認識資源檔案 27-4 人臉的偵測 27-4-1 臉形階層式分類器資源檔 27-4-2 基礎臉形偵測程式 27-4-3 史上最牛的物理科學家合照 27-5 偵測側面的人臉 27-5-1 基礎觀念 27-5-2 側面臉形偵測 27-6 路人偵測 27-6-1 路人偵測 27-6-2 下半身的偵測 27-6-3 上半身的偵測 27-7 眼睛的偵測 27-7-1 眼睛分類器資源檔 27-7-2 偵測雙眼實例 27-7-3 偵測左眼與右眼的實例 27-8 偵測貓臉 27-9 俄羅斯車牌辨識 27-10 AI 監控系統設計專題 27-10-1 圖像人臉標記 27-10-2 影片人臉標記 27-10-3 影片人臉標記用MP4 紀錄過程 27-10-4 AI 監控系統設計 第28章攝影機與人臉檔案 28-1 擷取相同大小的人臉存檔 28-2 使用攝影機擷取人臉影像 28-3 自動化攝影和擷取人像 28-4 半自動拍攝多張人臉的實例 28-5 全自動拍攝人臉影像 第29章人臉辨識 29-1 LBPH 人臉辨識 29-1-1 LBP(Local Binary Patterns)基本概念 29-1-2 LBPH(Local Binary Patterns Histograms)步驟 29-1-3 LBPH 用於人臉辨識的優點 29-1-4 LBPH 可能的侷限性 29-1-5 LBPH 函數解說 29-1-6 簡單的人臉辨識程式實作 29-1-7 繪製LBPH 直方圖 29-1-8 人臉識別實務 – 儲存與開啟訓練數據 29-1-9 結論 29-2 Eigenfaces 人臉辨識 29-2-1 Eigenfaces 原理思維 29-2-2 「Eigenfaces」如何表示臉部 29-2-3 優點與侷限 29-2-4 Eigenfaces 函數解說 29-2-5 簡單的人臉辨識程式實作 29-2-6 結論 29-3 Fisherfaces 人臉辨識 29-3-1 緣由與目標 29-3-2 主要步驟 29-3-3 Fisherface 與 Eigenfaces 的比較 29-3-4 Fisherfaces 函數解說 29-3-5 簡單的人臉辨識程式實作 29-3-6 總結 29-4 專題實作 - 建立員工人臉識別登入系統 29-4-1 建立與訓練人臉資料庫 – ch29_6.py 29-4-2 員工人臉識別 – ch29_7.py 29-5 專題實作 - AI 監控與人臉辨識 第30章建立哈爾特徵分類器- 車牌辨識 30-1 準備正樣本與負樣本影像資料 30-1-1 準備正樣本影像 – 含汽車車牌影像 30-1-2 準備負樣本影像 – 不含汽車車牌影像 30-2 處理正樣本影像 30-2-1 將正樣本影像處理成固定寬度與高度 30-2-2 將正樣本影像轉成bmp 檔案 30-3 處理負樣本影像 30-4 建立辨識車牌的哈爾(Haar) 特徵分類器 30-4-1 下載建立哈爾特徵分類器工具 30-4-2 儲存正樣本影像 30-4-3 儲存負樣本影像 30-4-4 為正樣本加上標記 30-4-5 設計程式顯示標記 30-5 訓練辨識車牌的哈爾特徵分類器 30-5-1 建立向量檔案 30-5-2 訓練哈爾分類器 30-5-3 建立哈爾特徵分類器資源檔 30-6 車牌偵測 30-7 心得報告 第31章車牌辨識 31-1 擷取所讀取的車牌影像 31-2 使用Tesseract OCR 執行車牌辨識 31-3 偵測車牌與辨識車牌 31-4 二值化處理車牌 31-5 形態學的開運算處理車牌 31-6 車牌辨識心得 第32章MediaPipe 手勢偵測與應用解析 32-1 MediaPipe 是什麼 32-1-1 Google 的影像處理解決方案 32-1-2 為什麼要用 MediaPipe 32-2 初探 MediaPipe Hands 模組 32-2-1 MediaPipe Hands 功能概覽 32-2-2 21 個關鍵點的座標定義與排列 32-2-3 如何判斷手勢 32-2-4 偵測手勢的原理 32-3 剪刀、石頭、布的程式設計思路 32-3-1 手指伸直判斷 32-3-2 程式流程規劃 32-3-3 與 OpenCV 的整合繪製 32-4 偵測手語繪製關節 32-4-1 初始化MediaPipe Hands 物件 32-4-2 建立Hands 物件 32-4-3 hands.process( ) 函數用法 32-4-4 mp_drawing.draw_landmarks( ) 函數用法 32-5 專題實作 - 剪刀、石頭與布 附錄AOpenCV 函數、名詞與具名常數索引表
第1章影像的讀取、顯示與儲存 1-0 建議閱讀書籍 1-1 程式導入OpenCV 模組 1-1-1 安裝主要模組 1-1-2 擴展模組安裝 1-1-3 導入模組 1-1-4 OpenCV 版本 1-2 讀取影像檔案 1-2-1 影像讀取imread( ) 的語法 1-2-2 可讀取的影像格式 1-3 顯示影像與關閉影像視窗 1-3-1 使用OpenCV 顯示影像 1-3-2 關閉OpenCV 視窗 1-3-3 等待按鍵的事件 1-3-4 建立OpenCV 影像視窗 1-4 儲存影像 第2章認識影像表示方法 2-1 位元影像表示法 2-2 GRAY 色彩空間 2-3 RGB 色彩空間 2-3-1 由色彩得知RGB 通道值 2-3-2 使用RGB 通道值獲得色彩...