Форум сайта python.su
Честно сказать, все еще ничего не понял. Вы медленно и печально строите градиентную растяжку, через numpy а потом зачем-то грузите ее в текстуру.
Рисуете квадратик с этой тесктурой. Почему-то GL_LUMINANCE, что не характерно вообще-то.
Теперь, внимание, вопрос: а что требовалось-то и при чем здесь яркость?
Офлайн
Суть в том, что на входе имеется 16-битный двумерный массив в градациях серого, он может быть какой угодно. Мне необходимо менять яркость изображения, полученного из этого массива. Делаю это посредством opengl, чтобы добиться максимального fps. В качестве примера я взял градиент. Сначала я преобразовываю массив из 16-ти в 8-битный. Далее, как вы заметили, я делаю в opengl квадрат и накладываю на него текстуру в виде этого изображения. Теперь необходимо изменить яркость текстуры. Я так понимаю, что изображение в виде текстуры сначала загоняется в opengl, и только потом уже менятся посредством gpu. Таким образом это нужно делать не в OnPaint.
Офлайн
Максимальный fps? Вы серьезно?
А зачем тогда на каждую перерисовку создаете ваш градиент, а потом перегоняете его в видеопамять?
Преобразование 16бит->8бит я как-то проглядел…
Офлайн
Да, чтобы можно было менять параметры в реальном времени. В том то и дело, что необходимо сначала перегонять, а после уже преобразовывать. Действительно, не заметил, преобразование не включил..
Офлайн
Не совсем понял тогда, какие “параметры” собираетесь менять. И зачем вам вообще OpenGL?
Делайте коррекцию яркости для своего self._image средствами того же numpy. Вы и так очень хорошо проходитесь по вашей картинке, начиная с вычисления гистограммы. Еще одна операция ни на что уже не влияет, и незачем OpenGL городить.
Или я плохо понимаю, или вы не очень толково рассказываете.
Офлайн
Если менять яркость средствами numpy, для каждого пересчета потребуется много времени, так как изображения сами по себе очень большие. Рассчитывать гистограмму так же необходимо внутри OpenGL. Возможно ли загнать массив в OpenGL, а после применять numpy для рассчетов? Чтобы все это делал gpu.
Офлайн
Ааа. Это вы на PIL пытались рисовать?
Слушайте. Вы или приведете ваше техзадание без купюр, мешающих пониманию смысла - или гадайте уж сами.
Техзадания нет - так напишите для начала.
Крайне утомительно вытягивать из вас подробности.
Офлайн
В коде выше pil не используется. Это, в принципе, все что есть. Техническое задание уже тоже писал выше, грубо говоря, надо загнать массив в OpenGL и там его изменять..
Офлайн
LevelupНу тогда, в принципе, у вас практически все есть - берете массив, загоняеете и изменяеете. Грубо говоря, программа после таких адских манипуляций просто обязана заработать.
В коде выше pil не используется. Это, в принципе, все что есть. Техническое задание уже тоже писал выше, грубо говоря, надо загнать массив в OpenGL и там его изменять..
Офлайн
Я ещё больше запутался. Могу я с вами связаться по аське или скайпу? Постараюсь все заново подробно изложить..
Офлайн