Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Вопрос по обработке изображения  (Прочитано 4987 раз)
0 Пользователей и 1 Гость смотрят эту тему.
tumanovalex
Помогающий

ru
Offline Offline

« : 10-04-2007 15:16 » new

Я получил  от своего преподавателя следующее задание по обработке изображений. Есть черная поверхность с светящимся пятном посередине, которое может быть разноцветным (файл 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++) {
          brisum = 0.0;
          for (x1 = 0; x1 < xmax; x1++) {
            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#. Вот если бы удалось это сделать, то можно было бы все рассчитать. Помогите, пожалуйста, разобраться, как в моем случае работать с цветом и яркостью точек на второй поверхности.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines