Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Поможете написать программу?

Дмитрий Попов Знаток (287), на голосовании 1 год назад
Задача 3. Цветной в чёрно-белый
Для превращения компьютерного монитора в телевизор потребуется использование специального устройства. Одним из вариантов является ТВ-тюнер. Он считается самостоятельным телевизором, которому необходим экран. Монитор будет выступать в его роли при помощи проводного соединения. Преимущества есть  можно остановить и сделать скан кадра или же записать фрагмент трансляции. Представьте, что у нас имеется матрица пикселей скана кадра трансляции. В матрице закодированы числами от 0 до 255 яркости. Требуется написать программу, которая преобразует изображение в черно-белый формат по следующему алгоритму:
1. вычислить среднюю яркость пикселей по всему рисунку
2. все пиксели, яркость которых меньше средней, сделать черными (записать код 0), а остальные -– белыми (код 255)

Формат ввода
В первой строке записаны через пробел размеры матрицы: количество строк n и количество столбцов m (1 ≤ n , m ≤ 100). В следующих n строках записаны строки матрицы, в каждой – по m натуральных чисел в диапазоне от 0 до 255, разделённых пробелами.

Формат вывода
В первой строке выводится вещественное число  среднее значение яркости для заданного рисунка с точностью 4 знака в дробной части, в следующих n строчках выводится матрица, соответствующая чёрно-белому изображению.

входные данные
4 4
12 14 67 45
32 87 45 63
69 45 14 11
40 12 35 15

выходные данные
37.8750
0 0 255 255
0 255 255 255
255 255 0 0
255 0 0 0
Голосование за лучший ответ
Ярослав Черенков Ученик (220) 1 год назад
Я не кодер но нейрона сделала код на пайтоне: ```python
n, m = map(int, input().split())

matrix = []
for i in range(n):
matrix.append(list(map(int, input().split())))

avg_brightness = sum(sum(row) for row in matrix) / (n * m)
print('%.4f' % avg_brightness)

for row in matrix:
for i, val in enumerate(row):
if val < avg_brightness:
row[i] = 0
else:
row[i] = 255

for row in matrix:
print(*row)```

Удали ```python в начале и в конце ```
Celtic HammerМудрец (18061) 1 год назад
Твоя "нейрона" как всегда порет лютую чушь. Которая к тому же еще и не работает
Ярослав Черенков Ученик (220) не для тебя старался
Celtic HammerМудрец (18061) 1 год назад
Точнее, это может и заработает, но чушью быть не перестанет
Celtic Hammer Мудрец (18061) 1 год назад
 m = [[12, 14, 67, 45],  
[32, 87, 45, 63],
[69, 45, 14, 11],
[40, 12, 35, 15]]
s = sum(m,[])
n = sum(s)/len(s)
for i in m:
print(*list(map(lambda x: 0 if x < n else 255, i)))
Похожие вопросы