计算机视觉/图像处理框架

时间:2012-07-25 19:15:54

标签: image-processing computer-vision augmented-reality robotics

我很想知道是否有任何图像处理/计算机视觉框架允许您通过动态创建过滤器/过滤器块链(类似于MATLAB中的simulink块)来创建过滤器管道。

这个想法主要受到RoboRealm的启发,但我想在C / C ++中实现这一点,能够以图形方式构建图像处理流水线。我熟悉一个这样的框架,Camunits,我将用它作为构建这个图形过滤器框架的基础,但如果您知道任何内容,请告诉我。 CamUnits与LCM(轻量级通信和编组)很好地集成,可以处理我现在想要避免的大部分编组和网络需求。此外,CamUnits还与LCM中的记录框架很好地集成,并且具有一系列用于图像采集的工具(火线相机,自动增益/曝光校正,快速去连接等)。

简而言之,我希望能够构建一个图形界面,让您动态创建图像处理管道(根据需要进行线程化),从而有助于图像处理/计算机视觉算法的快速原型设计。我也很想知道是否对这种类型的框架感兴趣(模块化,快速/高度可重新配置)。

3 个答案:

答案 0 :(得分:3)

这是(几乎)动物园图像处理应用程序中最古老的想法:“厨房水槽”GUI应用程序,其中过滤器是框,图像输入到左边,数据流过框,图像出现在右边。

我记得第一手使用的最老的是Khoros(这可能会告诉你我多大了),但是施乐的人们早就有类似的方式了。 最近,许多图像合成应用程序使用了类似的UI方法,最值得注意的是Shake

根据我的经验,它们对于算法探索非常有用,但我从未见过GUI在问题开始变得复杂时没有妨碍完成工作的方法。 “视觉计算”对于获得解决方案的粗略轮廓很有吸引力,但有一个原因可以解释为什么更难以解决问题并使用方程式进行沟通 - 这是一种更简洁的符号,可以省去无用的气泡和画在屏幕上的线条

在生产实践中,这些应用程序的实用性最终与其输出脚本功能相关联:当您找到问题的解决方案时,鼠标拖动变得非常烦人,并且您希望将其应用于大量图像。然后,应用程序最好能够以一种易于与代码库的其余部分交互的方式输出实现图像转换的代码。

答案 1 :(得分:-1)

Cassandra是一个可视化编程环境,可用于模拟算法,使您可以简单地开发用于图像处理和信号处理的算法。 OpenCV和IPP功能等库的广泛集成使Cassandra成为一个高效的开发平台,使您能够比传统的编程语言更快地获得解决方案。

您可以将Cassandra用于各种应用,包括信号处理和图像和视频处理,例如: G。基于摄像头的驾驶辅助系统等众多科研机构使用Cassandra,C ++图像处理的可视化编程环境。

答案 2 :(得分:-3)

我们有一个几乎可以发布的产品(www.CoreOptical.com上的“PrecisionImage.NET”)。它不是C ++,它没有用于将过滤器链拖放到位的图形UI,但它灵活,功能强大且易于使用。它是一个“纯.NET”程序集,与WPF中的WIC成像子系统接口。目前它普遍具有线程,可以自动利用主机中的所有CPU电源,在接下来的一两个月内,我们将为支持CUDA的设备添加GPU处理子系统。这仍然是一个“纯.NET”解决方案,即使使用GPU也没有非托管组件(GPU代码是JIT,直接与GPU驱动程序交互的PTX代码),因此您可以使用任何CLS语言 - 兼容包括C#/ VB / F#。但是,目前我们只在C#中有例子。从本质上讲,它是一个类库,允许组装处理链而不会产生离散化错误。我们在网上有几个例子说明了这是如何完成的。