Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.79/268: Рейтинг темы: голосов - 268, средняя оценка - 4.79
11 / 60 / 21
Регистрация: 12.03.2017
Сообщений: 514

Конвертация цветного изображения в черно-белое

06.03.2018, 20:25. Показов 57293. Ответов 48
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Используя numpy, без питоновских циклов сконвертируйте цветное изображение в черно-белое по формуле:

C = 0.2989 * R + 0.5870 * G + 0.1140 * B
Считается, что вычисленный таким образом цвет лучше всего подходит для человеческого глаза, поскольку яркость каждой компоненты глаз воспринимает по-разному.

Формат ввода
В папке с вашим решением будет лежать файл image.jpg c исходной картинкой.
Формат вывода
Результат сохраните в файл res.jpg в текущей папке.
Примечания
Не забудьте, что значение каждой составляющей цвета — целое число, поэтому результат необходимо округлить.
Для этого воспользуйтесь методом round()
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.03.2018, 20:25
Ответы с готовыми решениями:

Перевод изображения в черно-белое и multiproccesing
Здравствуйте, форумчане, нужна ваша помощь. Пытаюсь распараллелить данный код (в начале с помощь библиотеки PIL переводим изображение в...

Чёрно-белое изображение
Используя numpy, без питоновских циклов сконвертируйте цветное изображение в чёрно-белое по формуле: C = 0.2989 * R + 0.5870 * G +...

Перевод цветного изображения в черно-белое
Здравствуйте, нужно перевести цветное изображение в черно-белое (не в серо-белое), но я в этом особо ничего не понимаю, помогите...

48
19 / 18 / 1
Регистрация: 16.01.2020
Сообщений: 32
26.03.2020, 21:36
Студворк — интернет-сервис помощи студентам
Оно понятно. Только дело то в том, что сделать срез столбика не получается, нампай ошибку выдаёт. Можешь, пожалуйста, код свой показать? Спасибо
0
8 / 8 / 0
Регистрация: 08.03.2020
Сообщений: 20
26.03.2020, 21:43
Python
1
2
3
4
5
6
7
8
9
10
11
from PIL import Image
import numpy as np
 
 
def bw_convert():
    img = Image.open('image.jpg')
    image = np.asarray(img, dtype='uint8')
    k = np.array([[[0.2989, 0.587, 0.114]]])
    sum = np.round(np.sum(image * k, axis=2)).astype(np.uint8)
    image2 = np.repeat(sum, 3).reshape(image.shape)
    Image.fromarray(image2).save('res.jpg')
у меня приняли в таком виде

или ты про продукты спрашиваешь? ты пиши в соответствующей теме, а то запутаться можно

в продуктах у меня тоже на срезе ошибку выдавал, поэтому считал так
Python
1
2
3
4
5
6
7
8
9
for i in table:
    """ калории в 3 столбце"""
    max_kal = max(max_kal, i[3])
    """ сахар в 9 столбце"""
    min_sug = min(min_sug, i[9])
    """протеин в 4 столбце"""
    max_protein = max(max_protein, i[4])
    """витамин С в 20 столбце"""
    max_C = max(max_C, i[20])
0
19 / 18 / 1
Регистрация: 16.01.2020
Сообщений: 32
26.03.2020, 21:51
Я про продукты)

Добавлено через 6 минут
Ну вот ты находишь макс, а дальше как? Как в нампай массиве искать что-то?
0
8 / 8 / 0
Регистрация: 08.03.2020
Сообщений: 20
26.03.2020, 21:53
ну а потом когда нашел максимумы минимумы, то
Python
1
2
3
4
for i in table:
    """ Самый каллорийный"""
    if i[3] == max_kal:
        sam_cal = i[1]
типа такого для каждого

Добавлено через 1 минуту
Python
1
2
3
4
5
6
7
8
9
""" сахар"""
    if i[9] == min_sug and not sam_sug:
        sam_sug = i[1]
    """протеин"""
    if i[4] == max_protein and not sam_protein:
        sam_protein = i[1]
    """витамин С"""
    if i[20] == max_C:
        sam_C = i[1]
вот все остальные, а потом в такой же последовательности печатаешь
0
19 / 18 / 1
Регистрация: 16.01.2020
Сообщений: 32
26.03.2020, 22:07
Удивительно, случайным образом смог придумать простое решение. А все дело лишь в том, что код, который нам дал яли изначально неисправен. Если в строке присваивания table убрать аргумент names=True, то массив будет обычным и спокойно делается срез.
0
8 / 8 / 0
Регистрация: 08.03.2020
Сообщений: 20
26.03.2020, 22:17
у меня система проверки ругается на третий ответ. буду посмотреть

Добавлено через 2 минуты
Цитата Сообщение от WingiM Посмотреть сообщение
Удивительно, случайным образом смог придумать простое решение. А все дело лишь в том, что код, который нам дал яли изначально неисправен. Если в строке присваивания table убрать аргумент names=True, то массив будет обычным и спокойно делается срез.
Странно, мне кажется что этот параметр означает наличие заголовка в таблице, и что бы его исключить, задается этот аргумент
0
19 / 18 / 1
Регистрация: 16.01.2020
Сообщений: 32
26.03.2020, 22:25
Тем не менее, если его убрать, то спокойно делаются срезы и задача упрощается. Единственный запар возникает с поиском калорийного, тк его значение должно быть последним в словаре.
0
8 / 8 / 0
Регистрация: 08.03.2020
Сообщений: 20
26.03.2020, 22:26
Ну я же написал как его найти
Создаешь пустую переменную, перебираешь продукты, если калорийность равна максимуму записываешь в переменную.
когда пройдешь весь список, то в переменной останется именно последний продукт.
Через срезы находишь минимумы максимумы, а перебором конкретные продукты
0
11 / 10 / 1
Регистрация: 24.01.2020
Сообщений: 48
27.03.2020, 10:56
Altair56, Спасибо. Но я программу написал, но у меня тесты не проходят. Скажи пожалуйста, какие продукты выводит твоя программа.
0
11 / 10 / 1
Регистрация: 24.01.2020
Сообщений: 48
27.03.2020, 11:06
Altair56,
Миниатюры
Конвертация цветного изображения в черно-белое  
0
11 / 10 / 1
Регистрация: 24.01.2020
Сообщений: 48
27.03.2020, 11:12
Altair56, А все, разобрался. Спасибо))

Добавлено через 2 минуты
Altair56, WingiM, А вы сделали Стереопара из Библиотеки Python. Работа с графическими файлами. Я просто не понимаю, почему у меня программа не проходит. Помогите пожалуйста
0
19 / 18 / 1
Регистрация: 16.01.2020
Сообщений: 32
27.03.2020, 11:13
Вот что выдает у меня (приняло)
Миниатюры
Конвертация цветного изображения в черно-белое  
0
19 / 18 / 1
Регистрация: 16.01.2020
Сообщений: 32
27.03.2020, 11:16
Да, я тоже прикола не понимал. Я сдвигал сам red канал, проверял, вроде все сходилось
Однако система, видимо, хочет решения в упор. Я написал учителю, он тоже удивился, что не принимает и показал мне решение от самого Я.Ли.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from PIL import Image
 
 
def makeanagliph(filename, delta):
    im = Image.open(filename)
    w, h = im.size
    res = Image.new(im.mode, (w, h), (0, 0, 0))
    pxs_new = res.load()
    pxs_orig = im.load()
    for i in range(w):
        for j in range(h):
            if i < delta:
                r, g, b = pxs_orig[i, j]
                pxs_new[i, j] = 0, g, b
            else:
                g, b = pxs_orig[i, j][1:]
                r = pxs_orig[i - delta, j][0]
                pxs_new[i, j] = r, g, b
    res.save('res.jpg')
А изначально я так делал, проще в разы

Python
1
2
3
4
5
6
7
8
9
10
11
from PIL import Image
 
 
def makeanagliph(filename, delta):
    im = Image.open(filename)
    rgb = im.split()
    w, h = im.size
    part1 = rgb[0].crop((0, 0, w - delta, h))
    rgb[0].paste(part1, (delta, 0))
    im = Image.merge('RGB', rgb)
    im.save('res.jpg')
1
11 / 10 / 1
Регистрация: 24.01.2020
Сообщений: 48
27.03.2020, 11:51
WingiM, Спасибо!!! Я уж думал никогда не решу это))
0
8 / 8 / 0
Регистрация: 08.03.2020
Сообщений: 20
27.03.2020, 19:09
Да, у меня также. Извини, что не ответил, только до компа добрался
0
8 / 8 / 0
Регистрация: 08.03.2020
Сообщений: 20
29.03.2020, 18:25
Цитата Сообщение от new-programmer Посмотреть сообщение
Спасибо!!! Еще остались добрые люди!
Задачу Полезные продукты я не сделал (вообще не знаю как ее решать)
Кто нибудь заборол задание "Простая документация в дорогу"? Бред какой-то. Хоть бы писали, в чем ошибка. А так догадайся сам.
Кто-нибудь смог это сдать?
0
11 / 10 / 1
Регистрация: 24.01.2020
Сообщений: 48
03.04.2020, 17:45
Altair56, Нет, я не решил. Вообще это самое ужасное задание

Добавлено через 37 секунд
Кто-нибудь решил Правильные многоугольники из ООП. Наследование. Часть №2?
0
8 / 8 / 0
Регистрация: 08.03.2020
Сообщений: 20
03.04.2020, 17:57
Цитата Сообщение от new-programmer Посмотреть сообщение
Altair56, Нет, я не решил. Вообще это самое ужасное задание

Добавлено через 37 секунд
Кто-нибудь решил Правильные многоугольники из ООП. Наследование. Часть №2?
У меня этот урок еще не открыт
0
19 / 18 / 1
Регистрация: 16.01.2020
Сообщений: 32
03.04.2020, 20:06
В работе с документами я сделал только 2 задания первых и вообще забил. Пытался диаграмму сделать, но так и не понял как делать легенду (переименовывать куски).
А правильные многоугольники с ООП - это вообще отдельный ад, надо придумывать алгоритмы рисования многоугольников и понять, как их еще и вертеть, сложно.
Знаю, что окружность можно легко построить через ImageDraw.Draw().arc(), где в качестве угла выходящего взять 0 а исходящего 360.

Добавлено через 1 минуту
А кстати, вы делаете олимпиаду Яндекс Лицея? Там сейчас довольно интересная задача.
0
11 / 10 / 1
Регистрация: 24.01.2020
Сообщений: 48
03.04.2020, 21:03
WingiM, А я с диаграммой сделал (пришлось в документации покопаться)

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
import xlsxwriter
import sys
data = list(map(str.strip, sys.stdin))
workbook = xlsxwriter.Workbook('res.xlsx')
worksheet = workbook.add_worksheet()
data = [tuple(e.split()) for e in data]
for row, (item, price) in enumerate(data):
    worksheet.write(row, 0, item)
    worksheet.write(row, 1, int(price))
chart = workbook.add_chart({'type': 'pie'})
chart.add_series({'values': '=Sheet1!B1:B5', 'categories': '=Sheet1!A1:A5'})
worksheet.insert_chart('C3', chart)
workbook.close()

Ты сделал задачу mapPainter из ООП. Наследование. Часть №2 ? А то у меня почему-то не проходит
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.04.2020, 21:03

Преобразование цветного изображения в черно-белое
Помогите пожалуйста написать программу, выполняющую преобразование цветного изображения в черно-белое, при этом в задаче требуют при...

Перевод цветного изображения в черно-белое
Нуждаюсь в помощи для реализации такой задачи: визуализировать изображение в оттенки серого. Qt для меня, как темный лес:sorry: и я совсем...

Преобразование изображения в чёрно-белое
Доброго времени суток. У меня такая проблемка. Нужно чтобы при нажатии на кнопку выбранная картинка становилась чёрно белой. Почитал что...

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

Преобразование изображения градаций яркости в черно-белое (монохромное)
Всем доброго дня! Уже который день мучаюсь с одним заданием по лабораторной работе. Задание след.: Преобразовать изображение...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru