在數(shù)字化時(shí)代,圖像和視頻處理已經(jīng)成為日常生活中無處不在的技術(shù)。從智能手機(jī)中的相機(jī)應(yīng)用,到醫(yī)學(xué)成像,再到自動(dòng)駕駛汽車,計(jì)算機(jī)視覺技術(shù)正在逐漸改變?nèi)藗兊纳詈凸ぷ鞣绞。Python與OpenCV(開源計(jì)算機(jī)視覺庫)結(jié)合,為人們提供了一個(gè)強(qiáng)大、易于上手的工具,使人們能夠深入探索和應(yīng)用這一前沿技術(shù)。
Python作為最受歡迎的編程語言之一,因其簡潔、高效和跨平臺(tái)的特性而備受青睞。OpenCV則為人們提供了一個(gè)全面的工具,幫助人們處理圖像和視頻,實(shí)現(xiàn)從基礎(chǔ)操作到高級(jí)算法的各種功能。當(dāng)這兩者結(jié)合,人們得到了一個(gè)既強(qiáng)大又靈活的平臺(tái),可以快速開發(fā)和部署計(jì)算機(jī)視覺應(yīng)用。
編寫本書的初衷是希望能為讀者提供一個(gè)系統(tǒng)的指南,幫助讀者從零開始,掌握Python和OpenCV的核心概念和技術(shù)。無論是計(jì)算機(jī)視覺的初學(xué)者,還是已經(jīng)有一定經(jīng)驗(yàn)的開發(fā)者,本書都會(huì)為讀者提供寶貴的知識(shí)和實(shí)踐經(jīng)驗(yàn)。
通過閱讀本書,讀者將了解到如何使用Python和OpenCV進(jìn)行圖像處理、繪制圖形、圖像分析、視頻處理等。同時(shí),本書還將深入探討更高級(jí)的主題,如人臉識(shí)別和特征點(diǎn)檢測。此外,本書還準(zhǔn)備了一系列實(shí)戰(zhàn)項(xiàng)目,幫助讀者將所學(xué)知識(shí)應(yīng)用于實(shí)際場景中。
在這個(gè)快速發(fā)展的領(lǐng)域,掌握 Python 和 OpenCV 的知識(shí)將為讀者打開無數(shù)的機(jī)會(huì)。無論是為了開發(fā)創(chuàng)新的應(yīng)用、解決具體的問題,還是深化自己的研究,相信本書將為讀者提供必要的工具和知識(shí)。
隨著人工智能和機(jī)器學(xué)習(xí)的飛速發(fā)展,我們見證了一系列令人印象深刻的技術(shù)進(jìn)步。在這個(gè)浪潮中,OpenAI的ChatGPT和OpenAI API無疑是值得人們深入探討的重要技術(shù)。這些技術(shù)不僅展示了機(jī)器學(xué)習(xí)的最新成果,也為編程世界開辟了新的可能性。在本書的后幾章中,我們將通過實(shí)戰(zhàn)項(xiàng)目,探索如何將這些先進(jìn)的技術(shù)應(yīng)用于圖像和視頻處理的領(lǐng)域,特別是在使用Python和OpenCV的環(huán)境中。
ChatGPT是OpenAI推出的基于GPT3.5和GPT4的聊天機(jī)器人,它能夠理解和生成自然語言,為用戶提供了一種直觀且強(qiáng)大的交互方式。通過ChatGPT,我們能夠極大地簡化代碼編寫過程,甚至可以通過簡單的描述讓機(jī)器幫助我們自動(dòng)生成代碼,這無疑大幅提高了開發(fā)效率,降低了編程門檻,即便是非專業(yè)的編程人員,也能夠利用先進(jìn)的技術(shù)完成復(fù)雜的任務(wù)。
OpenAI API則為人們提供了一種利用直接而高效的方式訪問OpenAI的強(qiáng)大能力,包括但不限于代碼生成、圖像生成等。利用OpenAI API,人們可以將先進(jìn)的AI技術(shù)無縫集成到項(xiàng)目中,為應(yīng)用賦予前所未有的智能和創(chuàng)造力。
通過實(shí)戰(zhàn)項(xiàng)目視頻處理工具集(video_fx)和智圖幻境(PyImageFX),本書將演示如何利用ChatGPT和OpenAI API,以及Python和OpenCV的強(qiáng)大功能,構(gòu)建出實(shí)用且具有創(chuàng)新性的圖像和視頻處理工具。本書還將探討如何利用這些技術(shù)為項(xiàng)目加速,為用戶創(chuàng)造出令人滿意的解決方案,同時(shí)也為讀者展示了如何將理論知識(shí)轉(zhuǎn)化為實(shí)際應(yīng)用,探索未來技術(shù)的無限可能。
這些技術(shù)的出現(xiàn),不僅豐富了編程工具箱,也打開了通往未來的大門。讓我們一起借助ChatGPT和OpenAI API的力量,探索更廣闊的編程與應(yīng)用領(lǐng)域。
最后,希望本書能為讀者的學(xué)習(xí)之旅提供指引,幫助讀者充分利用 Python 和 OpenCV 的潛力,并借助ChatGPT和OpenAI API等工具,開創(chuàng)屬于自己的計(jì)算機(jī)視覺未來。
作者2024年11月
第1章跨越Python OpenCV之門
微課視頻15分鐘
1.1Python概述
1.1.1Python的由來
1.1.2Python的優(yōu)勢(shì)
1.1.3Python在編程語言中的排名
1.1.4Python的版本
1.1.5Python的應(yīng)用場景
1.2OpenCV概述
1.2.1計(jì)算機(jī)視覺
1.2.2OpenCV的功能和特點(diǎn)
1.2.3OpenCV的發(fā)展歷程
1.2.4OpenCV包含的模塊
1.2.5OpenCV的應(yīng)用場景
1.2.6OpenCV與Python結(jié)合的優(yōu)勢(shì)
1.3Python的下載和安裝
1.4安裝Python OpenCV
1.5PyCharm的下載和安裝
1.6編寫第一個(gè)基于Python OpenCV的應(yīng)用
1.7本章小結(jié)
第2章圖像基礎(chǔ)知識(shí)
微課視頻17分鐘
2.1圖像處理基礎(chǔ)
2.1.1讀取圖像
2.1.2讀取PNG文件出現(xiàn)警告
2.1.3顯示圖像
2.1.4保存圖像
2.1.5獲取圖像屬性
2.2像素
2.2.1確定像素的位置
2.2.2讀取像素的BGR值
2.2.3修改像素的BGR值
2.3色彩空間
2.3.1灰度(GRAY)色彩空間
2.3.2從RGB/BGR色彩空間轉(zhuǎn)換到GRAY色彩空間
2.3.3RGB色彩空間的局限性
2.3.4適合圖像處理的HSV色彩空間
2.3.5RGB/BGR色彩空間與HSV色彩空間相互轉(zhuǎn)換
2.4通道
2.4.1拆分BGR圖像中的通道
2.4.2拆分HSV圖像中的通道
2.4.3合并B通道圖像、G通道圖像和R通道圖像
2.4.4合并H通道圖像、S通道圖像和V通道圖像
2.4.5調(diào)整HSV圖像通道的值
2.4.6alpha通道
2.5本章小結(jié)
第3章高級(jí)圖像處理技術(shù)
微課視頻35分鐘
3.1使用NumPy操作圖像
3.1.1創(chuàng)建黑白圖像
3.1.2在黑色圖像內(nèi)部繪制白色同心圓
3.1.3創(chuàng)建彩色圖像
3.1.4創(chuàng)建彩色雪花點(diǎn)圖像
3.1.5拼接圖像
3.1.6將圖像變成22網(wǎng)格
3.2圖像像素的操作
3.2.1尋找圖像像素的最大值和最小值
3.2.2計(jì)算圖像均值和標(biāo)準(zhǔn)差
3.3圖像之間的像素操作
3.3.1兩幅圖像的比較運(yùn)算
3.3.2比較兩幅圖像,并顯示最大值圖像和最小值圖像
3.3.3使用掩膜和cv2.min()函數(shù)截圖
3.3.4顯示紅色圖像
3.3.5兩幅圖像的位運(yùn)算
3.4圖像二值化
3.5多閾值比較與LUT
3.6圖像連接和圖像變換
3.6.1圖像連接
3.6.2圖像尺寸變換
3.6.3圖像翻轉(zhuǎn)變換
3.6.4圖像仿射變換
3.6.5圖像透視變換
3.6.6極坐標(biāo)變換
3.7感興趣的區(qū)域(ROI)
3.8圖像金字塔
3.8.1高斯金字塔
3.8.2拉普拉斯金字塔
3.9本章小結(jié)
第4章繪制圖形
微課視頻17分鐘
4.1使用不同粗細(xì)和顏色的直線繪制王字
4.2繪制嵌套矩形
4.3繪制圓形
4.3.1繪制彩色同心圓
4.3.2動(dòng)態(tài)隨機(jī)彩色實(shí)心圓
4.3.3粒子爆炸
4.4繪制橢圓形的眼睛
4.5繪制五角星
4.6繪制文本
4.6.1用不同字體繪制文字OpenCV
4.6.2繪制鏡像中文效果
4.6.3圖像上的旋轉(zhuǎn)縮放文字
4.7本章小結(jié)
第5章直方圖
微課視頻25分鐘
5.1直方圖的計(jì)算和繪制
5.1.1計(jì)算和繪制灰度圖像的直方圖
5.1.2計(jì)算和繪制彩色圖像的直方圖
5.2二維直方圖
5.3直方圖的操作
5.3.1直方圖歸一化
5.3.2直方圖比較
5.3.3直方圖均衡化
5.3.4直方圖匹配
5.3.5直方圖反向投影
5.4圖像模板匹配
5.5本章小結(jié)
第6章圖像濾波
微課視頻17分鐘
6.1圖像卷積
6.2生成圖像噪聲
6.2.1椒鹽噪聲
6.2.2高斯噪聲
6.2.3泊松噪聲
6.2.4條紋噪聲
6.3線性濾波
6.3.1使用均值濾波讓圖像變模糊
6.3.2使用高斯濾波去噪
6.3.3使用可分離濾波讓圖像變得模糊
6.4非線性濾波
6.4.1使用中值濾波去噪
6.4.2使用雙邊濾波去噪
6.5本章小結(jié)
第7章圖像形態(tài)學(xué)操作
微課視頻25分鐘
7.1像素距離與連通域
7.1.1計(jì)算像素距離
7.1.2連通域分析
7.2腐蝕與膨脹
7.2.1腐蝕
7.2.2膨脹
7.3形態(tài)學(xué)操作
7.3.1開運(yùn)算
7.3.2閉運(yùn)算
7.3.3形態(tài)學(xué)梯度運(yùn)算
7.3.4頂帽運(yùn)算
7.3.5黑帽運(yùn)算
7.3.6擊中擊不中變換
7.3.7圖像細(xì)化
7.4本章小結(jié)
第8章圖形檢測
微課視頻43分鐘
8.1形狀檢測
8.1.1直線檢測
8.1.2直線擬合
8.1.3圓形檢測
8.2圖像的輪廓
8.2.1繪制幾何圖像的輪廓
8.2.2繪制人物肖像的輪廓
8.2.3輪廓面積
8.2.4輪廓長度
8.2.5輪廓外接矩形
8.2.6輪廓外接多邊形
8.2.7點(diǎn)到輪廓的距離
8.2.8凸包檢測
8.2.9Canny邊緣檢測
8.3矩的計(jì)算
8.3.1空間矩和中心矩
8.3.2Hu矩
8.3.3使用Hu矩識(shí)別字母
8.4點(diǎn)集擬合
8.5二維碼檢測
8.6本章小結(jié)
第9章模板匹配
微課視頻8分鐘
9.1模板匹配函數(shù)
9.2在圖像中尋找目標(biāo)
9.3挑出重復(fù)的圖像
9.4找到圖像中所有相似的目標(biāo)
9.5在圖像上搜索多組相同的目標(biāo)
9.6統(tǒng)計(jì)北京地鐵站的站點(diǎn)數(shù)量
9.7本章小結(jié)
第10章圖像分析與修復(fù)
微課視頻8分鐘
10.1傅里葉變換
10.1.1離散傅里葉變換
10.1.2通過傅里葉變換計(jì)算卷積
10.1.3使用離散余弦變換添加水印
10.1.4使用離散余弦變換識(shí)別水印中的文本
10.2積分圖像
10.3圖像分割
10.3.1浸水填充法
10.3.2分水嶺法
10.3.3GrabCut法
10.3.4MeanShift法
10.4去除圖像中的劃痕
10.5本章小結(jié)
第11章特征點(diǎn)檢測與匹配
微課視頻6分鐘
11.1角點(diǎn)檢測
11.1.1繪制關(guān)鍵點(diǎn)
11.1.2Harris角點(diǎn)檢測與繪制
11.1.3ShiTomasi角點(diǎn)檢測與繪制
11.1.4亞像素級(jí)別角點(diǎn)檢測與繪制
11.2特征點(diǎn)檢測
11.2.1關(guān)鍵點(diǎn)和描述子
11.2.2SIFT特征點(diǎn)檢測
11.2.3SURF特征點(diǎn)檢測
11.2.4ORB特征點(diǎn)檢測
11.3特征點(diǎn)匹配與繪制
11.3.1暴力匹配與繪制
11.3.2FLANN匹配
11.3.3RANSAC匹配
11.4本章小結(jié)
第12章視頻處理
微課視頻4分鐘
12.1控制攝像頭
12.1.1拍照
12.1.2錄制視頻
12.1.3錄制彩色與灰度混合視頻
12.2播放視頻文件
12.3獲取視頻文件的屬性
12.4文章小結(jié)
第13章人臉識(shí)別
微課視頻7分鐘
13.1級(jí)聯(lián)分類器
13.2分析人臉的位置
13.3戴墨鏡特效
13.4識(shí)別眼睛
13.5識(shí)別貓臉
13.6本章小結(jié)
第14章ChatGPT和OpenAI API
微課視頻21分鐘
14.1什么是ChatGPT
14.2注冊(cè)和登錄ChatGPT
14.3升級(jí)為ChatGPT Plus賬戶
14.4ChatGPT輔助編程
14.5OpenAI API
14.5.1如何使用OpenAI API
14.5.2生成代碼
14.5.3生成圖像
14.6本章小結(jié)
第15章項(xiàng)目實(shí)戰(zhàn): 圖像加密和解密
微課視頻4分鐘
15.1加密和解密原理
15.2整張圖加密和解密
15.3ROI方式臉部打碼和解碼
15.4本章小結(jié)
第16章項(xiàng)目實(shí)戰(zhàn): 答題卡識(shí)別
微課視頻4分鐘
16.1識(shí)別單道題目
16.2檢索答題卡的外輪廓
16.3對(duì)答題卡進(jìn)行傾斜校正與裁邊處理
16.4對(duì)答題卡進(jìn)行反二值化處理
16.5找到答題卡內(nèi)所有的選項(xiàng)輪廓
16.6識(shí)別整張答題卡
16.7本章小結(jié)
第17章ChatGPT項(xiàng)目實(shí)戰(zhàn): 視頻處理工具集(video_fx)
微課視頻8分鐘
17.1用ChatGPT自動(dòng)編寫video_fx的主體部分
17.2用ChatGPT自動(dòng)編寫轉(zhuǎn)換灰度視頻工具
17.3用ChatGPT自動(dòng)編寫旋轉(zhuǎn)視頻工具
17.4用ChatGPT自動(dòng)編寫視頻字幕工具
17.5本章小結(jié)
第18章ChatGPT項(xiàng)目實(shí)戰(zhàn): 智圖幻境(PyImageFX)
微課視頻17分鐘
18.1項(xiàng)目概述
18.2搭建PyImageFX的整體架構(gòu)
18.3文件
18.3.1新建圖像
18.3.2打開圖像
18.3.3保存和另存為
18.4圖像處理
18.4.1縮放圖像
18.4.2旋轉(zhuǎn)圖像
18.4.3翻轉(zhuǎn)圖像
18.4.4灰度轉(zhuǎn)換
18.4.5添加噪聲
18.4.6去除噪聲
18.5繪圖
18.6濾鏡
18.6.1高斯模糊
18.6.2銳化
18.6.3浮雕
18.6.4梯度運(yùn)算
18.6.5波浪扭曲
18.6.6三維凹凸
18.6.7三維法線
18.6.8圖像細(xì)化
18.7人工智能(AI)
18.7.1管理OpenAI API Key
18.7.2AI生成圖像
18.8本章小結(jié)
視 頻 名 稱時(shí)長/min位置
第1集 Python概述31.1節(jié)
第2集 OpenCV概述61.2節(jié)
第3集 PyCharm的下載和安裝31.5節(jié)
第4集 編寫第一個(gè)基于Python OpenCV的應(yīng)用31.6節(jié)
第5集 圖像處理基礎(chǔ)32.1節(jié)
第6集 修改像素的BGR值22.2.3節(jié)
第7集 色彩空間52.3節(jié)
第8集 通道72.4節(jié)
第9集 使用NumPy操作圖像93.1節(jié)
第10集 圖像像素的操作33.2節(jié)
第11集 圖像之間像素的操作83.3節(jié)
第12集 圖像二值化53.4節(jié)
第13集 多閾值比較與LUT33.5節(jié)
第14集 圖像連接和圖像變換73.6節(jié)
第15集 繪制直線14.1節(jié)
第16集 繪制嵌套矩形24.2節(jié)
第17集 彩色同心圓14.3.1節(jié)
第18集 動(dòng)態(tài)隨機(jī)彩色實(shí)心圓24.3.2節(jié)
第19集 粒子爆炸34.3.3節(jié)
第20集 繪制橢圓形的眼睛14.4節(jié)
第21集 繪制五角星24.5節(jié)
第22集 繪制不同字體的文本24.6.1節(jié)
第23集 繪制鏡像文本14.6.2節(jié)
第24集 圖像上的旋轉(zhuǎn)縮放文字24.6.3節(jié)
第25集 計(jì)算和繪制灰度圖像的直方圖35.1.1節(jié)
第26集 計(jì)算和繪制彩色圖像的直方圖25.1.2節(jié)
第27集 2維直方圖25.2節(jié)
第28集 直方圖歸一化25.3.1節(jié)
第29集 直方圖比較35.3.2節(jié)
第30集 直方圖均衡化25.3.3節(jié)
第31集 直方圖匹配75.3.4節(jié)
第32集 直方圖反向投影25.3.5節(jié)
第33集 圖像目標(biāo)匹配25.4節(jié)
第34集 圖像卷積26.1節(jié)
第35集 添加椒鹽噪聲26.2.1節(jié)
第36集 添加高斯噪聲26.2.2節(jié)
第37集 添加泊松噪聲16.2.3節(jié)
第38集 添加條紋噪聲16.2.4節(jié)
第39集 使用均值濾波讓圖像變模糊16.3.1節(jié)
第40集 用高斯濾波去噪16.3.2節(jié)
第41集 使用可分離濾波讓圖像變得模糊26.3.3節(jié)
第42集 使用中值濾波去除椒鹽噪聲26.4.1節(jié)
第43集 使用雙邊濾波去除椒鹽噪聲36.4.2節(jié)
第44集 計(jì)算像素距離37.1.1節(jié)
第45集 連通域分析47.1.2節(jié)
第46集 腐蝕27.2.1節(jié)
第47集 膨脹37.2.2節(jié)
第48集 開運(yùn)算17.3.1節(jié)
第49集 閉運(yùn)算27.3.2節(jié)
第50集 形態(tài)學(xué)梯度運(yùn)算27.3.3節(jié)
第51集 頂帽運(yùn)算17.3.4節(jié)
第52集 黑帽運(yùn)算27.3.5節(jié)
第53集 擊中擊不中變換37.3.6節(jié)
第54集 圖像細(xì)化27.3.7節(jié)
第55集 直線檢測48.1.1節(jié)
第56集 直線擬合48.1.2節(jié)
第57集 圓形檢測48.1.3節(jié)
第58集 繪制幾何圖像的輪廓38.2.1節(jié)
第59集 繪制人物肖像的輪廓18.2.2節(jié)
第60集 輪廓面積28.2.3節(jié)
第61集 輪廓長度18.2.4節(jié)
第62集 輪廓外接矩形28.2.5節(jié)
第63集 輪廓外接多邊形38.2.6節(jié)
第64集 點(diǎn)到輪廓的距離38.2.7節(jié)
第65集 凸包檢測48.2.8節(jié)
第66集 Canny邊緣圖像28.2.9節(jié)
第67集 空間矩和中心矩38.3.1節(jié)
第68集 Hu矩28.3.2節(jié)
第69集 使用Hu矩識(shí)別字母28.3.3節(jié)
第70集 點(diǎn)集擬合28.4節(jié)
第71集 二維碼檢測18.5節(jié)
第72集 使用模板在圖像中尋找目標(biāo)29.2節(jié)
第73集 挑出重復(fù)的圖像29.3節(jié)
第74集 找出圖像中所有相似的目標(biāo)19.4節(jié)
第75集 在圖像上搜索多組相同的目標(biāo)29.5節(jié)
第76集 統(tǒng)計(jì)北京地鐵站的站點(diǎn)數(shù)量19.6節(jié)
第77集 浸水填充法310.3.1節(jié)
第78集 分水嶺法310.3.2節(jié)
第79集 去除照片上的劃痕210.4節(jié)
第80集 角點(diǎn)檢測311.1節(jié)
第81集 特征點(diǎn)檢測111.2節(jié)
第82集 特征點(diǎn)匹配與繪制211.3節(jié)
第83集 控制攝像頭212.1節(jié)
第84集 播放視頻文件112.2節(jié)
第85集 獲取視頻文件的屬性112.3節(jié)
第86集 分析人臉的位置313.2節(jié)
第87集 戴墨鏡特效213.3節(jié)
第88集 識(shí)別眼睛113.4節(jié)
第89集 識(shí)別貓臉113.5節(jié)
第90集 ChatGPT輔助編程1514.4節(jié)
第91集 OpenAI API614.5節(jié)
第92集 整張圖加密和解密215.2節(jié)
第93集 用ROI方式對(duì)臉部打碼和解碼215.3節(jié)
第94集 識(shí)別答題卡416.1節(jié)
第95集 用ChatGPT自動(dòng)編寫video_fx的主題部分417.1節(jié)
第96集 用ChatGPT自動(dòng)編寫轉(zhuǎn)換灰度視頻工具117.2節(jié)
第97集 用ChatGPT自動(dòng)編寫旋轉(zhuǎn)視頻工具117.3節(jié)
第98集 用ChatGPT自動(dòng)編寫添加字幕的工具217.4節(jié)
第99集 項(xiàng)目概述418.1節(jié)
第100集 搭建PyImageFX的整體架構(gòu)118.2節(jié)
第101集 文件518.3節(jié)
第102集 圖像處理118.4節(jié)
第103集 繪圖218.5節(jié)
第104集 濾鏡218.6節(jié)
第105集 人工智能(AI)218.7節(jié)