Форум программистов, компьютерный форум, киберфорум
Delphi: Графика, звук, видео
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 30.11.2019
Сообщений: 5

Обесцветить изображение

24.12.2019, 16:47. Показов 1302. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дополнить программу, чтобы по нажатию кнопки «Обесцветить» выполнялось обесцвечивание загруженного изображения.
Для обесцвечивания изображения нужно цвет каждого пиксела (R, G, B) установить равным (A, A, A), где A = (R + G + B)/3.
Запись RGB-компонент [i, j]-го пиксела изображения в переменные R, G, B:
Delphi
1
RedGreenBlue(Image1.Canvas.Pixels[i,j], R, G, B);
Установка цвета [i, j]-го пиксела в значение (R, G, B):
Delphi
1
Image1.Canvas.Pixels[i,j] := RGBToColor(R, G, B);
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.12.2019, 16:47
Ответы с готовыми решениями:

Обесцветить изображение из pictureBox
Нужно обесцветить изображение (изображение переводится в градации серого) из pictureBox. Как это сделать? Добавлено через 42 минуты ...

Как обесцветить объект?
Здравствуйте. Нужно через свойство цвета делать его бесцветным. Не знаю как. Есть такой код, но он задаёт цвет ...

Как обесцветить background-image
Чтобы обесцветить изображение, достаточно поставить соответствующий стиль: img { -webkit-filter: grayscale(100%); -moz-filter:...

6
602 / 550 / 210
Регистрация: 24.01.2012
Сообщений: 1,352
25.12.2019, 13:53
Не уверен, что такое обесцвечивание будет нормально выглядеть. Обычно для преобразования из цветного в серый берут 30% красного + 59% зеленого + 11% синего.
0
 Аватар для GoodWeather
886 / 588 / 179
Регистрация: 28.02.2017
Сообщений: 2,359
Записей в блоге: 1
26.12.2019, 07:26
Как раз "обычно" берут среднее арифметическое. Это намного быстрее. И на глаз среднего человека особой разницы не заметно.

Buntingnastena, а что же у вас не получается?
0
240 / 218 / 46
Регистрация: 17.04.2010
Сообщений: 526
26.12.2019, 10:50
GoodWeather, нет, обычно делают как сказал edukra, это достаточно быстро и для глаза приемлемо.
пример:

среднее:

как сойдет:

как правильно:


Цитата Сообщение от Buntingnastena Посмотреть сообщение
Установка цвета [i, j]-го пиксела в значение (R, G, B):
может всё же так:
Delphi
1
Image1.Canvas.Pixels[i,j] := RGBToColor(A, A, A);
0
 Аватар для GoodWeather
886 / 588 / 179
Регистрация: 28.02.2017
Сообщений: 2,359
Записей в блоге: 1
26.12.2019, 11:05
Это явно из методички. Некий слишком стыдный намёк что потребуется использовать для работы.

Добавлено через 1 минуту
И чего, сильно большая разница что ли? Я почти не отличу, особенно если покажут обработанную случайную картинку и спросят где какая. С:
Давайте ещё Computer Color is Broken прикрутим?

Добавлено через 32 секунды
Лично мне на двух последних как-то слишком черно ́ полоса справа. На последней ещё и слишком бело ́ полоса слева.
Я бы обрабатывал картинку - выбрал бы как раз первое.

Добавлено через 49 секунд
В редакторах что я использую по умолчанию автоматом стоит всегда "average".
0
240 / 218 / 46
Регистрация: 17.04.2010
Сообщений: 526
26.12.2019, 11:41
Цитата Сообщение от GoodWeather Посмотреть сообщение
И чего, сильно большая разница что ли? Я почти не отличу, особенно если покажут обработанную случайную картинку и спросят где какая.
Разница в яркости и деталях. Если попеременно отображать оригинал и в градациях серого, разница будет очень заметная. Но вопрос не в перфекционизме, а в особенностях нашего зрения и в варианте с усреднением могут потеряться важные детали. Например:
Название: test2_color.png
Просмотров: 50

Размер: 448 байт
Название: test2_mid.png
Просмотров: 50

Размер: 194 байт
Название: test2_yuv.png
Просмотров: 50

Размер: 444 байт
Название: test2_lab.png
Просмотров: 50

Размер: 444 байт

Цитата Сообщение от GoodWeather Посмотреть сообщение
В редакторах что я использую по умолчанию автоматом стоит всегда "average".
А можно название хоть одного? Я просто такого не встречал...
1
Модератор
4141 / 2353 / 811
Регистрация: 15.11.2015
Сообщений: 9,415
27.12.2019, 18:22
Buntingnastena, все используемые функции и формулы приведены, осталось только пройтись в цикле по массиву пикселей и обработать их. В чём проблема?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.12.2019, 18:22
Помогаю со студенческими работами здесь

Как обесцветить рисунок (исправить код)
Добрый вечер! Имеется функция, которая неверно работает (мое мнение). Подскажите пожалуйста решение проблемы: необходимо цветное...

Word 2016: Не могу обесцветить фон текста
Создал Word-файл, отправил человеку. Он внёс некоторую правку. Когда я получил от него файл, то решил убрать все участки текста, которые...

Подскажите, как сделать в html, чтобы изображение накладывалось на другое изображение?
Нужно, чтобы изображение накладывалось на другое изображение, а другое изображение растягивалось по заданной мною ширине. Спасибо, я...

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

Можно ли задать какое-нибудь дефолтное изображение, если не найдено изображение по ключу?
Проблема: listView1.Items.ImageKey = NameKey; Если нет картинки с соответствующим ключем, то элемент остаётся без картинки. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
[В процессе разработки] SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru