本书深入讲解Python OpenCV的核心技术,并通过大量的代码和项目实战,充分展示了如何将这些技术在不同领域中实现。本书的主要内容如下: 第1章介绍Python和OpenCV的基础知识,包括Python和OpenCV的起源、优势、版本、安装及应用场景等; 第2章介绍图像基础知识,包括图像的读取、显示、保存以及像素处理等; 第3~9章介绍图像处理的高级技术,包括使用NumPy进行图像操作、绘制图形的方法、直方图的应用、图像滤波技术、图像形态学操作,以及使用OpenCV进行图形检测和模板匹配; 第10章介绍图像分析与修复,包括使用OpenCV进行图像分析及图像修复技术; 第11~13章介绍特征检测、视频处理和人脸识别,包括使用OpenCV检测和匹配图像中的特征点、使用OpenCV 进行视频处理,以及人脸识别技术; 第14章介绍ChatGPT 和OpenAI API,包括使用ChatGPT 辅助编写代码,以及利用OpenAI API将ChatGPT 的功能嵌入自己的应用; 第15~18章为项目实战,为读者提供了各种基于OpenCV 的应用案例。本 书适合作为从事图形图像领域研究和开发的技术人员和对OpenCV感兴趣的读者的学习用书。
内容深入:本书全面讲解了Python OpenCV的核心技术,涵盖了从图像处理基础到高级技术,再到实际项目应用的全方位内容,适合不同层次的读者深入学习和实践。
实战导向:通过大量项目实战案例,读者可以将理论知识应用于实际开发中,特别是借助ChatGPT辅助编程,实现了无需编写代码即可完成复杂的图像和视频处理项目。
技术前沿:本书不仅涵盖了传统的图像处理技术,还探讨了如何将人工智能(如ChatGPT和OpenAI API)与OpenCV结合,帮助读者掌握最新的技术趋势和开发工具。
在数字化时代,图像和视频处理已经成为日常生活中无处不在的技术。从智能手机中的相机应用,到医学成像,再到自动驾驶汽车,计算机视觉技术正在逐渐改变人们的生活和工作方式。Python与OpenCV(开源计算机视觉库)结合,为人们提供了一个强大、易于上手的工具,使人们能够深入探索和应用这一前沿技术。
Python作为最受欢迎的编程语言之一,因其简洁、高效和跨平台的特性而备受青睐。OpenCV则为人们提供了一个全面的工具,帮助人们处理图像和视频,实现从基础操作到高级算法的各种功能。当这两者结合,人们得到了一个既强大又灵活的平台,可以快速开发和部署计算机视觉应用。
编写本书的初衷是希望能为读者提供一个系统的指南,帮助读者从零开始,掌握Python和OpenCV的核心概念和技术。无论是计算机视觉的初学者,还是已经有一定经验的开发者,本书都会为读者提供宝贵的知识和实践经验。
通过阅读本书,读者将了解到如何使用Python和OpenCV进行图像处理、绘制图形、图像分析、视频处理等。同时,本书还将深入探讨更高级的主题,如人脸识别和特征点检测。此外,本书还准备了一系列实战项目,帮助读者将所学知识应用于实际场景中。
在这个快速发展的领域,掌握 Python 和 OpenCV 的知识将为读者打开无数的机会。无论是为了开发创新的应用、解决具体的问题,还是深化自己的研究,相信本书将为读者提供必要的工具和知识。
随着人工智能和机器学习的飞速发展,我们见证了一系列令人印象深刻的技术进步。在这个浪潮中,OpenAI的ChatGPT和OpenAI API无疑是值得人们深入探讨的重要技术。这些技术不仅展示了机器学习的最新成果,也为编程世界开辟了新的可能性。在本书的后几章中,我们将通过实战项目,探索如何将这些先进的技术应用于图像和视频处理的领域,特别是在使用Python和OpenCV的环境中。
ChatGPT是OpenAI推出的基于GPT3.5和GPT4的聊天机器人,它能够理解和生成自然语言,为用户提供了一种直观且强大的交互方式。通过ChatGPT,我们能够极大地简化代码编写过程,甚至可以通过简单的描述让机器帮助我们自动生成代码,这无疑大幅提高了开发效率,降低了编程门槛,即便是非专业的编程人员,也能够利用先进的技术完成复杂的任务。
OpenAI API则为人们提供了一种利用直接而高效的方式访问OpenAI的强大能力,包括但不限于代码生成、图像生成等。利用OpenAI API,人们可以将先进的AI技术无缝集成到项目中,为应用赋予前所未有的智能和创造力。
通过实战项目视频处理工具集(video_fx)和智图幻境(PyImageFX),本书将演示如何利用ChatGPT和OpenAI API,以及Python和OpenCV的强大功能,构建出实用且具有创新性的图像和视频处理工具。本书还将探讨如何利用这些技术为项目加速,为用户创造出令人满意的解决方案,同时也为读者展示了如何将理论知识转化为实际应用,探索未来技术的无限可能。
这些技术的出现,不仅丰富了编程工具箱,也打开了通往未来的大门。让我们一起借助ChatGPT和OpenAI API的力量,探索更广阔的编程与应用领域。
最后,希望本书能为读者的学习之旅提供指引,帮助读者充分利用 Python 和 OpenCV 的潜力,并借助ChatGPT和OpenAI API等工具,开创属于自己的计算机视觉未来。
作者2024年11月
李宁:华为HDE(HUAWEI Developer Experts),UnityMarvel创始人,开放原子基金会银牌讲师,51CTO学堂金牌讲师,IT畅销书作者。从事软件研究和开发超过20年,长期从事编译器、人工智能、Go、C 、Python、JavaScript、Java及跨平台技术的研究和开发工作,曾出版超过40本IT图书。主要著作包括《Python从菜鸟到高手》、《Python爬虫从菜鸟到高手》、《奇妙的Python:神奇代码漫游之旅》。
第1章跨越Python OpenCV之门
微课视频15分钟
1.1Python概述
1.1.1Python的由来
1.1.2Python的优势
1.1.3Python在编程语言中的排名
1.1.4Python的版本
1.1.5Python的应用场景
1.2OpenCV概述
1.2.1计算机视觉
1.2.2OpenCV的功能和特点
1.2.3OpenCV的发展历程
1.2.4OpenCV包含的模块
1.2.5OpenCV的应用场景
1.2.6OpenCV与Python结合的优势
1.3Python的下载和安装
1.4安装Python OpenCV
1.5PyCharm的下载和安装
1.6编写第一个基于Python OpenCV的应用
1.7本章小结
第2章图像基础知识
微课视频17分钟
2.1图像处理基础
2.1.1读取图像
2.1.2读取PNG文件出现警告
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色彩空间转换到GRAY色彩空间
2.3.3RGB色彩空间的局限性
2.3.4适合图像处理的HSV色彩空间
2.3.5RGB/BGR色彩空间与HSV色彩空间相互转换
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调整HSV图像通道的值
2.4.6alpha通道
2.5本章小结
第3章高级图像处理技术
微课视频35分钟
3.1使用NumPy操作图像
3.1.1创建黑白图像
3.1.2在黑色图像内部绘制白色同心圆
3.1.3创建彩色图像
3.1.4创建彩色雪花点图像
3.1.5拼接图像
3.1.6将图像变成22网格
3.2图像像素的操作
3.2.1寻找图像像素的最大值和最小值
3.2.2计算图像均值和标准差
3.3图像之间的像素操作
3.3.1两幅图像的比较运算
3.3.2比较两幅图像,并显示最大值图像和最小值图像
3.3.3使用掩膜和cv2.min()函数截图
3.3.4显示红色图像
3.3.5两幅图像的位运算
3.4图像二值化
3.5多阈值比较与LUT
3.6图像连接和图像变换
3.6.1图像连接
3.6.2图像尺寸变换
3.6.3图像翻转变换
3.6.4图像仿射变换
3.6.5图像透视变换
3.6.6极坐标变换
3.7感兴趣的区域(ROI)
3.8图像金字塔
3.8.1高斯金字塔
3.8.2拉普拉斯金字塔
3.9本章小结
第4章绘制图形
微课视频17分钟
4.1使用不同粗细和颜色的直线绘制王字
4.2绘制嵌套矩形
4.3绘制圆形
4.3.1绘制彩色同心圆
4.3.2动态随机彩色实心圆
4.3.3粒子爆炸
4.4绘制椭圆形的眼睛
4.5绘制五角星
4.6绘制文本
4.6.1用不同字体绘制文字OpenCV
4.6.2绘制镜像中文效果
4.6.3图像上的旋转缩放文字
4.7本章小结
第5章直方图
微课视频25分钟
5.1直方图的计算和绘制
5.1.1计算和绘制灰度图像的直方图
5.1.2计算和绘制彩色图像的直方图
5.2二维直方图
5.3直方图的操作
5.3.1直方图归一化
5.3.2直方图比较
5.3.3直方图均衡化
5.3.4直方图匹配
5.3.5直方图反向投影
5.4图像模板匹配
5.5本章小结
第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本章小结
第7章图像形态学操作
微课视频25分钟
7.1像素距离与连通域
7.1.1计算像素距离
7.1.2连通域分析
7.2腐蚀与膨胀
7.2.1腐蚀
7.2.2膨胀
7.3形态学操作
7.3.1开运算
7.3.2闭运算
7.3.3形态学梯度运算
7.3.4顶帽运算
7.3.5黑帽运算
7.3.6击中击不中变换
7.3.7图像细化
7.4本章小结
第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点到轮廓的距离
8.2.8凸包检测
8.2.9Canny边缘检测
8.3矩的计算
8.3.1空间矩和中心矩
8.3.2Hu矩
8.3.3使用Hu矩识别字母
8.4点集拟合
8.5二维码检测
8.6本章小结
第9章模板匹配
微课视频8分钟
9.1模板匹配函数
9.2在图像中寻找目标
9.3挑出重复的图像
9.4找到图像中所有相似的目标
9.5在图像上搜索多组相同的目标
9.6统计北京地铁站的站点数量
9.7本章小结
第10章图像分析与修复
微课视频8分钟
10.1傅里叶变换
10.1.1离散傅里叶变换
10.1.2通过傅里叶变换计算卷积
10.1.3使用离散余弦变换添加水印
10.1.4使用离散余弦变换识别水印中的文本
10.2积分图像
10.3图像分割
10.3.1浸水填充法
10.3.2分水岭法
10.3.3GrabCut法
10.3.4MeanShift法
10.4去除图像中的划痕
10.5本章小结
第11章特征点检测与匹配
微课视频6分钟
11.1角点检测
11.1.1绘制关键点
11.1.2Harris角点检测与绘制
11.1.3ShiTomasi角点检测与绘制
11.1.4亚像素级别角点检测与绘制
11.2特征点检测
11.2.1关键点和描述子
11.2.2SIFT特征点检测
11.2.3SURF特征点检测
11.2.4ORB特征点检测
11.3特征点匹配与绘制
11.3.1暴力匹配与绘制
11.3.2FLANN匹配
11.3.3RANSAC匹配
11.4本章小结
第12章视频处理
微课视频4分钟
12.1控制摄像头
12.1.1拍照
12.1.2录制视频
12.1.3录制彩色与灰度混合视频
12.2播放视频文件
12.3获取视频文件的属性
12.4文章小结
第13章人脸识别
微课视频7分钟
13.1级联分类器
13.2分析人脸的位置
13.3戴墨镜特效
13.4识别眼睛
13.5识别猫脸
13.6本章小结
第14章ChatGPT和OpenAI API
微课视频21分钟
14.1什么是ChatGPT
14.2注册和登录ChatGPT
14.3升级为ChatGPT Plus账户
14.4ChatGPT辅助编程
14.5OpenAI API
14.5.1如何使用OpenAI API
14.5.2生成代码
14.5.3生成图像
14.6本章小结
第15章项目实战: 图像加密和解密
微课视频4分钟
15.1加密和解密原理
15.2整张图加密和解密
15.3ROI方式脸部打码和解码
15.4本章小结
第16章项目实战: 答题卡识别
微课视频4分钟
16.1识别单道题目
16.2检索答题卡的外轮廓
16.3对答题卡进行倾斜校正与裁边处理
16.4对答题卡进行反二值化处理
16.5找到答题卡内所有的选项轮廓
16.6识别整张答题卡
16.7本章小结
第17章ChatGPT项目实战: 视频处理工具集(video_fx)
微课视频8分钟
17.1用ChatGPT自动编写video_fx的主体部分
17.2用ChatGPT自动编写转换灰度视频工具
17.3用ChatGPT自动编写旋转视频工具
17.4用ChatGPT自动编写视频字幕工具
17.5本章小结
第18章ChatGPT项目实战: 智图幻境(PyImageFX)
微课视频17分钟
18.1项目概述
18.2搭建PyImageFX的整体架构
18.3文件
18.3.1新建图像
18.3.2打开图像
18.3.3保存和另存为
18.4图像处理
18.4.1缩放图像
18.4.2旋转图像
18.4.3翻转图像
18.4.4灰度转换
18.4.5添加噪声
18.4.6去除噪声
18.5绘图
18.6滤镜
18.6.1高斯模糊
18.6.2锐化
18.6.3浮雕
18.6.4梯度运算
18.6.5波浪扭曲
18.6.6三维凹凸
18.6.7三维法线
18.6.8图像细化
18.7人工智能(AI)
18.7.1管理OpenAI API Key
18.7.2AI生成图像
18.8本章小结
视 频 名 称时长/min位置
第1集 Python概述31.1节
第2集 OpenCV概述61.2节
第3集 PyCharm的下载和安装31.5节
第4集 编写第一个基于Python OpenCV的应用31.6节
第5集 图像处理基础32.1节
第6集 修改像素的BGR值22.2.3节
第7集 色彩空间52.3节
第8集 通道72.4节
第9集 使用NumPy操作图像93.1节
第10集 图像像素的操作33.2节
第11集 图像之间像素的操作83.3节
第12集 图像二值化53.4节
第13集 多阈值比较与LUT33.5节
第14集 图像连接和图像变换73.6节
第15集 绘制直线14.1节
第16集 绘制嵌套矩形24.2节
第17集 彩色同心圆14.3.1节
第18集 动态随机彩色实心圆24.3.2节
第19集 粒子爆炸34.3.3节
第20集 绘制椭圆形的眼睛14.4节
第21集 绘制五角星24.5节
第22集 绘制不同字体的文本24.6.1节
第23集 绘制镜像文本14.6.2节
第24集 图像上的旋转缩放文字24.6.3节
第25集 计算和绘制灰度图像的直方图35.1.1节
第26集 计算和绘制彩色图像的直方图25.1.2节
第27集 2维直方图25.2节
第28集 直方图归一化25.3.1节
第29集 直方图比较35.3.2节
第30集 直方图均衡化25.3.3节
第31集 直方图匹配75.3.4节
第32集 直方图反向投影25.3.5节
第33集 图像目标匹配25.4节
第34集 图像卷积26.1节
第35集 添加椒盐噪声26.2.1节
第36集 添加高斯噪声26.2.2节
第37集 添加泊松噪声16.2.3节
第38集 添加条纹噪声16.2.4节
第39集 使用均值滤波让图像变模糊16.3.1节
第40集 用高斯滤波去噪16.3.2节
第41集 使用可分离滤波让图像变得模糊26.3.3节
第42集 使用中值滤波去除椒盐噪声26.4.1节
第43集 使用双边滤波去除椒盐噪声36.4.2节
第44集 计算像素距离37.1.1节
第45集 连通域分析47.1.2节
第46集 腐蚀27.2.1节
第47集 膨胀37.2.2节
第48集 开运算17.3.1节
第49集 闭运算27.3.2节
第50集 形态学梯度运算27.3.3节
第51集 顶帽运算17.3.4节
第52集 黑帽运算27.3.5节
第53集 击中击不中变换37.3.6节
第54集 图像细化27.3.7节
第55集 直线检测48.1.1节
第56集 直线拟合48.1.2节
第57集 圆形检测48.1.3节
第58集 绘制几何图像的轮廓38.2.1节
第59集 绘制人物肖像的轮廓18.2.2节
第60集 轮廓面积28.2.3节
第61集 轮廓长度18.2.4节
第62集 轮廓外接矩形28.2.5节
第63集 轮廓外接多边形38.2.6节
第64集 点到轮廓的距离38.2.7节
第65集 凸包检测48.2.8节
第66集 Canny边缘图像28.2.9节
第67集 空间矩和中心矩38.3.1节
第68集 Hu矩28.3.2节
第69集 使用Hu矩识别字母28.3.3节
第70集 点集拟合28.4节
第71集 二维码检测18.5节
第72集 使用模板在图像中寻找目标29.2节
第73集 挑出重复的图像29.3节
第74集 找出图像中所有相似的目标19.4节
第75集 在图像上搜索多组相同的目标29.5节
第76集 统计北京地铁站的站点数量19.6节
第77集 浸水填充法310.3.1节
第78集 分水岭法310.3.2节
第79集 去除照片上的划痕210.4节
第80集 角点检测311.1节
第81集 特征点检测111.2节
第82集 特征点匹配与绘制211.3节
第83集 控制摄像头212.1节
第84集 播放视频文件112.2节
第85集 获取视频文件的属性112.3节
第86集 分析人脸的位置313.2节
第87集 戴墨镜特效213.3节
第88集 识别眼睛113.4节
第89集 识别猫脸113.5节
第90集 ChatGPT辅助编程1514.4节
第91集 OpenAI API614.5节
第92集 整张图加密和解密215.2节
第93集 用ROI方式对脸部打码和解码215.3节
第94集 识别答题卡416.1节
第95集 用ChatGPT自动编写video_fx的主题部分417.1节
第96集 用ChatGPT自动编写转换灰度视频工具117.2节
第97集 用ChatGPT自动编写旋转视频工具117.3节
第98集 用ChatGPT自动编写添加字幕的工具217.4节
第99集 项目概述418.1节
第100集 搭建PyImageFX的整体架构118.2节
第101集 文件518.3节
第102集 图像处理118.4节
第103集 绘图218.5节
第104集 滤镜218.6节
第105集 人工智能(AI)218.7节