<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=387032&amp;view=findpost&amp;p=3415173</guid>
        <pubDate>Tue, 18 Feb 2014 06:27:26 +0000</pubDate>
        <title>Mix нескольких картинок</title>
        <link>https://forum.sources.ru/index.php?showtopic=387032&amp;view=findpost&amp;p=3415173</link>
        <description><![CDATA[Pavia: Существует множество способов как это можно сделать.<br>Давай выделим 2 направления. <br>Сделать средствами CPU или средствами GPU.<br>На CPU всё просто и понятно. Берём библиотеку для работы с растровыми изображениями или пишем свой код.<br>Таких библиотек много стоит только по искать к примеру OpenCV, GDI.<br>Что касаеться GPU, то тут тоже можно использовать библиотеки тот же OpenCV.<br><br>Как тут говорили OpenGL служит для вывода.  <br>Для обработки есть OpenCL, CUDA.<br><br>На OpenGL тоже можно сделать обработку, но это его не основная задача поэтому настойчиво не рекомендую делать через него.<br><br>Что касаеться вашей задачи. Простого наложения, то её лучше решать на CPU. В GPU дольше пересылка будет.  <br>А вот если захоитте делать более сложную обработку, то GPU будет выигрывать.]]></description>
        <author>Pavia</author>
        <category>Программирование графики</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=387032&amp;view=findpost&amp;p=3415139</guid>
        <pubDate>Tue, 18 Feb 2014 03:02:11 +0000</pubDate>
        <title>Mix нескольких картинок</title>
        <link>https://forum.sources.ru/index.php?showtopic=387032&amp;view=findpost&amp;p=3415139</link>
        <description><![CDATA[OpenGL: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=387032&view=findpost&p=3415095'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Oleg_Smith &#064; <time class="tag-quote__quoted-time" datetime="2014-02-17T17:55:00+00:00">17.02.14, 17:55</time></span><div class='quote '>А если добавить 3D преобразования в наложение? <br>
Типа как &quot;нарисовать одну картинку под углом&quot;....</div></div><br>
А какая разница? OpenGL предназначен для вывода двух- и трехмерной графики на экран. Преобразованиями изображений занимаются отдельные библиотеки. <span class="tag-color tag-color-named" data-value="gray" style="color: gray">Не, можно, конечно, воспользоваться PDF_DRAW_TO_BITMAP, но это, имхо, костыль</span><div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=387032&view=findpost&p=3415097'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Oleg_Smith &#064; <time class="tag-quote__quoted-time" datetime="2014-02-17T18:01:40+00:00">17.02.14, 18:01</time></span><div class='quote '>Дабы успокоить моё я: как по другому разгрузить CPU микса?</div></div><br>
Написать обработку на GPU  :-? Есть ли готовые библиотеки для этого - не в курсе.]]></description>
        <author>OpenGL</author>
        <category>Программирование графики</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=387032&amp;view=findpost&amp;p=3415097</guid>
        <pubDate>Mon, 17 Feb 2014 18:01:40 +0000</pubDate>
        <title>Mix нескольких картинок</title>
        <link>https://forum.sources.ru/index.php?showtopic=387032&amp;view=findpost&amp;p=3415097</link>
        <description><![CDATA[Oleg_Smith: Да, и еще, эту процедуру надо делать очень быстро и около 40-50 раз в секунду.<br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '><br>
Ясно. OpenGL в этой задаче не нужен совершенно :)<br>
</div></div><br>
<br>
Не скрою, немного разочаровал...<br>
<br>
Дабы успокоить моё я: как по другому разгрузить CPU микса?]]></description>
        <author>Oleg_Smith</author>
        <category>Программирование графики</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=387032&amp;view=findpost&amp;p=3415095</guid>
        <pubDate>Mon, 17 Feb 2014 17:55:00 +0000</pubDate>
        <title>Mix нескольких картинок</title>
        <link>https://forum.sources.ru/index.php?showtopic=387032&amp;view=findpost&amp;p=3415095</link>
        <description><![CDATA[Oleg_Smith: Хммм....<br>А почему?<br><br>Тоесть тот результат который я получил с OpenCV -- самый лучшый?<br><br>А если добавить 3D преобразования в наложение? <br>Типа как &quot;нарисовать одну картинку под углом&quot;....]]></description>
        <author>Oleg_Smith</author>
        <category>Программирование графики</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=387032&amp;view=findpost&amp;p=3415089</guid>
        <pubDate>Mon, 17 Feb 2014 17:42:49 +0000</pubDate>
        <title>Mix нескольких картинок</title>
        <link>https://forum.sources.ru/index.php?showtopic=387032&amp;view=findpost&amp;p=3415089</link>
        <description><![CDATA[OpenGL: Ясно. OpenGL в этой задаче не нужен совершенно :)]]></description>
        <author>OpenGL</author>
        <category>Программирование графики</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=387032&amp;view=findpost&amp;p=3415088</guid>
        <pubDate>Mon, 17 Feb 2014 17:29:54 +0000</pubDate>
        <title>Mix нескольких картинок</title>
        <link>https://forum.sources.ru/index.php?showtopic=387032&amp;view=findpost&amp;p=3415088</link>
        <description><![CDATA[Oleg_Smith: ну... если так подробно, то тогда....<br>
<br>
допустим так:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">BYTE* pPic1 = new BYTE[1920*1080*3]; &nbsp; &nbsp; &nbsp; &nbsp; // 1920x1080 RGB24</div><div class="code_line">memset(pPic1, 0, 1920*1080*3); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // допустим черный</div><div class="code_line">BYTE* pPic2 = new BYTE[1920*1080*3]; &nbsp; &nbsp; &nbsp; &nbsp; // 1920x1080 RGB24</div><div class="code_line">memset(pPic1, 255, 1920*1080*3); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // допустим белый </div><div class="code_line">BYTE* pBackground = new BYTE[1920*1080*3]; &nbsp; // 1920x1080 RGB24</div><div class="code_line">memset(pPic1, 128, 1920*1080*3); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // допустим серый </div><div class="code_line">BYTE* pOutput = new BYTE[1920*1080*3]; &nbsp; // 1920x1080 RGB24</div><div class="code_line">&nbsp;</div><div class="code_line">// TODO</div><div class="code_line">// 1. загрузить картинку для фона из C:\Users\Public\Pictures\Sample Pictures\Desert.jpg</div><div class="code_line">for (;;)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; // 2. ресайз Desert.jpg + наложить на фон</div><div class="code_line">&nbsp;&nbsp; // 3. подсчитать координаты для позиции Pic1</div><div class="code_line">&nbsp;&nbsp; // 4. ресайз Pic1 + наложить на фон</div><div class="code_line">&nbsp;&nbsp; // 5. подсчитать координаты для позиции Pic2</div><div class="code_line">&nbsp;&nbsp; // 6. ресайз Pic2 + наложить на фон</div><div class="code_line">&nbsp;&nbsp; // 7. копируем результат в pOutput</div><div class="code_line">}</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
<br>
* &quot;Наложить&quot; -- имеется ввиду нарисовать поверх.<br>
<br>
Типа как тут:<br>
<a class='tag-url' href='https://docs.google.com/file/d/0B-NhGVAiTxAadENjVVVwbG1hc28/edit' target='_blank'>https://docs.google.com/file/d/0B-NhGVAiTxA...VVwbG1hc28/edit</a>]]></description>
        <author>Oleg_Smith</author>
        <category>Программирование графики</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=387032&amp;view=findpost&amp;p=3415085</guid>
        <pubDate>Mon, 17 Feb 2014 17:08:37 +0000</pubDate>
        <title>Mix нескольких картинок</title>
        <link>https://forum.sources.ru/index.php?showtopic=387032&amp;view=findpost&amp;p=3415085</link>
        <description><![CDATA[OpenGL: Что значит &quot;наложить&quot;? Со смешиванием что-ли? И куда результат записать?]]></description>
        <author>OpenGL</author>
        <category>Программирование графики</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=387032&amp;view=findpost&amp;p=3415080</guid>
        <pubDate>Mon, 17 Feb 2014 16:41:05 +0000</pubDate>
        <title>Mix нескольких картинок</title>
        <link>https://forum.sources.ru/index.php?showtopic=387032&amp;view=findpost&amp;p=3415080</link>
        <description><![CDATA[Oleg_Smith: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '><br>
А что надо-то? Если выводить не надо, то OpenGL тут не нужен.</div></div><br>
<br>
допустим, есть 2 буфера:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">BYTE* pPic1 = new BYTE[1920*1080*3]; &nbsp; &nbsp; &nbsp; &nbsp; // 1920x1080 RGB24</div><div class="code_line">memset(pPic1, 0, 1920*1080*3); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // допустим чорный </div><div class="code_line">&nbsp;</div><div class="code_line">BYTE* pPic2 = new BYTE[1920*1080*3]; &nbsp; &nbsp; &nbsp; &nbsp; // 1920x1080 RGB24</div><div class="code_line">memset(pPic1, 255, 1920*1080*3); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // допустим белый</div></ol></div></div></div></div><br>
<br>
Нужно pPic1 наложить на pPiс2<br>
<br>
Типа как PIP в телевизоре...]]></description>
        <author>Oleg_Smith</author>
        <category>Программирование графики</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=387032&amp;view=findpost&amp;p=3415078</guid>
        <pubDate>Mon, 17 Feb 2014 16:31:18 +0000</pubDate>
        <title>Mix нескольких картинок</title>
        <link>https://forum.sources.ru/index.php?showtopic=387032&amp;view=findpost&amp;p=3415078</link>
        <description><![CDATA[OpenGL: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=387032&view=findpost&p=3415066'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Oleg_Smith &#064; <time class="tag-quote__quoted-time" datetime="2014-02-17T15:51:23+00:00">17.02.14, 15:51</time></span><div class='quote '>Мне нужна или нет? Я не экран ничего не вывожу.</div></div><br>
А что надо-то? Если выводить не надо, то OpenGL тут не нужен.]]></description>
        <author>OpenGL</author>
        <category>Программирование графики</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=387032&amp;view=findpost&amp;p=3415066</guid>
        <pubDate>Mon, 17 Feb 2014 15:51:23 +0000</pubDate>
        <title>Mix нескольких картинок</title>
        <link>https://forum.sources.ru/index.php?showtopic=387032&amp;view=findpost&amp;p=3415066</link>
        <description><![CDATA[Oleg_Smith: Пробовал OpenCV.<br>
Результат лучше, но... есть несколько но...<br>
Во-первых, в будущем я все таки хочу сделать 3D трансформации.<br>
Плюс приложение будет конкретно грузить CPU и тут конечно хотелось бы переложить часть работы на GPU.<br>
<br>
В процессе использования OpenCV я видел что можно подключить GPU.<br>
Но в таком случае надо писать отдельную логику для Cuda и других.<br>
<br>
Думаю, более универсальное решение будет на OpenGL.<br>
<br>
Подготовил небольшой ЮнытТест.<br>
<a class='tag-url' href='https://drive.google.com/file/d/0B-NhGVAiTxAaWXJFLTkzX3NGU2s/edit?usp=sharing' target='_blank'>https://drive.google.com/file/d/0B-NhGVAiTx...dit?usp=sharing</a><br>
<br>
Этот ЮнитТест позволяет:<br>
 - генерить случайные данные для входных картинок.<br>
 - показывать состояние каждого буфера (выводит содержимое картинки на экран)<br>
 - делает микс 2 картинок прямо в лоб используя CPU<br>
 - делает микс 2 картинок используя OpenCV<br>
 - подсчитывает сколько времени ушло на Микс.<br>
Все что осталось -- сделать то же самое используя OpenGL.<br>
<br>
Помогите плиз&#33;<br>
<br>
1. Инициализация OpenGL.<br>
   Мне нужна или нет? Я не экран ничего не вывожу.<br>
2. Из буфера сделать картинку. <br>
   Как?<br>
3. Ресайз картинки<br>
4. Наложение катинки в заданное место.<br>
<br>
Спасибо&#33;]]></description>
        <author>Oleg_Smith</author>
        <category>Программирование графики</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=387032&amp;view=findpost&amp;p=3414628</guid>
        <pubDate>Sun, 16 Feb 2014 03:06:19 +0000</pubDate>
        <title>Mix нескольких картинок</title>
        <link>https://forum.sources.ru/index.php?showtopic=387032&amp;view=findpost&amp;p=3414628</link>
        <description><![CDATA[XandoX: А зачем OpenGL? Возьми какую-нибудь либу для работы с изображениями и сделай там.]]></description>
        <author>XandoX</author>
        <category>Программирование графики</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=387032&amp;view=findpost&amp;p=3414622</guid>
        <pubDate>Sun, 16 Feb 2014 00:30:25 +0000</pubDate>
        <title>Mix нескольких картинок</title>
        <link>https://forum.sources.ru/index.php?showtopic=387032&amp;view=findpost&amp;p=3414622</link>
        <description><![CDATA[Oleg_Smith: Предыстория:<br>
<a class='tag-url' href='http://forum.sources.ru/index.php?showtopic=386911' target='_blank'>микс 2 видео</a><br>
<br>
В Общем... в OpenGL я не шарю, но вижу придется разбираться.<br>
<br>
Нужно одну картинку (RGB24 буфер) очень быстро наложить на другую (тоже RGB24 буфер).<br>
Ничего на экран выводить не надо.<br>
Нет 3D. <br>
<br>
Итак, насколько я знаю, есть разные версии OpenGL.<br>
В какую сторону смотреть?]]></description>
        <author>Oleg_Smith</author>
        <category>Программирование графики</category>
      </item>
	
      </channel>
      </rss>
	