Python之图像处理OpenCV

文章目录

  • 前言
  • 一、图像基础
    • 1.1 理论介绍
    • 1.2 案例1-手写数字识别
  • 二、图像滤波与预处理
    • 2.1 滤波
    • 2.2 边缘检测
  • 三、图像变换
    • 3.1 仿射变换
    • 3.2 透视变换


前言

  • 基础包 opencv-python
  • 高配版 opencv-contrib-python

一、图像基础

1.1 理论介绍

Python之图像处理OpenCV_第1张图片
使用了cv2.imread()即改变了存储格式
jpg:rgb—>opencv:bgr
Python之图像处理OpenCV_第2张图片
Python之图像处理OpenCV_第3张图片
Python之图像处理OpenCV_第4张图片

一张图像 处理:

  • 1.三维数组
  • 2.画过三维散点图
  • 3.图像的直方图:统计像素点的分布特征 灰度图
  • 三维的彩色图 ==》转为一维的灰度图片
    Python之图像处理OpenCV_第5张图片
  • 画直方图
    Python之图像处理OpenCV_第6张图片
    Python之图像处理OpenCV_第7张图片
    Python之图像处理OpenCV_第8张图片
    Python之图像处理OpenCV_第9张图片
    Python之图像处理OpenCV_第10张图片
  • ravel()方法将数组维度拉成一维数组
  • hist函数作用----绘制直方图

1.2 案例1-手写数字识别

输入一张图:识别该数字
opencv 清除数字图片里的杂乱的线条和杂点,把杂线都滤除掉,只保留数字线条
Python之图像处理OpenCV_第11张图片

  • 创作图片

选作最粗的线条写数字,此外用其他的线条(不能用最粗的)进行添加和点缀

Python之图像处理OpenCV_第12张图片
Python之图像处理OpenCV_第13张图片
Python之图像处理OpenCV_第14张图片

  • 数字识别
    Python之图像处理OpenCV_第15张图片
    Python之图像处理OpenCV_第16张图片
    Python之图像处理OpenCV_第17张图片
    Python之图像处理OpenCV_第18张图片
    Python之图像处理OpenCV_第19张图片
    Python之图像处理OpenCV_第20张图片
    Python之图像处理OpenCV_第21张图片

  • 生成验证码 pip install captcha
    Python之图像处理OpenCV_第22张图片
    Python之图像处理OpenCV_第23张图片
    Python之图像处理OpenCV_第24张图片
    Python之图像处理OpenCV_第25张图片
    Python之图像处理OpenCV_第26张图片
    Python之图像处理OpenCV_第27张图片

  • 要取得该文件夹下的所有文件,可以使用for (root, dirs, files) in walk(路径名)函数


二、图像滤波与预处理

Opencv 滤波和边沿检测 :车道线的识别
‘’’
识别图像里的几何特征,比如:线 圆 方块
1.灰度化 彩色图转换为灰度图
2.滤波 为了边缘检测做准备 为什么在边缘检测之前做滤波呢? 噪点对边缘检测的干扰 消除噪点影响
3.边缘检测 Canny Sobel 拉普拉斯 >求相邻或者相近像素点的差值(像素差)
4.形状特征检测 Hough变换
‘’’

2.1 滤波

Python之图像处理OpenCV_第28张图片

  • 均值滤波
    Python之图像处理OpenCV_第29张图片

  • 设置椒盐噪声
    Python之图像处理OpenCV_第30张图片
    Python之图像处理OpenCV_第31张图片

  • 高斯滤波–必须是奇次项
    Python之图像处理OpenCV_第32张图片

  • 中值滤波–必须是奇数项
    Python之图像处理OpenCV_第33张图片

2.2 边缘检测

  • Canny
    Python之图像处理OpenCV_第34张图片
    Python之图像处理OpenCV_第35张图片
    Python之图像处理OpenCV_第36张图片
  • Sobel
    Python之图像处理OpenCV_第37张图片
  • 拉普拉斯
    Python之图像处理OpenCV_第38张图片

三、图像变换

  • 仿射变换
  • 透视变换

3.1 仿射变换

二维到二维图,平移,旋转,缩放等操作

Python之图像处理OpenCV_第39张图片
Python之图像处理OpenCV_第40张图片

  • 平移
    Python之图像处理OpenCV_第41张图片
  • 缩小再平移
    Python之图像处理OpenCV_第42张图片
  • 旋转
    Python之图像处理OpenCV_第43张图片
    Python之图像处理OpenCV_第44张图片
    Python之图像处理OpenCV_第45张图片

3.2 透视变换

二维变换成三维空间中再投影到一个新的平面 也称:投影映射
作用1:转到真实图像平面 作用2:对原始采集图像做变换或,提高图像识别准确率

Python之图像处理OpenCV_第46张图片
Python之图像处理OpenCV_第47张图片
Python之图像处理OpenCV_第48张图片

pst1:原图中的坐标点
pst2:要生成的坐标点

Python之图像处理OpenCV_第49张图片
Python之图像处理OpenCV_第50张图片
Python之图像处理OpenCV_第51张图片

你可能感兴趣的:(#,Python科学计算基础,图像识别,opencv,python)