Python图像处理十讲:图像处理大师的必经之路

文章目录

1 初步

图像的本质就是矩阵,图像处理,也就是矩阵处理。所以,在Python中,numpy和matplotlib可以完全胜任最简单的图像处理工作。本节介绍了图像处理的基础流程:读取图片、灰度映射、展示图片以及图像保存。

在这里插入图片描述

2 光斑分析

光斑是工程中经常出现的图像数据,其特点是目标明确,分布清晰。对光斑图像的分析,主要包括质心定位、目标截取以及半径拟合等。由于图像是二维数组,有两个可以操作的方向,故而除了全局的质心外,其每一行或每一列均有一个质心,行质心和列质心的交叉点,就是图像的质心,图像如下,左侧为原始光斑,右侧为其行质心和列质心。

在这里插入图片描述

3 插值变换

尽管numpy提供了一些矩阵函数,但图像处理是一个十分浩瀚的领域,numpy的体量显然有些不够。相比之下,【scipy】封装了【ndimage】模块,即专用的多维数组处理模块,自然也涵盖了二维图像的处理。ndimage中提供了对数组进行平移、缩放以及旋转操作的函数,分别是shift, zoom, rotate,可以实现下面的变换效果。

在这里插入图片描述

4 形态学处理

最基础的形态学操作有四个,分别是腐蚀、膨胀、开计算和闭计算,【scipy.ndimage】分别实现了二值数组和灰度数组的这四种运算。而针对灰度图像,【scipy.ndimage】还提供了礼帽、黑帽、形态学梯度和拉普拉斯梯度等操作。

在这里插入图片描述

5 滤波

所谓滤波,在图像处理中往往表示特定模板下的卷积运算,其功能有二,一是用于边缘检测,二是用于数据平滑。图像边缘往往变化比较剧烈,相应地其导数的绝对值也就更大,换言之,对图像进行求导,可以增强边缘处的变化,从而起到边缘检测的效果。

在这里插入图片描述

6 opencv初步

opencv是跨平台图像处理库,为许多编程语言提供了接口,Python自然在列,但在使用pip安装时需要注意install的是【opencv-python】。

作为专业的图像处理库,opencv自然也提供了读取、处理、显示以及保存图片的全流程功能,此外还可以打开摄像头。

在这里插入图片描述

7 相机校准

相片是三维世界在二维平面上的投射,故而其深度信息是损失掉了的。但是,如果把拍照看作理想的小孔成像过程,那么相片中的每个像素,都将通过一个锥体与世界中真实的点一一对应,这时如果再来一条参考光线,那么理论上就可以实现二维图像的三维重构了。

在这里插入图片描述

8 图像分割

opencv提供了多种二值化分割方案,除了可以指定阈值之外,还支持OTSU算法以及自适应阈值算法。此外,还可以通过距离变换,对图像的前景、背景进行分割。并且提供了连通域函数,可以将前景中联通的目标一一分割出来。

其中,三个主要的函数是【adaptiveThreshold】、【distanceTransform】以及【connectedComponents】。

在这里插入图片描述

9 边缘检测

opencv中提供了多种边缘检测方法,除了经典的Canny算子,还实现了霍夫变换,用于检测直线和圆形的边界。这三个函数分别是【Canny】,【HoughLines】以及【HoughCircles】。
在这里插入图片描述

10 目标识别

在Python中实现目标识别任务,最常用的方法是调用dlib模块。其中提供了人脸检测和车辆检测的功能,通过人脸特征点的比对,可以根据特征点的距离完成人脸对比。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值