powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Наложение серии изображений
25 сообщений из 166, страница 4 из 7
Наложение серии изображений
    #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
25 сообщений из 166, страница 4 из 7
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Наложение серии изображений
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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