+27.06
Рейтинг
99.02
Сила

siril

  • avatar oisee
  • 3
Но тогда нужен восклицательный знак! Без него нельзя!

У меня и лога есть под это:
AAA!
  • avatar oisee
  • 1
Спектрумовские полосочки мне нравятся. Участвуй в конкурсе! =)
  • avatar oisee
  • 4
Не получится, надо подтвердить смену мыла с нового ящика. Купайся с нами!
  • avatar oisee
  • 8
Автопортреты — всегда вне конкуреции =)
  • avatar oisee
  • 1
Правильно ли я понял что:
1) мы идём «в обратную сторону», то есть пляшем от спектрумовской атрибутной сетки.
2) выбираем стартовое знакоместо и подгоняем, двигая (всю?) картинку под него на +-2 пикселя (что даёт нам 5 вариантов по горизонтали и 5 по вертикали, итого: 25 вариантов).
3) переходим к следующему соседнему знакоместу и также подгоняем двигая всю картинку (25 вариантов).
5) перебираем так всю атрибутную сетку: для каждого знакоместа у нас есть массив лучших вариантов, отсортированных по убыванию.

6) самый главный этап: пытаемся для каждого знакоместа выбрать лучший вариант с учётом лучших вариантов для соседних знакомест (тут количество переборов растёт по экспоненте).
  • avatar oisee
  • 0
Эффект с познакоместным сдвигом может выглядеть как прикольный эффект. Но уточни пожалуйста какой именно сдвиг ты имеешь ввиду?
  • avatar oisee
  • 4
То есть интерактивный инструмент может быть таким:

Неограниченное количество слоёв со спектрум-палитрой в режиме «цвет на точку».
Каждый слой может независимо от остальных смещаться, двигаться и т.п. — редактироваться.
У каждого слоя есть «вес» при слиянии и рендеринге в спектрум режим: область просмотра которого всегда видна и доступна, любые изменения в любом из слоёв сразу отражаются там.
  • avatar oisee
  • 3
Да, одно из направлений развития, это (полу)автоматическое или ручное выделение объектов в слои, которые можно подгонять раздельно, задав лишь условие неперекрываемости.

Вообще, это можно сделать уже сейчас, разделив исходник на объекты и просто обработав последовательность картинок.

Все эти идеи обсуждались в процессе мозгоштурма нового идеального графического редактора: оказалось что простой интнрактивной многослойности со слоями «цвет на точку» при моментальном перерендеринге в спекрум-атрибуты при любом изменении — достаточно для значительного упрощения рисования и снятия рутины.
  • avatar oisee
  • 1
Маска полной значимости или полной незначимости, на практике получается бесполезна: проще удалить незначащие пиксели непосредственно на исходнике.

А вот битовая (монохромная) маска повышенной значимости — поможет штрафовать сильнее за утерю пикселей повышенной значимости. Ну то есть если обмазать такой маской рот или глаза — штраф за их утерю будет выше. =)
  • avatar oisee
  • 2
Так что лучше подождать готовых бинарников =)
  • avatar oisee
  • 0
Autodiver v1.0 — вон там в самом начале публикации написано =)

Но тут важно понимать требования для запуска:
1) поставить ImageMagick,
2) поставить ruby,
3) поставить RMagick (для этого нужно [a] поставить DevKit)
  • avatar oisee
  • 0
В случае с маской добавляется дополнительный фильтр: сначала смотрим, есть ли в текущем знакоместе маски 2 разных цвета (ч/б), или всё белое: если да — то знакоместо значащее и его оценка сохраняется. А если в знакоместе маски только чёрный цвет — то знакоместо незначащее и оценка у него 0.
  • avatar oisee
  • 2
Одна надежда на Vitamin =) только он может сделать быстро и понятно на c/cpp, и чтобы на всех платформах бинарник работал =)
  • avatar oisee
  • 0
Что ещё можно сказать: так как первая задача решается с помощью командной строки: работа её происходит медленнее, если бы эти же самые преобразования происходили с помощью библиотеки и прямо в памяти и не было бы открытия исходника каждый раз заново — всё работало бы быстрее. После преобразования картинки можно было бы сразу выполнить оценку — и не сохранять целиком всё изображение, а только параметры преобразования и оценку.
  • avatar oisee
  • 1
То есть наш AutoDiver (как и настоящий!) ничего не конвертирует =) Только приценивается и выбирает лучшее =)
  • avatar oisee
  • 5
Вся оценка умещается в следующую функцию:
на вход которой поступает img — картинка, px и py — координаты знакоместа (в пикселях):

def eval_cell(img,px,py)
cell = img.get_pixels(px,py,8,8) # получаем массив пикселей 8x8 (64) по коодинатам px и py

rcell = cell.reduce(Hash.new(0)) {|a,b| a[b] += 1;a} #из массива конструируем словарь/хэш у которого ключ — это цвет пикселя(сам пиксель), а значение — количество этих пикселей в массиве

acell = rcell.values.sort.reverse[2,64] #получаем массив пикселей, ниже второго места по распространённости в нашем знакоместе — «потерянные» пиксели
bcell = acell != nil? acell: [0] # если таких не было (в знакоместе только один или два цвета) — то создаём массив из одного элемента, равный нулю.
err = bcell.inject(0, &:+) # суммируем элементы массива — получаем сумму «потерянных» пикселей в знакоместе
end

то есть, предположим у нас есть массив:

1,1,1,1,1,1,1,1
1,1,1,1,1,1,1,1
1,1,1,1,0,0,0,0
1,1,1,1,0,0,0,0
1,1,1,1,0,0,0,0
1,1,1,1,2,2,2,3

То на первом этапе получим хэш 1=>44, 0=>16, 2=>3, 3=>1
затем получим все, что ниже «второго места»: 3, 1
затем суммируем: 4.
«Штрафной рейтинг» знакоместа = 4.

Повторить 768 раз =)
  • avatar oisee
  • 1
автоmmcm делается из автоsiril'а изменением файла module_template.rb =)
  • avatar oisee
  • 0
  • avatar oisee
  • 3
Сорвалось. В общем, это «лучшие варианты» найденные для различных картинок.
Вот ещё парочка:
  • avatar oisee
  • 2
Best1