1
我想在Obj-C或当然C的iOS上做一些科学的图像处理,我所需要做的就是获得所有像素的RGBA位值的3D数组。 UIImage
似乎没有内置函数。你们中的任何一个人都知道如何获得像素值,或者更好的是使用那些功能在那里的预定义库? 由于提前,JEMObj-C中的图像处理
我想在Obj-C或当然C的iOS上做一些科学的图像处理,我所需要做的就是获得所有像素的RGBA位值的3D数组。 UIImage
似乎没有内置函数。你们中的任何一个人都知道如何获得像素值,或者更好的是使用那些功能在那里的预定义库? 由于提前,JEMObj-C中的图像处理
你通常可以创建一个CGBitmapContext
,告诉它使用你自己分配一些内存(这样,你知道它在哪里以及如何访问它),或让核芯显卡的数字,如果您仅针对iOS 4/OS X 10.6及更高版本,请拨打CGBitmapContextGetData
,然后绘制您想要检查的内容。
E.g. (错误检查和一些设置步骤故意省略,为简洁起见,寻找我使用的变量,尽管没有定义和检查功能文档)
CGBitmapInfo bitmapInfo =
kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Host;
context =
CGBitmapContextCreate(
NULL,
width, height,
8,
width * 4,
rgbColourSpace,
bitmapInfo);
CGContextDrawImage(
context,
CGRectMake(0.0f, 0.0f, (CGFloat)width, (CGFloat)height),
[image CGImage]);
uint8_t *pixelPointer = CGBitmapContextGetData(context);
for(size_t y = 0; y < height; y++)
{
for(size_t x = 0u; x < width; x++)
{
if((bitmapInfo & kCGBitmapByteOrder32Little))
{
NSLog(@"rgba: %02x %02x %02x %02x",
pixelPointer[2], pixelPointer[1],
pixelPointer[0], pixelPointer[3]);
}
else
{
NSLog(@"rgba: %02x %02x %02x %02x",
pixelPointer[1], pixelPointer[2],
pixelPointer[3], pixelPointer[0]);
}
pixelPointer += 4;
}
}
3D数组用于图像处理? –
我不确定我是否按照您要在此处执行的操作。你问如何从图像中的RGB值生成直方图? –
嗯,我想从数组中创建一个数组,然后也许我想创建一个直方图,尽管一旦我有数组 –