我正在逐像素处理图像,我需要得到每个像素的颜色名称。我有这些主要的颜色名称:黄色,洋红,青色,红色,绿色,蓝色,白色,黑色。我还有每个像素的RGB和CMYK数字。如何根据这些数字将像素的颜色近似为上述颜色之一?它不需要精确,只是一个非常普遍的近似值。我能用RGB或CMYK做什么数学来确定这一点吗?我更喜欢简单的解决方案,而不是精确的解决方案。
虽然发布的另一个解决方案适用于已知的名称,但看看像这样的模型和论文,以实际概括和理解如何将(甚至)未知的颜色转换为有用的名称。
编辑:即使这不是OP想要的,我最终还是花了几个小时把它连接起来,以便在Docker/VSCode中轻松工作。请参阅此处,了解如何快速启动并运行此存储库。
我希望这对别人有帮助!
让我们以此为起点:
现在,制作一张我们想要寻找的所有颜色的地图,记住ImageMagick使用X11颜色名称,其中green
被命名为lime
:
magick xc:black xc:white xc:red xc:lime xc:blue xc:cyan xc:magenta xc:yellow +append map.png
这使得这个——我放大了它,因为它只有8像素宽,1像素高:
现在,我们只需要让imageMagick将帕丁顿的所有像素映射到地图中最接近的颜色:
magick paddington.png +dither -remap map.png result.png
现在我们来看看结果的颜色图中像素的分布:
magick identify -verbose result.png | grep -A9 Histogram
输出量
Histogram:
78839: ( 0, 0, 0) #000000 black
15057: ( 0, 0,255) #0000FF blue
1: ( 0,255, 0) #00FF00 lime
22422: ( 0,255,255) #00FFFF cyan
18103: (255, 0, 0) #FF0000 red
11: (255, 0,255) #FF00FF magenta
5809: (255,255, 0) #FFFF00 yellow
19758: (255,255,255) #FFFFFF white
我们可以看到400x400中有78839个像素是黑色的,15057个像素是蓝色的。。。等等
请注意,您可以使用wand
完成所有这些操作,这是一个与ImageMagick绑定的Python。
本文向大家介绍HTML采用的是RGB颜色还是CMYK颜色?为什么?相关面试题,主要包含被问及HTML采用的是RGB颜色还是CMYK颜色?为什么?时的应答技巧和注意事项,需要的朋友参考一下 用在电脑或者手机上显示的大部分都是RGB,用于需要印刷的都用CMYK 并且不同的显示器色域不同会导致色差,不同浏览器也有自己的调色板,后面总结出来过一套web安全色,就是专用在web上大部分情况下都不会有明显色差
问题内容: 编辑: 给出答案后,我执行了此功能 我的目标是这个。我抓取图片并遍历每个像素,然后抓取其x,y和rgb。 我拥有一个预定义的数组,而不是仅仅抓住rgb,我正在寻找从我抓取的颜色到预定义数组的最接近的匹配项。这里的目标是仅使用预定义数组中的颜色。这是我的颜色数组。 这是我现有的遍历所有内容的代码。 rgb2hex是用户定义的函数,但是我要完成的功能是使用该函数更改该函数以获取最接近的颜色
问题内容: 我正在处理图像,并想确定一组像素是否更接近白色或黑色。 因此,给定一组 颜色/像素 ,如何确定它们接近白色还是黑色? 我尝试了一些笨拙的算法,有人知道我该怎么做吗? 问题答案: 我要说的是,您可以先将颜色转换为灰度,然后检查它是否更接近黑色或白色。 首先将RGB颜色值转换为通过以下公式计算亮度 然后检查该值是接近于0还是255,并相应地选择黑色或白色 请注意,如果未对颜色空间进行伽玛压
图像中的每个像素都有一个rgb值,看起来像[r g b],其中r、g、b是从0到255的整数值。 现在,让我们定义8个rgb颜色极端: [0]黑色 [0 255]蓝色 [0 255 0]绿色 [0 255]青色 [255 0 0]红色 [255 0 255]洋红色 [255 0]黄色 [255]白色。 Matlab中有没有一种有效的方法,或者Matlab中的一个函数,可以将一幅图像转换成另一幅具有
类似 vchart 这样的填充地图(https://visactor.io/vchart/demo/map-chart/basic-map),怎么能自定义区块颜色的规则?示例里的配置不太符合我的需求。我希望当值在某个区间,显示一个指定的颜色。
问题内容: 我想将颜色元组转换为颜色名称,例如“黄色”或“蓝色” python中有一种简单的方法可以做到这一点吗? 问题答案: 看起来webcolors将允许您执行以下操作: rgb_to_name(rgb_triplet,spec =’css3’) 将存在于rgb()颜色三元组中的3元整数转换为其对应的归一化颜色名称(如果存在);有效值为html4,css2,css21和css3,默认值为css