如何制作一幅图像(510 * 510),上行为红色,绿色,蓝色,青色品红色,下行为黄色,所有部分均等。
答案 0 :(得分:2)
你的问题有点模糊,但我想我知道你要求的是什么。 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 :(得分:2)
对于@ gnovice的答案的穷人版本,我建议简单地交换R,G和B频道,如@JasonD所建议
假设您有一个存储在数组img
中的n×by-m-by-3 RGB图像。然后,按如下方式移动通道
shiftedImg = img(:,:,[2 3 1]);
或
shiftedImg = img(:,:,[3 1 2]);