机器视觉方面有哪些好的开发平台?各有什么特点?

原文:https://www.zhihu.com/question/20025224/answer/18874837

作者:知乎用户
链接:https://www.zhihu.com/question/20025224/answer/18874837
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

在我的理解:
机器视觉当前的比较流行的开发模式是“软件平台+工具包”
软件平台:
1.VC:最通用,功能最强大。用户多,和windows搭配,运行性能较好,可以自己写算法,也可以用工具包,而且基本上工具包都支持VC的开发。是大家主要选择的平台。
2.C#:比较容易上手,特别是完成界面等功能比用VC+MFC难度低了很多,已经逐渐成为流行的使用平台了,算法在调用标准的库或者使用C#+C++混合编程。可以看到目前很多相机厂商的SDK都已经开始使用C#做应用程序了。
3.LabVIEW:NI的工具图形化开发平台,开发软件快,特别是做工控行业或者自动化测试行业的很多工程师,由于使用labview进行测试测量的广泛性,所以都有labview的基础,再调用NI的Vision图像工具包开发,开发周期短,维护较为容易。
4.VB、delphi:用的人越来越少了。
5.其他:java等没有看到人用过。
工具包:
1.halcon:出自德国MVTech。底层的功能算法很多,运算性能快,用其开发需要一定软件功底和图像处理理论。
2.VisionPro:美国康耐视的图像处理工具包。性能大多数算法性能都很好,性能上没有和halcon直接对比过,但是开发上手比halcon容易。
3.NI Vision:NI的特点是自动化测试大多数需要的软硬件都有解决方案,有点事软件图形化编程,上手快,开发周期快,缺点是并不是每个软件都非常厉害。视觉工具包的优势是售价比大多数工具包或者算法的天文数字便宜了不少,而且整个工具包一个价格,而不是一个算法一个算法地卖,性能方面在速度和精度没有前两种软件好。
4.MIL:加拿大maxtrox的产品,是Matrox Imaging Library 的简写。早期推广和普及程度不错,当前似乎主要用户还是早期的做激光设备的一些用户在用,所以用于定位的较多。
5.CK Vision。创科公司的软件包,相对前面几个工具包来说价格优势比较明显,另外机器视觉需要的功能也基本都有,所以在国内自动化设备特别是批量设备同时需要保护版权的企业而言,用量很大,推广也不错。
6.迈斯肯:迈斯肯的视觉主要产品还是条码阅读一类,图像工具包没有用过,不了解,不评价。
7.OpenCV:感觉openCV更多的还是用在计算机视觉领域,在机器视觉领域其实不算太多,应为机器视觉领域当前主要的应用还是定位、测量、外观、OCR/OCV,感觉这几项都不是opencv的专长。
8.其他:其他还有一些厂家的图像工具包,要么市场影响力不大,要么本人没有用过,不评价。

某回复:

非实时的用Matlab
实时的用OpenCV

计算机视觉,是介于科学研究和实践之间,机器视觉就是实际工厂应用为目标。

一般来说没有具体的语言,如果是2D视觉的话可以用opencv之类的图像库,这些库的语言源码是C/C++的,现在有很多接口,Python和matlab都有接口,如果是3D的话,例如你想搞Kinect等3D图形开发的话,也有很多语言可以选择,C++和C#都行,现在opengl等3D库也有很多接口提供使用,Python和processing语音都可以调用。

### 机器视觉课程设计的主题和项目案例 #### 主题概述 机器视觉是一门跨学科领域,涉及计算机科学、图像处理、模式识别等多个方面。为了使学生能够全面掌握这一领域的核心概念和技术,课程设计应围绕以下几个主要主题展开: 1. **基础知识与理论** 讲解图像的基本属性、颜色空间转换以及常见的图像预处理技术,如滤波、边缘检测等[^1]。 2. **特征提取与描述子** 探讨如何从图像中提取有意义的信息,包括但不限于SIFT、SURF、ORB等局部特征描述子的学习与应用[^1]。 3. **分类与识别** 结合监督学习方法(如支持向量机、随机森林)和无监督学习方法(如聚类分析),教授学生构建简单的物体识别系统[^1]。 4. **深度学习在机器视觉中的应用** 阐述卷积神经网络(CNNs)的工作机制及其在目标检测、语义分割等方面的应用实例[^1]。 5. **实际应用场景模拟** 设计若干贴近工业界需求的实际操作环节,让学生有机会动手实践所学到的知识点[^2]。 #### 项目案例建议 以下是几个适合用于教学的项目案例,它们既涵盖了理论知识又强调了工程能力培养的重要性: 1. **车牌自动识别系统** 学生需完成从原始图片采集到最后文字解析整个流水线的设计工作。此过程涉及到灰度变换、二值化处理等一系列经典算法运用。 2. **人脸识别考勤管理系统** 利用人脸关键点定位技术和相似性比较策略实现身份验证功能。该项目可以帮助学员深入理解人脸几何结构特点及匹配原则[^2]。 3. **基于摄像头的手势控制程序** 开发一套能响应特定手势动作触发相应事件的小型软件。重点考察视频流读取优化技巧以及动态模板更新逻辑[^2]。 4. **无人驾驶车辆环境感知模块** 使用传感器数据融合技术建立周围障碍物三维模型,并预测其未来运动轨迹。这是当前自动驾驶研究热点之一,具有很高的挑战性和趣味性[^1]。 ```python import cv2 from sklearn.cluster import KMeans def preprocess_image(image_path): """加载并预处理输入图像""" img = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE) blurred_img = cv2.GaussianBlur(img, (5, 5), 0) # 高斯模糊降噪 _, binary_img = cv2.threshold(blurred_img, 127, 255, cv2.THRESH_BINARY) # 二值化 return binary_img def cluster_pixels(binary_img, num_clusters=2): """对像素进行K均值聚类划分区域""" pixels = binary_img.reshape((-1, 1)).astype(float) kmeans_model = KMeans(n_clusters=num_clusters).fit(pixels) segmented_img = kmeans_model.labels_.reshape(binary_img.shape) return segmented_img ``` 以上代码片段展示了基本的图像预处理流程以及简单形态下的图像分段方法[^1]。 --- ####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值