我希望能在iPhone拍摄的照片上应用图像处理技术。这种处理将涉及2D矩阵卷积等操作。
我担心使用嵌套的
我担心使用嵌套的
NSArrays
性能会很差。那么正确的处理基于像素的图像的方法是什么?我应该只是使用malloc
分配的C数组吗?NSArrays
性能会很差。那么正确的处理基于像素的图像的方法是什么?我应该只是使用malloc
分配的C数组吗?我建议使用OpenCV图像处理库,因为它包含了几乎任何你想要的优化算法。使用OpenCV肯定比使用NSArray手动处理更快。 但是有一个主要缺点- OpenCV库是用C/C++编写的,因此您将不得不将NSImage转换为本机OpenCV图像格式进行处理。但是这很容易通过谷歌搜索来解决。 我在自己的iPhone项目中使用OpenCV,这里是一个小教程,介绍如何为iPhone构建OpenCv: http://computer-vision-talks.com/2010/12/building-opencv-for-ios/
是的,你应该使用C数组,因为这是你获取像素数据的方式。
正如提到的,你应该查看并了解是否可以使用Quartz2D来进行你感兴趣的操作,因为它可能会更好地基于硬件执行。如果不能,就在像素数组上自己进行操作。
iPhone也支持OpenCL,而且它的GPU比CPU具有更强大的处理能力。