【问题标题】:formation of image [closed]图像的形成[关闭]
【发布时间】:2012-12-27 16:13:40
【问题描述】:

如何在matlab中用红色,绿色,bue在上排,青色洋红色和黄色在下排制作一个图像(510 * 510),所有图像的比例相等。

【问题讨论】:

标签: colors


【解决方案1】:

你的问题有点含糊,但我认为我知道你在问什么。 HSV 图像的色调通道通常被认为是从 0 到 360 度,因为它是一个cylindrical-coordinate representation of points in an RGB color model。但是,对于您的图像,色调通道的值可能介于 0 到 1 之间,这就是您从函数 RGB2HSV 获得的输出,如果这是您用来获取 HSV 贴图的值。

因此,如果您想将色调移动 120 度,则必须将范围移动 1/3。换言之,假设正偏移 120 度,应将范围从 0 到 1/3 的值更改为从 1/3 到 2/3 的范围。您可以使用REM 函数来实现这一点,如下所示:

H = rem(H + 1/3, 1);

对于 120 度的负偏移,您可以应用等效的 240 度正偏移,如下所示:

H = rem(H + 2/3, 1);

【讨论】:

  • +1 为正确答案。鉴于@Rabeel 的评论,我怀疑这可能是一个关于重新排序数组的 Matlab 初学者练习。
【解决方案2】:

对于@gnovice 答案的穷人版本,我建议按照@JasonD 的建议简单地交换 R、G 和 B 频道

假设您有一个 n×m×3 RGB 图像存储在数组 img 中。然后,您按如下方式转换频道

shiftedImg = img(:,:,[2 3 1]);

shiftedImg = img(:,:,[3 1 2]);

【讨论】:

  • @Rabeel:我的解决方案根本不使用内置函数。除非您将访问数组元素视为内置函数,否则您将根本无法使用 Matlab。
猜你喜欢
  • 2012-02-07
  • 1970-01-01
  • 2010-09-07
  • 2014-11-15
  • 1970-01-01
  • 1970-01-01
  • 2016-07-10
  • 1970-01-01
相关资源
最近更新 更多