Python中的机器视觉

2024-05-16 18:04:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用Python执行一些基本的机器视觉任务,我想知道在哪里可以找到教程来帮助我开始。

据我所知,Python唯一一个提供机器视觉功能的免费库是PyCV(显然是OpenCV的包装),但是我找不到任何合适的教程。

我的主要任务是从火线获取图像。在不同的区域分割图像。然后对每个区域进行统计以确定像素区域和质心。

以前,我使用过Matlab的Image Processing Tootlbox没有任何问题。我想在Python中找到一个等价的函数是graythreshregionpropsgray2ind

谢谢!


Tags: 图像image功能机器区域教程像素视觉
3条回答

文档:几年前,我经常使用OpenCV包装的Python。OpenCV有大量的文档,附带了许多示例,甚至还有一个book。我使用的Python包装器足够薄,因此只需要很少的包装器特定的文档(这是许多其他包装库的典型情况)。我想,只要花几分钟看一个例子,比如PyCV单元测试,就可以满足您的需要,然后您就可以专注于适合您需要的OpenCV文档了。

分析:至于是否有比OpenCV更好的库,我有点过时的观点是,如果你想做一些相当高级的事情(例如对象跟踪),OpenCV是很好的,但它可能会超出你的需要。听起来scipyndimage和一些基本的numpy数组操作结合起来就足够了。

获取:我知道用于获取的选项有OpenCV、Motmot或使用ctypes直接连接到驱动程序。其中,我从未使用过motmotmot,因为我在安装它时遇到了麻烦。其他方法我发现相当简单,虽然我不记得细节(这是件好事,因为这意味着它很容易)。

我已经建立了一个关于这个主题的网站:pythonvision.org。它有一些教程和一些指向软件的链接。这里有更多的链接和教程。

OpenCV可能是你最好的选择;你可以为它们选择包装。我查看了标准OpenCV安装附带的SWIG包装,但最终使用了ctypes-opencv,因为内存管理看起来更干净。

它们都是围绕C代码的非常薄的包装,因此您可以找到的任何C引用都将适用于Python。

OpenCV非常庞大,而且没有特别好的文档记录,但是samples目录中包含了一些不错的示例,您可以使用它们开始工作。可搜索的OpenCV API引用是here

你没有提到你是在寻找在线的还是印刷的资源,但是我有一本O'Reilly的书,它非常好(C语言的例子,但是很容易翻译)。

FindContours函数有点类似于regionprops;它将为您提供一个连接组件的列表,然后您可以检查这些组件以获取它们的信息。

对于阈值,可以尝试Threshold。我确信你可以给它传递一个标志来使用Otsu的方法,但它似乎没有在文档中列出。

我没有遇到与gray2ind对应的特定函数,但它们可能在其中。

相关问题 更多 >