Квантование цветного изображения в .NET - PullRequest
3 голосов
/ 08 июля 2011

Я хочу уменьшить количество уникальных цветов растрового изображения в c #.

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

Есть идеи, как это сделать?

Решением может быть что-то для преобразования всего растрового изображения из RGB в систему индексированных цветов или какая-то функция, которая может быть применена к одному пикселю.

Любые решения GDI + или Emgu (opencv) хороши для меня.

Ответы [ 2 ]

5 голосов
/ 11 сентября 2011

Проверьте nQuant на http://nquant.codeplex.com. Это дает намного более высокое качество, чем код в статье MSDN, на которую ссылается Магнус.Он также учитывает альфа-уровень, в то время как статья msdn оценивает только RGB.Исходный код доступен, и есть сопровождающее сообщение в блоге , в котором подробно рассматриваются код и алгоритм.

3 голосов
/ 08 июля 2011

В msdn есть статья под названием Оптимизация квантования цвета для изображений ASP.NET , которая может вам помочь, у нее есть пример кода .

...