從零開始學OpenCV

從零開始學OpenCV

作者: 明日科技
出版社: 化學工業
出版在: 2022-06-01
ISBN-13: 9787122405890
ISBN-10: 7122405893
裝訂格式: 平裝
總頁數: 315 頁





內容描述


本書從零基礎讀者的角度出發,通過通俗易懂的語言、豐富多彩的實例,
循序漸進地讓讀者在實踐中學習Python OpenCV編程知識,並提升自己的實際開發能力。
全書共分為4篇16章,內容包括搭建開發環境、圖像處理基礎、NumPy模塊、繪製圖形和文字、
閾值、圖像運算、腐蝕與膨脹、圖像的幾何變換、濾波器、模板匹配、圖像輪廓、圖形檢測、
視頻處理、人臉跟踪與識別、MR機讀答題卡、MR智能視頻打卡系統等。
書中知識點講解細緻,側重介紹每個知識點的使用場景,
涉及的代碼給出了詳細的註釋,可以使讀者輕鬆領會OpenCV程序開發的精髓,快速提高開發技能。
同時,本書配套了大量教學視頻,掃碼即可觀看,還提供所有程序源文件,方便讀者實踐。
本書適合Python OpenCV、人工智能、機器視覺初學者自學使用,也可用作高等院校相關專業的教材及參考書。


目錄大綱


目錄:
第1篇 基礎知識篇 
第章 搭建開發環境 2 視頻講解:6節,26分鐘 
1.1 OpenCV概述 3 
1.1.1 OpenCV包含的模塊 3 
1.1.2 OpenCV的發展歷程 4 
1.1.3 OpenCV的應用 4 
1.1.4 Python與OpenCV 4 
1.2 Python的下載和安裝 5 
1.2.1 如何查看計算機操作系統的位數 5 
1.2.2 下載Python安裝包 5 
1.2.3 Windows 64位系統上安裝Python 7 
1.2.4 測試Python是否安裝成功 9 
1.3 Python OpenCV的下載和安裝 10 
1.3.1 下載和安裝OpenCV-Contrib-Python庫 10 
1.3.2 測試OpenCV-Contrib-Python庫和NumPy庫是否安裝成功 11 
1.4 PyCharm的下載和安裝 11 
1.4.1 下載PyCharm 11 
1.4.2 安裝PyCharm 12 
1.4.3 啟動並配置PyCharm 14 
本章知識思維導圖 19 
第2章 圖像處理基礎 20 視頻講解:13節,38分鐘 
2.1 圖像處理的基本操作 21 
2.1.1 讀取圖像 21 
[實例2.1] 讀取當前項目目錄下的圖像 21 
2.1.2 顯示圖像 22 
[實例2.2] 窗口顯示圖像 23 
2.1.3 保存圖像 24 
[實例2.3] 保存圖像 24 
2.1.4 獲取圖像屬性 25 
[實例2.4] 打印彩色圖像和灰度圖像的屬性 25 
2.2 像素 26 
2.2.1 確定像素的位置 26 
[實例2.5] 表示圖2.8中的指定像素 28 
2.2.2 獲取像素的BGR值 28 
2.2.3 修改像素的BGR值 30 
[實例2.6] 修改圖2.7中的指定區域內的所有像素 30 
2.3 色彩空間 31 
2.3.1 GRAY色彩空間 31 
[實例2.7] 從BGR色彩空間轉換到GRAY色彩空間 32 
2.3.2 HSV色彩空間 33 
[實例2.8] 從BGR色彩空間轉換到HSV色彩空間 34 
2.4 通道 34 
2.4.1 拆分通道 34 
[實例2.9] 拆分一幅BGR圖像中的通道 35 
[實例2.10] 拆分一幅HSV圖像中的通道 36 
2.4.2 合併通道 38 
[實例2.11] 按B→G→R的順序合併通道 38 
[實例2.12] 合併H通道圖像、S通道圖像和V通道圖像 39 
2.4.3 綜合運用拆分通道和合併通道 40 
[實例2.13] 只把H通道的值調整為180 40 
2.4.4 alpha通道 42 
[實例2.14] 調整A通道的值 42 
本章知識思維導圖 44 
第3章 NumPy模塊 45 視頻講解:5節,35分鐘 
3.1 NumPy模塊與OpenCV 46 
3.2 數組的類型 46 
3.3 創建數組 47 
3.3.1 最常規的array()方法 47 
[實例3.1] 創建一維數組和二維數組 48 
[實例3.2] 創建浮點類型數組 48 
[實例3.3] 創建三維數組 49 
3.3.2 創建指定維度和數據類型未初始化的數組 49 
[實例3.4] 創建2行3列的未初始化數組 49 
3.3.3 創建用0填充的數組 49 
[實例3.5] 創建純0數組 49 
3.3.4 創建用1填充的數組 50 
[實例3.6] 創建純1數組 50 
3.3.5 創建隨機數組 50 
[實例3.7] 創建隨機數組 50 
3.4 操作數組 51 
3.4.1 加法運算 51 
[實例3.8] 對數組做加法運算 51 
3.4.2 減法和乘除法運算 51 
[實例3.9] 對數組做減法、乘法和除法運算 52 
3.4.3 冪運算 52 
[實例3.10] 兩個數組做冪運算 52 
3.4.4 比較運算 53 
[實例3.11] 使用邏輯運算符比較數組 53 
3.4.5 複製數組 53 
[實例3.12] 複製數據,比較複製的結果與原數組是否相同 53 
[實例3.13] 複製圖像 54 
3.5 數組的索引和切片 55 
3.5.1 索引 55 
[實例3.14] 查找一維數組索引為0的元素 55 
3.5.2 切片式索引 55 
[實例3.15] 獲取數組中某範圍內的元素 56 
[實例3.16] 使用不同的切片式索引操作獲取數組中的元素 56 
3.5.3 二維數組索引 57 
[實例3.17] 用三種方式獲取二維數組中的元素 57 
3.5.4 二維數組切片式索引 58 
[實例3.18] 對二維數組進行切片式索引操作 58 
3.6 創建圖像 59 
3.6.1 創建黑白圖像 59 
[實例3.19] 創建純黑色圖像 59 
[實例3.20] 創建純白色圖像 59 
[實例3.21] 在黑色圖像內部繪製白色矩形 60 
[實例3.22] 創建黑白相間的圖像 60 
3.6.2 創建彩色圖像 61 
[實例3.23] 創建彩色圖像 61 
3.6.3 創建隨機圖像 62 
[實例3.24] 創建隨機像素的雪花點圖像 62 
3.7 拼接圖像 63 
3.7.1 水平拼接數組 63 
3.7.2 垂直拼接數組 63 
3.7.3 在圖像處理中的應用 64 
[實例3.25] 按照水平和垂直兩種方式拼接兩個圖像 64 
本章知識思維導圖 66 
第4章 繪製圖形和文字 67 視頻講解:9節,23分鐘 
4.1 線段的繪製 68 
[實例4.1] 繪製線段並拼成一個“王”字 68 
[實例4.2] 繪製99條長度、方向、寬度、顏色隨機的線段 69 
4.2 矩形的繪製 71 
[實例4.3] 繪製一個矩形邊框 71 
[實例4.4] 繪製正方形 72 
4.3 圓形的繪製 73 
[實例4.5] 繪製“交通燈” 74 
[實例4.6] 繪製同心圓 74 
[實例4.7] 繪製27個隨機實心圓 75 
4.4 多邊形的繪製 76 
[實例4.8] 繪製一個等腰梯形邊框 77 
[實例4.9] 繪製五角星 78 
4.5 文字的繪製 79 
[實例4.10] 繪製文字“OpenCV” 80 
4.5.1 文字的斜體效果 81 
[實例4.11] 繪製指定字體樣式的文字並呈現斜體效果 81 
4.5.2 文字的垂直鏡像效果 82 
[實例4.12] 繪製呈現垂直鏡像效果的“OpenCV” 82 
4.5.3 在圖像上繪製文字 83 
[實例4.13] 在圖像上繪製文字 83 
4.6 動態繪製圖形 83 
[實例4.14] 彈球動畫 84 
本章知識思維導圖 86 
第5章 閾值 88 視頻講解:10節,18分鐘 
5.1 閾值概述 89 
5.2 閾值處理函數 89 
5.3 二值化處理 90 
5.3.1 “非黑即白”的圖像 90 
[實例5.1] 二值化閾值處理白黑漸變圖 90 
[實例5.2] 觀察不同閾值的處理效果 91 
[實例5.3] 觀察不同值的處理效果 92 
5.3.2 反二值化處理 93 
[實例5.4] 對圖像進行反二值化處理 93 
5.4 零處理 94 
5.4.1 低於閾值零處理 95 
[實例5.5] 對圖像進行低於閾值零處理 95 
5.4.2 超出閾值零處理 96 
[實例5.6] 對圖像進行超出閾值零處理 96 
5.5 截斷處理 97 
[實例5.6] 對圖像進行截斷處理 97 
5.6 自適應處理 99 
[實例5.8] 無法得到清晰有效的結果 99 
[實例5.9] 顯示自適應閾值處理的結果 101 
5.7 Otsu方法 102 
[實例5.10] 實現Otsu方法的閾值處理 103 
5.8 閾值處理的應用 104 
[實例5.11] 利用閾值處理勾勒樓房和汽車的輪廓 104 
[實例5.12] 閾值調試器 106 
本章知識思維導圖 107 
第6章 圖像運算 108 視頻講解:9節,65分鐘 
6.1 掩模 109 
[實例6.1] 創建3通道掩模圖像 110 
6.2 圖像的加法運算 111 
[實例6.2] 分別使用“+”和add()方法計算圖像和 111 
[實例6.3] 顯示圖像底片的效果 112 
[實例6.4] 模擬三色光疊加得白光 113 
[實例6.5] 利用掩模遮蓋相加結果 114 
6.3 圖像的位運算 115 
6.3.1 按位與運算 115 
[實例6.6] 花圖像與十字掩模做與運算 116 
6.3.2 按位或運算 117 
[實例6.7] 花圖像與十字掩模做或運算 118 
6.3.3 按位取反運算 119 
[實例6.8] 對花圖像進行取反運算 119 
6.3.4 按位異或運算 119 
[實例6.9] 花圖像與十字掩模做異或運算 121 
[實例6.10] 對圖像進行加密、解密 121 
6.3.5 圖像的位運算的應用 123 
[實例6.11] 粘貼帶透明區域的圖像 123 
6.4 合併圖像 124 
6.4.1 加權和 125 
[實例6.12] 利用計算加權和的方式實現多次曝光效果 125 
[實例6.13] 為圖像添加水印效果 126 
6.4.2 覆蓋 127 
[實例6.14] 將小貓圖像貼到沙灘上 127 
[實例6.15] 拼接禁止吸煙圖像 129 
本章知識思維導圖 130 
第7章 腐蝕與膨脹 131 視頻講解:7節,39分鐘 
7.1 腐蝕 132 
[實例7.1] 將仙人球圖像中的刺都抹除掉 133 
7.2 膨脹 134 
[實例7.2] 將圖像加工成“近視眼”效果 135 
7.3 開運算 136 
[實例7.3] 抹除黑種草圖像中的針狀葉子 136 
7.4 閉運算 137 
[實例7.4] 對漢字圖片進行閉運算 138 
7.5 形態學方法 139 
7.5.1 梯度運算 140 
[實例7.5] 通過梯度運算畫出小蜘蛛的輪廓 140 
7.5.2 頂帽運算 141 
[實例7.6] 通過頂帽運算畫出小蜘蛛的腿 141 
7.5.3 黑帽運算 142 
[實例7.7] 通過黑帽運算畫出小蜘蛛身上的花紋 142 
本章知識思維導圖 143




相關書籍

Deep Learning with PyTorch 1.x - Second Edition

作者 Mitchell Laura K Sri Yogesh Subramanian Vishnu

2022-06-01

Java圖像處理:基於OpenCV與JVM (Java Image Processing Recipes: With OpenCV and JVM)

作者 [法] 尼古拉斯·莫德奇克(Nicolas Modrzyk)

2022-06-01

ArcGIS Python編程基礎與應用

作者 芮小平 張彥敏

2022-06-01