我試圖獲取圖像中每個像素的Hue或「H」,然後更改具有特定Hue的像素的顏色。我試圖改變色調> = 210和< = 260的所有像素,這是藍色的不同色調。從圖像中的每個像素獲取色相
這裏是我的代碼:
// 'i' is the image
// 'b' is the bitmap of the image
float y;
for (int a = 0; a < i.Height; a++)
{
for (int c = 0; c < i.Width; c++)
{
y = b.GetPixel(c, a).GetHue();
if (y >= 210 && y <= 260)
{
b.SetPixel(c, a, Color.Black);
}
}
}
唯一的問題是,它沒有任何皮卡藍色,這是從210 - 260。我敢肯定,我正確地這樣做,但我不能因爲它不工作。
如果你能解決這個問題,請在這裏發帖,謝謝!
編輯:我在SetPixel上放了一個斷點,它被調用了許多次,所以現在我會檢查我是否正確保存圖片。
編輯2:我想通了!我沒有保存圖片。
你應該使用一個調試器:找出哪個像素沒有被檢測到,設置一個斷點,看看它爲什麼沒有通過你的測試。 – Vlad 2012-04-26 11:24:25
我可以對範圍進行一些調整,至少用純藍色(225)來測試。更可能的問題是保存結果的代碼。 – 2012-04-26 13:21:19
是的,按照弗拉德的說法,在'b.SetPixel(c,a,Color.Black)上放一個斷點;'看看是否有人叫。 BTW'x'和'y'可能是座標'a'和'c'的更好名稱,'float y'可能是'float hue',更具可讀性。 – weston 2012-04-26 15:27:54