问题标签 [ciimage]

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 投票
1 回答
3603 浏览

ios - 使用 Core Image 渲染随机噪声 CALayer 会产生奇怪的伪影

我正在以编程方式创建一个CALayer子类,该子类对其自身应用一些像素噪声。该代码的工作原理是它在图层中呈现噪点,但图像上有一个奇怪的伪影,我无法确定根本原因。

这是一个示例图像,其中noiseOpacity出现了使问题更加明显。

在此处输入图像描述

粉红色的盒子是 a UANoisyGradientLayer,一个CAGradientLayer具有以下位的子类:

基本上,我使用 a作为过滤器的输入来创建CIImageinit 。然后,当需要绘制它时,我使用(范围始终为0)创建它,并将其绘制到上下文中。CIRandomGeneratorCIColorMonochromeCGImageRefself.bounds infinite

结果大部分都很好,但正如您在图像中看到的那样,似乎有一些拉伸正在发生。这里发生了什么?

0 投票
1 回答
1192 浏览

ios - 访问 CIImage 字节,应用程序崩溃

我正在将一些 OSX 代码移植到 iOS 并且需要访问 CIImage 的字节。OSX 版本使用 NSBitmapImageRep 执行此操作,但在 iOS 上我需要跳过一些障碍。

这是我要运行的代码

它按预期工作,但一段时间后应用程序崩溃。我不知道为什么。我正在猜测内存泄漏/超出范围的内存。据我所知,一切都被正确释放了......如果我将这些行注释掉,没有任何崩溃。如果我在应用程序中评论 CGDataProviderRelease 几乎立即崩溃。

0 投票
2 回答
1400 浏览

cocoa - CIImage 绘图 EXC_BAD_ACCESS

所以,我有一个CIImage我试图用NSView's-drawRect方法绘制的东西。

这是我用来绘制图像的代码行:

outputCoreImage, originalBounds, 和[self bounds]都是非nil, 并且确实是它们各自的期望值。在 Lion (OS X 10.7) 上,这工作得很好,但是在 Mountain Lion (OS X 10.8) 上,我收到了EXC_BAD_ACCESS这条线路。如果我走上堆栈,我会发现中断的内部函数调用是 on CGLGetPixelFormat

我打开了僵尸、守卫 malloc 和日志异常,但它们都没有返回任何有用的信息。

其他 OpenGL 测试:

我添加了这个块:

-windowDidLoad我的方法NSWindowController。它运行没有问题。

我添加了这个块:

给别人NSView-drawRect。我收到了同样的错误CGLGetPixelFormat

雷达:

#macdev 的人们似乎认为这是操作系统问题,我不倾向于不同意。我已经提交了一个雷达(rdar://11980704)来解释问题并链接回这个问题。

解决方法:

看起来强制使用软件渲染器绘制图像“解决”了这个问题。它有点模糊和缓慢,但它不会崩溃。

0 投票
2 回答
2438 浏览

iphone - IOS 6人脸检测不工作

我已使用以下代码检测 IOS 5 的面部

使用此代码,我可以在 IOS 5 中检测到人脸,但最近我们已将系统升级到 Xcode 4.4 和 IOS 6,现在,人脸检测无法正常工作,

在 IOS 6 中检测人脸需要做哪些更改。

任何帮助都受到高度赞赏

0 投票
3 回答
5206 浏览

objective-c - CIImage饱和度使用CIFilters,有可能吗?

我正在使用 CIImage 对象,试图获得饱和值。但我找不到获得图像饱和度的方法,至少使用 OS X 中可用的 CIFilters。
是否可以使用标准 CIFilters 获得 CIImage 的饱和度?

0 投票
1 回答
557 浏览

cocoa - 如何递归地使用 CIFilter 的输出作为新的输入?

我编写了一个自己的 CIFilter 内核,它正在对相机信号进行一些图像处理。它需要两个参数:参数一个是“inputImage”(当前相机图像),参数 2 是“backgroundImage”,它正在使用第一个相机图像进行初始化。

过滤器应该递归工作。过滤器的结果应在下一次迭代中用作新的“背景图像”。我正在计算背景图像和一些差异,因此需要上一次渲染的结果。

不幸的是,我不能在下一次迭代中使用 CIFilter 的输出 CIImage,因为内存负载越来越大。经过 10 秒的处理后,最终使用了 1.4GB 的 RAM。以标准方式(无递归)内存管理使用过滤器很好。

如何在下一次迭代中重用过滤器的输出作为输入?我在结果图像上做了一个 NSLog。蚂蚁告诉我

几秒钟后,日志变成了某事。像

这告诉我 CIImages 是所需操作的“始终”原型。并且递归地使用它们将“生成的 CIImage '原型'”作为输入添加到新的“原型”中。随着时间的推移,渲染的“规则”变成了一个巨大的嵌套原型结构。

有什么方法可以强制 CIImages 将内存中的结构变平?如果我可以进行递归处理,我会很高兴,因为这会将 QuartzCore 的功能发挥到极致。

我在 QuartzComposer 中尝试了同样的方法。将输出与输入连接是可行的,但也会占用大量内存。一段时间后它崩溃了。然后我尝试使用 QC 的队列,一切正常。QC 队列的“xcode”等价物是什么?或者是否有任何机制可以重写我的内核以将“结果”保存在内存中以供下一次迭代使用?

0 投票
1 回答
2514 浏览

iphone - 从 CIImage 获取 UIImage 无法正常工作

我无法从 CIImage 获取 UIImage。下面的代码行在 iOS6 上运行良好:(输出图像是 CIImage)

或者

当我在运行 iOS 5 的设备上运行同一行代码时,imageView 为空白。如果我记录 UIImage 的 size 属性,它是正确的,但图像永远不会显示在屏幕上。

当我使用 CGImageRef(如下所示)时,它在两种设备上都可以正常工作,但是当我进行堆镜头分析时,它会导致巨大的内存增长。

有谁知道为什么 UIImage imageWithCIImage 不起作用?根据 UIImage 类参考,它应该适用于 iOS5 及更高版本。另外,为什么使用 CGImageRef 会导致如此巨大的堆增长?

谢谢

0 投票
2 回答
5807 浏览

ios - iOS人脸检测器方向和CIImage方向的设置

编辑发现此代码有助于处理前置摄像头图像http://blog.logichigh.com/2008/06/05/uiimage-fix/

希望其他人有类似的问题,可以帮助我。还没有找到解决办法。(它可能看起来有点长,但只是一堆帮助代码)

我在从相机(正面和背面)获取的图像以及来自画廊的图像上使用 ios 面部检测器(我正在使用UIImagePicker- 用于通过相机捕获图像和从画廊中选择图像 - 不使用 avfoundation像在 squarecam 演示中那样拍照)

我真的搞砸了检测的坐标(如果有的话),所以我写了一个简短的调试方法来获取人脸的边界以及一个在他们上面画一个正方形的实用程序,我想检查检测器的方向正在工作:

[1]

在尝试了大量不同的图片后,我注意到人脸检测器的方向与相机图像属性不一致。我从前置摄像头拍摄了一堆照片,其中 uiimage 方向为 3(查询 imageOrientation),但人脸检测器没有为该设置找到人脸。当运行所有的 exif 可能性时,人脸检测器最终会拾取人脸,但都是针对不同的方向。

![1]: http://i.stack.imgur.com/D7bkZ.jpg

我该如何解决这个问题?我的代码有错误吗?

我遇到的另一个问题(但与面部检测器密切相关),当面部检测器拾取面部时,但是对于“错误”的方向(主要发生在前置摄像头上),UIImage最初使用的在 uiiimageview 中正确显示,但是当我绘制了一个方形叠加层(我在我的应用程序中使用 opencv,所以我决定将其转换UIImage为 cvmat 以使用 opencv 绘制叠加层)整个图像旋转 90 度(只有 cvmat 图像而不是UIImage最初显示的 i)

我能想到的原因是人脸检测器弄乱了 UIimage 转换为 opencv mat 正在使用的一些缓冲区(上下文?)。我怎样才能分离这些缓冲区?

将 uiimage 转换为 cvmat 的代码是(来自UIImage某人制作的“著名”类别):

0 投票
1 回答
4235 浏览

ios - 在 ALAssetRepresentation 中解释 XMP 元数据

当用户对 iOS 内置Photos.app中的照片进行一些更改(裁剪、去除红眼等)时,这些更改不会应用到fullResolutionImage相应的ALAssetRepresentation.

但是,更改将应用​​于thumbnailfullScreenImage返回的ALAssetRepresentationALAssetRepresentation此外,可以通过键在 的元数据字典中找到有关已应用更改的信息@"AdjustmentXMP"

我想将这些更改应用于fullResolutionImage我自己以保持一致性。我发现在iOS6+ CIFilterfilterArrayFromSerializedXMP: inputImageExtent:error:可以将此 XMP 元数据转换为 s 的数组CIFilter

但是,这仅适用于某些过滤器(裁剪、自动增强),但不适用于除红眼等其他过滤器。在这些情况下,CIFilters 没有明显的效果。因此,我的问题:

  • 有人知道消除红眼的方法CIFilter吗?(在某种程度上与Photos.app一致。带有key的过滤器kCIImageAutoAdjustRedEye是不够的。例如,它不带眼睛位置的参数。)
  • 是否有可能在 iOS 5 下生成和应用这些过滤器?
0 投票
1 回答
956 浏览

c# - MonoTouch 从 CIImage 创建 UIImage 会导致参数无效/选择器错误

当我显示一个弹出窗口时,我试图创建一个模糊的背景,我几乎让它工作了。

我找到了一些我翻译成 C# 的 Objective C。

问题出在这一行

希望这只是我做错了什么