标签: cikernel

自适应阈值CIKernel/CIFilter iOS

我已经进行了全面研究,以便找到在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"
"}";
Run Code Online (Sandbox Code Playgroud)

是否有可能将其重写为自适应阈值内核?我提供给它的图像已经变成B&W并且已经模糊了.你能指点我的资源吗?我想坚持使用CoreImage,因为我的整个堆栈是围绕它构建的.

编辑:我想要实现的最佳示例/参考已在GPUImage的GPUImageAdaptiveThresholdFilter中实现 - https://github.com/BradLarson/GPUImage/blob/c5f0914152419437869c35e29858773b1a06083c/framework/Source/GPUImageAdaptiveThresholdFilter.m

core-image ios cifilter adaptive-threshold cikernel

8
推荐指数
2
解决办法
2953
查看次数

如何使用CoreImage创建平滑的阈值过滤器?

是否存在可用作平滑阈值的现有过滤器?我的意思是像素值应该在两个值之间进行阈值处理,但中间值是内插的.

基本上,我正在尝试实现这个:

https://www.filterforge.com/wiki/index.php/Thresholds#Interpolation_.28.22Blending.22.29

core-image ios cifilter cikernel

3
推荐指数
1
解决办法
1657
查看次数

自定义核心图像滤镜颜色问题

我正在学习如何编写自定义Core Image滤镜,但是有一个问题,即当颜色值介于0-1之间时,呈现的颜色与内核代码中指定的颜色不同。(当颜色等于0或1时,颜色是正确的。)

这是我的过滤器代码:

import UIKit
class testFilter: CIFilter
{   
    // simply return half red color (0.5)

    var colorKernel = CIColorKernel(string:
        "kernel vec4 theFilter()" +
        "{ return vec4(0.5, 0.0, 0.0, 1.0); }"
    )

    override var outputImage: CIImage!
    { 
        let rect = CGRect(x: 0, y: 0, width: 200, height: 100)
        return colorKernel.applyWithExtent(rect,arguments: nil)
    }
}
Run Code Online (Sandbox Code Playgroud)

用法:

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        // generate image
        let filter = testFilter()
        let ciImage = f.outputImage      
        let image = UIImage(CIImage: ciImage) 

        // …
Run Code Online (Sandbox Code Playgroud)

core-image ios cifilter swift cikernel

3
推荐指数
1
解决办法
698
查看次数

目标的构建设置中没有"金属编译器"

我正在使用Xcode 10.1.即使在我的目标的构建设置中使用搜索功能,我找不到"金属编译器"或任何相关的金属.

这里描述的金属设置可以在Build Settings中设置,但我找不到任何东西:https://developer.apple.com/documentation/coreimage/cikernel/2880194-init

它被切掉或更换了吗?

xcode build-settings metal cikernel

2
推荐指数
1
解决办法
137
查看次数