Перевод неправильных цветов обратно в их предполагаемые значения r, g и b.

#c# #c#-4.0 #aforge

#c# #c #-4.0 #aforge

Вопрос:

На этом рисунке показана проблема

введите описание изображения здесь Смотрите изображение в натуральную величину на http://i.stack.imgur.com/kKqe0.jpg

Каждый пиксель, который должен показывать более высокую яркость соответственно. значения r, g или b, близкие к 255, становятся розовыми или зелеными.

Наиболее многообещающим фильтром, который я нашел, является EuclideanColorFiltering от Aforge. Но он инвертирован, то есть показывает только розовый и зеленый цвета.

Предположительно, на картинке есть шаблон, который можно перевести обратно в правильный цвет.

Вопрос в том, как мне сделать так, чтобы изображение выглядело так, как оно должно выглядеть, т. Е. Голубое небо синее и т.д., Используя фильтры Aforge или как мне правильно перевести цвета обратно?

Это код, который я использую в настоящее время:

 private void Form1_Load(object sender, EventArgs e)
{
    if (openFileDialog1.ShowDialog() == DialogResult.OK)
    {
        string path = openFileDialog1.FileName;
        // create video source
        videoSource = new VideoFileSource(path);
        // set NewFrame event handler
        videoSource.NewFrame  = new NewFrameEventHandler(video_NewFrame);
        // start the video source
        videoSource.Start();
    }
}

private void video_NewFrame(object sender, NewFrameEventArgs eventArgs)
{
    Bitmap bitmap = eventArgs.Frame;

    EuclideanColorFiltering filter = new EuclideanColorFiltering();
    // set center colol and radius
    filter.CenterColor = new RGB(215, 30, 30);
    filter.Radius = 100;
    // apply the filter
    filter.ApplyInPlace(bitmap);

    if (pictureBox1.Image != null)
        pictureBox1.Image.Dispose();
    pictureBox1.Image = bitmap.Clone(new Rectangle(0, 0, bitmap.Width, bitmap.Height), System.Drawing.Imaging.PixelFormat.Format24bppRgb);
    //pictureBox1.Image = bitmap;
    // process the frame
}