Самый распространенный цвет в растровом изображении (данные) - PullRequest
0 голосов
/ 26 марта 2012

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

Но функция должна быть максимально легкой, поэтому мой вопрос таков; Есть ли более легкий подход для достижения этой цели?

Функция используется для извлечения цвета фона растрового изображения.

Ответы [ 4 ]

1 голос
/ 27 марта 2012

Для этого можно использовать функцию гистограмма () класса BitmapData. Проверьте http://cc.mcgarrybowen.com/labs/2011/02/tip-use-as3s-histogram-method-for-color-averaging/ для информации позади него

0 голосов
/ 26 марта 2012

Зависит от вида визуальной информации, представленной в некоторых вариантах Метод Монте-Карло может подойти.В частности, если вы отображаете фотографические изображения, то выборочная случайная выборка (где random является взвешенной ) даст вам достаточно справедливое представление.Так, например, вы можете выбрать xor-shift random (как это было бы быстрее, чем AS3 Math.random()) и считывать значения цвета из ByteArray, сгенерированного из BitmapData, следующим образом: pixels.readUnsignedInt(xorShiftRandom() * pixels.length)в случае, если BitmapData использует формат ARGB.

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

Выможет также предварительно обработать изображение (уменьшив его).У меня нет никаких математических доказательств, но кажется, что вам не понадобится изображение размером больше 255x255 для достижения желаемых результатов.

0 голосов
/ 26 марта 2012

Вы можете уменьшить растровое изображение, сделать его размытым, а затем выбрать цвет в средней точке.

0 голосов
/ 26 марта 2012

Разве нельзя просто догадаться, что, например, верхний левый пиксель является частью фона и использовать этот цвет?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...