我在创建自定义 MATLAB 颜色图和颜色条时遇到了一些麻烦。我想显示一个图像(imagesc
例如),我想通过 Nx4 矩阵定义一个颜色图
cMap = [ x(1) r(1) g(1) b(1); ...
x(2) r(2) g(2) b(2); ...
...
x(N) r(N) g(N) b(N)];
使得图像值介于x(i)
和之间x(i+1)
具有颜色r(i),g(i),b(i)
。向量x
需要增加,但不一定以线性方式增加。另外,我希望能够用GUI点击图像并查看每个像素的实际图像值,所以我不想在显示之前重新分配像素值。最后,我想要一个颜色条,其中每种颜色都由一段等长的线段表示。
我可以通过找到 的最小公倍数diff(x)
并将几个恒定颜色行连接到一个颜色图中来完成这些事情的 2/3,但是这使得颜色条的颜色大小与沿 x 的差异成正比,它看起来不好且难以阅读。
为了解决颜色条问题,我尝试在 中制作几个颜色的补丁对象cMap
,将它们放置在[inf inf]
然后调用legend
这些对象,但是设置所有所需的图例和轴属性以使所有大小的颜色图看起来都很好很难,我一直在调试这个,因为多个用户都在使用这个工具。如果可以的话,我很想使用 MATLAB colorbar。
有没有人处理过这样的问题?谢谢!