﻿<?xml version='1.0' encoding='UTF-8'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Релиб / Программирование / .NET / C#  / Вопрос по обработке изображения / Latest Posts</title><generator>InstantForum.NET v4.1.4</generator><description>Релиб</description><link>http://www.relib.com/forums/</link><webMaster>robot@relib.com</webMaster><lastBuildDate>Sat, 22 Nov 2008 06:09:42 GMT</lastBuildDate><ttl>20</ttl><item><title>RE: Вопрос по обработке изображения</title><link>http://www.relib.com/forums/Topic912338-26-1.aspx</link><description>Удобнее рисовать использую объект Graphics. Его можно создать так&lt;/P&gt;&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;&lt;P&gt;Graphics g = Graphics.FromImage(youBtimapObject);&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P dir=ltr&gt;Потом создаете объект Color, используя набор составляющих цветов GRB. Затем Pen и/или Brush объект и рисуете на объекте g.</description><pubDate>Wed, 18 Apr 2007 22:43:16 GMT</pubDate><dc:creator>sn</dc:creator></item><item><title>Вопрос по обработке изображения</title><link>http://www.relib.com/forums/Topic912338-26-1.aspx</link><description>Я получил  от своего преподавателя следующее задание по обработке изображений. Есть черная поверхность с светящимся пятном посередине, которое может быть разноцветным (файл BMP). Это светящееся пятно создает изображение на другой черной поверхности того же размера, расположенной параллельно на расстоянии "a".  Нужно это изображение создать. Изучив учебники по оптике, я начал писать программу: &lt;BR&gt;Bitmap bmTest   = new Bitmap("G:\\ImageSrc.bmp"); // исходное изображение (координаты точек x1 и y1)&lt;BR&gt;Bitmap bmResult = new Bitmap("G:\\ImageTrg.bmp"); // изображение, полученное в результате обработки (координаты точек x2 и y2)&lt;BR&gt;      int a = 100, x1, x2, y1, y2, xmax = bmTest.Width, ymax = bmTest.Height; &lt;BR&gt;      double b2, b, brisum, bri, r2;&lt;BR&gt;      for (x2 = 0; x2 &amp;lt; xmax; x2++) {&lt;BR&gt;        for (y2 = 0; y2 &amp;lt; ymax; y2++) {&lt;BR&gt;          for (x1 = 0; x1 &amp;lt; xmax; x1++) {&lt;BR&gt;            brisum = 0;&lt;BR&gt;            for (y1 = 0; y1 &amp;lt; ymax; y1++) {&lt;BR&gt;              bri = bmTest.GetPixel(x1, y1).GetBrightness();  //получение яркости&lt;BR&gt;              b2 = (x2 - x1) ^ 2 + (y2 - y1) ^ 2;&lt;BR&gt;              r2 = b2 + a * a;&lt;BR&gt;              brisum = brisum + bri * Math.Sqrt(b2 / r2)/r2;&lt;BR&gt;            } //y1 &lt;BR&gt;           } //x1&lt;BR&gt;          // вот тут нужно присвоить точке результирующего изображения нужный цвет и яркость ( к сожалению, не знаю, как это сделать) &lt;BR&gt;        } // y2&lt;BR&gt;      } // x2&lt;BR&gt;      bmTest.Save("G:\\ImageTrg.bmp");&lt;BR&gt;    }&lt;BR&gt;  }&lt;P&gt;Мне кажется, что делать надо так, как в моей программе. В этом случае будет правильное отображение пятна (с участками меньшей интенсивности по краям  и наиболее яркой частью в середине). К сожалению, я не знаю, как установить нужную яркость для точек, не нашел таких методов для C#. Вот если бы удалось это сделать, то можно было бы все рассчитать. Помогите, пожалуйста, разобраться, как в моем случае работать с цветом и яркостью точек.&lt;BR&gt;</description><pubDate>Mon, 09 Apr 2007 21:51:41 GMT</pubDate><dc:creator>tumanovalex</dc:creator></item></channel></rss>