在別人點燃我沒有檢查其他帖子之前,我已經這樣做了。我有一個關於將圖像轉換爲灰度的技術之一的具體問題。在C#中將圖像轉換爲純黑色和白色的最快方法是什麼?
我已閱讀過SO上的其他帖子,基本上從教程this site複製了技巧3(ColorMatrix)。它非常非常快速地工作。
我遇到的問題是,我需要的是一個純粹的BW圖像。 (即:如果平均(R,B,G)> 200 =>白色,否則黑色)。我以直接的方式實現了它,實際上它只需要教程中灰度算法的10倍。
我不擅長圖像處理,並想知道是否有任何方法修改教程中的片段,將圖像轉換爲純黑白圖像。如果不是,任何有效的方法都可以。
編輯:
下面是我使用了黑色和白色(無腦的方法)的代碼:
public Bitmap make_bw(Bitmap original) {
Bitmap output = new Bitmap(original.Width, original.Height);
for (int i = 0; i < original.Width; i++) {
for (int j = 0; j < original.Height; j++) {
Color c = original.GetPixel(i, j);
int average = ((c.R + c.B + c.G)/3);
if (average < 200)
output.SetPixel(i, j, Color.Black);
else
output.SetPixel(i, j, Color.White);
}
}
return output;
}
使用黑白顯示器爲您的電腦:P – 2011-02-15 06:53:28
你並不真的需要一個彩色矩陣轉換爲1位(純黑白色)圖像。試試第二種解決方案,看看它是否更快。 (如果沒有,請發佈您的代碼。) – 2011-02-15 06:56:00
cal你粘貼一些代碼表現不好?如果你只添加一個「if」,那麼如何增加10倍的時間呢? – 2011-02-15 06:56:14