У меня очень простое приложение для обработки изображений.
Я пытаюсь удалить пиксели, которые не включают красные тона.
До сих пор базовый код, похоже, достиг того, чего я хочу.
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 равны
Любой алгоритм или мысль будут очень оценены.
Заранее спасибо