Для установки нажмите кнопочку Установить расширение. И это всё.

Исходный код расширения WIKI 2 регулярно проверяется специалистами Mozilla Foundation, Google и Apple. Вы также можете это сделать в любой момент.

4,5
Келли Слэйтон
Мои поздравления с отличным проектом... что за великолепная идея!
Александр Григорьевский
Я использую WIKI 2 каждый день
и почти забыл как выглядит оригинальная Википедия.
Статистика
На русском, статей
Улучшено за 24 ч.
Добавлено за 24 ч.
Альтернативы
Недавние
Show all languages
Что мы делаем. Каждая страница проходит через несколько сотен совершенствующих техник. Совершенно та же Википедия. Только лучше.
.
Лео
Ньютон
Яркие
Мягкие

Гистограмма (фотография)

Из Википедии — свободной энциклопедии

Изображение и гистограмма в программе GIMP.

Гистогра́ммафотографии) — это график статистического распределения элементов цифрового изображения с различной яркостью, в котором по горизонтальной оси представлена яркость, а по вертикали — относительное число пикселей с конкретным значением яркости.

Изучив гистограмму, можно получить общее представление о правильности экспозиции, контрасте и цветовом насыщении снимка, оценить требуемую коррекцию как при съёмке (изменение экспозиции, цветового баланса, освещения либо композиции снимка), так и при последующей обработке.

Обычно на экране цифрового фотоаппарата показывается лишь гистограмма светлоты (исключения составляют дорогостоящие зеркальные камеры), а гистограмма для всех цветовых каналов (см. Цветоделение) доступна уже на компьютере, в приложениях для обработки растровой графики.

Основные сведения

Гистогра́мма изображе́ния (иногда: график уровней или просто уровни) — гистограмма уровней насыщенности изображения (суммарная, или разделённая по цветовым каналам).

Гистограмма изображения позволяет оценить количество и разнообразие оттенков изображения, а также общий уровень яркости изображения. Например, недоэкспонированное изображение будет иметь пик в области малых цветов и иметь спад (или полное отсутствие уровней) в области ярких цветов, переэкспонированное — наоборот. Изображение с недостаточным динамическим диапазоном будет иметь узкий всплеск яркостей. Академическое представление идеальной формы гистограммы изображения — пологая гауссиана, в которой мало совсем тёмных и совсем ярких цветов, а по мере приближения к средним цветам, их количество увеличивается. Справедливо для съёмок при достаточном заполняющем освещении (влияющем на всю сцену) и отсутствии источников света в кадре.

В общем случае гистограмма изображения не описывает художественных качеств изображения (например, съёмка силуэта в контровом свете будет на гистограмме выглядеть как недосвеченное (или пересвеченное) изображение), но в большинстве случаев позволяет ориентироваться в «направлении коррекции» изображения (если таковая коррекция требуется).

Редактирование уровней

Многие фоторедакторы (напр. Adobe Photoshop, GIMP) и программы проявки Raw-файлов (UFRAW, PhotoOne, CaptureNX) позволяют осуществлять редактирование уровней изображения. Оно может производиться следующими методами:

  • Сопоставлением пяти параметров: начального и конечного диапазона начального и итоговых изображений и показателем гамма-кривой (в Photoshop — панель Levels).
  • Заданием кривой функции соответствия точек начальной и конечной гистограмм изображения (функция задаётся чаще всего с помощью точек, через которых производится аппроксимация функции, обычно сплайнами) (в Photoshop — панель Curves).
  • Заданием набора предустановок, осуществляющих ту или иную коррекцию.
  • В автоматическом режиме (программа пытается добиться максимума по одному из параметров, например, по максимизации площади кривой)

Алгоритм построения

Строим массив, заполняем нулями. Обычно массив [0..255]

Цикл, для каждого пиксела:

Выделяем нужный цветовой канал или находим яркость по формуле. Пиксел -> значение
Полученное значение должно укладываться в диапазон индексов массива, например [0..255].
Увеличиваем значение элемента массив[значение] на 1.

Конец цикла.

Полученный массив и представляет собой гистограмму, элементы массива — означают высоты столбиков.

Реализация на Python:

# coding:utf
"""Пользователь вводит имя файла с изображением,
гистограммы которого нужно построить.
Строятся гистограммы по каждому из каналов, по яркости(Luminance), и RGB гистограмма.
Программа строит гистограммы и сохраняет в текущей папке.
Полученные гистограммы практически не отличаются от гистограмм,
полученных в коммерческих программах
Для работы программы необходим Python 2.7 с установленной PIL"""
from PIL import Image, ImageDraw # модули из PIL

def lum(c): #цвет пиксела RGB -> значение яркости
	#формула, которая обычно используется для определения яркости 
	return int(0.3*c[0] + 0.59*c[1] + 0.11*c[2])  
def r(c): #цвет пиксела RGB -> значение R
	return c[0]
def g(c): #цвет пиксела RGB -> значение G
	return c[1]
def b(c): #цвет пиксела RGB -> значение B
	return c[2]
def drawhist(hname, H, harr):
	""" Рисуем диаграмму, сохраняем в файл в текущую папку
	hname - имя файла
	H - высота рисунка
	harr - массив с высотами столбиков в гистограмме
	"""
	W = len(harr) #кол-во элементов массива
	hist = Image.new("RGB", (W, H), "white") #создаем рисунок в памяти
	draw = ImageDraw.Draw(hist) #объект для рисования на рисунке
	maxx = float(max(harr)) #высота самого высокого столбика
	if maxx == 0: #столбики равны 0
		draw.rectangle(((0, 0), (W, H)), fill="black")
	else:
		for i in range(W):
			draw.line(((i, H),(i, H-harr[i]/maxx*H)), fill="black") #рисуем столбики
	del draw #удаляем объект
	hist.save(hname) #сохраняем рисунок в файл
# список с функциями и префиксами названий файлов
fnlist = [(lum, "luminosity_"), (r, "r_channel_"), (g, "g_channel_"), (b, "b_channel_")]
fname = input("input file name: ") #Ввод имени файла, гистограмму кот. нужно построить
im = Image.open(fname) #открываем файл
# получаем список вида [(n1, c1), (n2, c2), ...], где
# c - цвет пиксела в RGB
# n - количество пикселов, имеющих данный цвет
clrs = im.getcolors(im.size[0]*im.size[1])
# ширина, высота гистограммы.
# Ширину менять не стоит, т.к. все ф-и отображаются в [0..255]
W, H = 256, 100
for fn, hname in fnlist: #перебираем все функции
	harr = [0 for i in range(W)] #создаем массив [0, 0, 0, ...] длины W
	for n, c in clrs: #перебираем список созданный выше
		index = fn(c) #fn - отображение цвета в яркость или выделение цветового канала
		#индексы элементов массива показывают значения яркости и прочего. Диапазон [0..255]
		#значения элементов массива = количество пикселов с опред. значением яркости и т.д.
		harr[index] += n 
	drawhist(hname + "hist.png", H, harr) #рисуем гистограмму
# Нарисовали гистограммы по яркости и каналам, теперь
# Рисуем гистограмму RGB
rharr = [0 for i in range(W)]
gharr = list(rharr)
bharr = list(rharr)
for n, c in clrs:
	rharr[r(c)] += n
	gharr[g(c)] += n
	bharr[b(c)] += n
harr = [(rharr[i] + gharr[i] + bharr[i])/3 for i in range(W)]
drawhist("RGB_hist.png", H, harr)

Использование в фототехнике

Часть фотоаппаратов позволяет просматривать гистограмму изображения для отснятых снимков (а некоторые модели с контрастной фокусировкой — и во время фокусировки).

Ссылки

Эта страница в последний раз была отредактирована 30 мая 2022 в 15:43.
Как только страница обновилась в Википедии она обновляется в Вики 2.
Обычно почти сразу, изредка в течении часа.
Основа этой страницы находится в Википедии. Текст доступен по лицензии CC BY-SA 3.0 Unported License. Нетекстовые медиаданные доступны под собственными лицензиями. Wikipedia® — зарегистрированный товарный знак организации Wikimedia Foundation, Inc. WIKI 2 является независимой компанией и не аффилирована с Фондом Викимедиа (Wikimedia Foundation).