Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > C++

Ответ
 
Опции темы
Старый 19.10.2011, 11:12   #1
KingMaks
Знающий
 
Аватар для KingMaks
 
Регистрация: 26.11.2009
Сообщений: 313
Написано 35 полезных сообщений
(для 95 пользователей)
openGL загрузить изображение и улучшить качество

В общем смысл таков: нужно на C++ builder 6 с помощью openGL загрузить изображение, а затем улучшить его качество или для начала хотя бы повысить яркость. Как я понял существуют определенные алгоритмы. Но я не представляю как это реализовать. Получается при загрузке картинки мне, вроде как, придется обратиться к каждому её пикселю и изменить его, или работать с Z буфером.
Может кто представляет как это сделать или имеет ссылки на какие либо статьи? Всем заранее благодарен.
__________________
StimuL
Maks
(Offline)
 
Ответить с цитированием
Старый 19.10.2011, 12:37   #2
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: openGL загрузить изображение и улучшить качество

Повысить яркость на 10 процентов в красном канале: прочитать цвет пикселя умножить его 1.1. Потом найти остаток от деления на 256 записать обратно.
Нечто напоминающее повышение контрастности изображения: считать цвет.
узнать (double) цветпикселя/(double)255. Возвести полученную величину в некоторую степень и умножить исходную часть цвета на эту величину.

Сблюрить можно обработав пиксели маской введенной вручную или посчитанной по формуле гаусовского блюра если хочется контроля и т.д.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
KingMaks (19.10.2011)
Старый 19.10.2011, 13:09   #3
.Squid
Дэвелопер
 
Аватар для .Squid
 
Регистрация: 06.04.2009
Адрес: Запорожье
Сообщений: 1,500
Написано 1,011 полезных сообщений
(для 4,642 пользователей)
Ответ: openGL загрузить изображение и улучшить качество

Сообщение от dsd Посмотреть сообщение
Повысить яркость на 10 процентов в красном канале: прочитать цвет пикселя умножить его 1.1. Потом найти остаток от деления на 256 записать обратно.
(255.0 * 1.1) % 256 = 24.5
FFFFFFFUUUUUUUU
__________________

(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
KingMaks (19.10.2011)
Старый 19.10.2011, 13:15   #4
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: openGL загрузить изображение и улучшить качество

Да ни в жисть не поверю что великий и могучий Сквид не догадаося что значения большие 255 надо сделать равными 255
(Offline)
 
Ответить с цитированием
Старый 19.10.2011, 13:25   #5
.Squid
Дэвелопер
 
Аватар для .Squid
 
Регистрация: 06.04.2009
Адрес: Запорожье
Сообщений: 1,500
Написано 1,011 полезных сообщений
(для 4,642 пользователей)
Ответ: openGL загрузить изображение и улучшить качество

Я то догадался. А вот твоя фраза "Потом найти остаток от деления на 256 записать обратно." говорит о том, что ты не догадался. Или проводишь диверсионную деятельность.
__________________

(Offline)
 
Ответить с цитированием
Старый 19.10.2011, 13:57   #6
KingMaks
Знающий
 
Аватар для KingMaks
 
Регистрация: 26.11.2009
Сообщений: 313
Написано 35 полезных сообщений
(для 95 пользователей)
Ответ: openGL загрузить изображение и улучшить качество

Здесь все понятно. Но как все-таки к пикселю обратиться или перерисовать его??
__________________
StimuL
Maks
(Offline)
 
Ответить с цитированием
Старый 19.10.2011, 14:17   #7
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: openGL загрузить изображение и улучшить качество

http://www.codenet.ru/progr/opengl/opengl_05.php
Почему бы не погуглить на эту тему?
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо dsd за это полезное сообщение:
KingMaks (19.10.2011), moka (19.10.2011)
Старый 19.10.2011, 14:40   #8
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: openGL загрузить изображение и улучшить качество

Сообщение от .Squid Посмотреть сообщение
Я то догадался. А вот твоя фраза "Потом найти остаток от деления на 256 записать обратно." говорит о том, что ты не догадался. Или проводишь диверсионную деятельность.
Каюсь. Косноязычен. :facepalm:
(Offline)
 
Ответить с цитированием
Старый 19.10.2011, 16:11   #9
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: openGL загрузить изображение и улучшить качество

если быть мужыком, то быстрее менять цвета пикселей шейдером.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
moka (19.10.2011)
Старый 19.10.2011, 16:35   #10
.Squid
Дэвелопер
 
Аватар для .Squid
 
Регистрация: 06.04.2009
Адрес: Запорожье
Сообщений: 1,500
Написано 1,011 полезных сообщений
(для 4,642 пользователей)
Ответ: openGL загрузить изображение и улучшить качество

Сообщение от Mr_F_ Посмотреть сообщение
если быть мужыком, то быстрее менять цвета пикселей шейдером.
Да, добей чувака. OpenCL или CUDA еще предложи.
__________________

(Offline)
 
Ответить с цитированием
Эти 7 пользователя(ей) сказали Спасибо .Squid за это полезное сообщение:
FREE MAN (19.10.2011), L.D.M.T. (19.10.2011), moka (19.10.2011), Mr_F_ (19.10.2011), Randomize (20.10.2011), Reks888 (20.10.2011), SBJoker (19.10.2011)
Старый 20.10.2011, 17:41   #11
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: openGL загрузить изображение и улучшить качество

НУ CUDA ведь программируется на С,и SDK есть в открытом
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 25.10.2011, 00:53   #12
KingMaks
Знающий
 
Аватар для KingMaks
 
Регистрация: 26.11.2009
Сообщений: 313
Написано 35 полезных сообщений
(для 95 пользователей)
Ответ: openGL загрузить изображение и улучшить качество

Есть код загрузки картинки:
#include <windows.h>

#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glaux.h>


AUX_RGBImageRec* image;


void CALLBACK resize(int width,int height)
{
   glViewport(0,0,width,height);
   glMatrixMode( GL_PROJECTION );
   glLoadIdentity();
   glOrtho(-5,5, -5,5, 2,12);
   gluLookAt( 0,0,5, 0,0,0, 0,1,0 );
   glMatrixMode( GL_MODELVIEW );
}



void CALLBACK display(void)
{
 glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );


  glRasterPos2d(-4.5,-3);
  glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
  glPixelZoom(1.0, 1.0);
  glDrawPixels(image->sizeX, image->sizeY,GL_RGB, GL_UNSIGNED_BYTE,image->data);
 
  
auxSwapBuffers();
}



void main()
{
	float pos[4] = {3,3,3,1};
	float dir[3] = {-1,-1,-1};

	image = auxDIBImageLoad("igor.bmp");

     
    glEnable(GL_ALPHA_TEST);
    glEnable(GL_DEPTH_TEST);
    glEnable(GL_COLOR_MATERIAL);
    glEnable(GL_LIGHTING);
    glEnable(GL_LIGHT0);
    glEnable(GL_BLEND);
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

    glLightfv(GL_LIGHT0, GL_POSITION, pos);
    glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, dir);


	

    auxInitPosition( 50, 10, 400, 400);
    auxInitDisplayMode( AUX_RGB | AUX_DEPTH | AUX_DOUBLE );
    auxInitWindow( "Photo" );
    auxIdleFunc(display);
    auxReshapeFunc(resize);
	auxMainLoop(display);
}
получаю ошибки:
[Linker Error] Unresolved external 'auxSwapBuffers' referenced from C:\USERS\KINGMAKS\DESKTOP\INDIVID\PHOTO.OBJ
[Linker Error] Unresolved external 'auxDIBImageLoadA' referenced from C:\USERS\KINGMAKS\DESKTOP\INDIVID\PHOTO.OBJ
[Linker Error] Unresolved external 'auxInitPosition' referenced from C:\USERS\KINGMAKS\DESKTOP\INDIVID\PHOTO.OBJ
[Linker Error] Unresolved external 'auxInitDisplayMode' referenced from C:\USERS\KINGMAKS\DESKTOP\INDIVID\PHOTO.OBJ
[Linker Error] Unresolved external 'auxInitWindowA' referenced from C:\USERS\KINGMAKS\DESKTOP\INDIVID\PHOTO.OBJ
[Linker Error] Unresolved external 'auxIdleFunc' referenced from C:\USERS\KINGMAKS\DESKTOP\INDIVID\PHOTO.OBJ
[Linker Error] Unresolved external 'auxReshapeFunc' referenced from C:\USERS\KINGMAKS\DESKTOP\INDIVID\PHOTO.OBJ
[Linker Error] Unresolved external 'auxMainLoop' referenced from C:\USERS\KINGMAKS\DESKTOP\INDIVID\PHOTO.OBJ

в чем проблема?
__________________
StimuL
Maks
(Offline)
 
Ответить с цитированием
Старый 25.10.2011, 01:15   #13
.Squid
Дэвелопер
 
Аватар для .Squid
 
Регистрация: 06.04.2009
Адрес: Запорожье
Сообщений: 1,500
Написано 1,011 полезных сообщений
(для 4,642 пользователей)
Ответ: openGL загрузить изображение и улучшить качество

В том, что саму либу не подключил.
__________________

(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
KingMaks (26.10.2011)
Старый 25.10.2011, 01:30   #14
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: openGL загрузить изображение и улучшить качество

Сообщение от .Squid Посмотреть сообщение
В том, что саму либу не подключил.
да-да: ошибка компоновки (линковки - Linker Error): наличествующий код успешно транслирован в объектные-файлы (модули), однако, компоновщик не нашёл модули библиотеки, чтобы собрать всё воедино.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
KingMaks (26.10.2011)
Старый 25.10.2011, 01:43   #15
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: openGL загрузить изображение и улучшить качество

#pragma comment(lib,"glaux.lib")
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
KingMaks (26.10.2011)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 14:58.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com