如何将颜色名称转换为 3 元素 RGB 向量?

2023-11-22

在许多 MATLAB 绘图函数中,您可以将颜色指定为字符串或直接列出红色、绿色和蓝色值的三元素向量。

例如,这两个语句是等效的:

plot(x, y, 'Color', 'r');
plot(x, y, 'Color', [1 0 0]);

可以通过字符串值指定 8 种颜色:'r','g','b','c','m','y','k','w'。是否有 MATLAB 内置函数可以将这些字符串转换为等效的 RGB 向量?


我在上找到了这个通用替代方案MathWorks 文件交换它甚至可以处理 MATLAB 中默认 8 以外的颜色字符串:

  • rgb.m by 本·米奇

如果您只关心默认 8 种颜色字符串的转换,这里有一个我自己编写的函数,用于在 RGB 三元组和短颜色名称(即单个字符)之间来回转换:

function outColor = convert_color(inColor)

  charValues = 'rgbcmywk'.';  %#'
  rgbValues = [eye(3); 1-eye(3); 1 1 1; 0 0 0];
  assert(~isempty(inColor),'convert_color:badInputSize',...
         'Input argument must not be empty.');

  if ischar(inColor)  %# Input is a character string

    [isColor,colorIndex] = ismember(inColor(:),charValues);
    assert(all(isColor),'convert_color:badInputContents',...
           'String input can only contain the characters ''rgbcmywk''.');
    outColor = rgbValues(colorIndex,:);

  elseif isnumeric(inColor) || islogical(inColor)  %# Input is a numeric or
                                                   %#   logical array
    assert(size(inColor,2) == 3,'convert_color:badInputSize',...
           'Numeric input must be an N-by-3 matrix');
    inColor = double(inColor);           %# Convert input to type double
    scaleIndex = max(inColor,[],2) > 1;  %# Find rows with values > 1
    inColor(scaleIndex,:) = inColor(scaleIndex,:)./255;  %# Scale by 255
    [isColor,colorIndex] = ismember(inColor,rgbValues,'rows');
    assert(all(isColor),'convert_color:badInputContents',...
           'RGB input must define one of the colors ''rgbcmywk''.');
    outColor = charValues(colorIndex(:));

  else  %# Input is an invalid type

    error('convert_color:badInputType',...
          'Input must be a character or numeric array.');

  end

请注意,此函数允许您输入字符串or一个 N×3 数值或逻辑数组(RGB 值从 0 到 1 或 0 到 255),它返回相反的颜色表示。它还使用了该功能ISMEMBER进行转换。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将颜色名称转换为 3 元素 RGB 向量? 的相关文章

  • MATLAB - 如何将子图一起缩放?

    我在一张图中有多个子图 每个图的 X 轴是相同的变量 时间 每个图上的 Y 轴都不同 无论是它所代表的内容还是数据的大小 我想要一种同时放大所有图的时间尺度的方法 理想情况下 可以在其中一张图上使用矩形缩放工具 并让其他图相应地更改其 X
  • Mercurial 颜色扩展的有效颜色是什么?

    水星的color 扩大 http mercurial selenic com wiki ColorExtension很棒 但是该页面上没有有效颜色的列表 我寻找了一个名为 color 的 python 文件 希望能够阅读源代码并在那里看到它
  • Simulink 仿真引擎如何工作?

    我想了解 Simulink 仿真引擎的工作原理 它是否使用离散事件模拟机制 那么如何处理连续时间 它是否依赖于基于静态循环的代码生成 或者 在第一个周期之前 它会计算出块的执行顺序 从不需要任何其他块输入的块开始 每个周期 它都会根据输入和
  • 什么是 ANN 中的纪元以及它如何转换为 MATLAB 中的代码?

    我试图理解 并可视化 训练人工神经网络的时代到底是什么 我们有一个包含约 7000 个产品的训练集 其中有 10 个特征 输入 这些产品必须根据这 10 个输入分为 7 个类别 我们的 ANN 有 10 个输入 这些输入进入由 10 个神经
  • 如何在没有安装Visual Studio的另一台机器上使用Visual Studio生成的dll?

    我已经在 Visual Studio 2012 中生成了动态库 我想在另一台机器上使用该库 但我不想在远程机器上安装 Visual Studio 我有 mex 库和 dll 我想运行一个使用这两个库的脚本 当我运行脚本时 出现以下错误 缺少
  • MATLAB:具有复数的 printmat

    我想使用 MATLAB 的printmat显示带有标签的矩阵 但这不适用于复数 N 5 x rand N 1 y rand N 1 z x 1i y printmat x y z fftdemo N 1 2 3 4 5 x y x iy O
  • Matlab 和 Python 中的优化算法(dog-leg trust-region)

    我正在尝试使用 Matlab 和 Python 中的狗腿信赖域算法求解一组非线性方程 在Matlab中有fsolve https www mathworks com help optim ug fsolve html其中此算法是默认算法 而
  • 使用符号求解器仅求解某些变量

    我正在尝试在 MATLAB 中求解包含 3 个变量和 5 个常量的方程组 是否可以使用solve求解三个变量 同时保持常量为符号而不用数值替换它们 当您使用SOLVE http www mathworks com access helpde
  • 我需要转义该 MATLAB 字符串中的字符吗?

    我想在 MATLAB 中调用以下 bash 命令 grep Up to test linux vision1 1 log awk print 7 I use system 在MATLAB中 但结果有错误 gt gt status strin
  • 如何告诉 mex 链接到 /usr/lib 中的 libstdc++.so.6 而不是 MATLAB 目录中的 libstdc++.so.6?

    现在 MATLAB 2012a 中的 mex 仅正式支持 gcc 4 4 6 但我想使用 gcc 4 7 风险自负 现在如果我直接用 mex 编译一些东西 它会抱怨 usr lib gcc i686 linux gnu 4 7 cc1plu
  • 删除颜色的透明度但保留颜色本身

    我想删除颜色的透明度 但保留颜色本身 例如 我喜欢绿色的透明版本 但我想要这种不透明的颜色 library scales show col green alpha green 0 3 gt nice green show col nice
  • 如何更改Plotyy第二轴的颜色和字体大小?

    我使用 MATLAB 的plotyy 函数绘制了两条曲线 AX H1 H2 plotyy voltage span amplitude voltage span Ca SR The problem is that I cannot chan
  • “Desort”向量(撤消排序)

    在Matlab中 sort返回排序后的向量和索引向量 显示哪个向量元素已移动到以下位置 v ix sort u Here v是一个包含所有元素的向量u 但已排序 ix是一个向量 显示每个元素的原始位置v in u 使用 Matlab 的语法
  • 在matlab中绘制给定区域内(两个圆之间)的向量场

    我想在 Matlab 中绘制下面的向量场 u cos x x 0 y y 0 v sin x x 0 y y 0 我可以在网格中轻松完成 例如 x 和 y 方向从 2 到 2 x 0 2 y 0 1 x y meshgrid 2 0 2 2
  • 给定协方差矩阵,在Matlab中生成高斯随机变量

    Given a M x M期望的协方差 R 以及所需数量的样本向量 N计算一个N x M高斯随机向量 X在普通 MATLAB 中 即不能使用r mvnrnd MU SIGMA cases 不太确定如何解决这个问题 通常你需要一个协方差并且意
  • Matlab dec2bin 给出错误的值

    我正在使用 Matlab 的 dec2bin 将十进制数转换为二进制字符串 但是 我得到了错误的结果 例如 gt gt dec2bin 13339262925365424727 ans 101110010001111010010100111
  • 使用php将cmyk转rgb

    我正在使用以下脚本将图像保存在文件夹中 但有一张图像显示此消息 图像无法显示 因为它包含错误 我认为问题出在图像上称为 cmyk 和 rgb 的东西 但是当在网上搜索使用 php 将 cmyk 转换为 rgb 的方法时 我找不到如何执行此操
  • 用 JavaScript 改变文本颜色?

    我想在单击按钮时更改标题的颜色 这是我的代码 但它不起作用 我不明白为什么不 var about function init about document getElementById about innerHTML about style
  • Matlab Builder JA - 将 Matlab 编译成 Java jar - 免费版本?

    请记住 我对 Matlab 一无所知 Matlab Builder JA 允许开发人员构建 Matlab 应用程序并将其导出到 Java jar 中 太棒了 我只需要生成一个 jar 然后就可以从其他 java 代码中使用它 有谁知道单罐包
  • 如何在 MATLAB 中绘制纹理映射三角形?

    我有一个三角形 u v 图像中的坐标 我想在 3D 坐标处绘制这个三角形 X Y Z 与图像中的三角形进行纹理映射 Here u v X Y Z都是具有三个元素的向量 代表三角形的三个角 我有一个非常丑陋 缓慢且令人不满意的解决方案 其中我

随机推荐

  • PHP中获取调用网页的URL

    我正在为一个班级开发网站统计引擎 这个想法是 您可以简单地在网页中嵌入一些代码 该代码将在每个页面加载时调用统计网站 然后统计网站将跟踪您的点击率等等 没有什么突破性的 我想做的是能够按网页细分网站点击量 例如 一个人可以在每个页面上包含相
  • 如何在 Docker 上运行 Spark?

    无法在 Docker 上运行 Apache Spark 当我尝试从驱动程序与 Spark Master 进行通信时 我收到下一个错误 15 04 03 13 08 28 警告 TaskSchedulerImpl 初始作业尚未接受 任何资源
  • Windows 服务安装程序不读取 App.Config 文件

    我已经在我的项目中添加了 App Config 我有一个安装程序类 ProjectInstaller cs 它需要从 App config 读取值 我正在提供钥匙 以下是示例代码 ConfigurationManager AppSettin
  • Android 谷歌地图片段

    我正在开发一个应用程序 顶部有一个菜单 菜单内有一些按钮 我正在尝试将谷歌地图添加到其中一个按钮 但我不是很成功 我正在关注本教程但不是直接实施谷歌地图MainActivity我将它们添加到按下按钮时启动的片段中 一切都很好 当我按下按钮时
  • 通过 pyspark.ml.tuning.TrainValidationSplit 调整后如何获得最佳参数?

    我正在尝试调整 Spark PySpark 的超参数ALS模型由TrainValidationSplit 它运行良好 但我想知道哪种超参数组合是最好的 评估后如何获得最佳参数 from pyspark ml recommendation i
  • PHP 的 mysql_real_escape_string() 的 Java 等效项

    Java 是否有相当于 PHP 的 mysql real escape string 这是为了在将 SQL 注入尝试传递给 Statement execute 之前逃避它们 我知道我可以使用PreparedStatement代替 但我们假设
  • 将不同长度的向量保存在矩阵/数据框中

    我有一个称为区域的长度为 166860 的数字 它由 412 个不同的元素组成 大部分长度为 405 一些长度为 809 我有它们的开始和结束 id 我的目标是提取它们并将它们放入具有 412 列的矩阵 数据框中 现在 我正在尝试这段代码
  • 文件的拖放是如何完成的?

    如在winamp或vlc播放器中 如何拖放文件 我的意思是我想知道什么样的编码进入应用程序 我想知道 c 在 Windows 上的纯 C C 中 开始阅读有关拖动接受文件函数和WM DROPFILES信息 如果您使用更强大的 C 库 Qt
  • 在 perl 中匹配字符串数组进行搜索的最简单方法?

    我想要做的是根据我的搜索字符串检查字符串数组并获取相应的密钥 以便我可以存储它 有没有一种神奇的方法可以用 Perl 来做到这一点 或者我注定要使用循环 如果是这样 最有效的方法是什么 我对 Perl 比较陌生 我只编写了另外 2 个脚本
  • .NET 中的窗口句柄可以改变它的值吗?

    在 NET 进程的生命周期中 System Windows Forms Form 假设使用的主要形式Application Run form 实际上改变它的值 即如果在不同的进程中使用句柄的值 例如IntPtr handle User32
  • 在 Django 模型中表示工作日的多选字段

    我一直在寻找一种优雅的方式来在 Django 模型中表示多选工作日字段 周一 周二 周三 我最初考虑使用按位数学来处理整数字段 但我不确定这是否是正确的方法 这将是一个最常被阅读的领域 我希望 Queryset 方法类似于Entry obj
  • 如何在Android中从网络加载React Native JS包?

    对于我的 Android 应用程序 我需要能够在运行时动态更新捆绑包 并使用资产中预先保存的捆绑包作为后备 我在官方文档 在 iOS 版本的 React Native 中 有一个方法可以让你指定一个 URL 来加载 JS 包 但我还没有看到
  • Cordova + Angularjs + 设备就绪

    我正在使用 Cordova 和 AngularJS 开发移动应用程序 如何在 Cordova 设备准备就绪之前限制 AngluarJS 的引导 基本上我不想在设备准备好之前使用任何 AngularJS 控制器 手动引导您的 Angular
  • 如何排除调试代码

    假设我有一个简单的记录器 void main var logger new MyLogger logger log hello Dart 我希望这段代码在开发模式 虚拟机检查模式 下运行 但我不希望它出现在我的生产代码中 我希望它能被 da
  • 3NF 和 BCNF 的简单区别(必须能够向 8 岁的孩子解释)

    我读过这句话 数据取决于密钥 1NF 整个密钥 2NF 仅取决于密钥 3NF 但是 我无法理解 3 5NF 或 BCNF 因为它被称为 这是我的理解 BCNF比3NF更严格 表中任何 FD 的左侧必须是超级键 或至少是候选键 那么为什么有些
  • openpyxl - 调整列宽大小

    我有以下脚本 它将 CSV 文件转换为 XLSX 文件 但我的列大小非常窄 每次我都必须用鼠标拖动它们来读取数据 有谁知道如何设置列宽openpyxl 这是我正在使用的代码 usr bin python2 6 import csv from
  • PopupWindow $BadTokenException:无法添加窗口 - 令牌 null 无效

    显示 PopupWindow 时出现以下错误 错误由以下行触发 checkInPopup showAtLocation ViewGroup mapView getParent Gravity CENTER HORIZONTAL 0 0 ma
  • 如何在 Clojure 中创建随机数的惰性序列

    如何创建随机数的惰性序列 我当前的代码 import java util Random def r new Random defn rnd nextInt r 10 defn random numbers max iterate nextI
  • 动态数据库模式[关闭]

    Closed 这个问题是基于意见的 目前不接受答案 为动态逻辑数据库模式提供存储的推荐架构是什么 澄清一下 如果系统需要为模型提供存储 而模型的模式在生产中可能会被用户扩展或更改 那么有哪些好的技术 数据库模型或存储引擎可以实现这一点 几种
  • 如何将颜色名称转换为 3 元素 RGB 向量?

    在许多 MATLAB 绘图函数中 您可以将颜色指定为字符串或直接列出红色 绿色和蓝色值的三元素向量 例如 这两个语句是等效的 plot x y Color r plot x y Color 1 0 0 可以通过字符串值指定 8 种颜色 r