c# - 如何从图像生成突出颜色的调色板?

标签 c# image-processing colors color-palette

我正在尝试弄清楚如何对图像中的所有像素进行采样并从中生成调色板,例如 thisthis .我什至不知道从哪里开始。谁能指出我正确的方向?

__编辑:__

这是我到目前为止的结果:

我用了这个Pixelate函数来获得像 joe_coolish 建议的大块部分。它工作得很好,并为我提供了一个很好的颜色样本(这是来自 windows 样本水母图片):

现在,如果有人能帮我找到 5 种最鲜明的颜色(最深的蓝色、最浅的蓝色、橙色、灰色和桃色(?)),我会永远爱你。我真的不明白如何平均添加 颜色。我也不知道如何以编程方式判断颜色是否相似,您的解释中有很多数字和变量,我迷失了试图弄清楚什么对谁做了什么。

最佳答案

涉及代码的答案向您展示了如何获得完整的调色板。如果您想获得您发布的网站中的平均颜色,我会这样做。

源图片:

Source

首先,我会通过应用低通滤波器(类似于高斯模糊)来平均颜色

enter image description here

这样你就限制了总调色板。从那里我会将屏幕分成 N 个 block (N 是您想要在调色板中使用的像素总数)

enter image description here

从那里,定位每个 block 并迭代每个像素,并获取该 block 的平均像素并将其添加到您的调色板索引中。结果是这样的:

enter image description here

这样你的调色板就会受到限制,你会得到来自不同地区的平均颜色。你可以在代码中完成所有这些,如果你需要一些帮助,请告诉我,我会发布一些。这只是高层次的“我会做什么”。

关于c# - 如何从图像生成突出颜色的调色板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5823854/

相关文章:

c# - 在 .MSI 自定义操作中安装证书无法正常工作

r - 为什么 "image_read_svg"在 R 中无法工作?

image - 如何更改图像的整体色调,类似于 Photoshop 的色调调整?

image-processing - 将 BMP 图像转换为绘图仪的指令集?

iphone - 如何从图像中获取单个实体?

java - 将鼠标悬停在另一个单元格上时如何删除 JTable 单元格 bgColor?

c# - PrivateFontCollection 在 appharbor 上失败

c# - 提高 System.DirectoryServices.AccountManagement 的性能

C# 到 VB .NET yield 返回转换

python - 如何从图像中提取平滑的骨架