图像处理的四种方法(图像处理该如何入门)
经常会有人有这样的疑惑,图像处理怎么研究,怎么入门,怎么应用?,今天小编就来说说关于图像处理的四种方法?下面更多详细答案一起来看看吧!
图像处理的四种方法
经常会有人有这样的疑惑,图像处理怎么研究,怎么入门,怎么应用?
要想搞清楚怎么入门,可能需要从以下几个方面入手,希望能对大家有所帮助,结合自身的工作经验,简单总结一下,不喜勿喷。在写这篇文章之前我本想多点插图,让文章看起来花哨一点,后来我觉得没必要这样做,大家花时间沉下心来读读文字没什么不好,况且学术和技术本身也不是多么花哨的东西。
一、什么是图像处理?
图像处理是指对图像进行分析、加工、和处理,使其满足视觉、心理或其他要求的技术。图像处理是信号处理在图像领域上的一个应用。目前大多数的图像均是以数字形式存储,因而图像处理很多情况下指数字图像处理。此外,基于光学理论的处理方法依然占有重要的地位。【取自-维基百科】
图像处理的起源很早,历史相当悠久。它的首次应用是为了改善伦敦和纽约之间海底电缆发送的图片质量,那时就应用了图像编码,被编码后的图像通过海底电缆传送至目的地,再通过特殊设备进行输出。这一进步使得传送一幅图片的时间从原来的一个多星期减少到了3小时。此后,随着计算机技术的进步,图像处理也得到了很大的发展。到了20世纪60年代已经形成了比较完善的学科体系,这套理论在20世纪70年代发展得十分迅速,并开始应用于医学影像和天文学等领域。而CT、MRI等技术的发展都离不开图像处理。即使在今天,诸如MRI图像降噪等问题依然是数字图像处理领域的热门研究方向。
数字图像处理在今天是非常热门的技术之一,它的的应用价值不是靠嘴上说,而是要看有多少人去搞,很简单的道理。其实我觉得判断一项技术有没有价值、有多大价值的最简单最有效的方法就是看有多少人在研究它。如果大家都在研究,那必然说明它很火,至少目前很火,以后的几年里依然还会火。因此,如果你不确定图像处理是不是有价值,那就查查全国图像处理工程师的数量就行了。
二、图像处理的应用
1、身份认证
21世纪是刷脸的时代,这一点无可厚非。人脸识别的验证系统的使用、门禁系统,以前是指纹,虹膜,现在就是人脸。相比之下,人脸的识别就方便多了,直接拍张照片用来采集人脸信息就行。还有就是监控,一个摄像头所拍的监控能从不同的角度记录成百上千的人(比如车站等密集场所的监控),让警察去辨认将是一个浩大的工程,要是系统能够自动判别人员信息,无疑会给办案带来极大方便。
2、监控安防
安防监控可以说是图像处理领域最有潜力的应用领域。如今各个城市都在疯狂的安装监控摄像头,全国时刻都有无数的摄像头在录监控,但是安防监控的后端处理却没跟上。什么是后端处理,简单的说就是监控录像的视频处理。注意这里的视频处理可就不止包含人脸识别了,还有行人检测、异常检测、显著性检测、协同跟踪等。
3、深度学习(Deep Learning)
关于深度学习,最先想到的是是谷歌的人工大脑项目。谷歌可以说是深度学习方面的牵头企业了,其在2012年公布的谷歌大脑项目,动用了1.6万个计算节点,训练数周,得到的人工智能模型能够自主识别猫脸图像,为新一代人工智能开辟了道路,之后微软深度学习研究院、百度深度学习研究院等机构都开始大量投入,各个高校也搞得风声水起。
如果对深度学习这个概念可能有人不太熟悉的,可以引用业界的一位大牛说的话,“如果你不知道什么叫深度学习,就想想《终结者》中的T-800”。当然这可能有点小片面,不过深度学习确实是公认的新一代人工智能的基础。
三、图像处理研究工具
图像处理的研究分为算法研究和应用两个部分。用到的主要编程语言有C/C 、Python、matlab等,原因很简单,它们都有很多相应的第三方库,不用我们从零开始编程。
1、C/C
这里的C/C 主要是指OpenCv图像处理工具包,该工具包是由Intel公司开发,目的是为了方便大家共享,希望大家能够在一个共同架构的基础上共同研究开发。Opencv是面向开发的,稳定性好,异常处理机制周全,目前仍然是开源的,如果你在项目中直接调用了它的API,那就意味着你的项目也必须开源。因此在真正的产品开发过程中,往往需要从Opencv库里面挖代码,而不是直接调用。
推荐两本关于Opencv方面的教程。一本是CSDN博客大牛毛星云写的《OpenCV3编程入门》,一本是《图像识别与项目实践――VC 、MATLAB技术实现》。前者介绍了OpenCv中相对前沿的知识。里面的代码通俗易懂,尤其适合初学者。后者是一本偏向于工程应用的书,里面有很多有新意、能运行的代码。
2、Python
Python已经逐渐成为当下脚本语言的新标准。Python在图像处理算法方面除了其自身简洁的编程优势外,还得益于各种成熟的Python类库。这里推荐一本书《机器学习实战》,里面对好多机器学习领域的经典算法,小到KNN,大到SVM,都给出了详细的介绍以及代码实现(Python版)
3、Matlab
Matlab的强大之处在于其方便快捷的矩阵运算能力和图形仿真能力,严格的讲更像是一个工具,而非一门编程语言。
对于算法研究人员首选工具自然是matlab,因为它简便快捷,封装性好。如果你想做图像处理方面的研究,Matlab是必须掌握的,而且是熟练掌握。当你有一些想法需要验证时,最好明智的先用Matlab编写出来测试。对于之前没怎么接触过Matlab与图像处理的人,在这里推荐一本相关的书籍《MATLAB图像处理实例详解(附光盘)》。这本书对于Matlab图像处理入门还是很有帮助的。
四、图像处理研究方法
要想上手图像处理,个人感觉可以分为三个部分:基础知识、基本算法、算法研究。
1、基础知识
所谓基础知识,比如什么是图像(二维或者三维矩阵)、什么是像素、彩色图和灰度图、颜色空间、图像滤波、图像噪声、图像频域变换等概念。
2、基本算法
图像处理中的一些基本算法,比如深度/广度优先搜索、最短路径算法等等,就模式识别方向而言,要对图像进行处理,那么图像就不再只是图像,它可能会演变成各种不同形式的概念,可能是点,可能是面,还可能是一个坐标空间。在目标跟踪的经典算法粒子滤波中,将一个个的小图像块看做一个个粒子;在子空间理论中,将一系列图像放在一起构建一个成分主空间(例如主成分分析PCA算法等等)。在这些基本算法中,需要把图像本身理解好,它是一个图像,是一个矩阵,是一个信息的容器,是一种数据的表现形式,图像不一定都必须在视觉上有意义(比如频域的图像)。
3、算法研究
算法研究应该是图像处理的核心工作,尤其是各大高校的博士硕士,很多都在搞图像算法。图像的算法研究,离不开数学。比如经常会用到泛函分析、最优化算法等方面的知识。但我想说的是最基础的还是矩阵运算。图像就是矩阵,图像处理就是矩阵运算。大家为什么都喜欢用Matlab,就是因为它的矩阵运算能力实在是太强大,在Matlab的世界中任何变量都是矩阵。同样OpenCv之所以能流行,不仅仅是因为它良好的封装性,也是因为它的矩阵格式。
真正在图像编程过程中,那些看着高大上的API函数归根到底都是工具,查查手册就能找到,真正核心还是在算法,算法是由公式编写的,公式的单元是变量,而图像的变量就是矩阵。所以,熟练去操作矩阵,求秩、求逆、最小二乘,求协方差都是算法研究的基础。
五、小结
可以说,图像处理就是一个典型的门槛低、厅堂深的领域。如果仅入门可能不需要太多基础,学过线性代数,会一点编程就够了;但要深入研究那些算法,需要下很大的力气。
其实真正让人望而却步的往往不是技术本身,而是我们对自身的不自信。不仅仅针对图像处理领域,对于其他新技术的入门学习也是一样,尽快迈出第一步,尽快去建立自信和成就感,让自己有勇气走下去,果断开工,或许会有意想不到的效果。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com