nyaload

Журнал Пушыстого

Журнал Пушыстого

Entries by tag: imaging

Мой серый - это зелёный
nyaload
_winnie
Если нарисовать пикселями шахматную доску, то она у меня окрашивается в зеленый цвет прямоугольными пятнами, положение пятен зависит от взаимного расположения элементов на далеком расстоянии на экране на той же scanline. Если залить черно-белой решёткой весь экран - то он окрашивается в четко зелёный цвет примерно соответствующий rgb=#53b053
Кто-нибудь в курсе, как называется этот баг и можно ли его поправить в мониторе (ASUS PB287Q)? Фото под катом. update: похоже что это "технология улучшения картинки" называемая в меню монитора "sharpness", но отключить её для стандартного sRGB режима невозможно.

Наткнулся на него в ходе выяснения "какое же значение гаммы используется на моем мониторе при гамма-коррекции".

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

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

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

серый зелёныйCollapse )
Tags: ,

два в одном, Эйнштейн в Мэрилин.
nyaload
_winnie
Можно собрать картинку, которая вблизи выглядит не так, как издали.

Для этого нужно взять крупные детали одной картинки, и мелкие от другой (в статье мелкие и крупные "детали" отделяются при помощи преобразования Фурье).

Если вы отойдёте или прищурите глаза, то вы будете видеть Мэрилин Монро. Если присмотреться - то будет виден Эйнштейн:



Источник: http://jeremykun.com/2014/09/29/hybrid-images
Tags:

because we can
nyaload
_winnie
Захотел сегодня сделать из зацикленного gif - не зацикленый. Чтобы анимация показывалась только один раз.

Нашёл описание формата, поправил два байта (unsigned number of repetitions) с количеством повторения с нуля (бесконечно зацикленый) на 1 (попробовал оба варианта, big endian и little endian). Не получилось, картинка осталась зацикленой. Тогда просто испортил заголовок описывающий анимацию, поменяв 21FF на 21AA. Получилось, gif теперь в FF и хроме не зацикленый. Но IE отказался его показывать. Тогда просто стёр этот блок. Получилось. Но FireFox действительно теперь показывает анимацию ровно один раз, а для перезапуска анимации - нужно перезагружать браузер. Блок легко кстати ищется глазами по строке "!..NETSCAPE2.0"

Давно ничего не редактировал в бинарном виде. Узнал, что в vim принято переключаться из бинарного режима в текстовый при помощи внешней программы конвертирования ( «:%!xxd» туда, и «:%!xxd -r» обратно ). Работает, но до нормального hex-редактора далеко (нельзя даже найти последовательность, которую перенесли на другую строку, для удаления байтов нужно переключиться в text-режим и запоминать в голове в штуках смещения, положение курсора естественно забывается).

Read more...Collapse )

Твои глаза - лгут тебе
nyaload
_winnie
Фиолетовое и красное сердце - одного цвета:


Зелёная и голубая спираль - одного цвета:


Левый и правый глаз - одного цвета:


Секрет, как делаются такие картинки:
Read more...Collapse )

Источник: http://www.psy.ritsumei.ac.jp/~akitaoka/color-e.html

Как делать графики в питоне
nyaload
_winnie
Для графиков я использую matplotlib

Когда мне нужна какая-то фича, но я не знаю какую функцию с какими параметрами позвать - то иду на http://matplotlib.sourceforge.net/gallery.html и копипащу оттуда код (по клику на картинке).

Вот тут есть туториалы на русском языке:
часть 1 http://koldunov.net/?p=275 ,
часть 2 http://koldunov.net/?p=290

Простой пример (без numpy, с обычными списками)-


import matplotlib.pyplot as plt
import math

xs = xrange(1000)
ys = [math.sin(x/50.0) for x in xs]
plt.plot(xs, ys)
plt.show()


bigram matrix
nyaload
_winnie
Берем все соседние пары букв в нескольких книжках (рус/англ), строим матрицу M{ij} = вероятность встретить символ j после i. Группируем столбцы/строки по похожести.

Имеем симпатичную картинку, в которой сами собой сгруппировались знаки препинания, гласные и согласные, английские и русские, заглавные и строчные буквы, цифры.

html-таблица (3 мб): http://dobrokot.ru/dump/bigram_matrix.html
скриншот фрагмента для русского языка:
Tags: , ,

губка менгера в разрезе
nyaload
_winnie


Если рассечь Губку Менгера (см. рисунок) под одним интересным углом, то неожиданно получается фрактальная гексаграмма (Звезда Давида):



крупнее под катомCollapse )
( источник: http://mathpaint.blogspot.com/2008/04/menger-sponge.html )

Оптимизация размера графики в казуалках
nyaload
_winnie
В казуалках есть одна штука, в которой есть месту техническому теку - это пайплайн, хорошо сжимающий графику. Кто-то считает что необоснованно "пользователю всё равно сколько скачать, 10 мегабайт или 100, он не разбирается", кто-то считает что важно "+10 % к размеру - минус 1% пользователей", ну и видел даму которая не скачивает игры с большим размером "потому что долго ждать".

В mahjongg artifacts встала задача засунуть в небольшой объём много графики - 50 бэков и комиксов 1024x768, плюс всё остальное (музыку, графику, exe).

Были примененен "атласинг", когда мелкие картинки кладутся в одну текстуру что бы не тратить место на заголовки. Кстати, шрифты очень хорошо паковались, тем же алгоритмом упаковки - Read more...Collapse )
Ну, атласинг - это типично.

Ещё один трюк: rgb-канал - жмется в jpg, а альфа канал - в 64 отенках серого png. Для rgb-канала применяется особый трюк, который продолжает rgb-канал в область прозрачности, таким образом сжатие в jpg не портит резкие границы (границы в rgb размываются, и остаются только в альфа-канале):
Read more...Collapse )

И ещё один ультимейт-трюк: в комиксах при выставлении максимального jpeg-сжатия (0% в фотошопе) комикс выглядит в 80% части нормально. Но в некоторых важных местах для человеческого зрения - глаза, губы, пальцы, сюжетные элементы - ужасно. jpeg-изображение состоит из блоков 16x16. Не вопрос, пишем тулзу в которой указываем какие квадратики 16x16 надо сжимать хорошо, и в игровом коде рисуем эти квадратики-заплатки поверх плохого Jpeg:
Как выглядят патчи:
Read more...Collapse )

Редактор:
Read more...Collapse )

см. так же про то, как удобней сделать интерфейс рисования спрайтов

ширина PDF на мобилках
nyaload
_winnie
Известно[см. опровержение в комментах], что pdf неудобно читать на маленьких экранах, так как ни одна программа не умеет переформатировать текст в pdf под новую ширину экрана.

Подумал, вдруг это возможно на уровне картинки. Находим строки, разрезая картинку по наиболее светлым участкам, делим каждую строку пополам (желательно между словами), склеиваем полоски, чередуя левую и правую половинки. Получаем картинку в два раза уже.

Попробовал, получилось. Накатал proof of concept. Картинки под катом.
Оригинал, линии разреза, и результат.

Read more...Collapse )

(no subject)
nyaload
_winnie
Всё-таки научился делать Пц-букву на автомате из любого кириллического шрифта.

Результат:




upd: Ыц! Ыц! Ыц!


Скрипт:
Read more...Collapse )
Суть алгоритма: Read more...Collapse )

?

Log in

No account? Create an account