-1

我很想知道,如果有任何图像处理/计算机视觉的框架存在,让您通过动态创建的过滤器链/过滤块(类似于Simulink模块中创建一个过滤器管线MATLAB)。计算机视觉/图像处理构架

这个想法主要是受RoboRealm的启发,但我希望主要在C/C++中实现它,并且能够以图形方式构建图像处理管道。我熟悉一个这样的框架,Camunits,我将用它作为构建这个图形过滤器框架的基础,但是请让我知道你是否知道任何。 CamUnits与LCM(轻量级通信和编组)相结合,可以处理大部分现在我想避免的编组和网络需求。此外,CamUnits还可以很好地与LCM中的日志记录框架集成在一起,并且拥有一系列用于图像采集(火线相机,自动增益/曝光校正,快速拆除等)的工具。

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

+0

微软的DirectShow,特别是FilterGraph和相关的插件完全用于视频和音频解码,混合和多路分解,但原理可能已被用于图像处理流水线。从过去的经验来看,在C++中这不是一个明智的做法,你只能得到很少的好处,并且不得不承受太多的输入约束。选择一个工具集/语言/库,并提供适当的支持,以构建无类型的过滤器体系结构和足够的语法糖,从而解决实际问题。 – 2012-07-26 12:57:11

+0

正如其他人在这里所说的那样,有很多框架可以做到这一点(事实上,我见过的大多数图像处理软件都可以用这种方式来装配)。 Mac和iOS上的Apple Core Image框架是围绕这种结构构建的,它的Quartz Composer工具甚至可以让您执行过滤器,输入和输出的图形拖放连接。我沿着这些路线写了自己的开源iOS框架,模块化过滤器或处理操作可以链接在一起,并可根据需要进行交换。我甚至知道有人为此构建了一个用于快速建立过滤链原型的GUI。 – 2012-07-26 19:35:46

回答

2

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

我记得第一手使用的最古老的是Khoros(这可能会告诉你我多大了),但我几乎肯定施乐的人有类似的方式。 最近,大量的图像合成应用程序使用了类似的UI方法,最显着的是Shake

根据我的经验,他们是算法的探索是非常有用的,但我从来没有见过一个在GUI没有在做事情时的问题开始变得复杂的方式获得。 “视觉计算”的呼吁得到一个解决方案的大致轮廓,但为什么难问题最好在理性和使用公式传达的理由 - 这是一个更简洁的符号,与在一个屏幕上绘制无用的气泡和线条的hundres分配。

在生产实践中,这些应用程序的实用性最终与其输出脚本功能相关联:当您找到问题的解决方案时,鼠标拖动很快就会很疲惫,并且您想将它应用于一大堆图像。然后,应用程序更好地有一种方式来输出代码实现图像转换的方式,很容易与其他代码库进行交互。

-3

我们有沿着这些线路属于一个产品,几乎准备好发布(“PrecisionImage.NET”在www.CoreOptical.com)。它不是C++,它没有用于拖放过滤器链的图形用户界面,但它非常灵活,功能强大且易于使用。它是一个“纯.NET”程序集,并与WPF中的WIC成像子系统连接。目前,它广泛地使用线程来自动利用主机中的所有CPU功率,并在接下来的一两个月内为CUDA设备添加GPU处理子系统。这仍然是一个“Pure .NET”解决方案,即使使用GPU也没有非托管组件(GPU代码被拼写成与GPU驱动程序直接交互的PTX代码),因此您可以使用任何CLS的.NET语言兼容包括C#/ VB/F#。但是,目前我们只有C#中的例子。基本上它是一个类库,允许组装加工链而不会产生离散化错误。我们在网上有几个例子来说明这是如何完成的。

-1

Cassandra是一种可视化编程环境,可用于对算法进行建模,使您可以轻松开发图像处理和信号处理算法。诸如OpenCV和IPP函数等库的广泛集成使Cassandra成为一个高效的开发平台,并且使您能够比传统编程语言更快地实现解决方案。

您可以将Cassandra用于各种应用,包括信号处理,图像和视频处理等。 G。基于照相机的驾驶员辅助系统等。许多科学机构使用Cassandra,这是用C++进行图像处理的可视化编程环境。