|
|
|
Junior Member
      
участник
Last Login: 09.04.2007 21:44
Сообщ.: 14,
Visits: 116
|
|
Я получил от своего преподавателя следующее задание по обработке изображений. Есть черная поверхность с светящимся пятном посередине, которое может быть разноцветным (файл BMP). Это светящееся пятно создает изображение на другой черной поверхности того же размера, расположенной параллельно на расстоянии "a". Нужно это изображение создать. Изучив учебники по оптике, я начал писать программу: Bitmap bmTest = new Bitmap("G:\\ImageSrc.bmp"); // исходное изображение (координаты точек x1 и y1) Bitmap bmResult = new Bitmap("G:\\ImageTrg.bmp"); // изображение, полученное в результате обработки (координаты точек x2 и y2) int a = 100, x1, x2, y1, y2, xmax = bmTest.Width, ymax = bmTest.Height; double b2, b, brisum, bri, r2; for (x2 = 0; x2 < xmax; x2++) { for (y2 = 0; y2 < ymax; y2++) { for (x1 = 0; x1 < xmax; x1++) { brisum = 0; for (y1 = 0; y1 < ymax; y1++) { bri = bmTest.GetPixel(x1, y1).GetBrightness(); //получение яркости b2 = (x2 - x1) ^ 2 + (y2 - y1) ^ 2; r2 = b2 + a * a; brisum = brisum + bri * Math.Sqrt(b2 / r2)/r2; } //y1 } //x1 // вот тут нужно присвоить точке результирующего изображения нужный цвет и яркость ( к сожалению, не знаю, как это сделать) } // y2 } // x2 bmTest.Save("G:\\ImageTrg.bmp"); } }Мне кажется, что делать надо так, как в моей программе. В этом случае будет правильное отображение пятна (с участками меньшей интенсивности по краям и наиболее яркой частью в середине). К сожалению, я не знаю, как установить нужную яркость для точек, не нашел таких методов для C#. Вот если бы удалось это сделать, то можно было бы все рассчитать. Помогите, пожалуйста, разобраться, как в моем случае работать с цветом и яркостью точек.
|
|
|
|
|
Supreme Being
      
участник
Last Login: 21.05.2008 21:37
Сообщ.: 193,
Visits: 2 044
|
|
Удобнее рисовать использую объект Graphics. Его можно создать такGraphics g = Graphics.FromImage(youBtimapObject);
Потом создаете объект Color, используя набор составляющих цветов GRB. Затем Pen и/или Brush объект и рисуете на объекте g.
|
|
|
|