本書(shū)從零基礎(chǔ)讀者的角度出發(fā),通過(guò)通俗易懂的語(yǔ)言、豐富多彩的實(shí)例,循序漸進(jìn)地讓讀者在實(shí)踐中學(xué)習(xí)Python OpenCV編程知識(shí),并提升自己的實(shí)際開(kāi)發(fā)能力。
全書(shū)共分為4篇16章,內(nèi)容包括搭建開(kāi)發(fā)環(huán)境、圖像處理基礎(chǔ)、NumPy模塊、繪制圖形和文字、閾值、圖像運(yùn)算、腐蝕與膨脹、圖像的幾何變換、濾波器、模板匹配、圖像輪廓、圖形檢測(cè)、視頻處理、人臉跟蹤與識(shí)別、MR機(jī)讀答題卡、MR智能視頻打卡系統(tǒng)等。書(shū)中知識(shí)點(diǎn)講解細(xì)致,側(cè)重介紹每個(gè)知識(shí)點(diǎn)的使用場(chǎng)景,涉及的代碼給出了詳細(xì)的注釋?zhuān)梢允棺x者輕松領(lǐng)會(huì)OpenCV程序開(kāi)發(fā)的精髓,快速提高開(kāi)發(fā)技能。同時(shí),本書(shū)配套了大量教學(xué)視頻,掃碼即可觀(guān)看,還提供所有程序源文件,方便讀者實(shí)踐。
本書(shū)適合Python OpenCV、人工智能、機(jī)器視覺(jué)初學(xué)者自學(xué)使用,也可用作高等院校相關(guān)專(zhuān)業(yè)的教材及參考書(shū)。
第1篇 基礎(chǔ)知識(shí)篇
第章 搭建開(kāi)發(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的應(yīng)用 4
1.1.4 Python與OpenCV 4
1.2 Python的下載和安裝 5
1.2.1 如何查看計(jì)算機(jī)操作系統(tǒng)的位數(shù) 5
1.2.2 下載Python安裝包 5
1.2.3 Windows 64位系統(tǒng)上安裝Python 7
1.2.4 測(cè)試Python是否安裝成功 9
1.3 Python OpenCV的下載和安裝 10
1.3.1 下載和安裝OpenCV-Contrib-Python庫(kù) 10
1.3.2 測(cè)試OpenCV-Contrib-Python庫(kù)和NumPy庫(kù)是否安裝成功 11
1.4 PyCharm的下載和安裝 11
1.4.1 下載PyCharm 11
1.4.2 安裝PyCharm 12
1.4.3 啟動(dòng)并配置PyCharm 14
本章知識(shí)思維導(dǎo)圖 19
第2章 圖像處理基礎(chǔ) 20 視頻講解:13節(jié),38分鐘
2.1 圖像處理的基本操作 21
2.1.1 讀取圖像 21
[實(shí)例2.1] 讀取當(dāng)前項(xiàng)目目錄下的圖像 21
2.1.2 顯示圖像 22
[實(shí)例2.2] 窗口顯示圖像 23
2.1.3 保存圖像 24
[實(shí)例2.3] 保存圖像 24
2.1.4 獲取圖像屬性 25
[實(shí)例2.4] 打印彩色圖像和灰度圖像的屬性 25
2.2 像素 26
2.2.1 確定像素的位置 26
[實(shí)例2.5] 表示圖2.8中的指定像素 28
2.2.2 獲取像素的BGR值 28
2.2.3 修改像素的BGR值 30
[實(shí)例2.6] 修改圖2.7中的指定區(qū)域內(nèi)的所有像素 30
2.3 色彩空間 31
2.3.1 GRAY色彩空間 31
[實(shí)例2.7] 從BGR色彩空間轉(zhuǎn)換到GRAY色彩空間 32
2.3.2 HSV色彩空間 33
[實(shí)例2.8] 從BGR色彩空間轉(zhuǎn)換到HSV色彩空間 34
2.4 通道 34
2.4.1 拆分通道 34
[實(shí)例2.9] 拆分一幅BGR圖像中的通道 35
[實(shí)例2.10] 拆分一幅HSV圖像中的通道 36
2.4.2 合并通道 38
[實(shí)例2.11] 按B→G→R的順序合并通道 38
[實(shí)例2.12] 合并H通道圖像、S通道圖像和V通道圖像 39
2.4.3 綜合運(yùn)用拆分通道和合并通道 40
[實(shí)例2.13] 只把H通道的值調(diào)整為180 40
2.4.4 alpha通道 42
[實(shí)例2.14] 調(diào)整A通道的值 42
本章知識(shí)思維導(dǎo)圖 44
第3章 NumPy模塊 45 視頻講解:5節(jié),35分鐘
3.1 NumPy模塊與OpenCV 46
3.2 數(shù)組的類(lèi)型 46
3.3 創(chuàng)建數(shù)組 47
3.3.1 最常規(guī)的array()方法 47
[實(shí)例3.1] 創(chuàng)建一維數(shù)組和二維數(shù)組 48
[實(shí)例3.2] 創(chuàng)建浮點(diǎn)類(lèi)型數(shù)組 48
[實(shí)例3.3] 創(chuàng)建三維數(shù)組 49
3.3.2 創(chuàng)建指定維度和數(shù)據(jù)類(lèi)型未初始化的數(shù)組 49
[實(shí)例3.4] 創(chuàng)建2行3列的未初始化數(shù)組 49
3.3.3 創(chuàng)建用0填充的數(shù)組 49
[實(shí)例3.5] 創(chuàng)建純0數(shù)組 49
3.3.4 創(chuàng)建用1填充的數(shù)組 50
[實(shí)例3.6] 創(chuàng)建純1數(shù)組 50
3.3.5 創(chuàng)建隨機(jī)數(shù)組 50
[實(shí)例3.7] 創(chuàng)建隨機(jī)數(shù)組 50
3.4 操作數(shù)組 51
3.4.1 加法運(yùn)算 51
[實(shí)例3.8] 對(duì)數(shù)組做加法運(yùn)算 51
3.4.2 減法和乘除法運(yùn)算 51
[實(shí)例3.9] 對(duì)數(shù)組做減法、乘法和除法運(yùn)算 52
3.4.3 冪運(yùn)算 52
[實(shí)例3.10] 兩個(gè)數(shù)組做冪運(yùn)算 52
3.4.4 比較運(yùn)算 53
[實(shí)例3.11] 使用邏輯運(yùn)算符比較數(shù)組 53
3.4.5 復(fù)制數(shù)組 53
[實(shí)例3.12] 復(fù)制數(shù)據(jù),比較復(fù)制的結(jié)果與原數(shù)組是否相同 53
[實(shí)例3.13] 復(fù)制圖像 54
3.5 數(shù)組的索引和切片 55
3.5.1 索引 55
[實(shí)例3.14] 查找一維數(shù)組索引為0的元素 55
3.5.2 切片式索引 55
[實(shí)例3.15] 獲取數(shù)組中某范圍內(nèi)的元素 56
[實(shí)例3.16] 使用不同的切片式索引操作獲取數(shù)組中的元素 56
3.5.3 二維數(shù)組索引 57
[實(shí)例3.17] 用三種方式獲取二維數(shù)組中的元素 57
3.5.4 二維數(shù)組切片式索引 58
[實(shí)例3.18] 對(duì)二維數(shù)組進(jìn)行切片式索引操作 58
3.6 創(chuàng)建圖像 59
3.6.1 創(chuàng)建黑白圖像 59
[實(shí)例3.19] 創(chuàng)建純黑色圖像 59
[實(shí)例3.20] 創(chuàng)建純白色圖像 59
[實(shí)例3.21] 在黑色圖像內(nèi)部繪制白色矩形 60
[實(shí)例3.22] 創(chuàng)建黑白相間的圖像 60
3.6.2 創(chuàng)建彩色圖像 61
[實(shí)例3.23] 創(chuàng)建彩色圖像 61
3.6.3 創(chuàng)建隨機(jī)圖像 62
[實(shí)例3.24] 創(chuàng)建隨機(jī)像素的雪花點(diǎn)圖像 62
3.7 拼接圖像 63
3.7.1 水平拼接數(shù)組 63
3.7.2 垂直拼接數(shù)組 63
3.7.3 在圖像處理中的應(yīng)用 64
[實(shí)例3.25] 按照水平和垂直兩種方式拼接兩個(gè)圖像 64
本章知識(shí)思維導(dǎo)圖 66
第4章 繪制圖形和文字 67 視頻講解:9節(jié),23分鐘
4.1 線(xiàn)段的繪制 68
[實(shí)例4.1] 繪制線(xiàn)段并拼成一個(gè)“王”字 68
[實(shí)例4.2] 繪制99條長(zhǎng)度、方向、寬度、顏色隨機(jī)的線(xiàn)段 69
4.2 矩形的繪制 71
[實(shí)例4.3] 繪制一個(gè)矩形邊框 71
[實(shí)例4.4] 繪制正方形 72
4.3 圓形的繪制 73
[實(shí)例4.5] 繪制“交通燈” 74
[實(shí)例4.6] 繪制同心圓 74
[實(shí)例4.7] 繪制27個(gè)隨機(jī)實(shí)心圓 75
4.4 多邊形的繪制 76
[實(shí)例4.8] 繪制一個(gè)等腰梯形邊框 77
[實(shí)例4.9] 繪制五角星 78
4.5 文字的繪制 79
[實(shí)例4.10] 繪制文字“OpenCV” 80
4.5.1 文字的斜體效果 81
[實(shí)例4.11] 繪制指定字體樣式的文字并呈現(xiàn)斜體效果 81
4.5.2 文字的垂直鏡像效果 82
[實(shí)例4.12] 繪制呈現(xiàn)垂直鏡像效果的“OpenCV” 82
4.5.3 在圖像上繪制文字 83
[實(shí)例4.13] 在圖像上繪制文字 83
4.6 動(dòng)態(tài)繪制圖形 83
[實(shí)例4.14] 彈球動(dòng)畫(huà) 84
本章知識(shí)思維導(dǎo)圖 86
第5章 閾值 88 視頻講解:10節(jié),18分鐘
5.1 閾值概述 89
5.2 閾值處理函數(shù) 89
5.3 二值化處理 90
5.3.1 “非黑即白”的圖像 90
[實(shí)例5.1] 二值化閾值處理白黑漸變圖 90
[實(shí)例5.2] 觀(guān)察不同閾值的處理效果 91
[實(shí)例5.3] 觀(guān)察不同最大值的處理效果 92
5.3.2 反二值化處理 93
[實(shí)例5.4] 對(duì)圖像進(jìn)行反二值化處理 93
5.4 零處理 94
5.4.1 低于閾值零處理 95
[實(shí)例5.5] 對(duì)圖像進(jìn)行低于閾值零處理 95
5.4.2 超出閾值零處理 96
[實(shí)例5.6] 對(duì)圖像進(jìn)行超出閾值零處理 96
5.5 截?cái)嗵幚? 97
[實(shí)例5.6] 對(duì)圖像進(jìn)行截?cái)嗵幚? 97
5.6 自適應(yīng)處理 99
[實(shí)例5.8] 無(wú)法得到清晰有效的結(jié)果 99
[實(shí)例5.9] 顯示自適應(yīng)閾值處理的結(jié)果 101
5.7 Otsu方法 102
[實(shí)例5.10] 實(shí)現(xiàn)Otsu方法的閾值處理 103
5.8 閾值處理的應(yīng)用 104
[實(shí)例5.11] 利用閾值處理勾勒樓房和汽車(chē)的輪廓 104
[實(shí)例5.12] 閾值調(diào)試器 106
本章知識(shí)思維導(dǎo)圖 107
第6章 圖像運(yùn)算 108 視頻講解:9節(jié),65分鐘
6.1 掩模 109
[實(shí)例6.1] 創(chuàng)建3通道掩模圖像 110
6.2 圖像的加法運(yùn)算 111
[實(shí)例6.2] 分別使用“+”和add()方法計(jì)算圖像和 111
[實(shí)例6.3] 顯示圖像底片的效果 112
[實(shí)例6.4] 模擬三色光疊加得白光 113
[實(shí)例6.5] 利用掩模遮蓋相加結(jié)果 114
6.3 圖像的位運(yùn)算 115
6.3.1 按位與運(yùn)算 115
[實(shí)例6.6] 花圖像與十字掩模做與運(yùn)算 116
6.3.2 按位或運(yùn)算 117
[實(shí)例6.7] 花圖像與十字掩模做或運(yùn)算 118
6.3.3 按位取反運(yùn)算 119
[實(shí)例6.8] 對(duì)花圖像進(jìn)行取反運(yùn)算 119
6.3.4 按位異或運(yùn)算 119
[實(shí)例6.9] 花圖像與十字掩模做異或運(yùn)算 121
[實(shí)例6.10] 對(duì)圖像進(jìn)行加密、解密 121
6.3.5 圖像的位運(yùn)算的應(yīng)用 123
[實(shí)例6.11] 粘貼帶透明區(qū)域的圖像 123
6.4 合并圖像 124
6.4.1 加權(quán)和 125
[實(shí)例6.12] 利用計(jì)算加權(quán)和的方式實(shí)現(xiàn)多次曝光效果 125
[實(shí)例6.13] 為圖像添加水印效果 126
6.4.2 覆蓋 127
[實(shí)例6.14] 將小貓圖像貼到沙灘上 127
[實(shí)例6.15] 拼接禁止吸煙圖像 129
本章知識(shí)思維導(dǎo)圖 130
第7章 腐蝕與膨脹 131 視頻講解:7節(jié),39分鐘
7.1 腐蝕 132
[實(shí)例7.1] 將仙人球圖像中的刺都抹除掉 133
7.2 膨脹 134
[實(shí)例7.2] 將圖像加工成“近視眼”效果 135
7.3 開(kāi)運(yùn)算 136
[實(shí)例7.3] 抹除黑種草圖像中的針狀葉子 136
7.4 閉運(yùn)算 137
[實(shí)例7.4] 對(duì)漢字圖片進(jìn)行閉運(yùn)算 138
7.5 形態(tài)學(xué)方法 139
7.5.1 梯度運(yùn)算 140
[實(shí)例7.5] 通過(guò)梯度運(yùn)算畫(huà)出小蜘蛛的輪廓 140
7.5.2 頂帽運(yùn)算 141
[實(shí)例7.6] 通過(guò)頂帽運(yùn)算畫(huà)出小蜘蛛的腿 141
7.5.3 黑帽運(yùn)算 142
[實(shí)例7.7] 通過(guò)黑帽運(yùn)算畫(huà)出小蜘蛛身上的花紋 142
本章知識(shí)思維導(dǎo)圖 143
第8章 圖像的幾何變換 144 視頻講解:8節(jié),41分鐘
8.1 縮放 145
8.1.1 dsize參數(shù)實(shí)現(xiàn)縮放 145
[實(shí)例8.1] 將圖像按照指定寬高進(jìn)行縮放 145
8.1.2 fx參數(shù)和fy參數(shù)實(shí)現(xiàn)縮放 145
[實(shí)例8.2] 將圖像按照指定比例進(jìn)行縮放 146
8.2 翻轉(zhuǎn) 148
[實(shí)例8.3] 同時(shí)實(shí)現(xiàn)三種翻轉(zhuǎn)效果 148
8.3 仿射變換 150
8.3.1 平移 151
[實(shí)例8.4] 讓圖像向右下方平移 151
8.3.2 旋轉(zhuǎn) 152
[實(shí)例8.5] 讓圖像逆時(shí)針旋轉(zhuǎn) 153
8.3.3 傾斜 154
[實(shí)例8.6] 讓圖像向右傾斜 154
8.4 透視 156
[實(shí)例8.7] 模擬從底部觀(guān)察圖像得到的透視效果 157
[實(shí)例8.8] 生成圖書(shū)封面俯視圖 159
8.5 cmath模塊 160
[實(shí)例8.9] 呈現(xiàn)波浪效果的圖像 161
本章知識(shí)思維導(dǎo)圖 162
第9章 濾波器 163 視頻講解:6節(jié),35分鐘
9.1 圖像平滑處理 164
9.2 均值濾波器 164
[實(shí)例9.1] 對(duì)花朵圖像進(jìn)行均值濾波操作 165
9.3 中值濾波器 167
[實(shí)例9.2] 對(duì)花朵圖像進(jìn)行中值濾波操作 167
9.4 高斯濾波器 168
[實(shí)例9.3] 對(duì)花朵圖像進(jìn)行高斯濾波操作 170
9.5 雙邊濾波器 171
[實(shí)例9.4] 對(duì)一幅人臉圖像進(jìn)行“磨皮” 172
9.6 拉普拉斯高通濾波器 173
[實(shí)例9.5] 銳化圖像 174
本章知識(shí)思維導(dǎo)圖 175
第10章 模板匹配 178 視頻講解:5節(jié),13分鐘
10.1 模板匹配方法 179
10.2 單模板匹配 181
10.2.1 單目標(biāo)匹配 181
[實(shí)例10.1] 為原始圖片中匹配成功的區(qū)域繪制紅框 181
[實(shí)例10.2] 從兩幅圖像中選擇最佳的匹配結(jié)果 183
[實(shí)例10.3] 查找重復(fù)的圖像 184
10.2.2 多目標(biāo)匹配 185
[實(shí)例10.4] 為原始圖片中所有匹配成功的圖案繪制紅框 185
[實(shí)例10.5] 統(tǒng)計(jì)一條快軌線(xiàn)路的站臺(tái)總數(shù) 187
[實(shí)例10.6] 優(yōu)先選擇直線(xiàn)距離最短的地鐵站 188
10.3 多模板匹配 190
[實(shí)例10.7] 同時(shí)匹配3個(gè)不同的模板 190
[實(shí)例10.8] 控制臺(tái)輸出4輛車(chē)分別停在了哪個(gè)車(chē)位上 192
本章知識(shí)思維導(dǎo)圖 193
第11章 圖像輪廓 194 視頻講解:6節(jié),37分鐘
11.1 圖像的輪廓 195
11.1.1 查找輪廓 195
[實(shí)例11.1] 獲取圖像輪廓的極點(diǎn) 196
[實(shí)例11.2] 獲取圖像輪廓的重心坐標(biāo) 197
[實(shí)例11.3] 獲取圖像輪廓的周長(zhǎng) 199
[實(shí)例11.4] 比較兩個(gè)圖像輪廓面積的大小 200
11.1.2 繪制輪廓 200
[實(shí)例11.5] 繪制幾何圖像的輪廓 201
[實(shí)例11.6] 繪制花朵的輪廓 203
11.2 輪廓擬合 204
11.2.1 矩形包圍框 204
[實(shí)例11.7] 為爆炸圖形繪制矩形包圍框 204
11.2.2 圓形包圍框 205
[實(shí)例11.8] 為爆炸圖形繪制圓形包圍框 205
11.2.3 最小三角包圍框 206
[實(shí)例11.9] 繪制最小三角包圍框 207
11.2.4 最優(yōu)橢圓包圍框 207
[實(shí)例11.10] 繪制最優(yōu)擬合橢圓包圍框 208
11.3 凸包 208
[實(shí)例11.11] 為爆炸圖形繪制凸包 209
本章知識(shí)思維導(dǎo)圖 210
第12章 圖形檢測(cè) 211 視頻講解:3節(jié),25分鐘
12.1 Canny邊緣檢測(cè) 212
[實(shí)例12.1] 使用Canny算法檢測(cè)花朵邊緣 212
[實(shí)例12.2] 能否直接對(duì)包含噪聲的圖像進(jìn)行Canny邊緣檢測(cè) 214
12.2 霍夫變換 215
12.2.1 直線(xiàn)檢測(cè) 215
[實(shí)例12.3] 檢測(cè)筆圖像中出現(xiàn)的直線(xiàn) 215
12.2.2 圓環(huán)檢測(cè) 216
[實(shí)例12.4] 檢測(cè)硬幣圖像中出現(xiàn)的圓環(huán) 217
本章知識(shí)思維導(dǎo)圖 218
第13章 視頻處理 219 視頻講解:16節(jié),38分鐘
13.1 讀取并顯示攝像頭視頻 220
13.1.1 VideoCapture類(lèi) 220
13.1.2 如何使用VideoCapture類(lèi) 221
[實(shí)例13.1] 讀取并顯示攝像頭視頻 221
[實(shí)例13.2] 攝像頭視頻由彩色視頻轉(zhuǎn)換為灰度視頻 222
[實(shí)例13.3] 顯示并保存攝像頭視頻某一時(shí)刻的圖像 223
[實(shí)例13.4] 讀取并顯示兩個(gè)攝像頭視頻 224
13.2 播放視頻文件 225
13.2.1 讀取并顯示視頻文件 225
[實(shí)例13.5] 讀取并顯示視頻文件 225
[實(shí)例13.6] 視頻文件由彩色視頻轉(zhuǎn)換為灰度視頻 226
[實(shí)例13.7] 分解視頻 227
[實(shí)例13.8] 按照一定的幀數(shù)間隔保存幀 228
13.2.2 視頻的暫停播放和繼續(xù)播放 229
[實(shí)例13.9] 視頻的暫停播放和繼續(xù)播放 229
13.2.3 獲取視頻文件的屬性 230
[實(shí)例13.10] 獲取并輸出視頻文件的指定屬性值 231
[實(shí)例13.11] 動(dòng)態(tài)顯示視頻文件的屬性值 231
13.3 保存視頻文件 232
13.3.1 VideoWriter類(lèi) 233
13.3.2 如何使用VideoWriter類(lèi) 234
[實(shí)例13.12] 保存一段攝像頭視頻 234
[實(shí)例13.13] 保存一段時(shí)長(zhǎng)為10s的攝像頭視頻 235
[實(shí)例13.14] 保存視頻文件 236
[實(shí)例13.15] 保存視頻文件中的前10s視頻 238
本章知識(shí)思維導(dǎo)圖 239
第14章 人臉跟蹤與識(shí)別 240 視頻講解:10節(jié),21分鐘
14.1 人臉跟蹤 241
14.1.1 級(jí)聯(lián)分類(lèi)器 241
14.1.2 方法 242
14.1.3 分析人臉位置 243
[實(shí)例14.1] 在圖像的人臉位置繪制紅框 243
[實(shí)例14.2] 戴墨鏡特效 244
14.2 跟蹤其他內(nèi)容 245
14.2.1 眼睛跟蹤 245
[實(shí)例14.3] 在圖像的眼睛位置繪制紅框 245
14.2.2 貓臉跟蹤 246
[實(shí)例14.4] 在圖像里找到貓臉的位置 246
14.2.3 行人跟蹤 247
[實(shí)例14.5] 在圖像里行人的位置 247
14.2.4 車(chē)牌跟蹤 248
[實(shí)例14.6] 標(biāo)記圖像中車(chē)牌的位置 248
14.3 人臉識(shí)別 249
14.3.1 Eigenfaces人臉識(shí)別器 249
[實(shí)例14.7] 使用Eigenfaces識(shí)別人臉 250
14.3.2 Fisherfaces人臉識(shí)別器 252
[實(shí)例14.8] 使用Fisherfaces識(shí)別人臉 253
14.3.3 Local Binary Pattern Histogram人臉識(shí)別器 254
[實(shí)例14.9] 使用LBPH識(shí)別人臉 255
本章知識(shí)思維導(dǎo)圖 257
第15章 MR機(jī)讀答題卡 260 視頻講解:1節(jié),13分鐘
15.1 開(kāi)發(fā)背景 261
15.2 程序設(shè)計(jì) 261
15.2.1 開(kāi)發(fā)環(huán)境 261
15.2.2 功能結(jié)構(gòu) 261
15.2.3 業(yè)務(wù)流程 262
15.2.4 程序結(jié)構(gòu) 262
15.3 模塊設(shè)計(jì) 263
15.3.1 公共工具模塊 263
15.3.2 獲取矩形圖案的平面透視圖 265
15.3.3 判斷填涂的是哪一個(gè)選項(xiàng) 267
15.3.4 判斷是哪一道題目 268
15.3.5 顯示機(jī)讀卡的平面透視圖 270
15.3.6 顯示對(duì)平面透視圖進(jìn)行二值化閾值處理的結(jié)果 270
15.3.7 顯示對(duì)二值化閾值處理后的圖像進(jìn)行閉運(yùn)算后的結(jié)果 271
15.3.8 保存機(jī)讀卡上填涂的選項(xiàng) 272
15.3.9 打印在機(jī)讀卡上填涂的答案 272
本章知識(shí)思維導(dǎo)圖 273
第16章 MR智能視頻打卡系統(tǒng) 274 視頻講解:17節(jié),84分鐘
16.1 需求分析 275
16.2 系統(tǒng)設(shè)計(jì) 276
16.2.1 開(kāi)發(fā)環(huán)境 276
16.2.2 功能結(jié)構(gòu) 276
16.2.3 業(yè)務(wù)流程 277
16.2.4 項(xiàng)目結(jié)構(gòu) 280
16.3 文件系統(tǒng)設(shè)計(jì) 280
16.4 數(shù)據(jù)實(shí)體模塊設(shè)計(jì) 281
16.5 工具模塊設(shè)計(jì) 283
16.5.1 公共工具模塊 283
16.5.2 IO流工具模塊 285
16.5.3 攝像頭工具模塊 290
16.6 服務(wù)模塊設(shè)計(jì) 292
16.6.1 人事服務(wù)模塊 292
16.6.2 人臉識(shí)別服務(wù)模塊 301
16.7 程序入口設(shè)計(jì) 303
16.7.1 用戶(hù)權(quán)限管理 303
16.7.2 主菜單設(shè)計(jì) 304
16.7.3 人臉打卡功能 306
16.7.4 為新員工登記人臉照片樣本 307
16.7.5 刪除舊員工全部數(shù)據(jù) 308
16.7.6 查詢(xún)員工打卡記錄 309
16.7.7 生成考勤報(bào)表 311
16.7.8 自定義上下班時(shí)間 313
16.7.9 啟動(dòng)程序 315
本章知識(shí)思維導(dǎo)圖 315