openMV or openCV
前言
openmv还是opencv?相信不少学习机器视觉相关的同学们,都听说过这两个词。我本人是在暑假准备学校竞赛的时候了解到的,当初是为了使用机器视觉来识别某个颜色或匹配某个物体,进而与单片机通信,来实现控制有关模块的动作的目的。于是在网上查找了一些关于计算机视觉的资料,在此总结下和大家分享,希望对你们的选择有所帮助。
openMV
openMV是一款基于stm32的摄像头模块,可通过Python语言编程,且本身自带了许多基本图像处理的算法和例程,非常适合机器视觉的小白使用。简单来说,openMV就是一个兼具硬件和软件的摄像头处理模块,适合用作嵌入式机器视觉,和单片机搭配使用。缺点是摄像头像素太低,不适合做深度学习等一些复杂的算法,但做一些小的项目足够了。
我使用的openMV是在星瞳科技购买的,官网里面有详细的文档手册和教学视频,如果认真看完大部分章节,并在IDE里调用对应的例程去实践、观察,两个月就完全足够上手,当然前提是要对Python语言有一定了解(个人感觉Python真的是最适合机器视觉的编程语言了,学起来也要比其他编程语言简单一些)。
最后附上星瞳科技官网https://singtown.com/openmv/
openCV
OpenCV,全称Open Source Computer Vision Library,即开源计算机视觉库,就是计算机大神们已经编写好的打包过的代码,并提供了对应的函数,我们使用的时候不需要自己写图像处理的算法,只要会调用它库里的函数即可。它兼有 C++,Python 和 Java 接口,同时支持 Windows,Linux,Mac OS,iOS 和 Android多个操作系统。简单来说,openCV只是一个开源的视觉库,不包含任何硬件,同时也可以把openCV移植到嵌入式开发平台的文章,自己也不太了解,可自行搜索。
我自己的老师上课教的是用Visual Studio C++作为开发工具,调用openCV的函数库来实现。这些函数确实可以非常高效地实现计算机视觉算法,实现图像处理功能。openCV在解决复杂的图像处理问题上,具有很大的优势,你可以做例如人脸识别、运动跟踪、人机交互等复杂的项目,可以自己写算法来开拓更多的应用方向。由于我本人能力有限,只停留在会调用函数的阶段,所以它很多强大的功能还没有探索到,只能大概介绍这么多吧。
最后附上openCV官网https://opencv.org/
结尾
最后总结下,如果你是初学者,想参加比赛或是做一些小项目,就用openMV,如果想在机器视觉领域有更深的研究,就学一学openCV吧。我自己能力有限,也只是刚刚入门的小白,分享的内容也是我最开始感到迷茫的地方,现在积累了一些很少的经验,希望对初学者有所帮助。最后愿每个人在自己学习的道路上,都能坚持不懈,不惧挑战,有所收获。