在iPhone上进行图像处理

时间:2010-01-22 20:56:32

标签: iphone objective-c iphone-sdk-3.0 image-processing image-manipulation

我想对在iPhone上拍摄的照片应用图像处理。 该处理将涉及2D矩阵卷积等。

我担心嵌套NSArrays的性能会非常糟糕。操作基于像素的图像的正确方法是什么?我应该只使用分配有malloc的C数组吗?

4 个答案:

答案 0 :(得分:3)

您是否查看过iPhone SDK中的Quartz 2D引擎?或者也许是核心图形? Apple有一个很好的overview document描述了iPhone上可用的所有不同的成像技术。不幸的是,iPhone上没有像ImageKit那样好的东西。

答案 1 :(得分:1)

我建议使用OpenCV图像处理库,因为它包含几乎所有你想要的优化算法。 OpenCV肯定比使用NSArray手动处理更快。 但是有一个主要缺点 - OpenCV库是用C / C ++编写的,因此您必须将NSImage转换为本机OpenCV图像格式才能进行处理。但谷歌如何做到这一点真的很容易。 我在自己的iPhone项目中使用OpenCV,这里是为iPhone构建OpenCv的小方法帖子:http://computer-vision-talks.com/2010/12/building-opencv-for-ios/

答案 2 :(得分:0)

是的,你会使用一个C数组,因为无论如何你都是如何取回像素数据的。

如上所述,您应该查看是否可以使用Quartz2D来执行您感兴趣的操作,因为它可能会更好地基于硬件执行。如果没有,只需在像素数组上做自己的事。

答案 3 :(得分:-2)

iPhone也支持OpenCL,它的GPU处理能力比CPU高。

相关问题