OpenCV
影像創意邁向AI視覺
王者歸來(全彩印刷)
★★★★★ 國內作者【第一本】×【全彩印刷】×【AI視覺】書籍 ★★★★★
★★★★★ 完整解說【影像創意】×【AI視覺】的實例 ★★★★★
★★★★★【31個主題】+【423個Python實例】★★★★★
筆者在撰寫這本書除了採用當下最熱門的Python程式語言,同時採用2步驟說明:
◤函數數學原理解說◢
◤套用OpenCV函數講解影像創意與AI視覺的實例◢ 當讀者遵循這些步驟學習時,相信所設計的物件就是一個帶有靈魂與智慧的程式碼了。這本書從影像原理開始說起,逐一解說從影像到AI視覺所需的完整知識,本書的主題內容如下:
☆ 完整解說操作OpenCV需要的Numpy知識
★ 影像讀取、輸出與儲存
☆ 認識色彩空間、BGR、RGB、HSV
★ 建立藝術畫作
☆ 建立靜態與動態影像,打破OpenCV限制建立中文字輸出函數
★ 影像計算與影像的位元運算
☆ 重複曝光技術
★ 影像加密與解密
☆ 閾值處理
★ 數位情報員、深藏在影像的情報秘密
☆ 數位浮水印、版權所有翻譯必究
★ 影像幾何變換、翻轉、仿射、透視、重映射
☆ 影像遮罩與影像濾波器
★ 認識卷積
☆ 認識與刪除影像雜質
★ 數學形態學、腐蝕、膨脹、開運算、閉運算、禮帽運算、黑帽運算
☆ 從影像梯度到內部圖形的邊緣偵測
★ 影像金字塔
☆ 影像輪廓特徵與匹配
★ 輪廓的擬合、凸包與幾何測試
☆ 醫學應用器官影像的徵兆
★ 霍夫變換(Hough Transform)與直線檢測
☆ 無人車駕駛車道檢測技術
★ 直方圖、增強影像對比度、修復太曝或太黑影像、去霧處理
☆ 模板匹配、找尋距離最近的機場、找尋某區域高山數量
★ 傅立葉變換的方法與意義、空間域與頻率域的切換,進行影像處理
☆ 分水嶺演算法執行影像分割
★ 前景影像擷取
☆ 影像修復—搶救蒙娜麗莎的微笑
★ 辨識手寫數字
☆ OpenCV的攝影功能、活用拍照與錄影
★ 應用OpenCV內建的哈爾(Haar)特徵階層式分配器
☆ 偵測人臉、身體、眼睛、貓臉、俄羅斯車牌
★ 設計自己的哈爾偵測分配器,應用在偵測台灣汽車車牌
☆ 人臉辨識原理與應用
★ 執行車牌辨識
作者簡介:
一位跨越電腦作業系統與科技時代的電腦專家,著作等身的作家。
■ DOS時代他的代表作品是IBM PC組合語言、C、C++、Pascal、資料結構。
■ Windows時代他的代表作品是Windows Programming使用C、Visual Basic。
■ Internet時代他的代表作品是網頁設計使用HTML。
■ 大數據時代他的代表作品是R語言邁向Big Data之路。
■ 人工智慧時代他的代表作品是機器學習彩色圖解+基礎數學與基礎微積分+Python
實作。
除了作品被翻譯為簡體中文、馬來西亞文外,2000 年作品更被翻譯為Mastering HTML 英文版行銷美國,近年來作品則是在北京清華大學和台灣深智同步發行:
1 - Java入門邁向高手之路王者歸來
2 - Python最強入門邁向頂尖高手、數據科學之路王者歸來
3 - Python最強入門邁向數據科學之路王者歸來
4 - Python網路爬蟲:大數據擷取、清洗、儲存與分析王者歸來
5 - 演算法最強彩色圖鑑+Python程式實作王者歸來
6 - 網頁設計HTML+CSS+JavaScript+jQuery+Bootstrap+Google Maps王者歸來
7 - 機器學習彩色圖解+基礎數學、基礎微積分+Python實作王者歸來
8 - R語言邁向Big Data之路王者歸來
9 - Excel完整學習、Excel函數庫、Excel VBA應用王者歸來
10 - Power BI最強入門—大數據視覺化+智慧決策+雲端分享王者歸來
他的近期著作分別登上天瓏、博客來、Momo電腦書類暢銷排行榜前幾名,他的著作最大的特色是,所有程式語法或是功能解說會依特性分類,同時以實用的程式範例做解說,讓整本書淺顯易懂,讀者可以由他的著作事半功倍輕鬆掌握相關知識。
作者序
人工智慧的興起,除了機器學習與深度學習帶領風潮,AI視覺也成為人工智慧工程師鑽研的主題,多次與教育界的朋友聊天,一致感覺目前國內缺乏這方面完整敘述的書籍,這也是筆者撰寫這本書的動力。
其實一幅影像要做分析,讓電腦認知影像本質,牽涉許多複雜的數學運算,所幸OpenCV已經將這些複雜的數學運算封裝在一個個的函數內,讓整個學習變得簡化與容易許多。然而學習一個知識如果只是會調用函數,不了解函數內部數學原理,所設計的程式只是空洞沒有靈魂的程式碼,為此筆者在撰寫這本書除了採用當下最熱門的Python程式語言,同時採用2步驟說明。
1:函數數學原理解說。
2:套用函數講解影像創意與AI視覺的實例。
當讀者遵循這步驟學習時,相信所設計的物件就是一個帶有靈魂與智慧的程式碼了。在撰寫這本書時,筆者先從影像原理開始說起,逐一解說從影像到AI視覺所需的完整知識,這本書的主題內容如下:
●含31個主題、423個程式實例
●完整解說操作OpenCV需要的Numpy知識
●影像讀取、輸出與儲存
●認識色彩空間、BGR、RGB、HSV
●建立藝術畫作
●建立靜態與動態影像,打破OpenCV限制建立中文字輸出函數
●影像計算與影像的位元運算
●重複曝光技術
●影像加密與解密
●閾值處理
●數位情報員、深藏在影像的情報秘密
●數位浮水印、版權所有翻譯必究
●影像幾何變換、翻轉、仿射、透視、重映射
●影像遮罩與影像濾波器
●認識卷積
●認識與刪除影像雜質
●數學形態學、腐蝕、膨脹、開運算、閉運算、禮帽運算、黑帽運算
●從影像梯度到內部圖形的邊緣偵測
●影像金字塔
●影像輪廓特徵與匹配
●輪廓的擬合、凸包與幾何測試
●醫學應用器官影像的徵兆
●霍夫變換(Hough Transform)與直線檢測
●無人車駕駛車道檢測技術
●直方圖、增強影像對比度、修復太曝或太黑影像、去霧處理
●模板匹配、找尋距離最近的機場、找尋某區域高山數量
●傅立葉變換的方法與意義、空間域與頻率域的切換,進行影像處理
●分水嶺演算法執行影像分割
●前景影像擷取
●影像修復—搶救蒙娜麗莎的微笑
●辨識手寫數字
●OpenCV的攝影功能、活用拍照與錄影
●應用OpenCV內建的哈爾(Haar)特徵階層式分配器
●偵測人臉、身體、眼睛、貓臉、俄羅斯車牌
●設計自己的哈爾偵測分配器,應用在偵測台灣汽車車牌
●人臉辨識原理與應用
●執行車牌辨識
寫過許多的電腦書著作,本書沿襲筆者著作的特色,程式實例豐富,相信讀者只要遵循本書內容必定可以在最短時間精通OpenCV + Python,設計AI視覺的應用程式,編著本書雖力求完美,但是學經歷不足,謬誤難免,尚祈讀者不吝指正。
洪錦魁2021-12-30
jiinkwei@me.com
人工智慧的興起,除了機器學習與深度學習帶領風潮,AI視覺也成為人工智慧工程師鑽研的主題,多次與教育界的朋友聊天,一致感覺目前國內缺乏這方面完整敘述的書籍,這也是筆者撰寫這本書的動力。
其實一幅影像要做分析,讓電腦認知影像本質,牽涉許多複雜的數學運算,所幸OpenCV已經將這些複雜的數學運算封裝在一個個的函數內,讓整個學習變得簡化與容易許多。然而學習一個知識如果只是會調用函數,不了解函數內部數學原理,所設計的程式只是空洞沒有靈魂的程式碼,為此筆者在撰寫這本書除了採用當下最熱門的Python程式語言,同時採用2步...
目錄
第一章 影像的讀取、顯示與儲存
1-0 建議閱讀書籍
1-1 程式導入OpenCV模組
1-2 讀取影像檔案
1-3 顯示影像與關閉影像視窗
1-4 儲存影像
第二章 認識影像表示方法
2-1 位元影像表示法
2-2 GRAY色彩空間
2-3 RGB色彩空間
2-4 BGR色彩空間
2-5 獲得影像的屬性
2-6 像素的BGR值
第三章 學習OpenCV需要的Numpy知識
3-1 陣列ndarray
3-2 Numpy的資料型態
3-3 建立一維或多維陣列
3-4 一維陣列的運算與切片
3-5 多維陣列的索引與切片
3-6 陣列水平與垂直合併
第四章 認識色彩空間到藝術創作
4-1 BGR與RGB色彩空間的轉換
4-2 BGR色彩空間轉換至GRAY色彩空間
4-3 HSV色彩空間
4-4 拆分色彩通道
4-5 合併色彩通道
4-6 拆分與合併色彩通道的應用
4-7 alpha通道
第五章 妙手空空建立影像
5-1 影像座標
5-2 建立與編輯灰階影像
5-3 建立彩色影像
第六章 影像處理的基礎知識
6-1 灰階影像的編輯
6-2 彩色影像的編輯
6-3 編輯含alpha通道的彩色影像
6-4 Numpy高效率讀取與設定像素的方法
6-5 影像感興趣區域的編輯
第七章 從靜態到動態的繪圖功能
7-1 建立畫布
7-2 繪製直線
7-3 畫布背景色彩的設計
7-4 繪製矩形
7-5 繪製圓
7-6 繪製橢圓或橢圓弧度
7-7 繪製多邊形
7-8 輸出文字
7-9 反彈球的設計
7-10 滑鼠事件
7-11 滾動條的設計
7-12 滾動條當作開關的應用
第八章 影像計算邁向影像創作
8-1 影像加法運算
8-2 遮罩mask
8-3 重複曝光技術
8-4 影像的位元運算
8-5 影像加密與解密
第九章 閾值處理邁向數位情報
9-1 threshold( )函數
9-2 Otsu演算法
9-3 自適應閾值方法adaptiveThreshold( )函數
9-4 平面圖的分解
9-5 隱藏在影像內的數位浮水印
第十章 影像的幾何變換
10-1 影像縮放效果
10-2 影像翻轉
10-3 影像仿射
10-4 影像透視
10-5 重映射
第十一章 刪除影像雜訊
11-1 建立平滑影像需認識的名詞
11-2 均值濾波器
11-3 方框濾波器
11-4 中值濾波器
11-5 高斯濾波器
11-6 雙邊濾波器
11-7 2D濾波核
第十二章 數學形態學
12-1 腐蝕(Erosion)
12-2 膨脹(Dilation)
12-3 OpenCV應用在數學形態學的通用函數
12-4 開運算(Opening)
12-5 閉運算(Closing)
12-6 形態學梯度(morphological gradient)
12-7 禮帽運算(tophat)
12-8 黑帽運算(blackhat)
12-9 核函數
第十三章 影像梯度與邊緣偵測
13-1 影像梯度的基礎觀念
13-2 OpenCV函數Sobel( )
13-3 OpenCV函數Scharr( )
13-4 OpenCV函數Laplacian( )
13-5 Canny邊緣檢測
第十四章 影像金字塔
14-1 影像金字塔的原理
14-2 OpenCV的pyrDown( )函數
14-3 OpenCV的pyrUp( )函數
14-4 採樣逆運算的實驗
14-5 拉普拉斯金字塔(Laplacian Pyramid, LP)
第十五章 輪廓的檢測與匹配
15-1 影像內圖形的輪廓
15-2 繪製影像內圖形輪廓的系列實例
15-3 認識輪廓層級hierarchy
15-4 輪廓的特徵—影像矩(Image moments)
15-5 輪廓外形的匹配—Hu矩
15-6 再談輪廓外形匹配
第十六章 輪廓擬合與凸包的相關應用
16-1 輪廓的擬合
16-2 凸包
16-3 輪廓的幾何測試
第十七章 輪廓的特徵
17-1 寬高比(Aspect Ratio)
17-2 輪廓的極點
17-3 Extent
17-4 Solidity
17-5 等效直徑(Equivalent Diameter)
17-6 遮罩和非0像素點的座標訊息
17-7 找尋影像物件最小值與最大值與他們的座標
17-8 計算影像的像素的均值與標準差
17-9 方向
第十八章 從直線檢測到無人駕駛車道檢測
18-1 霍夫變換的基礎原理解說
18-2 HoughLines( )函數
18-3 HoughLinesP( )函數
18-4 霍夫圓環變換檢測
第十九章 直方圖均衡化—增強影像對比度
19-1 認識直方圖
19-2 繪製直方圖
19-3 直方圖均衡化
19-4 限制自適應直方圖均衡化方法
第二十章 模板匹配 Template Matching
20-1 模板匹配的基礎觀念
20-2 模板匹配函數matchTemplate( )
20-3 單模板匹配
20-4 多模板匹配
第二十一章 傅立葉(Fourier)變換
21-1 數據座標軸轉換的基礎知識
21-2 傅立葉基礎理論
21-3 使用Numpy執行傅立葉變換
21-4 使用OpenCV完成傅立葉變換
第二十二章 影像分割使用分水嶺演算法
22-1 前言
22-2 分水嶺演算法與OpenCV官方推薦網頁
22-3 分水嶺演算法步驟1—認識distanceTransform( )
22-4 分水嶺演算法步驟2—找出未知區域
22-5 分水嶺演算法步驟3—建立標記
22-6 完成分水嶺演算法
第二十三章 影像擷取
23-1 認識影像擷取的原理
23-2 OpenCV的grabCut( )函數
23-3 grabCut( )基礎實作
23-4 自定義遮罩實例
第二十四章 影像修復—搶救蒙娜麗莎的微笑
24-1 影像修復的演算法
24-2 影像修復的函數inpaint( )
24-3 修復蒙娜麗莎的微笑
第二十五章 辨識手寫數字
25-1 認識KNN演算法
25-2 認識Numpy與KNN演算法相關的知識
25-3 OpenCV的KNN演算法函數
25-4 有關手寫數字識別的Numpy基礎知識
25-5 識別手寫數字
第二十六章 OpenCV的攝影功能
26-1 啟用攝影機功能VideoCapture類別
26-2 使用VideoWriter類別執行錄影
26-3 播放影片
26-4 認識攝影功能的屬性
第二十七章 認識物件偵測原理與資源檔案
27-1 物件偵測原理
27-2 找尋OpenCV的資源檔案來源
27-3 認識資源檔案
27-4 人臉的偵測
27-5 偵測側面的人臉
27-6 路人偵測
27-7 眼睛的偵測
27-8 偵測貓臉
27-9 俄羅斯車牌辨識
第二十八章 攝影機與人臉檔案
28-1 擷取相同大小的人臉存檔
28-2 使用攝影機擷取人臉影像
28-3 自動化攝影和擷取人像
28-4 半自動拍攝多張人臉的實例
28-5 全自動拍攝人臉影像
第二十九章 人臉辨識
29-1 LBPH人臉辨識
29-2 Eigenfaces人臉辨識
29-3 Fisherfaces人臉辨識
29-4 專題實作 - 建立員工人臉識別登入系統
第三十章 建立哈爾特徵分類器—車牌辨識
30-1 準備正樣本與負樣本影像資料
30-2 處理正樣本影像
30-3 處理負樣本影像
30-4 建立辨識車牌的哈爾(Haar)分類器
30-5 訓練辨識車牌的哈爾分類器
30-6 車牌偵測
30-7 心得報告
第三十一章 車牌辨識
31-1 擷取所讀取的車牌影像
31-2 使用 Tesseract OCR 執行車牌辨識
31-3 偵測車牌與辨識車牌
31-4 二值化處理車牌
31-5 形態學的開運算處理車牌
31-6 車牌辨識心得
附錄A 安裝OpenCV
A-1 安裝Numpy
A-2 基本安裝OpenCV
A-3 擴展模組安裝
A-4 OpenCV的階層式分類器資源檔案
附錄B OpenCV函數、名詞與具名常數索引表
第一章 影像的讀取、顯示與儲存
1-0 建議閱讀書籍
1-1 程式導入OpenCV模組
1-2 讀取影像檔案
1-3 顯示影像與關閉影像視窗
1-4 儲存影像
第二章 認識影像表示方法
2-1 位元影像表示法
2-2 GRAY色彩空間
2-3 RGB色彩空間
2-4 BGR色彩空間
2-5 獲得影像的屬性
2-6 像素的BGR值
第三章 學習OpenCV需要的Numpy知識
3-1 陣列ndarray
3-2 Numpy的資料型態
3-3 建立一維或多維陣列
3-4 一維陣列的運算與切片
3-5 多維陣列的索引與切片
3-6 陣列水平與垂直合併
第四章 認識色彩空間到藝術創作
4-1 BGR與RGB色彩空間的轉...