相关疑难解决方法(0)

在 swift 中使用 vImageHistogramCalculation 计算图像的直方图

我正在尝试使用 AcceleratevImageHistogramCalculation_ARGBFFFF函数计算图像的直方图,但我得到了一个vImage_Error类型kvImageNullPointerArgument(错误代码是-21772)。

这是完全相同的问题,但我在 Swift 中工作:使用 vImageHistogramCalculation 计算图像的直方图

    // Get CGImage from UIImage
    var image:UIImage = UIImage(named: "happiness1")!
    var img:CGImageRef = image.CGImage

    // Create vImage_Buffer with data from CGImageRef
    var inProvider:CGDataProviderRef = CGImageGetDataProvider(img)
    var inBitmapData:CFDataRef = CGDataProviderCopyData(inProvider)

    // The next three lines set up the inBuffer object
    var height:vImagePixelCount = CGImageGetHeight(img)
    var width:vImagePixelCount = CGImageGetWidth(img)
    var rowBytes:UInt = CGImageGetBytesPerRow(img)
    var data:UnsafePointer<Void> = UnsafePointer<Void>(CFDataGetBytePtr(inBitmapData))

    // Setup inBuffer
    var inBuffer = vImage_Buffer(data: &data, height: …
Run Code Online (Sandbox Code Playgroud)

histogram ios accelerate-framework swift vimage

4
推荐指数
1
解决办法
3055
查看次数

Swift 2.2-计数UIImage中的黑色像素

我需要计算中的所有黑色像素UIImage。我发现了一个可以工作的代码,但是它是用Objective-C编写的。我曾尝试将其快速转换,但出现很多错误,而且找不到修复它们的方法。

使用Swift执行此操作的最佳方法是什么?

简单的形象在此处输入图片说明

目标C:

/**
 * Structure to keep one pixel in RRRRRRRRGGGGGGGGBBBBBBBBAAAAAAAA format
 */

struct pixel {
    unsigned char r, g, b, a;
};

/**
 * Process the image and return the number of pure red pixels in it.
 */

- (NSUInteger) processImage: (UIImage*) image
{
    NSUInteger numberOfRedPixels = 0;

    // Allocate a buffer big enough to hold all the pixels

    struct pixel* pixels = (struct pixel*) calloc(1, image.size.width * image.size.height * sizeof(struct pixel));
    if (pixels != …
Run Code Online (Sandbox Code Playgroud)

objective-c pixels uiimage ios swift2

3
推荐指数
1
解决办法
841
查看次数