我正在使用Cocoa Touch中的vImages,在我的情况下,它基本上是ARGB-float-Arrays,我需要做二次采样。低通滤波对于使用vImage函数并不是问题,但是如何选择一个2x2像素(假设我想通过因子2进行二次采样)?当然,我可以使用vDSP步进功能,但这只适用于水平二次采样,而不适用于垂直二次采样。iOS可可触摸vImage子采样
我希望以下内容能阐明我打算做的事情。我想选择标有X的所有像素,如图此图像中:
X O X O X O
O O O O O O
X O X O X O
O O O O O O
X O X O X O
O O O O O O
但由于存储是线性的,我的数组是这样的:
X O X O X O O O O O O O X O X O X O O O O O O O X O X O X O O O O O O O
我怎样才能在执行二次抽样合理的时尚?
编辑:我正在寻找一种有效的方式来做一个给定的位图存储为一维浮点数组(包括负值)的二维下采样。
我已经尝试过使用Core Graphics来实现这个功能,它的功能很强大。问题是,它是线性逼近,与我打算做的“真实”低通滤波相反。此外,我需要使用负值,它不能显示为uint8_t。我希望使用一些vDSP函数来获得更好的性能,而不是实现复制循环。据我所见,这可能不适用于垂直下采样,但也许我还没有看到它。 – Chris 2012-08-17 09:15:34
我编辑了我的回复,甚至认为上面的评论似乎没有包含在你原来的问题中。你可能想进一步扩展你的问题。我所提议的根本不是进行任何滤镜处理,也不是使用Core Graphics来处理像素和制作图像(这将是您创建的像素的精确渲染)。 – 2012-08-17 10:41:09
我很抱歉我的问题不清楚。谢谢您的回答。我将用以下编辑我的问题:我正在寻找一种有效的方法来对存储为一维浮点数组(包含负值)的给定位图执行二维下采样。 – Chris 2012-08-17 11:34:16