如何入门数字图像处理?

最近两个师弟刚考完研究生,他们比较迷茫,不知道如何去学习,总感觉要学的东西很多,却又没有一个完整的规划,我根据自己的亲身经历给他们规划了一个学习路线,希望他们少走弯路,早日踏上炼丹之路。

我将要学的知识分为“语言基础”和“理论基础”,二者互不冲突,可以双管齐下,并行学习。

一、语言基础

1. Python (重要程度:⭐⭐⭐⭐⭐)

Python是必须熟练掌握的语言,Python有很多C++没有的特性,比如说多维数组、生成器、方便易用的库,所以很适合搞数据科学,下面教程建议认真学习一遍。

Python3.6.8官方教程(中文):https://docs.python.org/zh-cn/3.6/tutorial/index.html

2. Pycharm (重要程度:⭐⭐⭐⭐)

工欲善其事必先利其器,Pycharm是宇宙第一Python IDE,其方便的调试、代码查错、Git深度结合、吸引着每一个Coder,根据下面教程学习Pycharm各种骚操作,着重学习Debug功能。

Pycharm官方教程(英文):https://www.jetbrains.com/help/pycharm/quick-start-guide.html

3. Linux & Shell(重要程度:⭐⭐⭐⭐⭐)

这个真的是吃饭技能,学好Linux与简单Shell编程,熟练使用Linux操作系统,能写一些简单的脚本帮你跑代码,重复的事情、有规律的事情,一定要交给机器做。

Linux与简单Shell编程(中文):https://www.runoob.com/linux/linux-tutorial.html

4. C++(重要程度:⭐⭐⭐)

c++难学,当你还在研究这个指针指向哪里的时候,我的python已经出结果图了,为什么要学?1. 快,c++相比python更偏底层,编译好的二进制文件机器码执行就是快很多。2. 当你想实现别人论文的方法,发现别人的代码是用c++写的,气不气?

C++入门教程(中文):https://www.runoob.com/cplusplus/cpp-tutorial.html

5. MATLAB(重要程度:⭐⭐)

matlab不用学,学完python直接上手……因为实在是太简单了,在数组方面,matlab和python在数据表示上唯一的区别就是matlab从1开始索引,python从0开始。为什么要学?1. 还是因为有些人的论文代码是用matlab写的。

matlab官方教程(中文):https://ww2.mathworks.cn/help/matlab/getting-started-with-matlab.html

我们CVer精通3门语言就OK了,Python、C++、MATLAB,如何混合编程?三门语言游刃有余?请参考我的博客:https://www.dapinglee.cn/?p=193

二、理论基础

1. 数字图像处理(重要程度:⭐⭐⭐)

这本书,用不着抱着啃完,我建议将其作为一本工具书,这本书不讲代码,只讲理论,代码脱离了理论是没有依据的,它更像是一本新华字典,建议哪里不懂查哪里,或者我问到你某个知识,比如我问你什么是形态学开、闭运算?你答不上来,但是你知道这本书有讲,就OK了。

2. 机器学习(重要程度:⭐⭐⭐⭐)

西瓜书,也是一本理论书,用理论支撑你的代码,虽然现在的代码封装得可以一行就能实现书中的功能,但是你知道为什么吗,当你迷茫的时候,不妨翻翻此书,能为你答疑解惑,此书需要一定数学功底。

3. OpenCV(重要程度:⭐⭐⭐⭐⭐)

学习OpenCV的目的,就是让你不要重复造轮子,当你想到一个很棒的idea,你能写个代码寻找某个目标图像的轮廓了,你能提取图像的特征点了,你能绘制图像的直方图了,然而这些OpenCV都能已经集成了,一行代码解决气不气。对这个库的了解,要达到你清楚知道它能实现哪些功能。

4. 深度学习(重要程度:⭐⭐⭐⭐⭐)

开始炼丹了激动不?建议先看看深度学习简介,关于深度学习,在机器学习这本西瓜书里也有介绍,建议好好看看。看完之后,开始刷《Python深度学习》这本书,建议每一章都认真学习,这本书既讲理论又讲代码,Keras(tensorflow后端)也是你们上手深度学习最简单的框架之一。

写在最后:这只是我结合自身经历总结的一份简单的入门教程,还需要各位继续深入研究下去,目前深度学习框架多种多样,网络结构变化层出不穷,大家需要跟上时代的步伐,无论以后工作还是继续深造,都保持一颗学无止境的心。

发表评论

您的电子邮箱地址不会被公开。