powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Наложение серии изображений
166 сообщений из 166, показаны все 7 страниц
Наложение серии изображений
    #39882505
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня есть набор фотографий, сделанных с определенным интервалом в течение суток (например каждые 5 минут, всего 288 фотографий).
Мне нужно сделать из них что-то вроде фотографии со сверхдлинной выдержкой, на которой неподвижные объекты будут отображены почти нормально, а движущиеся объекты будут малозаметны или незаметны. Для реализации я предполагаю взять изначально черный фон, а затем последовательно наложить на него все 288 фотографий серии, с прозрачностью примерно 0,3472% каждая. Но такая реализация будет генерировать очень большую вычислительную нагрузку на сервер.
Я бы хотел не накладывать все 288 фотографий каждый раз, а при каждой итерации накладывать только текущую фотографию. Чем-то нужное мне поведение похоже на вычисление скользящего среднего — будь это числа, я бы между вызовами просто суммировал бы значения рядов и считал количество рядов, а для получения среднего значения просто бы делил текущую сумму на текущее количество.
Но к изображениям такой подход не применить, у них конечная разрядность для каждого пиксела.
Как черновой вариант я попробую на каждой итерации «затемнять» итоговое изображение на 0,3472%, а затем накладывать на него текущее изображение с прозрачностью 0,3472%. Теоретически следы суточной давностью полностью сойдут на нет и должно получится что-то более-менее похожее на сверхдолгую выдержку.
Но может быть есть другие способы решения такой задачи?
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39882507
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Но к изображениям такой подход не применить, у них конечная разрядность для каждого пиксела.Вполне можно применить. Можно увеличить разрядность целых чисел для каждого субпикселя или использовать тип с плавающей запятой.
Alibek B.следы суточной давностью полностью сойдут на нетОни не будут никак отличаться от следов полусуточной или получасовой давности.
Сходить на нет они будут если использовать взвешенное среднее с разными весами, чем старее картинка, тем ниже вес. Впрочем, нужно ли это в данной задаче - неизвестно, т.к. неизвестна сама задача.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39882520
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если от 24х битного цвета (RGB 8:8:8) перейти к 48 битному то и скользящее среднее будет работать.
И точность будет абсолютная. Пикселы будут просто счетчиками. Головная картинка - прибавляет.
Хвосотвая - вычитает.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39882538
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может я что-то не понял.
Если перейти на 48-битную глубину цвета, то разрядности хватит только на 256 сложений, на 288 уже не хватит.
А про использование float я не понял. Это в каком формате файлов такое возможно? Или речь о том, чтобы не использовать графические файлы, а сохранять значения пикселов в своем файле данных?
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39882546
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не хватит только если все картинки в выборке будут заполнены системным белым цветом к примеру. Причем в одной координате.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39882573
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть предлагается просто суммировать значения, то есть new = old+current, а не new = old + 256*i*current?
По-моему это неверно и будет искажать итоговое изображение, нарушать баланс цветов.
Но даже если так сделать, то переполнение будет событием высокой вероятности.
Во-первых это будет OSD (наложенные на кадр дата/время, обычно белого цвета).
Во-вторых, летом светлое время суток составляет почти 20 часов и в кадре будет много светлых областей, которые переполнят разрядность пиксела.
Ну и в третьих, это в принципе ограничивает применимость этого способа 5-минутным интервалом. Если я захочу делать фотографии каждую минуту (1440 фотографий), то 48-битная глубина цвета уже не поможет.

Пока что я пришел к тому, чтобы из текущего суммированного изображения вначале вычитать хвостовую картинку, а затем накладывать текущую. То есть в виде формулы это получится выражение: mix = mix - old/288 + new/288.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39882580
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделай буферную картинку с разрядностью канала 32 бита.

Все будет работать, чьорт тебя побери.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39882639
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
32 бита на каждый компонент? То есть 128 бит на пиксел?
Я бы с радостью, если подскажите формат файла, который это предусматривает, и утилиту, которая с таким файлом может работать.
Сейчас я использую ImageMagick, 48-битный PNG он теоретически умеет.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39882645
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Напиши код!

Вообще. Друг. Ты в форуме Программирование. Это означает что здесь нет ничего невозможного.
Здесь есть просто незнание или лень.

По image-magic можно было сразу поднимать в Вопрос-Ответ или Unix.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39882943
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.подскажите формат файла
tiff

Alibek B.и утилиту
Gimp
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39883361
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.,

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

Имеем послед-сть вектор-функций, каждая от 2-х переменных
{f1(x,y) f2(x,y) f3(x,y) ... fn(x,y)} ,где n= 24*60/5=288, это наши рисунки.
Кол-во измерений вектора, к-рый является значением fi(x,y), ничего не меняет. Хоть 1, хоть (rgb), хоть (cmyk) ...
Задаём долю p=const (напр p= 1/n )
Для примера выполняем рекуррентное преобразование
Si= Si-1(x,y)*p + fi(x,y)*(1-p) для i= 1...n Не понял, зачем здесь нужно удвоение градации?

Неск первых итераций
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
i	Si
---	----
1	f1
2	f1*p + f2*(1-p)
3	f1*p^2*(1-p) + f2*p^1*(1-p) + f3*p^0*(1-p)
...	...
k	Sk= Sum(i=1..k,  fi*p^(k-i)*(1-p)^{i != 1} ),
или
k	Sk= f1*p^k + (1-p)*Sum(i=1..k,  fi*p^(k-i) ),
---	----


Что видим? видим взвешенную сумму f1...fk, только сумма весов ~1, но чуть меньше.
С небольшой натяжкой её можно назвать взвешенной.
Видим также, что чем свежее картинка, тем больший у неё вес в общей сумме.
Ретроспективное убывание весов почти экспоненциальное.
Для полной однородности формул можно взять S1= f1*(p-1).

Если нужна не вся серия, а т.ск. плавающее окно размером w, то заменить границы суммирования
например так Sk= Sum(i=k-w+1..k, .......) и p= 1/w , но усреднение всё равно экспоненциальное.
И эта формула не устойчива к выбросам (к т.н. движущимся точкам и титрам в терминологии ТСа), а про робастные веса, надо подумать, может и не имеют регулярной рекуррентной формы.
Из них мне помнится когда веса типа перевёрнутой параболы.
Но и вычисления тогда лучше производиь в double .


Да, конечно, сумма значений - это более устойчивый сглаживатель. Но нужно тогда брать ср.арифметич-е, дабы веса в сумме ==1.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39883368
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98Видим также, что чем свежее картинка, тем больший у неё вес в общей сумме.
Э... Нет.
Если алгоритм объединения (преобразования) записать в виде формулы (где img0 это текущий скриншот, img1 предыдущий скриншот, img2 это скриншот 10 минут назад и т.д.), то нужный мне вариант выглядит так:
Код: plaintext
mix = (img0+img1+...+img287)/288
А процитированное соответствует формуле:
Код: plaintext
mix = mix/2 + img0/2
Вообще такое преобразование выглядит интересным и я позже хочу посмотреть, как оно выглядит вживую с реальными фотографиями (это должно быть что-то вроде фотографии, на которой проявляются следы недавних движений), но первоначально мне нужно другое, мне нужно получить усредненное за сутки изображение.
Указанная выше формула mix = (img0+img1+...+img287)/288 гарантированно его получает, но требует значительного объема вычислений на каждой итерации (на каждой итерации нужно выполнять 288 операций наложения).
Моя оптимизация заключается в том, чтобы использовать такую формулу:
Код: plaintext
mix = mix - img287/288 + img0/288
Математически это правильный алгоритм, причем экономный в плане вычислительной нагрузки — на каждой итерации выполняется только две операции наложения. Но поскольку в случае с изображениями используются целочисленные 8-разрядные вычисления, этот способ использовать напрямую нельзя, погрешности округлений сделают результат бесполезным.
Можно промежуточное изображение (mix) привести к 48-битной глубине цвета (по 16 бит на каждую компоненту, например в формате PNG48), тогда этот алгоритм можно будет использовать. Правда на каждой операции будет теряться 1-2 значащих бита, но думаю, что в итоговом изображении это будет незаметно. И кроме того точность этого способа будет сильно падать в увеличением количества изображений в серии (например для 1440 поминутных фотографий на каждой итерации будет теряться до 4-5 значащих битов).
Еще более правильным было бы использовать такую формулу:
Код: plaintext
1.
mix' = mix' - img287 + img0
mix = mix'/288
Это был бы идеальный вариант, в котором значащие разряды не теряются, но тогда придется забыть про использование готовых инструментов/утилит. Чтобы использовать такой подход с изображениями. нужна минимум 72-битная глубина цвета (по 24 бита на каждую компоненту), а это возможно разве что в TIFF, причем не факт, что GD или ImageMagick с таким форматом сможет работать.

Но кроме таких "лобовых" алгоритмов мне подсказали довольно интересный альтернативный способ.
Для него я использую буфер промежуточных вычислений/изображений.
В виде формулы его можно записать как:
Код: plaintext
1.
2.
3.
4.
mix(0) = img1
mix(1) = img2+img3
mix(2) = img4+img5+img6+img7
...
То есть в буфере хранятся результаты попарных наложений изображений, а на каждой итерации они сдвигаются вниз по стеку и суммируются с предыдущими изображениями:
Код: plaintext
1.
2.
mix(0) = img0+img1
mix(N) = mix(N) + mix(N-1) + ... + mix(0)
Буфер на 10 элементов позволяет хранить до 1024 промежуточных изображений, из которых можно будет сформировать любое требуемое количество объединенных фотографий.
Этот способ не очень удобен в применении и его сложно оптимизировать, а кроме того количество операций наложения в худшем случае будет log2(288), но зато в нем нет погрешности вычислений и его можно применять с любым количеством изображений в серии.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39883622
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.,
Ты слишком много написал (а у меня сегодня что-то глаза резко просели ((, даже очки не помогают на обычном расстоянии), так я порассуждаю по частям, а местами независимо.
1) авторЭ... Нет. Sk= Sum(i=1..k, fi*p^(k-i)*(1-p)^{i != 1} ), У нас индексация противонапраправлена, так что всё в порядке i==k есть самый свежий кадр. И p очень мало, а не 1/2. На как сказано выше, эта регрессия не робастна.
2) авторЕще более правильным было бы использовать такую формулу:
mix' = mix' - img287 + img0
mix = mix'/288
Это был бы идеальный вариант, Не очень ясно, скорее всего речь о ср.арифметическом. Пусть даже и в скользящем варианте. Идеально что?
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39883628
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.,
3) Ты уж определись, что более важно и насколько. Скорость вычислений, формат операндов, математ-кая корректность, или красота(вкл. исчезающую улыбку Чеширского кота) ? Я не понимаю, что за мазохизм, когда жалеют железную машину (типа перетрудится, болезная) путём собственных извращений с градациями 128б, 513б, 2048б и т.д. Double обеспечит нужную красоту без мазохизма.

4) Насчёт ср.арифм-кого. Ну плавающее ср. оно и есть плавающее. Меня ночью Муза посетила в одном из нарядов от Закона больших чисел. И мне показалось, что ср.арифм будет давать эффект (на длинных последовательностях) в виде Гауссова размытия. Интересно убедиться в этом. (мож я и сам выберу время когда-нить)
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39883633
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А есть обучающая выборка картинок? Для тренировки
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39883636
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.,
5) Гауссово размытие может случиться, если в самом деле кадры будут достаточно "стационарны" в статистическом смысле (З-н Б-х Ч-л). Видеонаблюдение в помещении, камера неподвижна, освещение вкл-выкл не каждый час, достататочное разрешение камеры ...
Те же условия, похоже, нужны и для достижения той самой идеи о красоте суммы кадров.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39883641
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton, привинти смартфон к спинке стула на 1 час. Потом снимешь показания каждые 5 сек - вот тебе и выборка ... В качестве редклго движения иногда махни ладонью в его поле зрения.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39883646
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B., ах да, блин!
6) Муза ещё что-то бормотала про скользящую медиану)) Правда с рекуррентностью тут ... видимо, для оптимизации придётся неск. буферных матриц хранить (пояление сэра Мэйтона напомнило).
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39883650
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98mayton, привинти смартфон к спинке стула на 1 час. Потом снимешь показания каждые 5 сек - вот тебе и выборка ... В качестве редклго движения иногда махни ладонью в его поле зрения.
Да я лучше возьму красивое цветное видео в FullHD. Потом утилиту типа ffmeg и получу набор картинок *.bmp.

P.S. Надеялся что участники топика заготовили тестовые данные. Но... не вышло... :(

Всегда так. С тестовыми данными. Мдя.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39883674
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98Ты уж определись, что более важно и насколько.
Как обычно, нужен разумный баланс.
Обрабатываться будет на более-менее производительном сервере, так что даже если я буду тупо каждый раз обрабатывать все изображения, он наверное будет успевать это делать.
Но зачем вхолостую греть воздух, если можно оптимизировать процесс без ухудшения качества?

maytonА есть обучающая выборка картинок? Для тренировки
Есть, если пережать в 720p, то примерно 30 МБ за сутки.
Если интересно, могу выложить минут через 20.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39883687
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B....без ухудшения качества
авторDouble обеспечит нужную красоту без мазохизма. , об этом ещё до меня написали ...
Возможно, правда, где-то что-то всё же придётся округлять вверх, чтобы совсем в 0 не встало.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39883689
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пробую материализовывать авторские мыслеформы далее.
Начальный пост (а...ё) содержит некоторые пожелания, что из этого оставляем?
а) ("красота")Мне нужно сделать из них что-то вроде фотографии со сверхдлинной выдержкой, на которой неподвижные объекты будут отображены почти нормально, а движущиеся объекты будут малозаметны или незаметны
б) ("птичку жалко")Но такая реализация будет генерировать очень большую вычислительную нагрузку на сервер.
в) ("рекуррентность") Я бы хотел не накладывать все 288 фотографий каждый раз, а при каждой итерации накладывать только текущую
г) ("скользящее среднее") Чем-то нужное мне поведение похоже на вычисление скользящего среднего
д) ("пикселов жалко") Но к изображениям такой подход не применить, у них конечная разрядность для каждого пиксела.
е) ("черновой вариант") "затемнять" итоговое изображение, а затем накладывать на него текущее изображение с прозрачностью. Теоретически следы суточной давностью полностью сойдут на нет и должно получится что-то более-менее похожее на сверхдолгую выдержку.
(Видимо, эту мыслеформу я уже материализовал формулой.)
ё) ("такая задача") может быть есть другие способы решения такой задачи?
Какова, всё же, задача,особенно учитывая последующее ср.арифметическое:
ж) ("полное ср.арифм") Пока что я пришел к тому, чтобы ...: mix = mix - old/288 + new/288.
(ИМХО, в этом варианте для общего случая равные веса не обеспечивают робастность, например к титрам)
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39883707
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B., вот ещё забыл вариант от Музы:
вариант скользящего ср., взвеш. с "ядром Епанечникова". Полноценный робастный вариант.
В теории это ф-ция
y= 3/4(1-x^2) &&(x in [-1; 1])
Перевёрнутая парабола. Рекомендую, сам МНОГО раз пользовал.
Правда, чтобы сумма весов==1, надо бы поделить на 2, кажется.
Пример 7 весов(ну ... тут из экса взял, нужно округлить среднее число):
0,00000 0,12054 0,14286 0,15625 0,16071 0,15625 0,14286 0,12054 0,00000
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39883712
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно только A — усреднение всех изображений за сутки.
Ограничения реализации: обработка изображений будет выполняться bash+ImageMagick, поэтому реализация должна быть манипуляциями с изображениями (а не сохранение значений пикселов в CSV и работа с dword/float).
Пожелания: разумная оптимизация, чтобы не пересчитывать заново то, что можно не пересчитывать.

> е) ("черновой вариант") "затемнять" итоговое изображение, а затем накладывать на него текущее изображение с прозрачностью. Теоретически следы суточной давностью полностью сойдут на нет и должно получится что-то более-менее похожее на сверхдолгую выдержку.
Не совсем так.
Под затемнением и наложением я имел ввиду не blend с определенным коэффициентом прозрачности (тогда чем изображение свежее, тем у него будет больший вес), а арифметические операции вычитания и сложения над изображениями, умноженными на константу (тогда у всех изображений будет равный вес).
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39883718
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНадеялся что участники топика заготовили тестовые данные. Но... не вышло... Принцип минимального действия в действии, www. halyave. net.
А вообще, яписал выше, что мне и самому интересно результаты увидеть воочию на разных моделях. Но неспеша. М.б.дней через 10-15(если ТС сам раньше не покажет рез-ты).
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39883725
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Если интересно, могу выложить минут через 20.
Вот пара семплов:
https://yadi.sk/d/Cw6Z_rZvq82AtQ
https://yadi.sk/d/_wnpz7jGOQ3l5A

В аттаче пример того, что у меня получилось.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39883727
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПожелания: разумная оптимизация, чтобы не пересчитывать заново то, что можно не пересчитывать. Т.е. всё же и рекуррентность тоже, аналог пункта (в) .
Alibek B.bash+ImageMagickНу вот не знаю ни того, ни другого. Впрочем, свою миссию флудератора выполнил, мыслеформы отформатированы в соответствии с правилами. Могу спокойно удалиться из темы.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39883730
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.,
Сервер временно недоступен, попробуйте обновить страницу
??
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39883734
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.В аттаче пример того, что у меня получилось.Ностальжи ... На Терскол не похоже. Может где-то в р-не Оша или Чимгана (огранзастава вроде, секреты мне не нужны).
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39883735
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сервер — в смысле Яндекс.Диск?
Только что попробовал открыть ссылки, все открылось.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39883737
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.В аттаче пример того, что у меня получилось.
И кстати, возможно что усреднение изображения (среднее арифметическое) будет не совсем правильным.
При долгой выдержке темные кадры не влияют на изображение, а при усреднении изображения они будут затемнять итоговое изображение (поэтому на изображение на фотографии выглядит хмурым и пасмурным).
Скорее всего мне нужно изображения не складывать, а умножать. Но экспериментировать с функциями (для подбора наиболее красивой картинки) я буду после того, как в целом оптимизирую скрипт обработки изображений.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39883739
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B., спсб, уже пошло ...
К сож, гипотеза про размытие не оправдалась в этот раз. Нешто так всё стационарно? Может кадров не очень много?

С другой стороны, насколько среднее подходит для наблюдения против автоугона )) ?
Это ж ступенчатая ф-ция во времени. Половину времени была, половину - не стало.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39883741
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B., держи диапазон [1; 254] вместо [0; 255]. Не будет 0-х кадров.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39883745
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Камера закреплена на жестком основании, поэтому статичные объекты (ландшафт, здания) неподвижны и в итоговом изображении получаются четкими.
В кадре много движений (если скачать семплы по ссылкам, там все есть), но на усредненном изображении их доля слишком мизерна и они незаметны.
Единственное — на дороге немного проявляются полосы (свет и тень от забора в солнечную погоду).
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39883754
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Alibek B.В аттаче пример того, что у меня получилось.
И кстати, возможно что усреднение изображения (среднее арифметическое) будет не совсем правильным.
При долгой выдержке темные кадры не влияют на изображение, а при усреднении изображения они будут затемнять итоговое изображение (поэтому на изображение на фотографии выглядит хмурым и пасмурным).
Скорее всего мне нужно изображения не складывать, а умножать. Но экспериментировать с функциями (для подбора наиболее красивой картинки) я буду после того, как в целом оптимизирую скрипт обработки изображений.
Первая мысль была что вам на самом деле не надо брать среднее от 288 картинок а лучше
брать взвешеное среднее (с колокольчиком типа Гаусса где максимум приходится где-то на 288 / 2 среднюю картинку).
И порегулировать его ширину. В крайних позициях будет просто значение текущего кадра. Чистое видео.
В растянутом вширь колокольчике будет практически среднее.

Аналог фильтров VDub, temporal smooth. Типа смазывание во времени. Как оно работает я не знаю
но эффект я думаю будет похож на это.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39883759
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonа лучше брать взвешеное среднее (с колокольчиком типа Гаусса где максимум приходится где-то на 288 / 2 среднюю картинку)
Возможно, оптимальную функцию я думаю подбирать опытным путем, на реальных изображениях.
Но мне кажется, что средневзвешенное будет терять информацию.
Мне кажется, что самый интересный результат должна дать функция mix=mix/2+img/2.
Или точнее, mix=mix*k+img*(1-k) (при k=0.5 предыдущие изображения будут слишком быстро затухать, оптимальное k должно быть где-то около 0.81, чтобы следы двухчасовой давности были заметны где-то на 25%).
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39883761
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересный - это не научное определение а скорее художественное.

Ну вот в старых катушечных магнитофонах был копир-эффект. Это почти наука.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39883768
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B., это и есть затухание по экспоненте. При К=2 степени двойки, при К маленьком крутая экспонента, при К большом - плавная.

И всё же нет, не Союз - там другая растительность. Судя по густоте леса и преобладанию ёлок что-то ~1500-1700 km. Ибо в РФ ~2,5 граница деревьев, да и селение тоже.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39883778
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я же писал общую формулу: геометрическая прогрессия с показателем К. еЁ сумма= (1-k^(n+1)) / (1-k). Эта величина немного не дотягивает до 1, что легко понять на примере с К=2.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39883783
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98,
на примере с К=1/2
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39883787
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98И всё же нет, не Союз - там другая растительность.
Ностальгия это святое. Но это не Кабардино-Балкария, это Архыз.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39883900
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор...чтобы следы двухчасовой давности были заметны где-то на 25% Это новый пункт (з) ? До этого момента я был уверен, что редкие события желательно игнорировать, а зачем тогда я про робастность разливался соловьём. автор...возможно что (среднее арифметическое) будет не совсем правильным. В свете предыдущего (з) - безусловно. автор...при усреднении изображения они (чёрные точки) будут затемнять итоговое изображение Новый пункт (и). авторСкорее всего мне нужно изображения не складывать, а умножать ... Стоило мне сходить позавтракать, как снова гештальты полезли )). Сразу вспомнилась концовка анекдота: Да пошла ты наф со своим утюгом!

Выше - это так ...
Суть поста в том, что растёт уверенность, что ты хочешь в одной формуле и в одном рисунке совместить движение и неподвижность. Тогда нужно снова определяться, за чем следим: чтобы не выкрали недвижимость или чтобы не прозевать прохожих? или оба, но с одинаково плохим кач-вом?

В принципе пока как фантазия: суммировать геометрические всплески(EDGE) и/или временнЫе(df/dt). Производную в качестве веса не предлагать?
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39883920
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы отделил подбор оптимальной формулы трансформации от самого алгоритма, как максимально эффективно применять эту трансформацию к постоянно пополняемой серии изображений.
Подбор формулы это действительно неоднозначная задача со взаимно противоречивыми хотелками. Поэтому пока я остановился на усредненном изображении (среднее арифметическое).

Что касается алгоритма работы с серией изображений, то я пока вижу два варианта:
1. Брать предыдущий результат, отменять на нем воздействие хвостового элемента (вычитать устаревшее изображение) и применять воздействие нового элемента (прибавлять текущее изображение).
2. Сохранять промежуточные вычисления, чтобы на каждой итерации обрабатывать минимум изображений (в одежде - одно).

И чем больше рассматриваю, тем больше склоняюсь ко второму варианту.
В виде псевдокода его можно записать так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
буфер[0..8]

добавить(изображение, индекс)
ЕСЛИ буфер[индекс] ПУСТОЙ
ТО
  буфер[индекс] = изображение
ИНАЧЕ
  изображение = СРЕДНЕЕ(буфер[индекс], изображение)
  буфер[индекс] = ПУСТО
  добавить(изображение, индекс+1)
И на каждой итерации вызывать добавить(изображение, 0).
И добавить постообработку, когда число изображений в серии не равно степени двойки.

Первоначально этот способ мне казался не самым удобным из-за сложной оптимизации, но все искупает его универсальность, сравнительная эффективность и отсутствие погрешности вычислений.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39884559
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.,

Чем не подходит техника создания таймлапсов?
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39884567
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот красивая документалка.

Мир коралловых рифов / Alien Reefs
MPEG-4 AVC, 11500 Кбит/с, 1920x1064, 25.000 кадр/с

https://rutracker.org/forum/viewtopic.php?t=4561614

Предлагаю взять за основу тестовых данных.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39884579
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как нагенерить тестовых данных. Пока скачиваются видосы с рыбками. Я попробовал ffmeg на примере с другим
видосом. Работает:

Код: powershell
1.
2.
3.
4.
5.
#!/bin/bash -v

rm *png

ffmpeg -i 'Дон Сезар де Базан.1989.2 серия.mkv' -ss 00:40:00.000 -vframes 288 bazan%08d.png



Параметр -ss показывает смещение от начала фильма а -vframes - количество
кадров которые надо захватить.

Еще ffmpeg немного небыстро делает перемотку вперед. Поэтому чем больше параметр -ss - тем больше
таймаут перед тем как утилита начнет экспортировать картинки.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39884580
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что делать виндузятникам?

Вот здесь есть порт этой утилиты https://www.ffmpeg.org/download.html

Надеюсь он рабочий.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39884581
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот про видео не понял.
Все эти усреднения изображений имеют смысл только при условии стационарной неподвижной камеры.
Из обычного видео получится только шум.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39884582
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например я бы в первую очередь хотел по изображению максимально полно понять погоду на указанный день.
Для помещения или автостоянки формула должна быть иной, для живого видео нужен вообще другой принцип.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39884600
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Вот про видео не понял.
Все эти усреднения изображений имеют смысл только при условии стационарной неподвижной камеры.
Из обычного видео получится только шум.
Как раз не шум а нечто стационарное.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39884612
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот интересный видос.

Я помню фильтр медана. Я применял его часто в фотошопах чтоб замылить пыль и царапины на фотках.
А тут... похоже медиану применили не к соседним пикселам а к соседним фреймам видео.

Эффект - интересный.

YouTube Video
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39884614
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще видос с медианкой

YouTube Video
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39884645
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я тут для собств-го удовольствия сверился с данными ТСа из с1_29.
Как и ожидалось, действительно при равномерных весах сутки превращаются в унылый пасмурный кадр. Жалко лошадок поутру - полностью растворяются в прошлом))

Но там после 11ч подъезжают 2 машинки. Кто хотел видеть, я сохранил сумму за час 11-12ч с затуханием =0,9. Картинка маленькая. Синяя 7-ка постояла дольше - её лучше видно, а серебр. ВАЗ приехал и уехал - становится прозрачным. Просто для наглядости.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39884648
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ещё для себя неожиданно наткнулся на эффект, связанный с движением.
С одной стороны у меня тема есть, но с другой стороны, там я всё же подразумеваю короткие отсчёты, а здесь они =5 мин, что и вызвало эффект.

Чрез свой макет пропустил интервал 11:00 -11:45, т.е. 10 снимков (просто ошибся, хотел до 11:55). Оказалось, что самые динамичные объекты в этих местах - солнечные тени ))
А этот ВАЗ (если это он) стоял в течение 2-х кадров, и в моих двух производных
b-a и d-с
он попал как позитив и негатив. После суммирования ВАЗ аннигилировал. Пришлось поломать голову, почему. Придумал костыль на скорую руку (не совсем правильный).
Короче, на снимке ~(сумма производных). Контрастность повысил ручками.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39884652
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У Семёрки динамичным оказался только открывшийся капот. А причина та же - аннигиляция.
И вот этот свой косяк просто так уже не исправить. Уж что-то одно: кузов либо капот))

И до кучи уже мой снимок: параплан в движении в ущелье (реальные размеры кадра 320х240). Памир. Камера в руках так дрожит, что фон превращается в движущийся объект.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39884653
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98,
забыл снимок
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39884655
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonAlibek B.Вот про видео не понял.
Все эти усреднения изображений имеют смысл только при условии стационарной неподвижной камеры.
Из обычного видео получится только шум.
Как раз не шум а нечто стационарное. Не, mayton, я специально загрузил снимок с парапланом. Ты забыл, что кадры надо синхронизировать, чтобы в сумме получать что-либо осмысленное. А синхронизация вероятностна.
Вот даже в моём примере с жигулями. На мою автоматическую синхронизацию наехал, зараза, синий Жигуль))
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39884771
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Alibek B.Если интересно, могу выложить минут через 20.
Вот пара семплов:
https://yadi.sk/d/Cw6Z_rZvq82AtQ
https://yadi.sk/d/_wnpz7jGOQ3l5A

Эти линки мне недоступны. Через Hoxx VPN только. А это долго и нудно т.к трафик ограничивается.
Попробуй перепаблишить их на какой-то более либеральный ресурс
типа GoogleDrive или амазонский диск.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39884777
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39885997
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это к вопросу об анализе прошедших событий.
Самое-самое начало такогого анализа. Сейчас поздно, в будущем немного продолжу. Сейчас только среднее значение каждой 5-минутки. Видны кластеры ночь-день-ночь. Видно как яркие точки просаживают всех остальных. Перед самым рассветом там что ли свет в окне включили - тоже просед в виде ямки перед взлётом.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39886013
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98, а ты на Python что нибудь кодил?
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39886476
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Косметический вопрос.
Скрипт, который будет обрабатывать изображения, имеет следующий формат вызова:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
Usage: ./timelapse.sh [ lapse [<options>] | fetch | parse | purge ]
       lapse - processing image series
       fetch - get new image series
       parse - get image series and processing current period for all modes
       purge - remove old files

<options>
-mode [ split | mixed | blend | faded ]
  Current image processing mode. Use all modes by default.
-beg [ timestamp | datetime | delta[|s|m|h] ]
  Define start period. Use current time by default.
-end [ timestamp | datetime | delta[|s|m|h] ]
  Define end period. Use start period by default.

  timestamp - Unix timestamp (seconds since the epoch)
   datetime - date and time in format [YYYYMMDD]T[HHNN]
              use current date/time if ommited
      delta - time shift from current in format [+|-]num with suffix:
              no suffix - interval (range 0..9999)
              s - delta in seconds
              m - delta in minutes
              h - delta in hours

Examples:
* ./timelapse.sh fetch
  Get and save image series (without processing)
* ./timelapse.sh lapse -beg 4h
  Processing all modes for last 4 hours
* ./timelapse.sh lapse -beg 24h -end 6h
  Processing all modes for 6 hour interval of 24 hours ago
* ./timelapse.sh lapse -mode split -beg 20191101T -end 100
  Processing split-mode for interval from 2019-11-01 for 100 intervals
* ./timelapse.sh parse
  Get and processing image series
Не посоветуете, что добавить/исправить?
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39886502
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
exp98, а ты на Python что нибудь кодил?
Сегодня можно считать, что нет.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39886505
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.
Косметический вопрос ... Не посоветуете, что добавить/исправить?
Я пасс.
Но ты бы хоть написал на какую тему добавить, чему должен результат соответствовать, а также что за человеческие операции делает этот Processing.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39886514
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
split - изображение формируется из вертикальных полосок небольшой ширины (2-10 пикселов), каждая полоска соответствует определенной давности. Выглядит интересно и динамично, но не очень художественно (кажется грязной или испорченной). Этот процессор у меня уже написан.

mixed - это то, что тут обсуждается, усредненное изображение. Этот процессор тоже в принципе готов.

blend - наложение изображений в режиме умножения (эмуляция сверхдолгой выдержки). Процессор пока не готов, формулу и коэффициенты буду подбирать по картинке.

faded - наложение по формуле mix = mix*k + new*(1-k), в котором прошедшие события будут постепенно затухать. Процессор пока ещё тоже не готов.

Остальные опции нужны для удобства и для возможности ретроспективно обработать прошлые изображения (я планирую хранить их какое-то время). А кроме того я планирую для каждого вида обработки использовать минимум три периода — последние 24 часа, календарные сутки (с 0 до 0 часов), календарный год (с 1 января).
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39886524
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98
mayton
exp98, а ты на Python что нибудь кодил?
Сегодня можно считать, что нет.

Смотрю что в задачах прототипирования большое число сорцов именно на питоне.
https://opensource.com/article/19/3/python-image-manipulation-tools
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39886688
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton, у меня это всё из разряда хобби. Мои мелкие задачки ещё более быстро прототипировать в МЛ, в полной версии (тем более в современной) имеется трансляция в Си.
Ну а Питон ... я не оспариваю, просто личное время жалко))
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39886691
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B., а за календарный год - вообще есть смысл? день-ночь-полнолуние, дождь-солнце, зима-лето-снегопад ...
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39886693
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати вот возникла идея. Есть Б.У. шные битые фотокамеры. В которых матрица частично повреждена.
2-3 пиксела горят одим цветом или несколько строчек из матрицы также выключены.

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

Для детектирования этого эффекта - думаю надо взять эту камеру. Снять чёрный фон. А потом белый фон.
И внимательно посмотреть на картинку с точки зрения артефактов.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39886698
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98
Alibek B., а за календарный год - вообще есть смысл? день-ночь-полнолуние, дождь-солнце, зима-лето-снегопад ...

Да, может получиться интересно.
Собственно первоначально идея у меня зародилась после этого: http://www.priroda.su/item/2136
Разумеется, годовая агрегация будет разбита по часам (то есть будет 24 годовые фотографии на каждый час суток).
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39886705
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.,
моё имхо, что добавиь нужно что-то вроде того:
авторнужны для удобства и для возможности ретроспективно обработать прошлые изображенияНе только прошлые, наверное и текущее. Так же кратко и самую суть. Возможно, что полезно краткую суть обработки и её цель.

Подход простой, всё как описано в стандартах.
Надо исходить из целевой аудитории, кто юзер будет, его квалификация, сколько лет будет длиться юзанье. Надо, чтобы "грамматика"+описание обеспечивали достижение юзером его целей. Все достаточные параметры, все способы их использования для получения нужного рез-та и т.д. (очень бюрократично написал)

Понимание грамматики прогером имхо ПОЧТИ обеспечено.
Только остаётся домысливать, что наряду с -MODE может одновременно быть -BEG и т.п. Имхо нужно домысливать, что весь алгоритм получения одного отчёта не удастся задать одной строкой параметров. Нужна послед-сть вызовов скрипта.
С чем скрипт будет взаимодействовать, в какой среде и в каких ситуациях запускаться, кем.

Но это всё для полного счастья. Если же во встроенной подсказке, то конечно слов поменьше.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39886718
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Для детектирования этого эффекта - думаю надо взять эту камеру. Снять чёрный фон. А потом белый фон.
...и будет он одинаково серым там и там. Если спецом не похимичить с выдержкой и диафрагмой (возможно и ИСО чувствительностью)
Наверное надо снять чёрно-белый квадрат, потом его или камеру повернуть на 90 3 раза. И после центральную точку отдельно проверить.

Толко кто будет пользоваться ...
Моему, например, 12 лет. Наружные створки не все уже закрываются. На объективе небольшое пятно от какой-то непогоды. Но пикселы целы. Пользуюсь.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39886721
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Царапины на линзе - сюда-же.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39886725
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.
Да, может получиться интересно.
Без умножения, деления и корня красоту не сделать на худ-х снимках.
Помню снимок в журнуле был. В нерезиновске над шпилем МГУ 7 полных Лун одновременно. Снято на плёнку. Штативчик нужен и предварительный расчёт (и запасные батарейки). Без всякого монтажа. Сейчас оттуда так не снять, домами застроили.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39886726
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
относительно качественный фильтр
Дешёвый способ удаления родинок с портрета))
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39886743
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яж говорю. Филтр - привязан к конкретной фотокамере.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39896703
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так и не нашел название этого алгоритма. Искусственное растягивание canvas.
При сохранении центра картинки. По сути - воссоздать бордюр.

Это иногда видно на видеохостингах когда 3:4 растягивают на 16:9 или вертикально ориентированный
кадр публикуют в youtube.

Это не scaling. Это именно искусственное дополнение несуществующей части canvas.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39896704
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По-моему называть это алгоритмом будет преувеличение.
Видео масштабируется до полного заполнения всего кадра с сильным размытие, затем поверх него выводится исходное видео.
Что-то вроде улучшенного ambient light.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39896705
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B., это я видел.

Но края внутреннего изображения не стыкуются с бордюром. Там глазом видно разрыв производных.

Я собственно искал способ делать поиск картинки в картинке. Но параллельно понял что без
искуссвтенного extend большой картинки этот метод - неполноценный.

Пока мне пришло в голову делать фильтр гаусса для каждого пиксела бордюра с расчетом
только известных пикселов. Фильтр получается рекурсивный. Чем больше уровней мы расчитаем - тем
дальше будет закрашен бордюр.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39896726
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чорт с этим Гауссом я надолго завяз. Все беда в том что я - торопыжка.
Сделал пока фильтр среднего по 3м соседним пикселам. Наподобие матричного.
Это только левая сторона бордюра.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39896745
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот как-то так получилось. Такая себе Лизавета Джоконда внутри калейдоскопа.

На углах конечно некрасиво получилось. Что поделать. Фильтр такой.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39896747
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну с этой теткой все равно неочевидно преимущество т.к. реальный холст был больше.

А вот рисунок Рубенса. В нем действительно габариты холста расширены.


...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897084
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Цели действия я не понял, видосами и технологиями фильтров не интересовался.
По фильтру. Оба Г, 3х3 ? А если матрицу 5х5? Не понятно, в чём не устраивает результат?

Вообще у Г слишком быстро для робастности убывает хвост. Правда здесь о хвостах речи нет.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897103
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поясню. Вот видос со "смишьными енотами и котами". Частично снят мобилой.
Мобила снимает с неверным форматом экрана. Не соотвествует youtube. Формат
искусственно расширен до рамки 16:9

Края - автоматически заполнены исходным изображением с блуром. С размытием.

Мне это не понравилось. И я хотел сделать свой метод.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897105
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98
Цели действия я не понял, видосами и технологиями фильтров не интересовался.
По фильтру. Оба Г, 3х3 ? А если матрицу 5х5? Не понятно, в чём не устраивает результат?

Изначально я хотел сделать регулируемую матрицу до 128х128. Но крепко задумался о самом методе.
На момент применения матричного фильтра к угловым пикселам - частично информации нет для 75%
исходных данных.

Для краевых (left/right/top/bottom) линий не хватает 50% исходных данных. Следовательно в матрицу надо
вносить какую-то поправку. Чтоб выровнять баланс по среднему.

Вот на этом я и завис.

Упростил алгоритм до матрицы
Код: sql
1.
2.
3.
0.0 0.0 0.333
0.0 0.0 0.333
0.0 0.0 0.333


для крайней левой плоскости и соотв для всех остальных также. Берем три соседних пиксела. Суммируем и делим на 3.
Соседи - 8-связные.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897264
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И всё равно, ускользает критерий приемлемости рез-та.
Баланс балансом, но при матрице-константе почти всегда угол будет с разрывом. Да, не существует 2-мерной производной в углу. Выход - динамическая миатрица, либо разные методы по секторам.

Я не любитель заимствовать чужие алгоритмы. Так, неск. мыслей по поводу.
Есть задача гладкого продолжения 2-мерной ф-ции. Насколько гадкого? до 1-й произв-й (без изломов)?, до 2-й (кривизна поверхности)? Дальше наверное не надо.

С другой стороны существуют методы экстраполяции сплайнами с граничными условиями гладкости.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897267
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98, да ты прав. Тут нет научного критерия. Но тебе что больше глаз радует? Картинка с автобусом.
Или картины Рубенса и Да-Винчи с матричным фильтром границ.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897271
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Продолжение мыслей по поводу.
Вопрос не только в гладком продолжении. Каким ещё св-вам д. удовлет-ть рез-т?
Например.
Нужна в каком-то смысле размытость.
Отсутствие точек перегиба на границах либо наоборот - обязательный перегиб.
1-мерные производные на периметре д. ==0.
.......
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897273
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton, мне - Р. И хотя "Р. на всех не хватит")) , порою кажется, что холст по периметру как мвысушенная мокрая бумага - волнами.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897282
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя бы качественный, но критерий надо озвучить (для себя). Иначе в одних случ-х хорошо, в других плохо, и не узнать заранее в каких.

Пробую подойти научно. Смотрим один угол рисунка, прав-верхн.
...а б в
...г д е
...ё ж з

Как его продолжить? Имеем
б в
д е
Три точки определяют плоскость. У нас 2-хскатная крыша (бвд) и (вде), и конёк крышы (вд).
Можно их продолжать гладко и сгладко же стыковать с продолжением от (а) и от (з).

Это как пример.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897283
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выше было для гладкости 1-х производных в углу.
Для 2-х пр-х в углу надо продолжать матрицу 3х3 - гладко продолжить кривизну.

Остался вопрос стыковки крыши на "коньке". Второй проход по нему ? почему нет?
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897287
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98
Продолжение мыслей по поводу.
Вопрос не только в гладком продолжении. Каким ещё св-вам д. удовлет-ть рез-т?
Например.
Нужна в каком-то смысле размытость.
Отсутствие точек перегиба на границах либо наоборот - обязательный перегиб.
1-мерные производные на периметре д. ==0.
.......

Вариант. 1

Есть две рамки. Из проволоки.
Одна - прямоугольная большая. Это внешняя граница с бордюрами. И есть внутри
нее - другая рамка. Гнутая в плоскости Z малая рамка. Это и есть края картинки.
Далее - мы погружаем обе рамки в мыльный раствор. И на ней после поднятия
образуется плёнка. Глубина цвета по каждому каналу RGB.

Вариант. 2

На границах картинки применяем Фурье или Вейвлет. И просто достраиваем несуществующие
части картинки по коэффицнетам которые расчитали. Тут наверное будет много регулировок.

Вариант. 3.

Просто зеркально повторить картинку мозаикой (слева справа сверху и снизу). И прогнать разные ФНЧ.

Во всех трех вариантах в окрестности границы пиксели бордюра не должны сильно отличаться от пикселов картинки.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897288
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вариант 3 насколько прост что я возможно сегодня его сделаю.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897289
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно угловую точку сглаживать матрицей с тупым углом. Да даже и её соседей можно. Постепенно увеличивая размерность м-цы пропорционально росту углового квадрата.

Больше навскидку в голову не приходит. Влюбом случае корреляционные св-ва размытостей будут сильно отличаться от оригинала.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897291
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Вариант 3 насколько прост что я возможно сегодня его сделаю.
За вар.1 вам к господину АТ.Фоменко - он же проблему мыльных плёнок дорешил.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897292
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот сорц. Дарю всем. Берите. Копируйте сколько угодно. Можете изменять.

Посте стикера "TODO" надо добавить функционал для сглаживания уголков.


Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
public class CanvasExtenderSimpleFilter extends GenericRasterFilter {

    static Logger logger = LoggerFactory.getLogger(CanvasExtenderSimpleFilter.class);

    @Override
    public BufferedImage doFilter(@NotNull BufferedImage src, @Nullable Map<String, Object> parameters) {
        int bs = (Integer) parameters.get("borderSize");
        checkArgument(bs > 0);
        int x = src.getWidth();
        int y = src.getHeight();
        logger.trace(":: detect input image size : {} x {} and colorModel = {}",x, y, src.getColorModel());
        int xr = x + 2 * bs;
        int yr = y + 2 * bs;
        BufferedImage dest = new BufferedImage(xr, yr, BufferedImage.TYPE_INT_ARGB);
        Raster.copyImageIntoPos(src, dest, bs, bs);
        // Left
        for (int j = bs; j > 0; j--) {
            for (int i = 1; i < yr - 1; i++) {
                int pixel1 = dest.getRGB(j, i - 1);
                int pixel2 = dest.getRGB(j, i);
                int pixel3 = dest.getRGB(j, i + 1);
                int res = Raster.avgPixel(pixel1, pixel2, pixel3);
                dest.setRGB(j - 1, i, res);
            }
        }

        // Right
        for (int j = bs + x - 1; j < xr - 1; j++) {
            for (int i = 1; i < yr - 1; i++) {
                int pixel1 = dest.getRGB(j, i - 1);
                int pixel2 = dest.getRGB(j, i);
                int pixel3 = dest.getRGB(j, i + 1);
                int res = Raster.avgPixel(pixel1, pixel2, pixel3);
                dest.setRGB(j + 1, i, res);
            }
        }

        // Top
        for (int i = bs; i > 0; i--) {
            for (int j = 1; j < xr - 1; j++) {
                int pixel1 = dest.getRGB(j - 1, i);
                int pixel2 = dest.getRGB(j,     i);
                int pixel3 = dest.getRGB(j + 1, i);
                int res = Raster.avgPixel(pixel1, pixel2, pixel3);
                dest.setRGB(j, i - 1, res);
            }
        }

        // Bottom
        for (int i = y + bs; i < yr; i++) {
            for (int j = 1; j < xr - 1; j++) {
                int pixel1 = dest.getRGB(j - 1, i - 1);
                int pixel2 = dest.getRGB(j,     i - 1);
                int pixel3 = dest.getRGB(j + 1, i - 1);
                int res = Raster.avgPixel(pixel1, pixel2, pixel3);
                dest.setRGB(j, i, res);
            }
        }


        // TODO: Implement all border directions
        return dest;
    }

}



Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
public static void copyImageIntoPos(@NotNull BufferedImage source, @NotNull BufferedImage dest, int xpos, int ypos) {
        checkArgument(source.getWidth() <= dest.getWidth() + xpos);
        checkArgument(source.getHeight() <= dest.getHeight() + ypos);
        for (int y = 0; y < source.getHeight(); y++) {
            for (int x = 0; x < source.getWidth(); x++) {
                dest.setRGB(x + xpos, y + ypos, source.getRGB(x, y));
            }
        }
    }



Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
    /**
     * Returns average color of 3 pixels without alfa
     * @param color1
     * @param color2
     * @return
     */
    public static int avgPixel(int color1, int color2, int color3) {
        return getPixel((getRPixel(color1) + getRPixel(color2) + getRPixel(color3)) / 3,
                        (getGPixel(color1) + getGPixel(color2) + getGPixel(color3)) / 3,
                        (getBPixel(color1) + getBPixel(color2) + getBPixel(color3)) / 3);
    }

...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897293
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
зеркально повторить картинку мозаикой (слева справа сверху и снизу)
1) Угловые квадраты - не совсем зеркально))
2) Нужна ли периодичность, если оригинал в неск. раз мельче.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897295
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98
mayton
Вариант 3 насколько прост что я возможно сегодня его сделаю.
За вар.1 вам к господину АТ.Фоменко - он же проблему мыльных плёнок дорешил.

Я вот подумал. Насчет мыльных пузырей. Херня получается. У нее
же с производной плохо. На краях рамки она-то неопределена.

Вобщем отложим мыльные пузыри пока.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897303
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
...же с производной плохо. На краях рамки она-то неопределена
Сейчас власти во всю юзают переходные периоды.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897314
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот перец в Adobe After Eff показывает как фиксить Vertial Video Footage. Херня какая-то. И что среди адобовских
эффектов не было готового решения для этого?

YouTube Video
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897324
Фотография Малыхин Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такие вещи проще щейдерами делать
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897327
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут мне и капец пришел. Чел... я к стыду точно не помню что такое шейдер.

Я изучал 3D графику в виде библиотечки OpenGL в 90х и по нейже писал диплом.
Но в те времена шейдеров еще не было.

Кстати я очень часто в форуме спрашиваю определение термина. И мои коллеги
айтишники часто не могут ответить на вопрос. Вот свойства знают. А определение нет.
Это знаете. Как в философии.
Мы не можем спорить о предмете пока его не определим. Или как в релиигии.
Когда атеист спорит о боге - он уже фактически признал. Или о чайнике который
летает в космосе. Или о носороге.

Вы кстати можете своими словами мне сказать что такое шейдер? В вики
мы-то успеем сбегать.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897335
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гы-ы,я шредер знаю.
Мож. имелось ввиду постепенное затемнение?
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897337
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98
mayton
зеркально повторить картинку мозаикой (слева справа сверху и снизу)
1) Угловые квадраты - не совсем зеркально))
2) Нужна ли периодичность, если оригинал в неск. раз мельче.

Вот как-то так получилось. Пока без уголков. Но мне этот результат больше нравится чем матрица 3х3.
В нем есть даже намёк на периодические колебания. Хотя и период неверный.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897341
Фотография Малыхин Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шейдер эта такая программа для видеокарты.
Исполняется параллельно для какого то набора данных.
Основное это вершинные шейдеры и фрагментные шейдеры.
тут подойдет фрагментный шейдер.
Эта программа вызывается параллельный для каждого отрисовываемого пикселя.
С одной стороны заряжаются буферы с другой стороны вылетает результат работы программы для каждого пикселя.(зависит от версии шейдера)
Программки для GPU довольно сильно отличаются от программ для CPU всякими нюансами навроде волновых фронтов при использовании условного ветвления.

во последнее что ковырял https://www.shadertoy.com/view/3ddSWr типичный шейдер для сайта
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897342
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Малыхин Сергей
Шейдер эта такая программа для видеокарты.
Исполняется параллельно для какого то набора данных.
Основное это вершинные шейдеры и фрагментные шейдеры.
тут подойдет фрагментный шейдер.
Эта программа вызывается параллельный для каждого отрисовываемого пикселя.
С одной стороны заряжаются буферы с другой стороны вылетает результат работы программы для каждого пикселя.(зависит от версии шейдера)
Программки для GPU довольно сильно отличаются от программ для CPU всякими нюансами навроде волновых фронтов при использовании условного ветвления.

во последнее что ковырял https://www.shadertoy.com/view/3ddSWr типичный шейдер для сайта

Спасибо.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897543
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Пока без уголков. Но мне этот результат больше нравится чем матрица 3х3.
Всё тот же Малевич в углах) Там же вроде центральная симметрия, нет?

И как раз о чём я говорил: критерий "нравится" непредсказуем. А для шедевра Малевича, вообще говоря, нужен персональный фильтр "(Малевич)^2".

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

Не надо впадать в крайности вслед за известным телеканалом Известия, в к-ром кто-то видимо реализовал свои детско-неофитовые восторги от всемогущества комп-х технологий в виде переходных эффектов между кадрами. Бр-р-р, противно смотреть их. Господа из Известий, из-за этого вас больше не смотрю. Плз, не тратьте наше видеовремя на просмотр ваших межкадровых видеоэффектов.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897544
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно линк на эти межкадровые эффекты в youtube?

P.S. Кажется что банальный cross-fade это самый лучший эффект со времен братьев Люмьер.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897546
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Малыхин Сергей
Шейдер эта такая программа для видеокарты ....
Да, уж. Очч информативно. В типичном амерском стиле. Называется "Общее описание". Не о смысле действий, а о технологии подключения. Рекламных фраз ещё нехватает: никогда прежде так легко не было .....
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897550
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уголки малевича надо будет закрыть с переменным альфа-каналом.
Без него у меня есть только выбор - брать вертикальное отражение
или только горизотнальное а это чревато разрывом гладкости поверхности
цвета.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897552
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
А можно линк на эти межкадровые эффекты в youtube?
P.S. Кажется что банальный cross-fade это самый лучший эффект со времен братьев Люмьер.
Я про телек, какие линки, по умолчанию канал 29 что ли.
Наезды-отъезды с переменным ускорением, раскрутка кадра из из центра ... я не помню всего. Всё это резко. И глаза режет, и время занимает. Оно мне надо? Хорошо хоть звук сгорел))
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897560
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Без него у меня есть только выбор - брать вертикальное отражение
или только горизотнальное
Да почему же только 2 варианта? Суммировать пробовал, вертикальное и горизонтальное?
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897561
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да по моему этим еще в 90х переболели. Кстати современные цифровые кодеки практически
не умеют передавать 25-й кадр и стробоскоп.

А старое доброе видео SECAM/PAL вполне могло транслировать вспышку белого цвета на максимуме
при условии что соседние кадры - черные.

Фильтра от h264 жмут трафик так что эта вспышка просто отсекается как дефект.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897584
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Без него у меня есть только выбор - брать вертикальное отражение
или только горизотнальное а это чревато разрывом гладкости поверхности
цвета.

У меня есть бредовое предложение: взять какую-нибудь нынче модную нейросеть, обучить её на триплетах (X, Y, Color), а потом скормить X,Y за пределами области обучения.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897585
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
mayton
Без него у меня есть только выбор - брать вертикальное отражение
или только горизотнальное а это чревато разрывом гладкости поверхности
цвета.

У меня есть бредовое предложение: взять какую-нибудь нынче модную нейросеть, обучить её на триплетах (X, Y, Color), а потом скормить X,Y за пределами области обучения.

Мысль - интересная. Мне нравится. Мне вспоминается прогнозирование цвета пикселов для сжатия ЧБ факсимильного
изображения. Там сетка - улучшала характеристики сжатия.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897587
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такой фоторедактор в Android под названием Snapseed . У него есть ряд инструментов, изменяющих размер канвы, при которых отсутствующее изображение автоматически дополняется. Обычно изображение дополняется достаточно грамотно и качественно, иногда просто с вау-эффектом.
Как реализовано я не знаю, но можно его брать за эталон и на его основе придумывать свой алгоритм.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897590
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B., спасибо. Посмотрю.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897591
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Слоёв - точно больше чем 2.
Один слой - в состоянии дать монотонность по любой координате.
2 - слоя - разрешимость задачи XOR.

А здесь. На картинке Руббенса и Да-винчи точно экстремумов с десяток.
Даже если ФНЧ прогнать все равно эстремумов дохрена.

И даже нейросетка на краях не даст точно попадание в края. Она фактически
будет гарантировать просто среднее квадратическое по плоскости всей
поверхности малого изображения. В бордюре - она может олтичатся и сильно.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897601
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, для худож-го эффекта экстаполяции даже того простого итеративного 3х3, что в начале показал мэйтон, не мало. Ещё немного подкрутить, и были бы фракталы. Добавить вероятности - и ... я даже когда-то исходник клал. Не прониклись) Всяко быстрее будет, чем сетку учить для каждой картинки.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897604
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton, так ты музей задумал? рекламу только в бордюр не пиши)
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897614
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет. Я котов на видео снимаю и выкладываю (шутка!)
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897616
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати. Если будет нейро-сеть обученная на 1-м кадре видео.
То для последущих кадров ее не надо будет обучать полностью а
только слегка корректировать.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897794
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Япока для углов не мудрил. Добавил маленько затухания с р=0,02 и веса малость регрессионные. Даже это достаточно гладко. Правда и производные в углах только в одном направлении непрерывны. Но если добавить2-й проход в другом порядке, то и эти разрывы сгладятся. Ещё успею поколдовать.
Ну и, коль не музей, то примерно так получилось. Не живопись, конечно ... , уменьшил для показа.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897795
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как водится второй файл, немного живописнее.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897796
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98, вот картинка с крокодилами тайлится как текстура.

Можно завернуть ее в бублик внахлёст и добавить информации слева и справа из самой себя.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897797
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ай, забыл сказать, затухание по 3-м сторонам только, сверху без него для сравнения.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897798
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во всех случаях вид такой будто на объектив надели хромированную вентиляционную трубу.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897801
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так затухание же ... Кста смотрел, как у тебя с графиком sum(G(r,*)) на краях для серого G()? изломы видны? у меня немножко есть в одной проекции.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897802
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Щас смотрю в две библиотечки

DeepLearning4j
https://github.com/eclipse/deeplearning4j

и

Neuroph
http://neuroph.sourceforge.net/index.html
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897803
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98
Так затухание же ... Кста смотрел, как у тебя с графиком sum(G(r,*)) на краях для серого G()? изломы видны? у меня немножко есть в одной проекции.

На какой картинке? Потенциально... они были собраны разной версией моего фильтра.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897804
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да на любой, ты сам смотрел? видимо нет. Тоже ведь показатель качества.
И ещё хотел добавить. Живопись достаточно искусственна. Там сложно сделать плавные переходы. Натура чаще более плавна. Не так?
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897809
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насчет фото - я согласен. Но из описания дефекта я ничего не понял. Покажи хоть ярким маркером на моей картинке.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897823
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дефект, нет, скорее эффект. На глаз не описать, а измерить можно. Правда твои углы добавляют эффекта, но всё равно он есть. Сказать так: сохранение последней оригинальной светлоты.

Блин провозился щас, несколько раз не то делал. В итоге описываю для сравнения со своей реализацией, с затуханием 0.98.
Картина Р. файл "crop-canv...... .jpg" (не "mirror-.......") Если ссумировать каждую строку, получится график. У тебя он на краях строго горизонтальный (для зеркала - нет). А у меня как раз верхний край без затухания , и он тоже горизонтальный. У нас обоих в этом месте есть мелкий скачок суммы. У меня ~ в районе 90.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897825
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тот эффект КМК из-за угловых квадратов.
А сам рез-т для сравнения примерно такой (верхняя часть без затухания).
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897828
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Щас я перемеряю для тестовой картинки.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897863
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот белый прямоугольник 640х480 после применения моего фильтра CanvasExtenderSimpleFilter
с параметром border = 64pix.

Есть еще мой неявный косяк в том что я создаю картинку с альфой но при этом ее игнорирую пока
и никак не использую. Где-то это вылезет боком.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897866
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати было-бы идеологически правильным сразу отказаться от JPEG в любом виде и тестить
хоть на маленьких картинках (до 150к) но все-таки lossles компрессорах. Хотя-бы не будем
видеть блочные искажения и характерные "волны".
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897870
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще тест наподобие телевизионного.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39897872
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И оригинал приаттачу.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39898162
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странно. Что это за черные треугольные тени по углам?

Не могу объяснить их происхождение. Это область растра в документе png, которую я вообще не заполняю.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39898231
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почитал про WebP. Интересно. Это улучшенная версия JPEG где используется предсказание каждого
следующего блока (8х8 или 4х4) в зависимости от левого и верхнего.

Прикольно. Я об этом когда-то думал. Когда в 90х рассматривал картинки с голыми тётками
изучал как работает JPEG-кодек. И еще вьюер там был такой. Под MS-DOS. Забыл название.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39898349
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем его предсказывать? при сжатии? то-то я смотрю, что ни сожму, всё потом эро становится.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39898350
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Странно. Что это за черные треугольные тени по углам?
А это не из-зи свёртки, неполный цикл FOR()? ты же не можешь 3х3 перемножить в углу,за пределы выйдет. Не то?
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39898355
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче, исправил 2 косяка, бордюр крашу в 2 прохода. Гладкость удовл. Артефакты зависят от края картинки и от алгоритма сглаживания, немного и от маски.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39898536
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мысль пришла. Для ТуДу можно предварительно закрасить угловой квадрант цветом одного или нескольких угловых пикселов. Мож и второго прохода не понадобится. Но гладкость зависит уже от "фотографа".
***** 99 00 ***** 02 99
***** 55 11 ***** 00 11
и т.п. На периметрах м.б. такие же разрывы. У меня каждый второй снимок такой ...
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39898541
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно, а почему между зеленой и фиолетовой полосой в достраиваемой области черный треугольник?
Компоненты умножаются на коэффициенты чувствительности человеческого зрения?
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39898551
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В моей формуле из-за целочисленного деления на 3 накапливается погрешность которая на каждой
следующей итерации еще больше затухает. Получается что luminosity падает.

Этого вобщем быть не должно. Я не закладывал такого. Фиксится перводом в вещественные числа.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39898873
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.
Компоненты умножаются на коэффициенты чувствительности человеческого зрения?
В моей радуге? Нет. Тому 3 причины.
1) Как и автор я пользую вширь 3 точки (правда в глубину ещё, зачем-то, 2.5 точки). Размытие.
2) Зелёный и малиновый практически ааппазитные цвета (дополнительные друг к другу как жёлтый и синий, красный и цианистый и т.п.)
3) Ну и принудительное затухание тоже даёт эффект сближения оттенков.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39898875
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98
Мысль пришла. Для ТуДу можно предварительно закрасить угловой квадрант цветом
Как мысль правильная, только не в лотерею, а в преференс.

Я крашу бордюр так:
левый -правый-верх-низ. Все полностью, поэтому квадранты получаются в два прохода.
А в квадрантах нулевые начальные условия. Идея в том, чтобы задать их значением угловой точки. В моём случае это 3 вертикальных "уса" по углам. Мои усы толщиной в 2,5 точки, если б брал в глубину 1, то и толщины уса достаточно==1.

Картинка с бордюром выше сделана, кроме того с повторной покраской, т.е. углы вообще в 4 прохода. А сейчас задал усики, и за один проход без артефактов, почти не отличимо от предыдущего, зато и гладкость углов почти безупречная (если не точки не являются скачками - это проблема фотографа).
То же самое со всеми рисунками, что раньше делал.
Пока не выкладываю. А нужно ли? поверьте просто на слово ...

А вторая мысль. Вычислить бордюр и перевернуть его спиной вверх.
В рез-те рисунок имеет конкретную черную границу и виньеточки на рамке, и всё это плавн. Вот только как раз с углами тогда как быть, стыковать как багеты к портрету? под 45град

А ещё непонятно, красиво ли это всё себя поведёт в видосе.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39898881
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Расширил бордюрчик до 256 пикс. Убрал вычисления которые затрагивают уголки.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39898882
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Целочисленные операции заменил на double. Нормализованные в диапазоне от 0.0 до 1.0.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39898895
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если считать бордюр не прямоугольником а трапецией то вроде все норм должно быть.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39899000
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98

Я крашу бордюр так:
левый -правый-верх-низ. Все полностью, поэтому квадранты получаются в два прохода.
А в квадрантах нулевые начальные условия. Идея в том, чтобы задать их значением угловой точки. В моём случае это 3 вертикальных "уса" по углам. Мои усы толщиной в 2,5 точки, если б брал в глубину 1, то и толщины уса достаточно==1.

Картинка с бордюром выше сделана, кроме того с повторной покраской, т.е. углы вообще в 4 прохода. А сейчас задал усики, и за один проход без артефактов, почти не отличимо от предыдущего, зато и гладкость углов почти безупречная (если не точки не являются скачками - это проблема фотографа).
То же самое со всеми рисунками, что раньше делал.
Пока не выкладываю. А нужно ли? поверьте просто на слово ...

Это тоже на Мат-лабе? Есть сорцы?
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39899019
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А як же?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
brd=128; br= brd/2; B1= zeros(size(A0)+[brd,brd,0]);
%% Инициализировать угловые вертикальные Усы
for k= 1:3
  B1(1:br, br+1:br+3, k)= A0(1,1,k);  B1(end-br-3+1:end,  br+1:br+3, k)= A0(end,1, k);
end;
for k= 1:3
  B1(1:br, end-br-3+1:end-br, k)= A0(1,end,k);  B1(end-br-3+1:end, end-br-3+1:end-br, k)= A0(end,end, k);
end;

...
Рейтинг: 0 / 0
Наложение серии изображений
    #39899021
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
...то вроде все норм ...
Согласен. Кста, оппозитные тона косвенно говорят о правильном применении симметричной маски.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39899024
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98
А як же?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
brd=128; br= brd/2; B1= zeros(size(A0)+[brd,brd,0]);
%% Инициализировать угловые вертикальные Усы
for k= 1:3
  B1(1:br, br+1:br+3, k)= A0(1,1,k);  B1(end-br-3+1:end,  br+1:br+3, k)= A0(end,1, k);
end;
for k= 1:3
  B1(1:br, end-br-3+1:end-br, k)= A0(1,end,k);  B1(end-br-3+1:end, end-br-3+1:end-br, k)= A0(end,end, k);
end;


Чувак я здесь ничо не понял. Давай это ... займемся техническим переводом. :)
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39899032
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"А почитать?"(цэ) дежурная шутка других разделов.
Начинаем урок, садитесь.
А0() изображение, nxnx3 3= (rgb)
B1() оно же с бордюром, бордюр инициализируется 0.
затем была пропущена вот эта строка:
B1(br+1:end-br, br+1:end-br, :)= A0; - впендюрить A0() внутрь B1().
Ну а затем циклы рисуют вертикальные отрезки-усы как продолжение боковых сторон А0(). Приходится каждую координату РГБ загонять в матрицу самостоятельно.

Первый цикл рисует левые отрезки, 2-й -- правые. Толщина отрезков ==3, поскольку маска 3х3, т.е. 3 т. в глубину.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39899035
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно ещё пояснить про "end" внутри. B1(1:br, end-br-3+1:end-br, k)
В контексте индекса массивов он заменяет макс. значение размерности, все массивы начинаются с 1.
size(А, 1) - кол-во строк, size(А, 2) - кол-во столбов, size(А, 3) - кол-во третьего измерения (страницы) ... В нашем случае 3-е измерение == РГБ.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39899036
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ойвей я почувствовал себя студентом.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39899037
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выше плохо написал
авторциклы рисуют вертикальные отрезки Циклы делают это для каждого из 3-х цветов. А собственно заполнение выполняется неявным циклом вида
B1(1:br, br+1:br+3, k) , где выражение (а:в) означает перебор от а до в .
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39899043
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Ойвей я почувствовал себя студентом.
если делать это в командном окне (в диалоге, в сочетании с прогоном и т.п.), можно тут же посмотреть картинку figure, imshow( cast(B1,'uint8'), [], 'InitialMagnification','fit');

В барсике похожие возможности диалоговой отладки.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39899381
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Признаюсь честно что я пока не знаю как применить твой исходник. Он настолько сильно отличается
что даже об адаптации речь не идет.

Посмотри сам. Тут мост - длиной в бесконечность. Возможно другая формула была-бы более уместна.

Исходник стартует с моего фильтра и заканчивается фрагментом где надо заполнить угловые квадранты.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
    @Override
    public BufferedImage doFilter(@NotNull BufferedImage src, @Nullable Map<String, Object> parameters) {
        int bs = (Integer) parameters.get("borderSize");
        checkArgument(bs > 0);
        int x = src.getWidth();
        int y = src.getHeight();
        logger.trace(":: detect input image size : {} x {} and colorModel = {}",x, y, src.getColorModel());
        int xr = x + 2 * bs;
        int yr = y + 2 * bs;
        BufferedImage dest = new BufferedImage(xr, yr, BufferedImage.TYPE_INT_ARGB);
        Raster.copyImageIntoPos(src, dest, bs, bs);
        // Left
        for (int j = bs; j > 0; j--) {
            for (int i = 1 + bs; i < yr - 1 - bs; i++) {
                int pixel1 = dest.getRGB(j, i - 1);
                int pixel2 = dest.getRGB(j, i);
                int pixel3 = dest.getRGB(j, i + 1);
                int res = Raster.avgPixel(pixel1, pixel2, pixel3);
                dest.setRGB(j - 1, i, res);
            }
        }

        // Right
        for (int j = bs + x - 1; j < xr - 1; j++) {
            for (int i = 1 + bs; i < yr - 1 - bs; i++) {
                int pixel1 = dest.getRGB(j, i - 1);
                int pixel2 = dest.getRGB(j, i);
                int pixel3 = dest.getRGB(j, i + 1);
                int res = Raster.avgPixel(pixel1, pixel2, pixel3);
                dest.setRGB(j + 1, i, res);
            }
        }

        // Top
        for (int i = bs; i > 0; i--) {
            for (int j = 1 + bs; j < xr - 1 - bs; j++) {
                int pixel1 = dest.getRGB(j - 1, i);
                int pixel2 = dest.getRGB(j,     i);
                int pixel3 = dest.getRGB(j + 1, i);
                int res = Raster.avgPixel(pixel1, pixel2, pixel3);
                dest.setRGB(j, i - 1, res);
            }
        }

        // Bottom
        for (int i = y + bs; i < yr; i++) {
            for (int j = 1 + bs; j < xr - 1 - bs; j++) {
                int pixel1 = dest.getRGB(j - 1, i - 1);
                int pixel2 = dest.getRGB(j,     i - 1);
                int pixel3 = dest.getRGB(j + 1, i - 1);
                int res = Raster.avgPixel(pixel1, pixel2, pixel3);
                dest.setRGB(j, i, res);
            }
        }
        // TODO: Implement all border directions
        // brd=128; br= brd/2; B1= zeros(size(A0)+[brd,brd,0]);
        //%% Инициализировать угловые вертикальные Усы
        //for k= 1:3
        //  B1(1:br, br+1:br+3, k)= A0(1,1,k);  B1(end-br-3+1:end,  br+1:br+3, k)= A0(end,1, k);
        //end;
        //for k= 1:3
        //  B1(1:br, end-br-3+1:end-br, k)= A0(1,end,k);  B1(end-br-3+1:end, end-br-3+1:end-br, k)= A0(end,end, k);
        //end;
        return dest;
    }
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39899441
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем его применять? я полагал, что он нужен , чтобы формализовать предшествовавший поток сознания. Насчёт того где применять, надо сперва изменить собственное сознание.
На мой взгляд не надо было с самого начала выделять квадранты во что-то отдельное по заполнению. Лично я и не выделял.

Поэтому, если брать мою идею, то придётся менять везд, егде есть типа
Код: java
1.
for (int i = 1 + bs; i < yr - 1 - bs; i++)

На что менять? Циклы начинать с
int i = 1 (или как там правильно, чтобы не выйти за границы dest)
Заканчивать циклы аналогично. Т.о. каждый квадрант красится по 2 раза. Йес? Я об этом тоже писал.
Но! повторяю первая итерация покраски
int pixel1 = dest.getRGB(j, i - 1); при for (int j = bs; (аналогично на другой стороне рисунка) тогда бы в квадрантах обращалась к месту, заранее не заполненному.
Я предложил заранее это место заполнять отрезками длиной bs . Можно сразу все 4 отрезка нарисовать, можно непосредственно перед каждой стороной. (когда эти отрезки будут краситься уже в перпендикулярном направлении, они не повлияют и забьются нужными величинами).

Т.о. как только выполнено
Код: java
1.
Raster.copyImageIntoPos(src, dest, bs, bs)

; можно рисовать в dest эти отрезки.

Направление отрезков, очевидно зависит от последовательности закраски бордюров. Оо, блин! у меня в той же последовательности, я рисовал вертикальные отрезки.

Не хошь так - я не настаиваю. Эх, без маленькой картинки не обойтись.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39899446
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как-то так (в остальных углах аналогично вертикально) если браузер не зависнет сейчас
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39899670
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самое тяжелое нудоство в графике это проверки краевых случаев. Вырожденные случаи. Выходы за границы
диапазонов. И некоторые внутренние договорняки.

Эти договорённости разработчик заключает сам с собой чтобы определить как ведут себя примитивы.
Я минут 30 рассуждал сам с собой что должна возвращать функция которая делает пересечение
двух прямоугольников. Должна она вернуть null, или какой-то особый empty-прямоугольник?
Это головная боль потому что это контракт который потащит за собой поведение всей графической
библиотеки дальше.
...
Рейтинг: 0 / 0
Наложение серии изображений
    #39899933
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не понял, о чём это. Но если применить к "усам" и их последствиям для формулы, то их можно не рисовать физичекси, но использовать в вычислениях, запоминать в доступном месте ...
Ибо речь идёт только о рекуррентной формуле. Ей всегда нужны начальные значения. Предыдущие результаты наводят на мысль, что с т.зр. "красиво" пустые начальные условия - не самое лучшее. Или поменять смысл "красиво".
...
Рейтинг: 0 / 0
166 сообщений из 166, показаны все 7 страниц
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Наложение серии изображений
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]