、コアイメージの現在の機能は、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は、より高速なコア・イメージ(70X CPUよりも速い)よりiPhone 4(6X速いCPUバウンド処理より)とビデオ25X上の画像4X速くコアイメージよりも処理します。最悪のケースでも、私はそれを投げることができます、それは処理速度のためにCore Imageに合っています。
フレームワークはまだかなり新しいので、私がそこに持っているストックフィルターの数は少なくなっていますが、すぐに束を追加していきます。その間、画像を処理する独自のカスタムディストーションシェーダーを作成し、必要に応じてすべてのソースコードを調整することができます。 My introductory post about itには、アプリケーションでこれを使用する方法の詳細がもう少しあります。
以前私はImageMagickを使用していましたが、それは私たちのOS X製品に「ちょうど良い」ものを構築するのが面倒でしたが、最終的には価値がありました。悲しいことに私はもはやそのメイクファイルを持っていないので、私はあなたにそれを与えることはできません。 –
これらのライブラリの1つを使用したい場合は、書かれている言語を学ぶ時間が必要です。あなたの質問を理解できないかもしれません。 –
回答者のおかげで、私が聞きたいと思ったことはありませんでした。(愚かなことに、アップル社のフィルタをまだ開発者に提供していないのです!) –