我正在尝试使用iOS上的加速框架来绕过iOS上的核心图像不支持自定义过滤器/内核的事实。我正在开发一个边缘检测滤波器,使用两个卷积和一个Sobel kernel,但从一个简单的高斯模糊开始,以获得它的挂起。我知道vImage面向矩阵形式的图像处理,而vDSP则专注于使用傅立叶变换处理数字信号。但是,尽管我开始使用vImage函数(vImageConvolve_XXXX等),我还是听到很多人讨论使用vDSP的函数(vDSP_conv、vDSP_imgfir等)来做卷积之类的事情。因此,这就引出了我手头的问题:我应该在什么时候使用一个而不是另一个?在卷积运算方面,它们之间有什么不同?我到处都找过了,但找不到明确的答案。有没有人能帮我点亮一下,或者给我指个方向?
谢谢!
发布于 2012-01-29 11:05:51
如果vImage提供了您需要的操作,那么使用它通常是最简单的。vDSP不会,vImage会为你做缓存阻塞和线程处理。vImage提供对交错和整数格式的操作,这两种格式通常对图像处理很有用。
发布于 2012-01-29 12:23:31
上一次我进行实验时,这两个框架都没有利用内核可分离性,这在空间域卷积时提供了巨大的性能提升--比矢量化指令能买到的性能提升要大得多。特别是Sobel内核是可分离的,所以如果您使用vDSP或vImage (而不是OpenCV),请确保自己分离内核。
https://stackoverflow.com/questions/8981484
复制相似问题