我有一個很簡單的圖像處理應用程序。卸下非紅色調色像素
我試圖去除 不涉及紅色調的像素。
到目前爲止基本代碼似乎達到我想要的。
private void removeUnRedCellsBtn_Click(object sender, EventArgs e)
{
byte threshold = Convert.ToByte(diffTxtBox.Text);
byte r, g, b;
for (int i = 0; i < m_Bitmap.Width; i++)
{
for (int j = 0; j < m_Bitmap.Height; j++)
{
r = im_matrix[i, j].R;
g = im_matrix[i, j].G;
b = im_matrix[i, j].B;
if ((r - b) < threshold || (r - g) < threshold)
{
m_Bitmap.SetPixel(i, j, Color.White);
}
}
}
pictureArea_PictureBox.Image = m_Bitmap;
}
基本上如果(紅色和藍色)或(紅色和綠色)的差小於閾值它設置像素爲白色。
我的結果似乎是有前途 但是我想知道是否有確定 一個 更好的解決方案像素是否在 涉及紅色調的。
我給的75的閾值的結果是
任何算法或思想將非常理解的。
在此先感謝
我認爲術語「紅色調」是有點主觀的,但我估計這將是足夠的檢查的紅色量超過某一閾值beeing。 – Jan 2011-04-01 13:52:38
那麼我應該只檢查一個像素的r值? – cgon 2011-04-01 14:00:46
那是什麼時,我想用像素「紅色基調」 – Jan 2011-04-01 14:04:34