На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
! правила раздела Алгоритмы
1. Помните, что название темы должно хоть как-то отражать ее содержимое (не создавайте темы с заголовком ПОМОГИТЕ, HELP и т.д.). Злоупотребление заглавными буквами в заголовках тем ЗАПРЕЩЕНО.
2. При создании темы постарайтесь, как можно более точно описать проблему, а не ограничиваться общими понятиями и определениями.
3. Приводимые фрагменты исходного кода старайтесь выделять тегами code.../code
4. Помните, чем подробнее Вы опишете свою проблему, тем быстрее получите вразумительный совет
5. Запрещено поднимать неактуальные темы (ПРИМЕР: запрещено отвечать на вопрос из серии "срочно надо", заданный в 2003 году)
6. И не забывайте о кнопочках TRANSLIT и РУССКАЯ КЛАВИАТУРА, если не можете писать в русской раскладке :)
Модераторы: shadeofgray, JoeUser
  
> Поиск участков для бесшовных текстур
    Приветствую!

    Собственно интересует возможный алгоритм для программного сабжа.

    Подробнее

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

    Замечания
    1. Минимальный размер 32x32 пикселя, ну или около того
    2. Такого участка может и не быть
    3. Набор участков формируем по возрастанию площади
    4. В наборе участков присутствуют только те, с помощью которых формируются уникальные текстуры относительно уже найденных
    Мои программные ништякиhttp://majestio.info
      Цитата JoeUser @
      Задача найти прямоугольные области в данном рисунке, которые можно использовать для создания бесшовных текстур

      А таких участков на произвольной фотографии не будет ни одного.
      Вот я делал тему: Автоматический затайливатель картинки.
        Цитата Mikle @
        А таких участков на произвольной фотографии не будет ни одного

        Неправда! Часто может не быть, но так же и может быть.
        Да, и речь идет не обязательно о фотографии, но и произвольном изображении.
        Мои программные ништякиhttp://majestio.info
          Тогда сначала нужно дать определение бесшовности. Например, даже полное совпадение цветов всех пикселей слева и справа не означает, что картинка бесшовна по горизонтали.
            Цитата Mikle @
            Тогда сначала нужно дать определение бесшовности.

            Задача непростая, но я попробую... :) Для начала "бесшовность" разделим на два вида:

            1.Видимая бесшовность

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

            2.Строгая бесшовность

            Пусть выбранное изображение для заливки имеет ширину W и высоту H. Если есть такое смещение Δw ɛ [0,W] и Δh ɛ [0,H], при котором полученное изображение шириной W и высотой H на заливке в точности соответствует выбранному изображению заливки, то у нас строгая бесшовность заливки. Такая заливка чаще всего встречается в текстурах и узорах.
            Мои программные ништякиhttp://majestio.info
              Второй вариант бесспорен, его можно перефразировать проще: если мы найдём на исходном изображении готовый фрагмент 2*2 тайла, то тайл из него можно считать бесшовным. Но об этом я и писал, что "таких участков на произвольной фотографии не будет ни одного", даже на фотографии кирпичной стены при рассеянном свете строго под углом 90 градусов. Да, если это не фотография, а рисунок, вероятность нахождения будет ненулевая.
              А первый вариант содержит неопределённое понятие "без видимых соединений". Но само понятие "бесшовность" - это и есть "без видимых соединений", получили рекурсивное определение понятие через самого себя.
              Я считаю, что постановка задачи "найти прямоугольные области" бесперспективна из-за слова "найти". Нет, их придётся создать, и вовсе не обязательно так, как в моей программе.
                Цитата Mikle @
                Я считаю, что постановка задачи "найти прямоугольные области" бесперспективна из-за слова "найти". Нет, их придётся создать, и вовсе не обязательно так, как в моей программе.

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

                Добавлено
                Цитата Mikle @
                Но само понятие "бесшовность" - это и есть "без видимых соединений"

                Видимое и строгое - это разные вещи.
                Мои программные ништякиhttp://majestio.info
                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                0 пользователей:


                Рейтинг@Mail.ru
                [ Script Execution time: 0,0825 ]   [ 14 queries used ]   [ Generated: 26.08.19, 02:43 GMT ]