2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Среднее по модулю
Сообщение25.05.2020, 10:41 


20/12/14
148
Есть система вычетов. Пусть те же часы: $\lbrace 0,1,2,3,4,5,6,7,8,9,10,11\rbrace$
Как правильно найти среднее арифметическое нескольких часов, скажем $10, 11, 0, 1$?
Должно получиться $11.5$ , но я не понимаю, как это кратко и просто получить

 Профиль  
                  
 
 Re: Среднее по модулю
Сообщение25.05.2020, 11:04 
Заслуженный участник


27/04/09
28128
Правильно в отсутствии дополнительных пожеланий о смысле такого среднего (какие выводы его значение должно позволять делать) — никак. Один из способов сделать неправильно — расставить $[0], \ldots, [11]$ равномерно на окружности, взять барицентр интересующих точек и спроецировать его назад на окружность проходящим через него радиусом. Но может статься, что он будет точно в центре окружности, и тогда результат не определён. Но вот в вашем случае $11{,}5$ с таким вариантом действительно получится.

Вместо этого можно считать $[0], \ldots, [11]$ в точности единичными векторами, и тогда любые линейные комбинации будут прекрасно определены, в том числе выпуклые и среднее арифметическое будут лежать в единичном круге. Мало того, именно для случаев $\mathbb Z_n$ весьма естественно отображение не просто в векторы, а в комплексные числа $[m]_{{}\bmod n}\mapsto e^{2\pi i m/n}$.

 Профиль  
                  
 
 Re: Среднее по модулю
Сообщение25.05.2020, 11:19 


20/12/14
148
arseniiv, спасибо за идею с векторами!

Что касается смысла среднего, я был не прав, что поставил вопрос иллюстративно.
Настоящая задача такая.

Речь идет о параметре цветности HUE, приведенному в интервал $[0.0, 1.0]$, так что $0\equiv1$

И для нескольких цветов нужно найти их усреднение, удовлетворяющее интуитивным требованиям.
Думаю, что вектора как раз подойдут.

 Профиль  
                  
 
 Re: Среднее по модулю
Сообщение25.05.2020, 11:30 


05/09/16
12064
denny в сообщении #1464940 писал(а):
И для нескольких цветов нужно найти их усреднение, удовлетворяющее интуитивным требованиям.
Думаю, что вектора как раз подойдут.

А...
Не, не думаю. Лучше усреднять что-то более-мене линейное, какое-то из RGB например.
Цвет представляется тремя числами, если вы два откидываете и оставляете одно (хоть бы и как комбинацию из трёх), ничего путного со сложением не выйдет.

Ну то есть. Есть у вас допустим три цвета -- темно-красный, ярко-зеленый и какой-то бледно-синий. Вы часть "темно-", "ярко-" и "бледно-" откидываете и складываете красный, зеленый и синий, думая что результатом сложения будет какой-то серый. Так ведь не будет :)

Допустим у вас яркости все цветов одинаковые (одно из трех чисел зафиксировалось). Но и тогда, будут разные насыщенности, то есть останется два числа.

И только если у вас два числа зафиксировано -- скажем яркость и насыщенность всех слагаемых цветов, и остался только тон, можно будет говорить о каком-то сложении.

Но в то, что получится хоть как-то верно в смысле восприятия -- что-то не верится.

 Профиль  
                  
 
 Re: Среднее по модулю
Сообщение25.05.2020, 11:48 


20/12/14
148
wrest Да, веские соображения, надо попробовать.
Ну, а если использовать не HUE, а GrayScale, и $[0,1]$ как оттенки серого?

 Профиль  
                  
 
 Re: Среднее по модулю
Сообщение25.05.2020, 11:58 


05/09/16
12064
denny в сообщении #1464951 писал(а):
Ну, а если использовать не HUE, а GrayScale, и $[0,1]$ как оттенки серого?

В этом случае же у вас ноль на единицу не замыкается?
Математически можете делать что угодно :)
Вопрос что будете делать с результатами вчислений.
Зайдите с физической стороны. Вот есть у вас 50 оттенков серого. Если между глазом и этими оттенками поставите матовый экран, то они усреднятся, более-менее линейно, то есть глаз будет видеть на матовом экране какое-то среднее значение...

-- 25.05.2020, 12:11 --

denny
Вы видели картинки с "локусом"? Типа таких:
Изображение
Вот в этих координатах ($xy$), если у вас есть два цвета внутри "локуса", то результирующий (их сложения на матовом экране) будет посредине между двумя. На этой линейности и основаны принципы работы (в смысле формирования цвета) мониторов. У монитора есть три основных цвета (условно красный-сини-зеленый), на этом локусе это три точки. Вот все что внутри треугольника, образуемого этими точками, может отобразить монитор, а то что вне -- не может. В частности, для т.н. "пространства sRGB" получается такая картинка:
Изображение
Точками отмечены "правильные" цвета sRGB "люминофоров", и все что внутри треугольника называется "цветовой охват" -- цвета которые может отобразить монитор с такими "люминофорами".

 Профиль  
                  
 
 Re: Среднее по модулю
Сообщение25.05.2020, 12:33 
Заслуженный участник


27/04/09
28128
wrest в сообщении #1464945 писал(а):
Не, не думаю. Лучше усреднять что-то более-мене линейное, какое-то из RGB например.
Если даже говорить о ровно sRGB, их как раз есть две: линейная и нелинейная (туда применена гамма). Кажется, софт часто имеет дело с нелинейными значениями.

denny в сообщении #1464940 писал(а):
Речь идет о параметре цветности HUE, приведенному в интервал $[0.0, 1.0]$, так что $0\equiv1$
А, ну тут вам сразу стоит знать, что если вы захотите использовать HSB/HSV/HSL — это колориметрически никакущие представления цвета, с ними ничего нормального вычислить нельзя (ну то есть можно нормальные формулы выразить для sRGB и оттуда туда, но это только увеличит количество вычислений, ничего не упростится), лучше для этого использовать что-то типа CIELCh (цилиндрические координаты для CIELab) или на крайний случай CIELChᵤᵥ (цилиндрические координаты для CIELuv).

Плюс усреднение координат даже в случае CIELab будет не всегда соответствовать тому, что могли ожидать от цветов (правда конкретных примеров не помню), потому что пространство цветов само по себе такой структурой вроде не наделено. Мы можем отмечать цвета на более-менее одинаковых расстояниях от данного, в том числе по некоторым отдельным свойствам типа светлоты или оттенка, но это вроде и всё. Так что скорее всего стоит выбрать для экспериментов CIELuv — и считать быстрее, и вряд ли бо́льшая точность что-то улучшит.

wrest в сообщении #1464945 писал(а):
И только если у вас два числа зафиксировано -- скажем яркость и насыщенность всех слагаемых цветов, и остался только тон, можно будет говорить о каком-то сложении.
И тогда как раз мы наступим на грабли с проекцией на окружность: по-моему у людей нет никакого общего ощущения среднего нескольких цветов, отличающихся лишь оттенками. Скорее всего разные назовут разные результаты (и будут недовольны другими?..).

denny в сообщении #1464951 писал(а):
Ну, а если использовать не HUE, а GrayScale, и $[0,1]$ как оттенки серого?
«Grayscale» это не цветовое пространство. Вы можете иметь в виду светлоту, просто среднее значений sRGB и многие другие величины, в каждом случае будет своя ерунда. Для светлоты (lightness, не luminance) среднее арифметическое должно давать ожидаемые результаты (она специально так определена), но чем дальше какая-то величина, и особенно если она не является функцией яркости (в фотометрическом смысле, luminance), тем дальше будут результаты простого сложения чему-то перцептуальному соответствовать.

wrest в сообщении #1464955 писал(а):
Если между глазом и этими оттенками поставите матовый экран, то они усреднятся, более-менее линейно, то есть глаз будет видеть на матовом экране какое-то среднее значение...
Кстати да, если их подобрать аккуратно, то глаз очень удивится, если ему намекнуть на усреднение, потому что как раз та самая нелинейность светлоты относительно яркости.

-- Пн май 25, 2020 14:35:40 --

Вот эта страница может показать всю глубину бездны: https://en.wikipedia.org/wiki/Color_difference, но притом это только малая часть.

 Профиль  
                  
 
 Re: Среднее по модулю
Сообщение25.05.2020, 12:52 


05/09/16
12064
arseniiv в сообщении #1464960 писал(а):
И тогда как раз мы наступим на грабли с проекцией на окружность: по-моему у людей нет никакого общего ощущения среднего нескольких цветов, отличающихся лишь оттенками. Скорее всего разные назовут разные результаты (и будут недовольны другими?..).

У меня в голове крепко засело, что восприятие цвета от человека к человеку не отличается с высокой степенью точности. Ясно, что есть исключения типа различных дальтонизмов или наоборот тетрахроматизма, а также всякие "механические" проблемы типа пожелтения хрусталика, но спектральные чувствительности опсинов одинаковые и дают одинаковые стимулы в мозг. Ну может, ещё есть приобритенные различия типа эскимосы видят только белый снег и привыкли, а бушмены желтый песок и тоже привыкли, и тут может быть разница. У людей могут быть проблемы с описанием цвета словами (и в этом проблема "физичности" цвета -- он не является физической величиной), но если людям показать два цвета рядом (не слишком отличающихся, конечно, т.е. с малой "дельта Е": "цветоразличение" достигается тренировками) , то все скажут одно и то же в смысле "совпадает" или "отличается". Из этого и построили "стандартного наблюдателя" в 1931 году и до сих пор пользуются...

Вопросы линеаризации для целей вычисления безусловно сложные. Особенно сложности проявились, когда все кинулись сужать/сжимать динамический диапазон изображений относительно оригинала называя это прямо противоположно -- "HDR". Поэтому я писал там выше в постах о "более-менее линейности".

 Профиль  
                  
 
 Re: Среднее по модулю
Сообщение25.05.2020, 13:40 
Заслуженный участник


27/04/09
28128
wrest в сообщении #1464964 писал(а):
У меня в голове крепко засело, что восприятие цвета от человека к человеку не отличается с высокой степенью точности.
Одно дело восприятие цвета, а другое дело — нахождение среднего цвета по нескольким достаточно далёким. Грубо говоря, среднечеловеческое пространство цветов — это метрическое пространство, и можно для удобства принять его даже римановым многообразием (трёхмерным), но это всё равно не даст нам находить единственным образом подобные средние. [UPD: можно сказать, из-за кривизны; будь оно двумерным, было бы значительно проще, ну и с одномерным чёрно-белым как раз всё очень просто: кривизны нет, можно найти линейные аффинные координаты типа L из CIELab.] По крайней мере это покажет, что естественного способа, до которого могла дойти эволюция нашего зрения (на эстетику в общем-то плевавшая), нет, и она вполне могла остановиться на каком-то совершенно странном и, главнее, таком, который надо уж точно сначала экспериментально исследовать. И наверно исследования были, но я не знаю, у меня по колориметрии ссылок практически нет.

-- Пн май 25, 2020 15:46:12 --

(Оффтоп)

wrest в сообщении #1464964 писал(а):
Особенно сложности проявились, когда все кинулись сужать/сжимать динамический диапазон изображений относительно оригинала называя это прямо противоположно -- "HDR".
Да, странно, что «псевдо-HDR» результаты, укладывающиеся в стандартный динамический диапазон, так зовут. На деле ведь HDR — это в худшем случае сырой набор снимков с разной экспозицией, а в лучшем изображение в формате, позволяющем этот самый динамический диапазон (хотя чтобы показать его на средненьком экране обычному пользователю, видимо придётся делать то самое «псевдо-HDR», но успокаивает, что данные будут на месте и их можно будет обрабатывать как душе угодно, а не только так). С другой стороны нормальное употребление тоже пока есть, например HDR textures для трёхмерной графики (например для скайбоксов — для них я это только и встречал, но могут быть текстуры и ещё для чего-то, мало ли).

 Профиль  
                  
 
 Re: Среднее по модулю
Сообщение25.05.2020, 14:42 


05/09/16
12064
arseniiv в сообщении #1464968 писал(а):
Одно дело восприятие цвета, а другое дело — нахождение среднего цвета по нескольким достаточно далёким.

Здесь нужны поточнее формулировки. Средний цвет между тремя какими-то RGB $\{255,0,0\}$ ; $\{0,255,0\}$ и $\{0,0,255\}$ -- очевидно серый $\{80,80,80\}$ (вопросы гаммы пока оставим в стороне) для всех людей. При этом суммируемые цвета весьма далеки друг от друга (макимально далеки для воспроизводящего устройства).

Или вы говорите о том, что если предъявить три цвета и попросить описать словами или показать пальцем ткнув в образцы, какой будет средний, то получим столько ответов сколько людей? Ну так -- да. В уме обычный человек не может складывать два различных ощущения цвета в какое-то третье, тут нужен опыт.

-- 25.05.2020, 14:50 --

arseniiv в сообщении #1464968 писал(а):
но это всё равно не даст нам находить единственным образом подобные средние

Тут опять же вопрос что значит "единственным". Метамеризм же не рассматриваем, зачем он нам.
Числа LMS же (а это и есть "цвет", по сути, если опять же не углубляться в дебри адаптации или действия "веществ" и т.п.) просто физически образуются единственным образом в ответ на любой спектр (являющийся суммой спектров суммируемых цветов -- хоть далеки они друг от друга хоть близки).

Давайте я все-таки сделаю пояснение что я имею в виду под средним цветом.
Берем один цвет, светим на матовый экран (например -- в виде шара), смотрим. Затем берем второй цвет и тоже светим (а первый выключаем).
Это два исходных цвета.
Теперь включаем оба и отходим, чтобы яркость упала в два раза. Получаем средний из двух.
Подходим и получаем просто сумму двух. Просто как сумму откликов колбочек на оба. :mrgreen:

 Профиль  
                  
 
 Re: Среднее по модулю
Сообщение25.05.2020, 17:34 


20/12/14
148
Хоспади, какая обширная тема оказалась...
Но мне это нужно для модельной математической задачки.
Поэтому остановлюсь на среднем по векторам RGB.
И почитаю про lightness, если потребуется чисто скалярный вариант.

 Профиль  
                  
 
 Re: Среднее по модулю
Сообщение25.05.2020, 18:22 


05/09/16
12064
denny в сообщении #1465007 писал(а):
Но мне это нужно для модельной математической задачки.

Ну если вы уберёте вот это:
denny в сообщении #1464940 писал(а):
И для нескольких цветов нужно найти их усреднение, удовлетворяющее интуитивным требованиям.
То складывайте и умножайте как угодно и что угодно, бумага стерпит :mrgreen:

(Оффтоп)

Сделать хотел грозу, а получил козу,
Розовую козу с желтою полосой.
Вместо хвоста нога, а на ноге рога,
Я не хотел бы вновь встретиться с той козой.

Только с вычитанием поосторожней, можно ненароком в отрицательные числа залезть.

 Профиль  
                  
 
 Re: Среднее по модулю
Сообщение25.05.2020, 20:24 
Заслуженный участник


27/04/09
28128
wrest в сообщении #1464989 писал(а):
Средний цвет между тремя какими-то RGB $\{255,0,0\}$ ; $\{0,255,0\}$ и $\{0,0,255\}$ -- очевидно серый $\{80,80,80\}$ (вопросы гаммы пока оставим в стороне) для всех людей.
Мы точно одинаково понимаем «средний»? [UPD: ага, прочитал ниже, ответил тоже ниже.]

denny, а вы кстати как понимаете средний цвет? А то вдруг достаточно метода матового экрана wrest, тогда если предположить, что sRGB-координаты в нашем софте линейные, то действительно просто берём средние покоординатно, а если нелинейные, то линеаризуем стандартно (можно найти способ по чему-то типа «nonlinear sRGB gamma», точнее два способа — подешевле и подороже, и вроде иногда до сих пор используется и первый, но вообще разницы будет, если не нужна особая точность, не так уж много).

wrest в сообщении #1464989 писал(а):
Или вы говорите о том, что если предъявить три цвета и попросить описать словами или показать пальцем ткнув в образцы, какой будет средний, то получим столько ответов сколько людей? Ну так -- да. В уме обычный человек не может складывать два различных ощущения цвета в какое-то третье, тут нужен опыт.
Я не только про опыт, я предполагаю, что такой опыт может сформироваться существенно разный (дающий разные ответы). Вот давайте возьмём в качестве оффтопного исследования полусферу (не сферу, чтобы избежать некоторых проблем на пустом месте). Как по-вашему найти барицентр трёх произвольных точек этой полусферы? (как точку на ней). Впрочем нет, полусфера плохой вариант, она выдерживает способ из моего первого ответа здесь с окружностью. А вот если взять более хитрый кусок поверхности, может не выйти выбрать единственную точку на наименьшем (внешнем, при погружении этой поверхности в евклидово пространство) расстоянии, или она будет очень странно располжена с точки зрения внутренней метрики, или наконец погружений может быть много разных (я тут не помню, какие есть гарантии для разных многообразий насчёт единственности).

wrest в сообщении #1464989 писал(а):
Давайте я все-таки сделаю пояснение что я имею в виду под средним цветом.
Берем один цвет, светим на матовый экран (например -- в виде шара), смотрим. Затем берем второй цвет и тоже светим (а первый выключаем).
Это два исходных цвета.
Теперь включаем оба и отходим, чтобы яркость упала в два раза. Получаем средний из двух.
Ну это может быть не тем, что хотел ТС. Это явно не всегда близко к чему-то с требованиями к перцептуальности (скажем, цветовые расстояния до двух тех цветов от результата будут обычно разными).

denny в сообщении #1465007 писал(а):
Но мне это нужно для модельной математической задачки.
Ага, вы наверно визуализируете какие-нибудь величины? Тогда вам может быть полезнее брать не среднее двух цветов, а вообще подбирать их как-то по большему числу параметров. Тогда CIELuv самое то — просто пишется код и результаты довольно ровные на глаз, если сравнивать с HSL каким-нибудь. Конечно если монитор достаточно правильно отображает всё (близок к откалиброванному состоянию, типа там цветовой профиль правильно поставлен и сам не совсем уж дешёвый и т. п.). Я использовал нечто подобное, но слепленное на коленке (повезло угадать некоторые параметры) для визуализации комплекснозначных функций пару раз (пытался решать уравнение Шрёдингера на квадратной сетке, но неправильно, а потом лень было переделывать), выглядело приятно.

-- Пн май 25, 2020 22:27:51 --

arseniiv в сообщении #1465040 писал(а):
цветовые расстояния до двух тех цветов от результата будут обычно разными
Вот я балда кстати. Вот это может вполне быть критерием среднести цвета для случая, когда колориметрия важна. Только это условие неконструктивное, вычислять такой цвет будет не очень просто, и если он не единственный, то численные методы могут при малых изменениях исходных цветов разрывно менять результат. Но условие хотя бы красивое, его можно условно повесить в условной рамке на условную стену.

 Профиль  
                  
 
 Re: Среднее по модулю
Сообщение25.05.2020, 21:00 


05/09/16
12064
arseniiv в сообщении #1465040 писал(а):
Ну это может быть не тем, что хотел ТС. Это явно не всегда близко к чему-то с требованиями к перцептуальности

Это ващето прямой опыт по усреднению цветов, более перцептуального и не придумать :mrgreen:
arseniiv в сообщении #1465040 писал(а):
Только это условие неконструктивное, вычислять такой цвет будет не очень просто, и если он не единственный, то численные методы могут при малых изменениях исходных цветов разрывно менять результат.
Если мы в LMS, то складывается линейно-покомпонентно, а значит и делить пополам можно. В "среднем" диапазоне, то есть не в подвале где негры воруют уголь и не в горах выше уровня снега в полдень при ясном небе, малые изменения исходных цветов (в смысле дельта Е) должны давать и малое изменение их среднего (суммы).

 Профиль  
                  
 
 Re: Среднее по модулю
Сообщение25.05.2020, 22:58 
Заслуженный участник


27/04/09
28128
wrest в сообщении #1465045 писал(а):
Это ващето прямой опыт по усреднению цветов, более перцептуального и не придумать :mrgreen:
Мы наверно по-разному понимаем «перцептуальный». Вы же в курсе, что характеристики (наверно все интересные) цвета нелинейно зависят от XYZ (если говорить о базе) и потому и от LMS (потому что линейная зависимость в рамках модели, где LMS используют вообще; как мне казалось). Если мы возьмём CIELab, моделирующую как раз «выпрямление» многообразия цветов, то там цвет источника $C$ с арифметическим средним спектров источников $A, B$ не будет как-то одинаково расположен относительно цветов $A, B$. Уж явно не обязательно будет от них на равном расстоянии в смысле $\sqrt{\Delta L^*^2 + \Delta a^*^2 + \Delta b^*^2}$ (и тем более — более точных выражений для расстояния). И я не говорю, что опыт чем-то плохой, ведь можно его чуть модифицировать — дать испытуемому подкручивать вклады $A, B$ и пытаться собрать статистику о том, какой цвет выбирали средним между $A, B$ (подаваемыми на какие-то два матовых экрана рядом с экраном для смеси). Но только подкручивание позволит что-то сказать интересное о восприятии, а без него можно будет получить только скучные «нет, мне не кажется, что это близко к среднему цвету, оно даже по светлоте скачет от $A$ к $C$ к $B$ совсем неодинаково» (кроме случаев, когда $A, B$ достаточно близки, что почти неразличимы друг с другом, а уж тем более в парах с $C$).

wrest в сообщении #1465045 писал(а):
Если мы в LMS, то складывается линейно-покомпонентно, а значит и делить пополам можно. В "среднем" диапазоне, то есть не в подвале где негры воруют уголь и не в горах выше уровня снега в полдень при ясном небе
Я не припомню, чтобы во-первых LMS как-то специфически была связана с этим (XYZ ничем не хуже), и что во-вторых зрение хоть на каком-то диапазоне освещённостей, при котором всё не выглядит как примерно одинаковое в тумане, было линейным [по восприятию светлоты в зависимости от фотометрической яркости, например]. Уж тем более когда мы говорим про оттенок, это существенно нелинейная относительно LMS/XYZ/xy штука, ну и хрома потому тоже (как нелинейны две цилиндрические координаты кроме одной, и то они цилиндрические только в уже нелинейном CIELab). Короче кто-то из нас смешивает немного сущности.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group