一,openCV不是一种语言,而是是一个开源计算机视觉库,封装了很多函数,但是想要学到东西,从最底层的函数写起。
初学者可以参考视频:https://blog.csdn.net/jia20003/article/details/107920069
或者对这OpenCV tutorials的c++API接口写一遍:https://docs.opencv.org/master/d9/df8/tutorial_root.html
优点:免费,可以看到源码,自己修复,有大量经过优化的代码库,有大型的社区。
缺点:入门困难,代码资料少,文档很少会贴出代码的例子,相比于 OpenCV(Python),OpenCV(C++)只含有一个小型的机器学习算法子集。对于新的算法验证不是很方便。
二,Python也是必须会的,后期如果做系统需要使用。可以快速验证算法设想,图像领域中的深度学习大量的工作也可以完成,MATLAB虽然也有,但是会比较局限,资料比较少,但是Python更像只用于算法研究,在工程边缘端布置算法,通常还需要转化为C++,Python里面实现了OpenCV的接口,并且还有很多深度学习的框架,
如果是新手想要快速上手 用Python会比较快,先打下基础,如果要学习比较高层的图像处理,Python中的深度学习比较成熟,
python. 入门可以看 http://accu.cc 的文章,常用算法都有讲解
优点:用 matplotlib 去进行结果可视化这方法,几乎可与 MATLAB 媲美。可用于构件 web 后端 ,Python 同样是一种多被用于建立网站的语言。像 Django、 Web2py 和 Flask 这样的框架能使你快速地组件起 web 应用程序。所以,结合这些框架,我们使用 OpenCV(Python)会更加地容易。
缺点:很难找到更多关于 OpenCV(Python)的教程。缺乏技术支持,OpenCV 是使用 C/C++ 编写的 :作为一个开源库,其好处之一就是能根据你自身需求进行修改。如果你想要修改 OpenCV,你就必须得修改 OpenCV 的 C/C++ 源文件
三,MATLAB更多的是一种编程语言,验证算法方便快捷。
优点:MATLAB功能强大,编程不熟练者容易些,可以忽略很多语法,很多函数。特别是数组运算,会简单容易,有强大的矩阵库 ,工具箱,可视化和调试工具。
第一种:可结合 OpenCV 使用 :你可通过使用 MATLAB 的 OpenCV 接口 去连接 OpenCV。
第二种:如何让OpenCV做为MATLAB的工具箱:https://blog.csdn.net/healingwounds/article/details/78848001
缺点:学习路线曲折,MATLAB 是一个矩阵引擎。因此,我们需要遵循一种 MATLAB 的方式去书写代码。内置的 MATLAB 程序会很快,但你所写的代码往往会很慢,因此,人们往往会把计算密集型部分写成 C,并通过使用 mex 集成在 MATLAB 的代码中。
通常使用 MATLAB / OpenCV(Python)来编写新的算法,而产品的完成则使用 OpenCV(C++)。
如果是搞研究,验证算法,建议用matlab。
如果在做图像处理的同时,还想学学编程,建议用python。
在学校用matlab。如果工作,觉得企业写项目不用matlab。操作起来都一样,只是语法习惯和api名字不同而已。
再放一句看到的话。一位真正的能者,在他们的口袋中往往会拥有许多不同的工具。能明智地挑选一个合适的工具去完成自己的工作。因此,能者并不与工具产生挂钩,而是自身的技能。