问题标签 [cikernel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3825 浏览

ios - 自适应阈值 CIKernel/CIFilter iOS

为了找到在 iOS 上执行自适应阈值处理的内核,我进行了全面研究。不幸的是,我不理解内核语言或它背后的逻辑。下面,我找到了一个执行阈值的例程(https://gist.github.com/xhruso00/a3f8a9c8ae7e33b8b23d

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

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

0 投票
2 回答
2561 浏览

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

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

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

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

0 投票
1 回答
554 浏览

ios - iOS 在 CIKernel 中使用 OpenGL 着色器

是否可以使用CIKernel在 iOS 中使用 OpenGL 着色器?如果没有,有没有办法在两者之间转换?

示例 OpenGL 着色器

我正在尝试对 iOS 和 android 使用相同的过滤器。Android 已经使用 OpenGL 着色器,所以我想在我的 iOS 应用程序中使用相同的着色器。

0 投票
1 回答
955 浏览

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

我正在学习如何编写自定义核心图像过滤器,但是当颜色值在 0 - 1 之间时,呈现的颜色与内核代码中指定的颜色不同。(当等于 0 或 1 时,颜色是正确的。)

这是我的过滤器代码:

用法:

输出图像如下所示,实际红色分量值在 190 左右(我使用 Photoshop 检查了颜色值)。对于 0.5 的值,我认为正确的输出值是 255 * 0.5 = 122.5?

输出图像

0 投票
1 回答
183 浏览

swift - Core Image 过滤后的图像在 iOS 10 上跳出我的 UIImageView

我在 iOS 10 上应用某些核心图像过滤器时遇到问题。应用过滤器时,像 CICrystallize、CIEdgeWork、CIHexagonalPixellate、CIPointillize 等过滤器会从我的 UIImageView 中跳出。

奇怪的第一部分是 inputScale 越大,它们越远离中心。奇怪的第二部分是它只发生在 iOS 10 上;他们都在 iOS 9 上运行良好。奇怪的第三部分是它只发生在真实设备上;在 iOS 10 模拟器上一切正常!

0 投票
1 回答
530 浏览

ios - 如何告诉 CIKernel 生成没有 alpha 通道的输出图像?

我在 Core Image 中编写了一个自定义内核:

(这是一个简单的无操作内核用于说明,而不是实际内核。)

输入是 BGRA,但我希望输出 CIImage 是 BGR(或 RGB 或任何其他顺序)。这可能吗?

我想这样做的原因是输入图像中的所有 alpha 值都是 1,所以我不想浪费内存(和处理时间)在输出图像中存储数百万个 1,如果我可以跳过它的话。我的代码对性能敏感,运行速度不够快,所以我正在寻找优化它的方法。

以防万一,我的目标是 iOS 11 及更高版本。


我尝试将代码更改为:

但我得到一个错误:

正如 II 在回答中指出的那样, vec3 不是有效的返回类型,所以这个想法行不通。那有什么作用呢?

0 投票
0 回答
515 浏览

ios - 在 iOS 11 中编写自定义 CIFilter,Metal Linker

我正在尝试使用 MSL 编译自定义过滤器,如本 2017 WWDCCIFilter 文档的这一部分中所述。如果没有 MTLLINKER_FLAGS,我的程序运行顺利,但是在打开标志(值设置为 -cifilter)的情况下,我的程序的 metal device.defaultLibrary 无法返回顶点和片段函数。事实上,当我打印出库的函数名时,它们都是空的。

金属代码:

0 投票
2 回答
445 浏览

ios - Xamarin IOS 中的自定义 CIColorKernel

我正在尝试在 Xamarin Forms 中创建一个功能,该功能允许应用程序将图像的 [1..N] 颜色更改为 [1..N]。

例子:

将所有蓝色和紫色像素更改为黄色和橙色像素

经过一番调查,似乎我需要创建一个自定义 CIColorKernel 来实现它。

问题是很难找到示例并且文档很简单。

如果有人有教程或基本示例可以开始...

谢谢

编辑 :

我实现了@SushiHangover 的soutioion,并在代码示例的第二种方法中调用它:

这两种方法位于一个名为的类中,该类BitmapHelperXamarin Forms项目中使用Dependecy Injection调用。

结果包含预期的新图像,AmbiancePicture.Source但未更新。

这是我尝试更改的图像:

在此处输入图像描述

编辑 2:

如果我在更新前将 AmbiancePicture.Source 设置为 null,则图像保持为空。图像似乎不是空的(我在流中看到了一些正确的属性)。

工作编辑:

所以在错误来自 UIImage 创建和转换之后。

这是工作代码:

0 投票
1 回答
609 浏览

swift - Xcode 9.x 中 Core Image 和“sig abrt”的自定义过滤器

我正在写代码。这是我的完整源代码。

我确认我的代码在 Xcode 8.3.3 中成功运行。

但是,我的代码在 Xcode 9.x(9.1 和 9.2)中崩溃了。

确切地说,我的代码在“filter.setValue(inputCIImage, forKey: kCIInputImageKey)”和“NSException (sig abrt)”中崩溃了

即使我使用了调试器,我也没有找到原因。

Xcode 8.3.3 的结果

0 投票
0 回答
217 浏览

ios - 作为自定义 CIKernel 的卡住抖动不起作用

我正在尝试将 Stucky 抖动(误差扩散)实现为 CIKernel,但我有点迷茫。我找不到调试过滤器的方法(我是 CIKernel 的新手)。到目前为止,这是我提出的,但内核无法编译,另外,我想知道如何将传播的错误存储到目标像素。欢迎帮助。是否有工具/方法来跟踪或调试代码?

[更新代码以删除语法错误]:

我的主要问题是如何通过从误差扩散中累积部分值来编写输出像素缓冲区?