问题标签 [vimage]
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.
ios - 在 Swift 中结合 CGBitmapInfo 和 CGImageAlphaInfo
我正在将 Apple 的UIImageEffects
示例代码从 Objective-C 重写为 Swift,我对以下行有疑问:
这是我在 Swift 中的版本:
这是bitmapInfo
在 Swift 中创建的最简单的方法吗?
objective-c - vImage转换功能崩溃
我想将每个像素以 32 位浮点数存储的平面灰度图像转换为 Mac OS X 上的 XRGB 图像。 vImage 似乎是最合适的工具。我编写了一个简短的函数来执行此操作,但它在 vImage 调用中崩溃并出现 EXC_BAD_ACCESS 崩溃。这是我的代码:
我在同一主题上尝试了一些变体,但没有成功。我做错了什么?
macos - SIPS -z中的os x yosemite使用哪种算法来调整图像大小?
当我从终端 mac os x yosemite 调用 sips -z 函数时,我试图找出用于调整图像大小的算法。
vImage 框架中似乎使用了 Lanczos 算法。它声称“vImage 的几何变换通常看起来比从 Quartz 2D 或 Core Image 获得的效果更好”。SIPS 是否使用 Quartz 2D、Core Image、vImage 或其他东西?
ios - UIImage 高斯模糊与 vImage
我正在尝试找到一种更快的生成Gaussian Blur
图像的方法,这个博客适用于大多数图像。
但是当图像具有透明背景色时,模糊的图像看起来很糟糕
下面的代码是从博客中复制的:
我尝试了另一种制作Gaussian Blur
Effect 的方法,
使用Apple WWDC 2013 UIImage-ImageEffects
类别,
但是这个类别的效果更像是Frosted glass
而不是Gaussian Blur
.
Blur in Core Image
工作正常,但它比 vImage 方式慢。
GPUImage
也比 vImage 方式慢。
请帮我修改上面的vImage代码,我已经尝试了很多,并在此处发布带有演示的代码;
:)
swift - 如何在 Swift 3 中使用 vImageMatrixMultiply?
我将使用 Accelerate 框架将矩阵应用于 CGImage。
首先,我将 CGImage 转换为 vImage_Buffer,
然后尝试应用 vImageMatrixMultiply。
但是 vImageMatrixMultiply 不接受 vImage_Buffer 作为 srcs 和 dests 参数,我得到一个编译错误描述:
无法将“vImage_Buffer”类型的值转换为预期的参数类型“UnsafePointer< vImage_Buffer >?”
我搜索了有关将“vImage_Buffer”转换为“UnsafePointer< vImage_Buffer >?”的信息。但还没有找到任何答案。
所以我想知道如何将“vImage_Buffer”转换为“UnsafePointer< vImage_Buffer >?”,或者如何直接创建“UnsafePointer< vImage_Buffer >?” 来自 CGImage,或任何其他适当使用 vImageMatrixMultiply 的方式。
ios - 绘制由 vImage 计算的直方图
我使用 vImageHistogramCalculation_ARGB8888(...) 计算了直方图。我现在将三个 RGB 通道中的每一个的直方图数据存储在 256 个 bin 中。我的问题是使用 OpenGLES 或核心图形在 UIView 中绘制这些值的方法是什么?它需要实时完成(至少每秒 30 帧)。
ios - 带像素缓冲区的 vImage_Buffer 初始化
我正在使用以下代码从像素缓冲区初始化 vImage_Buffer。我已将 vImageBuffer_InitWithCVPixelBuffer 中的第二个参数作为 NULL (vImage_CGImageFormat) 传递,因此没有从像素缓冲区到 vImageBuffer 的内部格式转换。它在 XCode 中给出警告-“Null 传递给需要非空参数的被调用者”,但有效。问题是如果我将它转换为 Swift,它不会编译,因为它需要一个非零参数。以直通方式从像素缓冲区制作 vImage 缓冲区的正确方法是什么?甚至函数的声明都说第二个参数中的 NULL 值是可以接受的,但不确定为什么会出现警告。
macos - Mac 上的 vImage:无法从 Core Video 转换
编辑:固定。一个工作示例位于https://github.com/halmueller/vImage-mac-sample。
我正在尝试读取 MacBook Pro 的 Facetime 摄像头的提要,以使用 vImage 框架对其进行处理。我正在关注 Apple为 iOS 编写的VideoCaptureSample中的示例。
我正忙于创建 vImageConverter,它创建了一个 vImage 可以使用的图像缓冲区。我的调用vImageConverter_CreateForCVToCGImageFormat()
失败,控制台错误“srcCVFormat 中的信息不足,无法解码图像。vImageCVImageFormatError = -21601”。
相同的调用适用于 iOS。但是 iOS 和 macOS 上的图像格式不同。在 iOS 上, vImageConverter 构造函数能够推断格式信息,但在 macOS 上,它不能。
这是我的设置代码:
当我在 iOS 上运行时,我在控制台中看到:
但是,在 macOS 上,调用vImageConverter_CreateForCVToCGImageFormat
返回 nil,我看到:
请注意,图像类型(4 个字母代码)不同,RGB 基础色彩空间也不同。我在 Mac 上尝试过使用 dcip3ColorSpace 而不是 deviceRGB,结果是一样的。
创建这个 vImageConverter 我缺少什么?
ios - 如何投射 UnsafeMutableRawPointer!到 UnsafeMutablePointer在 Swift 3.0 或更新版本中?
我正在为我的 iOS 应用程序使用 Accelerate 库。几年前我在 Swift 2.0 中构建了这个应用程序,它运行良好。现在 Swift 更新到 3.0 和 4.0,我必须将大部分代码转换为当前语法。我已经运行了转换器,但仍然有一些语法错误。这是我最难解决的问题。我似乎找不到一种同样简洁的方法来解决它。
我为图像的基本算术运算制作了函数。这是其中之一:
该类Image
有一个字段buffer
是 avImage_Buffer
并且定义如下,
问题:
调用buffer.data
返回一个UnsafeMutableRawPointer!
. 该vDSP_add
函数需要UnsafeMutablePointer<Float>
其参数。我曾经能够立即将它投射到一个UnsafeMutablePointer<Float>
物体上。看起来初始化程序现在已弃用。因此,在像这样的代码上let leftOperand = UnsafeMutablePointer<Float>(left.buffer.data)
,我收到了这个错误
我不知道我是否在这里忽略了一些非常简单的事情,但我仍然没有解决这个问题。但是,我正在寻找一种不需要使用循环手动复制每个元素的解决方案,因为该函数在应用程序中被非常频繁地调用。
只是一些可能有帮助的文档链接:
- https://developer.apple.com/documentation/accelerate/vimage_buffer
- https://developer.apple.com/documentation/accelerate/1450275-vdsp_vsadd
- https://developer.apple.com/documentation/swift/unsafemutablepointer#topics
先感谢您!