gpt4 book ai didi

iOS核心图像过滤器参数

转载 作者:行者123 更新时间:2023-11-30 12:53:46 25 4
gpt4 key购买 nike

在我的应用程序中,我尝试将 CIFilter (CIBumpDistortion) 应用到我的图像。我的问题是使用 kcIInputCenterKey 参数时,似乎我必须给出编号坐标。当我运行应用程序时,此代码返回左眼坐标:

if (face.hasLeftEyePosition) {
NSLog("Left eye %g %g", face.leftEyePosition.x, face.leftEyePosition.y);

Hence, I can manually then enter the left eye coordinates into the kCInputCenterKey and then run the app again and the filter is applied to the left eye centre point:

let filter = CIFilter(name: "CIBumpDistortion")
filter?.setValue(ciImage, forKey: kCIInputImageKey)
filter?.setValue(0.5, forKey: kCIInputScaleKey)
filter?.setValue(200, forKey: kCIInputRadiusKey)

filter?.setValue(CIVector(x:150, y: 150), forKey: kCIInputCenterKey)
if let output = filter?.value(forKey: kCIOutputImageKey) as? CIImage {
self.chosenImage?.image = UIImage(cgImage: context.createCGImage(output, from: output.extent)!)

但是,由于我希望用户能够选择任何图像来使用,因此我需要 Xcode 找到左眼位置并将滤镜应用到该区域,而无需手动输入坐标。

我尝试过使用字符串、不同类型等来代替 x 和 y 坐标所需的数字,但都没有成功。

我们将非常欢迎并非常感谢任何帮助!

最佳答案

这就是我阅读内容的方式。用户需要从未知来源(相机?相册?相机胶卷?)中选取图像。

  • 如果用户选择的图像来自一组静态图像,则您需要手动查找 X/Y 值并将其值存储在代码中,然后再将其传递给过滤器。

  • 如果用户选择的图像在选择之前完全未知,那么您确实应该让用户而不是Xcode来决定左眼的位置。 (虽然您可以尝试边缘检测过滤器,但我认为您会更难正确。)

在后一种情况下,我会考虑添加 2-4 个手势识别器,点击初始点,捏合以调整区域大小,也许还可以旋转(旋转)和平移(移动)。

关于iOS核心图像过滤器参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40656213/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com