草庐IT

iOS Cocoa Touch vImage 子采样

我在CocoaTouch中使用vImages,在我的例子中,它基本上是ARGBfloat组,我需要进行子采样。低通滤波使用vImage函数没有问题,但如何从2x2像素中选择一个(假设我想按因子2进行子采样)?当然,我可以使用vDSP步幅函数,但这仅适用于水平二次采样,不适用于垂直二次采样。我希望以下内容能够阐明我打算做什么。我希望选择所有标有X的像素,如下图所示:XOXOXOOOOOOOXOXOXOOOOOOOXOXOXOOOOOOO但是由于内存是线性的,所以我的数组看起来是这样的:XOXOXOOOOOOOXOXOXOOOOOOOXOXOXOOOOOOO如何以合理的方式进行子采样?编辑

ios - vImage 具有与带 dispatch_apply 的普通循环相同的性能

此代码每次都在嵌套循环中运行9600次,并且在iPhone4S上的总运行时间必须低于30毫秒:vImage_Buffersource={sourceArea.data,patchSide,patchSide,patchSide};vImage_Bufferdestination={(uchar*)malloc(patchSide*patchSide*sizeof(uchar)),patchSide,patchSide,patchSide};vImage_AffineTransformtransform={warpingMatrix(0,0),warpingMatrix(0,1),war

ios - 为什么我不能在 iPhone 上编译引用 vImage 库的代码?

我正在尝试在我的代码中包含基于vImage的功能。但是编译失败——它甚至似乎根本无法识别函数/变量。但与此同时,基于vDSP的代码似乎工作正常。此外,代码在模拟器中编译但在设备中失败。示例代码(失败)如下#import"test.h"#include@implementationtest-(void)test1{DSPComplexd={1.0,2.0};d;vImagePixelCountx=3;x;}@end在这里,基于DSP的代码DSPComplex在同一框架中工作正常,而基于vImage的代码vImagePixelCount却失败了。谁可以帮我这个事?vImage不包含在iOS

ios - vImageBoxConvolve_ARGB8888 用法的错误 CGImageGetBytesPerRow 值

一开始我需要做一个快速的实时图像模糊。找到一个有用的教程PerformablurusingvImage.这是代码示例-(UIImage*)boxblurImage:(UIImage*)imageboxSize:(int)boxSize{CGImageRefimg=image.CGImage;vImage_BufferinBuffer,outBuffer;vImage_Errorerror;void*pixelBuffer;//createvImage_BufferwithdatafromCGImageRefCGDataProviderRefinProvider=CGImageGetDa

ios - 在 Swift 中结合 CGBitmapInfo 和 CGI​​mageAlphaInfo

我正在将Apple的UIImageEffects示例代码从Objective-C重写为Swift,我对以下行有疑问:vImage_CGImageFormatformat={.bitsPerComponent=8,.bitsPerPixel=32,.colorSpace=NULL,.bitmapInfo=kCGImageAlphaPremultipliedFirst|kCGBitmapByteOrder32Little,.version=0,.decode=NULL,.renderingIntent=kCGRenderingIntentDefault};这是我在Swift中的版本:let

ios - 在 Swift 中结合 CGBitmapInfo 和 CGI​​mageAlphaInfo

我正在将Apple的UIImageEffects示例代码从Objective-C重写为Swift,我对以下行有疑问:vImage_CGImageFormatformat={.bitsPerComponent=8,.bitsPerPixel=32,.colorSpace=NULL,.bitmapInfo=kCGImageAlphaPremultipliedFirst|kCGBitmapByteOrder32Little,.version=0,.decode=NULL,.renderingIntent=kCGRenderingIntentDefault};这是我在Swift中的版本:let

iOS 使用 vImage - 加速将 QCAR YUV 转换为 RGB

我正在尝试测试转换Vuforia生成的YUV图像并将它们转换为UIImage使用iOSAccelerateFramework的vImage调用的性能。在代码的当前状态下,我只是想让它工作。现在转换会产生深色条纹图像。是否有关于Vuforia如何在其实现中布局YUV格式的任何已发布的详细信息?我最初的假设是他们使用iOS设备使用的双平面420p格式。相关测试代码如下。UIImage*imageWithQCARCameraImage(constQCAR::Image*cameraImage){UIImage*image=nil;if(cameraImage){QCAR::PIXEL_FOR

ios - Accelerate 的 vImage 与 vDSP

我正在尝试使用iOS上的Accelerate框架来绕过iOS上的CoreImage不支持自定义过滤器/内核这一事实。我正在使用Sobelkernel的两个卷积开发边缘检测过滤器,但从一个简单的高斯模糊开始,以掌握它的窍门。我知道vImage适合作为矩阵的图像处理,而vDSP专注于使用傅里叶变换处理数字信号。但是,虽然我开始使用vImage函数(vImageConvolve_XXXX等),但我听到很多人在讨论使用vDSP的函数(vDSP_conv、vDSP_imgfir等)来做诸如卷积之类的事情。所以这让我想到了手头的问题:我什么时候应该使用一个而不是另一个?它们在卷积运算方面有什么区别

iOS Accelerate Framework vImage - 性能改进?

我一直在使用OpenCV和Apple的Accelerate框架,发现Accelerate的性能很慢,Apple的文档也很有限。让我们举个例子:voidequalizeHistogram(constcv::Mat&planar8Image,cv::Mat&equalizedImage){cv::Sizesize=planar8Image.size();vImage_BufferplanarImageBuffer={.width=static_cast(size.width),.height=static_cast(size.height),.rowBytes=planar8Image.s

ios - 如何从 vImage_Buffer 到 CVPixelBufferRef

我正在我的iOS应用程序中录制实时视频。在另一个StackOverflowpage,我发现您可以使用vImage_Buffer处理我的帧。问题是我不知道如何从输出的vImage_buffer返回到CVPixelBufferRef。这是另一篇文章中给出的代码:NSIntegercropX0=100,cropY0=100,cropHeight=100,cropWidth=100,outWidth=480,outHeight=480;CVImageBufferRefimageBuffer=CMSampleBufferGetImageBuffer(sampleBuffer);CVPixelBu
12