Opencv-python学习路线与图像处理方面的相关技能树(西瓜6总结)

可能是因为Opencv的博客不能写得太水,我个人不太想写Opencv的博客,但又不得不写。

Opencv-python学习路线与图像处理方面的相关技能树(西瓜6总结)

标题

  • Opencv-python学习路线与图像处理方面的相关技能树(西瓜6总结)
    • 前言
    • Opencv的优点
    • 为什么选择Opencv-python
    • Opencv-python学习路线
      • 1.OpenCV简介
      • 2.OpenCV中的Gui功能
      • 3.核心运营(核心操作)
      • 4.OpenCV中的图像处理
      • 5.特征检测与描述
      • 6.剩余部分
    • 相关技能补充
    • 结束语

前言

本文会介绍Opencv-python学习路线和学了之后的话还需要学哪些技能从而更好得就业。毕竟知识总是要用来套现的。
我会去回顾自己所学,和在项目上的一些经验,用心把这篇文章写好。从而使得这篇文章更好得帮助到想往图像方面发展的同学,或者给同样使用Opencv的很久的同行回顾或思考。因此如果觉得本文哪里写得不合适或有错误。随时欢迎评论或者私信指出。

Opencv的优点

我一句话给各位概括一下,Opencv是一个非常理想的开源的发行的跨平台计算机视觉库。用了之后就是真香。

为什么选择Opencv-python

主要因为Python本身的优点,学得快,用得爽。之后拓展也很舒服。

Opencv-python学习路线

学习路线,主要是学习三个方面。获取图片,处理图片和反馈结果。
Opencv-python学习路线与图像处理方面的相关技能树(西瓜6总结)_第1张图片
各位就把Opencv当作独孤九剑学就行。第一步学习剑的基础,python,numpy要懂点基础,之后获取图片前期掌握一个imread就行。第二步根据情况去学习破剑式,破刀式,破枪式这些分别对应里面的图像几何变化、图像阈值、形态变化等,知道有哪些功能,之后对应去用就好。等第二步多了,第三步总诀式自然水到渠成。

配合着官方的手册里的目录说明一下。https://docs.opencv.org/3.4.11/d6/d00/tutorial_py_root.html
Opencv-python学习路线与图像处理方面的相关技能树(西瓜6总结)_第2张图片

1.OpenCV简介

了解如何在计算机上设置OpenCV-Python!
掌握程度:新手全看,会装就算过了。

2.OpenCV中的Gui功能

在这里,您将学习如何显示和保存图像和视频,控制鼠标事件以及创建轨迹栏。
Opencv-python学习路线与图像处理方面的相关技能树(西瓜6总结)_第3张图片
掌握程度:红色框框内的掌握即可,后面的例子用到的全是imread。视频入门之类的虽然是基础,但是是后面的基础,初学者要隔一段时间才能用到。

3.核心运营(核心操作)

在本节中,您将学习图像的基本操作,例如像素编辑,几何变换,代码优化,一些数学工具等。
Opencv-python学习路线与图像处理方面的相关技能树(西瓜6总结)_第4张图片
掌握程度:红色框框内的掌握即可,至于剩的那个是很重要,不过初学者看了,短期内都不会用到。解决方案都没有,还谈什么优化呢?

4.OpenCV中的图像处理

在本节中,您将学习OpenCV内部的不同图像处理功能。
Opencv-python学习路线与图像处理方面的相关技能树(西瓜6总结)_第5张图片
Opencv-python学习路线与图像处理方面的相关技能树(西瓜6总结)_第6张图片
这一部分就比较多。
图像的几何变换:如旋转,平移,是图像的基础知识,一定要掌握。

改变色彩空间,图像阈值,平滑图像:可以放在一起学习。理解彩色图,灰度图,二值图。接着再理解阈值的概念。而平滑图像是个啥呢,如果你近视的话,你把眼睛一摘,这感觉就和平滑图像差不多。之后可以再了解下高斯与中值滤波。

形态转换:主要指的是图像形态学操作。包含腐蚀操作,膨胀操作,开运算,闭运算,梯度计算,礼帽和黑帽。如:
开运算为先腐蚀再膨胀。对于消除噪音很有用
Opencv-python学习路线与图像处理方面的相关技能树(西瓜6总结)_第7张图片
闭运算为先膨胀再腐蚀。在关闭前景对象内部的小孔或对象上的小黑点时很有用。
Opencv-python学习路线与图像处理方面的相关技能树(西瓜6总结)_第8张图片
图像渐变:可以理解为图像梯度计算。理解里面的三种类型的梯度滤波器或高通滤波器,即Sobel,Scharr和Laplacian。Sobel为一阶求导,Scharr和Laplacian为二阶求导。如图Sobel X则图像中的横线消失了,Sobel Y则图像中的竖线消失了。

坎尼边缘检测(Canny边缘检测):Canny Edge Detection是一种流行的边缘检测算法。
Opencv-python学习路线与图像处理方面的相关技能树(西瓜6总结)_第9张图片
影像金字塔:主要是了解cv2.pyrDown()和cv2.pyrUp(),向下采样和向上采样。示例给的是苹果橘子的图像融合。

OpenCV中的轮廓
Opencv-python学习路线与图像处理方面的相关技能树(西瓜6总结)_第10张图片
cv2.findContours()是里面的基础,在这个基础上再去探寻或者设计你需要的轮廓属性。而这一章之前的内容可以理解为本章的基础。这一章和前面的感觉不同,前面主要是图对图,也就是把图处理为另一张图。这一章则是图对数据,把图片处理为你需要的数据,比如把图片处理为里面一个物体的面积。就是把图片处理为数字。
个人认为本章还是很关键的,如我们要得到一个物体在图片中的中心点坐标,但这张图片里有一些噪声干扰。我们既可以先处理噪声,再找轮廓。也可以先找轮廓,再排除噪声。
OpenCV中的直方图,OpenCV中的图像转换:理解直方图定义,均衡化原理,均衡化效果,傅立叶概述和变化后的效果

模板匹配,霍夫线变换,霍夫圆变换:如同字面意思分别是使用模板匹配在图像中搜索对象,检测线,检测圆。很好理解,很好用。

分水岭算法的图像分割:找图片中的峰值。函数是cv2.watershed(),用官方的例子说明一下。
Opencv-python学习路线与图像处理方面的相关技能树(西瓜6总结)_第11张图片
这个cv2.watershed可以把这些硬币都找到。
Opencv-python学习路线与图像处理方面的相关技能树(西瓜6总结)_第12张图片
(解决问题的方法不止一种,因为这些硬币颜色相近,你也可以用前面的颜色来判断,接着再形态转换,也能得到类似的效果)
使用GrabCut算法进行交互式前景提取:如标题所示,功能是前景提取,效果可能不够理想哈。
掌握程度:只需要进去后把相关示例代码运行一下,知道功能即可,之后建议等下一章看完做一些练习项目,练习项目在后面会提到。

5.特征检测与描述

Opencv-python学习路线与图像处理方面的相关技能树(西瓜6总结)_第13张图片
掌握程度:前面的概念浏览一下,最后的ORB,特征匹配,特征匹配+单应性查找对象把相关示例代码运行一下,知道功能即可。这里看完之后就建议各位找点Opencv的实例应用来做做看。

相关的实例如:信用卡数字识别,车牌号识别,全景图像拼接,停车场车位识别,答题卡识别等。要是各位对这些实例感兴趣的话,我之后可以写这方面的实例,然后放在这里。

6.剩余部分

Opencv-python学习路线与图像处理方面的相关技能树(西瓜6总结)_第14张图片
剩余的部分肯定是有用的,在特定情况下就会用到。因此建议大家点进去看一下就行。当看到这里的时候推荐大家再回头去细看前面的绩效评估和改进技术(Performance Measurement and Improvement Techniques)(虽然“绩效评估”这个翻译优点醉,但防止大家找不到,就姑且这样吧)

相关技能补充

以下是个人的观点。。。
首先python,c++的基础一定要打牢,Opencv毕竟源代码是用c++写的,长期来看python可能是不够的。但如果你是搞深度学习的,用Opencv做一做特征工程,那当我没说。图像算法方面其实挺看学历的(作者这个本科生就很伤),但也没必要灰心,要相信自己的能力。除此之外,OCR可以去了解一下,直接搜tesseract-ocr。条形码和二维码的识别也可以去了解一下,直接搜pyzbar或者zxing。以及给各位强烈安利anaconda。
再有的就要看你要应聘什么岗位了,到招聘网站上搜索一下,投个简历,面试下就行。时刻去面试也很不错哦,可以去思考接下来的发展和了解行情。

结束语

总算写完了,写这一篇文章自己也学到了不少,可以说是温故而知新。也觉得自己知道的还不够。
有帮助就点个赞和关注咯。感谢各位。
西瓜6的啦啦啦

你可能感兴趣的:(python,opencv,详细,python,opencv)