gpt4 book ai didi

objective-c - 获取数据图像进行处理的最佳方式

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:51:25 25 4
gpt4 key购买 nike

我想从 uiimage 获取数据以读取 rgb 值。我想将此数据用于卷积过滤器。在网上只找到一种方法:

// First get the image into your data buffer
CGImageRef image = [UIImage CGImage];
NSUInteger width = CGImageGetWidth(image);
NSUInteger height = CGImageGetHeight(image);
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
unsigned char *rawData_ = malloc(height * width * 4);
NSUInteger bytesPerPixel = 4;
NSUInteger bytesPerRow = bytesPerPixel_ * width;
NSUInteger bitsPerComponent = 8;
CGContextRef context = CGBitmapContextCreate(rawData, width, height, bitsPerComponent, bytesPerRow, colorSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);
CGColorSpaceRelease(colorSpace);

CGContextDrawImage(context, CGRectMake(0, 0, width, height));
CGContextRelease(context);

// Now your rawData contains the image data in the RGBA8888 pixel format.
int byteIndex = (bytesPerRow * yy) + xx * bytesPerPixel;
red = rawData[byteIndex];
green = rawData[byteIndex + 1];
blue = rawData[byteIndex + 2];
alpha = rawData[byteIndex + 3];

没关系,但我想像这样处理阵列上的像素:[x][y][r,b,g]。

我该如何解决?

最佳答案

还有另一种获取图像数据的方法:Technical Q&A QA1509: Getting the pixel data from a CGImage object

至于如何访问它,您没有太多选择。多维 C 数组只能在第二个和后续维度具有编译时已知的固定大小时才能工作。图像数据没有。

关于objective-c - 获取数据图像进行处理的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10613451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com