将 RGB 值映射到颜色名称 MATLAB
Mapping RGB Values to color names MATLAB
我一直致力于对不同颜色空间的图像执行 K 均值聚类。聚类中心代表颜色值,我想用颜色名称来描述颜色值。
聚类操作结果示例:
我现在想从分割的img中描述这3个像素(RGB值)的颜色名称:
134.2263 146.4977 194.6406
137.5899 78.5631 50.4859
111.6383 131.4764 36.3863
获得如下输出:深绿色、棕色、浅紫色等。
我认为这类似于使用 HTML 颜色代码,但我不确定如何在 matlab 中应用它。
Whosebug 上也有类似的问题,但与 python、java 等无关,与 matlab 无关。是否有任何 matlab 功能可以使这成为可能?
谢谢!
解决方案草图:
下载包含有关 rgb 值和匹配名称的信息的网页:
ctable = urlread('https://en.wikipedia.org/wiki/List_of_colors_%28compact%29');
解析rgb值,每个值恰好出现两次:
rgb_vals = regexp(ctable,'rgb\([0-9]+,[0-9]+,[0-9]+\)','match')';
rgb_vals = rgb_vals(1:2:end);
解析颜色名称:这可能有点棘手,但有可能。通过检查几对,确保顺序与解析的 rgb 值列表相匹配。
最后,构造一个KNN分类器,给定一个新的rgb值,在你的table中找到最接近的rgb值,并输出匹配的名称。您可以使用 Matlab 的 knn
.
另一个类似的选择是寻找在线 rgb-to-name 转换器,并在每次需要时向其发送请求。
编辑
先将 ctable
中的内容拆分为 line-endings 可能更容易,然后当您找到具有 rgb 值的行时,您可以在下面的行中查找名称。
我一直致力于对不同颜色空间的图像执行 K 均值聚类。聚类中心代表颜色值,我想用颜色名称来描述颜色值。
聚类操作结果示例:
我现在想从分割的img中描述这3个像素(RGB值)的颜色名称:
134.2263 146.4977 194.6406
137.5899 78.5631 50.4859
111.6383 131.4764 36.3863
获得如下输出:深绿色、棕色、浅紫色等。
我认为这类似于使用 HTML 颜色代码,但我不确定如何在 matlab 中应用它。
Whosebug 上也有类似的问题,但与 python、java 等无关,与 matlab 无关。是否有任何 matlab 功能可以使这成为可能?
谢谢!
解决方案草图:
下载包含有关 rgb 值和匹配名称的信息的网页:
ctable = urlread('https://en.wikipedia.org/wiki/List_of_colors_%28compact%29');
解析rgb值,每个值恰好出现两次:
rgb_vals = regexp(ctable,'rgb\([0-9]+,[0-9]+,[0-9]+\)','match')';
rgb_vals = rgb_vals(1:2:end);
解析颜色名称:这可能有点棘手,但有可能。通过检查几对,确保顺序与解析的 rgb 值列表相匹配。
最后,构造一个KNN分类器,给定一个新的rgb值,在你的table中找到最接近的rgb值,并输出匹配的名称。您可以使用 Matlab 的 knn
.
另一个类似的选择是寻找在线 rgb-to-name 转换器,并在每次需要时向其发送请求。
编辑
先将 ctable
中的内容拆分为 line-endings 可能更容易,然后当您找到具有 rgb 值的行时,您可以在下面的行中查找名称。