objective-c – iOS图像处理(失真)

objective-c – iOS图像处理(失真),第1张

概述我最初考虑Core Image来解决这个问题(因为我还需要进行面部识别),但很明显,不幸的是,CI Distortion滤镜还没有包含在iPhone上. 我试图深入研究GLImageProcessing,CImg和ImageMagick,尽管我在寻找学习任何这些方面的起点时遇到了很多麻烦. 鉴于那里出现了图像失真的应用程序数量,我知道这不会非常困难. 我不懂C或C,除非绝对必要,否则没有时间学习这 我最初考虑Core Image来解决这个问题(因为我还需要进行面部识别),但很明显,不幸的是,CI distortion滤镜还没有包含在iPhone上.

我试图深入研究GlimageProcessing,Cimg和ImageMagick,尽管我在寻找学习任何这些方面的起点时遇到了很多麻烦.

鉴于那里出现了图像失真的应用程序数量,我知道这不会非常困难.

我不懂C或C,除非绝对必要,否则没有时间学习这些语言.如果其中一个库是处理此任务的权威库,则将是必要的.

有没有人有这些库的经验?

有没有专门针对iOS5的书籍?

我找到的资源:

> GlimageProcessing示例项目
https://developer.apple.com/library/ios/#samplecode/GLImageProcessing/Introduction/Intro.html
> ImageMagick& MagickWand
http://www.imagemagick.org/script/magick-wand.php
> Cimg
http://cimg.sourceforge.net/
>简单的iPhone图像处理
http://code.google.com/p/simple-iphone-image-processing/

解决方法 正如你所说,Core Image的当前功能在iOS上有点受限.特别是,缺少像你在桌面上找到的自定义内核是令人失望的.您列出的其他备选方案(GlimageProcessing除外,它们无法进行此类过滤)都是cpu绑定的库,对于在移动设备上进行实时过滤来说太慢了.

但是,我可以指出一个名为GPUImage的开源框架,我刚刚推出,因为我找不到能够让你自定义效果的内容.顾名思义,GPUImage使用OpenGL ES 2.0着色器对静态图像和视频进行GPU加速处理.您可以使用这些来编写自己的自定义效果,因此您应该能够做任何您能想到的事情.框架本身是Objective-C,并且具有相当简单的界面.

作为失真滤波器的示例,以下着色器(基于Danny Pflughoeft’s answer中的代码)具有一种鱼眼效果:

varying highp vec2 textureCoordinate;uniform sampler2D inputimageTexture;const mediump float bulgeFactor = 0.5;voID main(){    mediump vec2 processedTextureCoordinate = textureCoordinate - vec2(0.5);    mediump float radius = processedTextureCoordinate.x * processedTextureCoordinate.x + processedTextureCoordinate.y * processedTextureCoordinate.y;    mediump vec2 distortedCoordinate = vec2(pow(radius,bulgeFactor)) * processedTextureCoordinate + vec2(0.5);    gl_Fragcolor = texture2D(inputimageTexture,distortedCoordinate);}

这会对视频流产生这种影响:

在我的基准测试中,GPUImage处理图像的速度比iPhone 4上的Core Image快4倍(比cpu绑定处理快6倍),视频比Core Image快25倍(比cpu快70倍).即使在最糟糕的情况下我也可以投入它,它与Core Image的处理速度相匹配.

该框架仍然相当新,所以我现在在那里的库存过滤器数量很少,但我会很快添加一堆.在此期间,您可以编写自己的自定义失真着色器来处理图像,并且可以根据需要调整所有内容的源代码. My introductory post about it详细介绍了如何在您的应用程序中使用它.

总结

以上是内存溢出为你收集整理的objective-c – iOS图像处理(失真)全部内容,希望文章能够帮你解决objective-c – iOS图像处理(失真)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1220768.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存