Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2021, 18:48   #1
Kronos913
Форумчанин
 
Регистрация: 10.02.2021
Сообщений: 603
По умолчанию Яркость, контраст, превратить в ч/б

Собственно, из названия темы понятно, что нужно =)

Есть BitMap. Нужно
1. Сделать его ч/б
2. Изменить яркость
3. Изменить контраст

1 пункт отдельно от 2, 3
(То есть может быть необходимо и к цветным фото применять 2-3)
Kronos913 вне форума Ответить с цитированием
Старый 13.06.2021, 18:57   #2
Desc
Участник клуба
 
Аватар для Desc
 
Регистрация: 21.11.2007
Сообщений: 1,063
По умолчанию

Можно использовать в данном проекте OpenCV.
Уклон на что, реальный проект или учебная задача?
I am not a wizard, I am just learning.
Desc вне форума Ответить с цитированием
Старый 13.06.2021, 19:00   #3
Kronos913
Форумчанин
 
Регистрация: 10.02.2021
Сообщений: 603
По умолчанию

Программа для личного пользования

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

Это я образно выразился. На деле программа нужно чтобы в 1 клик делать многие операции, которые делаются в других или вручную, или автоматически

Например, чтобы переименовать сразу 20 файлов, в стандартных программах надо настраивать шаблон переименовки. Тут - 1 клик и файлы переименованы, новое имя сделано на основании первых двух слов в имени папки

Это так, для примера. Назначение программы

А так, в ней куча функций. Вот доводил до ума поворот изображения. А сейчас еще хочу добавить корректировку яркость-контраст

Последний раз редактировалось BDA; 13.06.2021 в 22:17.
Kronos913 вне форума Ответить с цитированием
Старый 13.06.2021, 22:31   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Для развлечения конечно можно реализовывать всё самому, но каждая функция самописного комбайна будет уступать аналогичной функции специализированной программы, разработанной целой командой. Упросить себе жизнь можно, используя готовые библиотеки или дергая из своей программы другие программы с требуемыми параметрами. Если хочется поразвлекаться с яркостью и контрастом - http://compgraph.tpu.ru/Pic_transform.htm.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 14.06.2021 в 00:25.
BDA вне форума Ответить с цитированием
Старый 14.06.2021, 00:22   #5
Desc
Участник клуба
 
Аватар для Desc
 
Регистрация: 21.11.2007
Сообщений: 1,063
По умолчанию

Kronos913, так тогда самое оно OpenCV подключить. С этой библиотекой картинку из цвета в чб перевести можно с минимальными кодописаниями.
Но правда львиная доля затраченого времени припадет на подключение библиотеки к проекту, если ранее с ней не имели чести познакомиться.
I am not a wizard, I am just learning.
Desc вне форума Ответить с цитированием
Старый 14.06.2021, 02:04   #6
Kronos913
Форумчанин
 
Регистрация: 10.02.2021
Сообщений: 603
По умолчанию

А яркость-контраст?
Kronos913 вне форума Ответить с цитированием
Старый 14.06.2021, 07:00   #7
Filka
Форумчанин
 
Регистрация: 29.10.2015
Сообщений: 272
По умолчанию

https://imaginglib.sourceforge.io
https://rmklever.com/?p=76
Filka вне форума Ответить с цитированием
Старый 14.06.2021, 09:08   #8
kvitaliy
Участник клуба
 
Регистрация: 17.05.2011
Сообщений: 1,660
По умолчанию

Цитата:
Сообщение от Desc Посмотреть сообщение
тогда самое оно OpenCV подключить.
Для таких элементарных функций, как яркость-контраст-ч/б подключать такую монстроузную библиотеку неоправданно.
Kronos913, всё элементарно решается простейшими формулами.
Например яркость:
-сканируем изображение построчно, определяем цвет каждого пикселя
-каждый пиксель раскладываем на RGB
-для увеличения яркости прибавляем одинаковое значение к каждому RGB
-для уменьшения яркости отнимаем одинаковое значение от каждого RGB
- собираем RGB обратно и записываем в то место изображения, откуда его взяли.
Для контраста чуть сложнее формула, псевдокод такой, выделяем r,g,b, значение контраста Amount:
Код:
     rg=(Abs(127-r) * Amount)/ 255;
     gg=(Abs(127-g) * Amount)/ 255;
     bg=(Abs(127-b) * Amount)/ 255;
     
     If r>127 : r=r+rg: Else : r=r-rg: EndIf ;
     If g>127 : g=g+gg: Else : g=g-gg: EndIf;
     If b>127 : b=b+bg: Else : b=b-bg: EndIf;
Ч.б. формула самая простая - разложили на r,g,b и вычислить среднее значение
col = (R+G+B)/3
собираем RGB обратно, используя для всех rgb одно и то же значение Col
r = col
g= col
b = col
kvitaliy вне форума Ответить с цитированием
Старый 14.06.2021, 10:21   #9
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,536
По умолчанию

Как на мой взгляд - задача зряшная не в плане реализации, а по задумке. Даже когда в нормальной проф. проге вроде XnView начинаешь работать с картинкой - ползунками вдоволь наелозишься, наблюдая визуально результат, пока достигнешь приемлемого качества. А тут один клик - и получи, деревня, трактор нужной яркости и контраста с нужным числом оттенков серого.
Ну разве что предполагается что-то из стабильного источника данных, где все битмапы более-менее одинаковы по параметрам; тогда один раз картинку подобрал - и в путь.

Последний раз редактировалось digitalis; 14.06.2021 в 10:24.
digitalis вне форума Ответить с цитированием
Старый 19.07.2021, 17:47   #10
Chaser_81
Пользователь
 
Регистрация: 09.04.2007
Сообщений: 37
По умолчанию

Цитата:
Сообщение от Kronos913 Посмотреть сообщение
Собственно, из названия темы понятно, что нужно =)

Есть BitMap. Нужно
1. Сделать его ч/б
2. Изменить яркость
3. Изменить контраст
Ищите и обрящите

https://delphisources.ru/pages/sourc...line-demo.html
https://delphisources.ru/pages/sourc...gb_change.html
https://delphisources.ru/pages/sourc...ear/i-mod.html
https://delphisources.ru/pages/sourc...tch-grays.html
SiteAnalyzer - анализ и аудит сайта. Telegram: @majento
Chaser_81 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как изменять контраст/интенсивность Timage? eldalex Мультимедиа в Delphi 10 23.06.2016 18:22
Яркость и контрастность Lost_Angel C++ Builder 9 26.04.2012 10:02
яркость монитора nyx Операционные системы общие вопросы 2 17.05.2010 08:40
Яркость пиксела -=<[Evklidd]>=- Мультимедиа в Delphi 4 02.02.2008 12:24
цвета, оттенок и контраст Toxa Общие вопросы Delphi 5 13.09.2007 12:04