Уведомления

Группа в Telegram: @pythonsu

#1 Март 2, 2011 18:38:36

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Яркость изображения

Честно сказать, все еще ничего не понял. Вы медленно и печально строите градиентную растяжку, через numpy а потом зачем-то грузите ее в текстуру.
Рисуете квадратик с этой тесктурой. Почему-то GL_LUMINANCE, что не характерно вообще-то.
Теперь, внимание, вопрос: а что требовалось-то и при чем здесь яркость?



Офлайн

#2 Март 2, 2011 19:32:32

Levelup
От:
Зарегистрирован: 2011-01-10
Сообщения: 77
Репутация: +  0  -
Профиль   Отправить e-mail  

Яркость изображения

Суть в том, что на входе имеется 16-битный двумерный массив в градациях серого, он может быть какой угодно. Мне необходимо менять яркость изображения, полученного из этого массива. Делаю это посредством opengl, чтобы добиться максимального fps. В качестве примера я взял градиент. Сначала я преобразовываю массив из 16-ти в 8-битный. Далее, как вы заметили, я делаю в opengl квадрат и накладываю на него текстуру в виде этого изображения. Теперь необходимо изменить яркость текстуры. Я так понимаю, что изображение в виде текстуры сначала загоняется в opengl, и только потом уже менятся посредством gpu. Таким образом это нужно делать не в OnPaint.



Офлайн

#3 Март 2, 2011 20:23:52

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Яркость изображения

Максимальный fps? Вы серьезно?
А зачем тогда на каждую перерисовку создаете ваш градиент, а потом перегоняете его в видеопамять?
Преобразование 16бит->8бит я как-то проглядел…



Офлайн

#4 Март 2, 2011 22:07:08

Levelup
От:
Зарегистрирован: 2011-01-10
Сообщения: 77
Репутация: +  0  -
Профиль   Отправить e-mail  

Яркость изображения

Да, чтобы можно было менять параметры в реальном времени. В том то и дело, что необходимо сначала перегонять, а после уже преобразовывать. Действительно, не заметил, преобразование не включил..



Офлайн

#5 Март 2, 2011 22:41:06

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Яркость изображения

Не совсем понял тогда, какие “параметры” собираетесь менять. И зачем вам вообще OpenGL?
Делайте коррекцию яркости для своего self._image средствами того же numpy. Вы и так очень хорошо проходитесь по вашей картинке, начиная с вычисления гистограммы. Еще одна операция ни на что уже не влияет, и незачем OpenGL городить.

Или я плохо понимаю, или вы не очень толково рассказываете.



Офлайн

#6 Март 3, 2011 00:10:25

Levelup
От:
Зарегистрирован: 2011-01-10
Сообщения: 77
Репутация: +  0  -
Профиль   Отправить e-mail  

Яркость изображения

Если менять яркость средствами numpy, для каждого пересчета потребуется много времени, так как изображения сами по себе очень большие. Рассчитывать гистограмму так же необходимо внутри OpenGL. Возможно ли загнать массив в OpenGL, а после применять numpy для рассчетов? Чтобы все это делал gpu.



Офлайн

#7 Март 3, 2011 00:52:16

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Яркость изображения

Ааа. Это вы на PIL пытались рисовать?

Слушайте. Вы или приведете ваше техзадание без купюр, мешающих пониманию смысла - или гадайте уж сами.
Техзадания нет - так напишите для начала.
Крайне утомительно вытягивать из вас подробности.



Офлайн

#8 Март 3, 2011 06:35:42

Levelup
От:
Зарегистрирован: 2011-01-10
Сообщения: 77
Репутация: +  0  -
Профиль   Отправить e-mail  

Яркость изображения

В коде выше pil не используется. Это, в принципе, все что есть. Техническое задание уже тоже писал выше, грубо говоря, надо загнать массив в OpenGL и там его изменять..



Офлайн

#9 Март 3, 2011 09:01:19

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Яркость изображения

Levelup
В коде выше pil не используется. Это, в принципе, все что есть. Техническое задание уже тоже писал выше, грубо говоря, надо загнать массив в OpenGL и там его изменять..
Ну тогда, в принципе, у вас практически все есть - берете массив, загоняеете и изменяеете. Грубо говоря, программа после таких адских манипуляций просто обязана заработать.



Офлайн

#10 Март 3, 2011 09:27:19

Levelup
От:
Зарегистрирован: 2011-01-10
Сообщения: 77
Репутация: +  0  -
Профиль   Отправить e-mail  

Яркость изображения

Я ещё больше запутался. Могу я с вами связаться по аське или скайпу? Постараюсь все заново подробно изложить..



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version