關于我們
書單推薦
新書推薦
|
從零開始學OpenCV 讀者對象:本書適合Python OpenCV、人工智能、機器視覺初學者自學使用,也可用作高等院校相關專業(yè)的教材及參考書。
本書從零基礎讀者的角度出發(fā),通過通俗易懂的語言、豐富多彩的實例,循序漸進地讓讀者在實踐中學習Python OpenCV編程知識,并提升自己的實際開發(fā)能力。
全書共分為4篇16章,內(nèi)容包括搭建開發(fā)環(huán)境、圖像處理基礎、NumPy模塊、繪制圖形和文字、閾值、圖像運算、腐蝕與膨脹、圖像的幾何變換、濾波器、模板匹配、圖像輪廓、圖形檢測、視頻處理、人臉跟蹤與識別、MR機讀答題卡、MR智能視頻打卡系統(tǒng)等。書中知識點講解細致,側重介紹每個知識點的使用場景,涉及的代碼給出了詳細的注釋,可以使讀者輕松領會OpenCV程序開發(fā)的精髓,快速提高開發(fā)技能。同時,本書配套了大量教學視頻,掃碼即可觀看,還提供所有程序源文件,方便讀者實踐。 本書適合Python OpenCV、人工智能、機器視覺初學者自學使用,也可用作高等院校相關專業(yè)的教材及參考書。
第1篇 基礎知識篇
第章 搭建開發(fā)環(huán)境 2 視頻講解:6節(jié),26分鐘 1.1 OpenCV概述 3 1.1.1 OpenCV包含的模塊 3 1.1.2 OpenCV的發(fā)展歷程 4 1.1.3 OpenCV的應用 4 1.1.4 Python與OpenCV 4 1.2 Python的下載和安裝 5 1.2.1 如何查看計算機操作系統(tǒng)的位數(shù) 5 1.2.2 下載Python安裝包 5 1.2.3 Windows 64位系統(tǒng)上安裝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節(jié),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中的指定區(qū)域內(nèi)的所有像素 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節(jié),35分鐘 3.1 NumPy模塊與OpenCV 46 3.2 數(shù)組的類型 46 3.3 創(chuàng)建數(shù)組 47 3.3.1 最常規(guī)的array()方法 47 [實例3.1] 創(chuàng)建一維數(shù)組和二維數(shù)組 48 [實例3.2] 創(chuàng)建浮點類型數(shù)組 48 [實例3.3] 創(chuàng)建三維數(shù)組 49 3.3.2 創(chuàng)建指定維度和數(shù)據(jù)類型未初始化的數(shù)組 49 [實例3.4] 創(chuàng)建2行3列的未初始化數(shù)組 49 3.3.3 創(chuàng)建用0填充的數(shù)組 49 [實例3.5] 創(chuàng)建純0數(shù)組 49 3.3.4 創(chuàng)建用1填充的數(shù)組 50 [實例3.6] 創(chuàng)建純1數(shù)組 50 3.3.5 創(chuàng)建隨機數(shù)組 50 [實例3.7] 創(chuàng)建隨機數(shù)組 50 3.4 操作數(shù)組 51 3.4.1 加法運算 51 [實例3.8] 對數(shù)組做加法運算 51 3.4.2 減法和乘除法運算 51 [實例3.9] 對數(shù)組做減法、乘法和除法運算 52 3.4.3 冪運算 52 [實例3.10] 兩個數(shù)組做冪運算 52 3.4.4 比較運算 53 [實例3.11] 使用邏輯運算符比較數(shù)組 53 3.4.5 復制數(shù)組 53 [實例3.12] 復制數(shù)據(jù),比較復制的結果與原數(shù)組是否相同 53 [實例3.13] 復制圖像 54 3.5 數(shù)組的索引和切片 55 3.5.1 索引 55 [實例3.14] 查找一維數(shù)組索引為0的元素 55 3.5.2 切片式索引 55 [實例3.15] 獲取數(shù)組中某范圍內(nèi)的元素 56 [實例3.16] 使用不同的切片式索引操作獲取數(shù)組中的元素 56 3.5.3 二維數(shù)組索引 57 [實例3.17] 用三種方式獲取二維數(shù)組中的元素 57 3.5.4 二維數(shù)組切片式索引 58 [實例3.18] 對二維數(shù)組進行切片式索引操作 58 3.6 創(chuàng)建圖像 59 3.6.1 創(chuàng)建黑白圖像 59 [實例3.19] 創(chuàng)建純黑色圖像 59 [實例3.20] 創(chuàng)建純白色圖像 59 [實例3.21] 在黑色圖像內(nèi)部繪制白色矩形 60 [實例3.22] 創(chuàng)建黑白相間的圖像 60 3.6.2 創(chuàng)建彩色圖像 61 [實例3.23] 創(chuàng)建彩色圖像 61 3.6.3 創(chuàng)建隨機圖像 62 [實例3.24] 創(chuàng)建隨機像素的雪花點圖像 62 3.7 拼接圖像 63 3.7.1 水平拼接數(shù)組 63 3.7.2 垂直拼接數(shù)組 63 3.7.3 在圖像處理中的應用 64 [實例3.25] 按照水平和垂直兩種方式拼接兩個圖像 64 本章知識思維導圖 66 第4章 繪制圖形和文字 67 視頻講解:9節(jié),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] 繪制指定字體樣式的文字并呈現(xiàn)斜體效果 81 4.5.2 文字的垂直鏡像效果 82 [實例4.12] 繪制呈現(xiàn)垂直鏡像效果的“OpenCV” 82 4.5.3 在圖像上繪制文字 83 [實例4.13] 在圖像上繪制文字 83 4.6 動態(tài)繪制圖形 83 [實例4.14] 彈球動畫 84 本章知識思維導圖 86 第5章 閾值 88 視頻講解:10節(jié),18分鐘 5.1 閾值概述 89 5.2 閾值處理函數(shù) 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] 實現(xiàn)Otsu方法的閾值處理 103 5.8 閾值處理的應用 104 [實例5.11] 利用閾值處理勾勒樓房和汽車的輪廓 104 [實例5.12] 閾值調試器 106 本章知識思維導圖 107 第6章 圖像運算 108 視頻講解:9節(jié),65分鐘 6.1 掩模 109 [實例6.1] 創(chuàng)建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] 粘貼帶透明區(qū)域的圖像 123 6.4 合并圖像 124 6.4.1 加權和 125 [實例6.12] 利用計算加權和的方式實現(xiàn)多次曝光效果 125 [實例6.13] 為圖像添加水印效果 126 6.4.2 覆蓋 127 [實例6.14] 將小貓圖像貼到沙灘上 127 [實例6.15] 拼接禁止吸煙圖像 129 本章知識思維導圖 130 第7章 腐蝕與膨脹 131 視頻講解:7節(jié),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 形態(tài)學方法 139 7.5.1 梯度運算 140 [實例7.5] 通過梯度運算畫出小蜘蛛的輪廓 140 7.5.2 頂帽運算 141 [實例7.6] 通過頂帽運算畫出小蜘蛛的腿 141 7.5.3 黑帽運算 142 [實例7.7] 通過黑帽運算畫出小蜘蛛身上的花紋 142 本章知識思維導圖 143 第8章 圖像的幾何變換 144 視頻講解:8節(jié),41分鐘 8.1 縮放 145 8.1.1 dsize參數(shù)實現(xiàn)縮放 145 [實例8.1] 將圖像按照指定寬高進行縮放 145 8.1.2 fx參數(shù)和fy參數(shù)實現(xiàn)縮放 145 [實例8.2] 將圖像按照指定比例進行縮放 146 8.2 翻轉 148 [實例8.3] 同時實現(xiàn)三種翻轉效果 148 8.3 仿射變換 150 8.3.1 平移 151 [實例8.4] 讓圖像向右下方平移 151 8.3.2 旋轉 152 [實例8.5] 讓圖像逆時針旋轉 153 8.3.3 傾斜 154 [實例8.6] 讓圖像向右傾斜 154 8.4 透視 156 [實例8.7] 模擬從底部觀察圖像得到的透視效果 157 [實例8.8] 生成圖書封面俯視圖 159 8.5 cmath模塊 160 [實例8.9] 呈現(xiàn)波浪效果的圖像 161 本章知識思維導圖 162 第9章 濾波器 163 視頻講解:6節(jié),35分鐘 9.1 圖像平滑處理 164 9.2 均值濾波器 164 [實例9.1] 對花朵圖像進行均值濾波操作 165 9.3 中值濾波器 167 [實例9.2] 對花朵圖像進行中值濾波操作 167 9.4 高斯濾波器 168 [實例9.3] 對花朵圖像進行高斯濾波操作 170 9.5 雙邊濾波器 171 [實例9.4] 對一幅人臉圖像進行“磨皮” 172 9.6 拉普拉斯高通濾波器 173 [實例9.5] 銳化圖像 174 本章知識思維導圖 175 第10章 模板匹配 178 視頻講解:5節(jié),13分鐘 10.1 模板匹配方法 179 10.2 單模板匹配 181 10.2.1 單目標匹配 181 [實例10.1] 為原始圖片中匹配成功的區(qū)域繪制紅框 181 [實例10.2] 從兩幅圖像中選擇最佳的匹配結果 183 [實例10.3] 查找重復的圖像 184 10.2.2 多目標匹配 185 [實例10.4] 為原始圖片中所有匹配成功的圖案繪制紅框 185 [實例10.5] 統(tǒng)計一條快軌線路的站臺總數(shù) 187 [實例10.6] 優(yōu)先選擇直線距離最短的地鐵站 188 10.3 多模板匹配 190 [實例10.7] 同時匹配3個不同的模板 190 [實例10.8] 控制臺輸出4輛車分別停在了哪個車位上 192 本章知識思維導圖 193 第11章 圖像輪廓 194 視頻講解:6節(jié),37分鐘 11.1 圖像的輪廓 195 11.1.1 查找輪廓 195 [實例11.1] 獲取圖像輪廓的極點 196 [實例11.2] 獲取圖像輪廓的重心坐標 197 [實例11.3] 獲取圖像輪廓的周長 199 [實例11.4] 比較兩個圖像輪廓面積的大小 200 11.1.2 繪制輪廓 200 [實例11.5] 繪制幾何圖像的輪廓 201 [實例11.6] 繪制花朵的輪廓 203 11.2 輪廓擬合 204 11.2.1 矩形包圍框 204 [實例11.7] 為爆炸圖形繪制矩形包圍框 204 11.2.2 圓形包圍框 205 [實例11.8] 為爆炸圖形繪制圓形包圍框 205 11.2.3 最小三角包圍框 206 [實例11.9] 繪制最小三角包圍框 207 11.2.4 最優(yōu)橢圓包圍框 207 [實例11.10] 繪制最優(yōu)擬合橢圓包圍框 208 11.3 凸包 208 [實例11.11] 為爆炸圖形繪制凸包 209 本章知識思維導圖 210 第12章 圖形檢測 211 視頻講解:3節(jié),25分鐘 12.1 Canny邊緣檢測 212 [實例12.1] 使用Canny算法檢測花朵邊緣 212 [實例12.2] 能否直接對包含噪聲的圖像進行Canny邊緣檢測 214 12.2 霍夫變換 215 12.2.1 直線檢測 215 [實例12.3] 檢測筆圖像中出現(xiàn)的直線 215 12.2.2 圓環(huán)檢測 216 [實例12.4] 檢測硬幣圖像中出現(xiàn)的圓環(huán) 217 本章知識思維導圖 218 第13章 視頻處理 219 視頻講解:16節(jié),38分鐘 13.1 讀取并顯示攝像頭視頻 220 13.1.1 VideoCapture類 220 13.1.2 如何使用VideoCapture類 221 [實例13.1] 讀取并顯示攝像頭視頻 221 [實例13.2] 攝像頭視頻由彩色視頻轉換為灰度視頻 222 [實例13.3] 顯示并保存攝像頭視頻某一時刻的圖像 223 [實例13.4] 讀取并顯示兩個攝像頭視頻 224 13.2 播放視頻文件 225 13.2.1 讀取并顯示視頻文件 225 [實例13.5] 讀取并顯示視頻文件 225 [實例13.6] 視頻文件由彩色視頻轉換為灰度視頻 226 [實例13.7] 分解視頻 227 [實例13.8] 按照一定的幀數(shù)間隔保存幀 228 13.2.2 視頻的暫停播放和繼續(xù)播放 229 [實例13.9] 視頻的暫停播放和繼續(xù)播放 229 13.2.3 獲取視頻文件的屬性 230 [實例13.10] 獲取并輸出視頻文件的指定屬性值 231 [實例13.11] 動態(tài)顯示視頻文件的屬性值 231 13.3 保存視頻文件 232 13.3.1 VideoWriter類 233 13.3.2 如何使用VideoWriter類 234 [實例13.12] 保存一段攝像頭視頻 234 [實例13.13] 保存一段時長為10s的攝像頭視頻 235 [實例13.14] 保存視頻文件 236 [實例13.15] 保存視頻文件中的前10s視頻 238 本章知識思維導圖 239 第14章 人臉跟蹤與識別 240 視頻講解:10節(jié),21分鐘 14.1 人臉跟蹤 241 14.1.1 級聯(lián)分類器 241 14.1.2 方法 242 14.1.3 分析人臉位置 243 [實例14.1] 在圖像的人臉位置繪制紅框 243 [實例14.2] 戴墨鏡特效 244 14.2 跟蹤其他內(nèi)容 245 14.2.1 眼睛跟蹤 245 [實例14.3] 在圖像的眼睛位置繪制紅框 245 14.2.2 貓臉跟蹤 246 [實例14.4] 在圖像里找到貓臉的位置 246 14.2.3 行人跟蹤 247 [實例14.5] 在圖像里行人的位置 247 14.2.4 車牌跟蹤 248 [實例14.6] 標記圖像中車牌的位置 248 14.3 人臉識別 249 14.3.1 Eigenfaces人臉識別器 249 [實例14.7] 使用Eigenfaces識別人臉 250 14.3.2 Fisherfaces人臉識別器 252 [實例14.8] 使用Fisherfaces識別人臉 253 14.3.3 Local Binary Pattern Histogram人臉識別器 254 [實例14.9] 使用LBPH識別人臉 255 本章知識思維導圖 257 第15章 MR機讀答題卡 260 視頻講解:1節(jié),13分鐘 15.1 開發(fā)背景 261 15.2 程序設計 261 15.2.1 開發(fā)環(huán)境 261 15.2.2 功能結構 261 15.2.3 業(yè)務流程 262 15.2.4 程序結構 262 15.3 模塊設計 263 15.3.1 公共工具模塊 263 15.3.2 獲取矩形圖案的平面透視圖 265 15.3.3 判斷填涂的是哪一個選項 267 15.3.4 判斷是哪一道題目 268 15.3.5 顯示機讀卡的平面透視圖 270 15.3.6 顯示對平面透視圖進行二值化閾值處理的結果 270 15.3.7 顯示對二值化閾值處理后的圖像進行閉運算后的結果 271 15.3.8 保存機讀卡上填涂的選項 272 15.3.9 打印在機讀卡上填涂的答案 272 本章知識思維導圖 273 第16章 MR智能視頻打卡系統(tǒng) 274 視頻講解:17節(jié),84分鐘 16.1 需求分析 275 16.2 系統(tǒng)設計 276 16.2.1 開發(fā)環(huán)境 276 16.2.2 功能結構 276 16.2.3 業(yè)務流程 277 16.2.4 項目結構 280 16.3 文件系統(tǒng)設計 280 16.4 數(shù)據(jù)實體模塊設計 281 16.5 工具模塊設計 283 16.5.1 公共工具模塊 283 16.5.2 IO流工具模塊 285 16.5.3 攝像頭工具模塊 290 16.6 服務模塊設計 292 16.6.1 人事服務模塊 292 16.6.2 人臉識別服務模塊 301 16.7 程序入口設計 303 16.7.1 用戶權限管理 303 16.7.2 主菜單設計 304 16.7.3 人臉打卡功能 306 16.7.4 為新員工登記人臉照片樣本 307 16.7.5 刪除舊員工全部數(shù)據(jù) 308 16.7.6 查詢員工打卡記錄 309 16.7.7 生成考勤報表 311 16.7.8 自定義上下班時間 313 16.7.9 啟動程序 315 本章知識思維導圖 315
你還可能感興趣
我要評論
|