2015-08-28 54 views
0
- (UIImage *)pureBlackAndWhiteImage:(UIImage *)image { 

unsigned char *dataBitmap = [self bitmapFromImage:image]; 

for (int i = 0; i < image.size.width * image.size.height * 4; i += 4) { 

    if ((dataBitmap[i + 1] + dataBitmap[i + 2] + dataBitmap[i + 3]) < (255 * 3/2)) { 
     dataBitmap[i + 1] = 0; 
     dataBitmap[i + 2] = 0; 
     dataBitmap[i + 3] = 0; 
    } else { 
     dataBitmap[i + 1] = 255; 
     dataBitmap[i + 2] = 255; 
     dataBitmap[i + 3] = 255; 
    } 
} 

image = [self imageWithBits:dataBitmap withSize:image.size]; 

return image; 

}添加閾值定義黑白過濾

我很新的使用核心映像。我在網上發現了這個代碼,它所做的是將圖像轉換爲純黑色和白色(無灰色)。我想要做的是能夠修改閾值。意思是我想讓它變得更白或更黑。我將如何做到這一點?

回答

0

(255 * 3/2)表達式,直到你滿意爲止。
此值越高,您將擁有的黑色像素越多。

+0

是的,我懷疑,但我不明白爲什麼他不寫一個數字,如果這是門檻。他在計算什麼? – user5227744

+0

255是顏色通道的最大值。有3個顏色通道添加,所以他乘以3,但將它除以2設置閾值。這只是一種明確寫出他思想的方式。你可以放一個整數,它也會起作用;) –

相關問題