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值生成直方圖? –
嗯,我想從數組中創建一個數組,然後也許我想創建一個直方圖,儘管一旦我有數組 –