8

iOS で適応しきい値処理を実行するカーネルを見つけるために、あらゆる場所を調査しました。残念ながら、私はカーネル言語またはその背後にあるロジックを理解していません。以下に、しきい値処理を実行するルーチンを見つけました ( https://gist.github.com/xhruso00/a3f8a9c8ae7e33b8b23d )

static NSString * const kKernelSource = @"kernel vec4 thresholdKernel(sampler image)\n"
"{\n"
"  float inputThreshold = 0.05;\n"
"  float pass = 1.0;\n"
"  float fail = 0.0;\n"
"  const vec4   vec_Y = vec4( 0.299, 0.587, 0.114, 0.0 );\n"
"  vec4  src = unpremultiply( sample(image, samplerCoord(image)) );\n"
"  float Y = dot( src, vec_Y );\n"
"  src.rgb = vec3( compare( Y - inputThreshold, fail, pass));\n"
"  return premultiply(src);\n"
"}";

これを適応しきい値カーネルに書き直すことは可能ですか? 私が提供している画像は白黒に変換されており、すでにぼやけています。参照できるリソースはありますか? スタック全体が CoreImage を中心に構築されているため、CoreImage を使い続けたいと思います。

編集:私が達成しようとしているものの最良の例/参照は、GPUImage の GPUImageAdaptiveThresholdFilter に実装されています - https://github.com/BradLarson/GPUImage/blob/c5f0914152419437869c35e29858773b1a06083c/framework/Source/GPUImageAdaptiveThresholdFilter.m

4

3 に答える 3