![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| Rusel |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 26.4.2007 Репутация: нет Всего: нет |
Мне нужно запрограмировать алгоритмы обработки цифровых зобржений на примере Bitmap. Смысл в том чтобы открыть Bitmap, обработать его и вывести на экран. И у меня возникла проблема: я не могу програмно изменить яркость отдельно взятого пиксела. Подскажите если кто с этим сталкивался, как это сделать.
|
|||
|
||||
| tdebugger |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 20.1.2007 Репутация: 2 Всего: 4 |
Вот таким нехитрым методом можно уменьшить яркость некотой области в два раза:
... ну а дальше подбором коеффициентов... Это сообщение отредактировал(а) tdebugger - 10.9.2007, 08:23 --------------------
ТЕХНОЛОГИЯ "JAVA" НЕ ПРЕДНАЗНАЧЕНА ДЛЯ УПРАВЛЕНИЯ ЯДЕРНЫМИ УСТАНОВКАМИWindows98 License.txt |
|||
|
||||
| iad |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 10.9.2007 Где: Москов Репутация: -2 Всего: -2 |
||||
|
||||
| Rusel |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 26.4.2007 Репутация: нет Всего: нет |
Есть небольшая проблема с SetPixel.... Bitmap с indexed pixel format не поддерживает SetPixel. А мне нужно обработать именно такие картинки |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Вариант - скопировать битмап в другой битмап (через Graphics.DrawImage и графиксом созданным из Graphics.FromImage), выполнить на "нормальном" битмапе GetPixel/SetPixel, скопировать обратно таким же способом.
-------------------- ![]() |
|||
|
||||
| Sergey_P |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 6.9.2007 Репутация: нет Всего: нет |
у кого-нить есть пример, где описана обработка каждого пикселя на экране по сложным формулам
то есть получил пиксель по координатам X, Y ..получил отдельно значения красного, зеленого, синего; потом обработал каждый пиксель и сохранил обратно |
|||
|
||||
| iad |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 10.9.2007 Где: Москов Репутация: -2 Всего: -2 |
Вот реализация стандартного алгоритма изменения яркости. Для других преобразований - аналогично, только идет другое заполнение TransTable. TransTable это массив значений в которой индексом является исходное значение цветовой составляющей, а значением по этому индексу - новое значение.При использовании TransTable достаточно расчитать только 3*256 значений, а не считать значение для каждого пикселя, что при сложных алгоритмах дает значительный прирост производительности
Это сообщение отредактировал(а) iad - 18.9.2007, 13:17 |
|||
|
||||
| Sergey_P |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 6.9.2007 Репутация: нет Всего: нет |
сорри за непонятливость, а чего менять, чтобы яркость изменилась?
и если можно пример с рисованием на picturebox Это сообщение отредактировал(а) Sergey_P - 18.9.2007, 16:16 |
|||
|
||||
| iad |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 10.9.2007 Где: Москов Репутация: -2 Всего: -2 |
||||
|
||||
| Sergey_P |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 6.9.2007 Репутация: нет Всего: нет |
весь мой опыт в 7 дельфи, и вот мне срочно надо написать рабочее приложение на C#, а 2 недели назад я первый раз запустил студию
в общем могу и поразбираться, только пока не до этого ...спасибо за совет |
|||
|
||||
| iad |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 10.9.2007 Где: Москов Репутация: -2 Всего: -2 |
А какая разница? Все ОО языки одного уровня - одинаковы. void SetBrightness( int offset) - метод меняющий яркость битмапа, offset - значение в байтах, на которое нужно поменять яркость
Это сообщение отредактировал(а) iad - 18.9.2007, 18:52 |
|||
|
||||
| Sergey_P |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 6.9.2007 Репутация: нет Всего: нет |
может это только у меня, когда осн процедура
яркость исходная, пример работает а если добавить перед либо после SetBrightness(100); (пробовал и так и так, хотя как я понял верно именно до рисования графики в e.Graphics.DrawImage) то приложение задумывается и не прорисовается картинка, либо без изменений в яркости(если после изм графику) ...хотя приложение в любом случае задумывается просто мне хочется запустить пример и посмотреть на рабочем примере, а потом уже вникать.... |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |