#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
}