How do I tune a color scale to a matrix image?

3 ビュー (過去 30 日間)
Shang Gao
Shang Gao 2018 年 9 月 18 日
コメント済み: jonas 2018 年 9 月 23 日
Hi, I have a problem with my other programming tool and have to use MatLab to draw a 2D map with the specific color scale. The function is basically like mat2gray(), only difference is that instead of the gray color scale, I need it to be like the color scale in the image attached.

採用された回答

jonas
jonas 2018 年 9 月 18 日
編集済み: jonas 2018 年 9 月 18 日
You can easily draw your matrix with a specific colormap. You don't need to convert it to an image beforehand.
A=peaks;
imagesc(A);
colormap(bone);
If you then want the image data, you can just type
I = getframe;
and then you can treat is as an image
imshow(I.cdata)
  3 件のコメント
jonas
jonas 2018 年 9 月 22 日
編集済み: jonas 2018 年 9 月 22 日
It was just an example. Just stack the colors of a single column of your colorscale and use it as colormap. If I is the RGB matrix of your colorbar, then I(:,1,:) contains the RGB triplets of your colormap. Just reshape it from nx1x3 to a nx3 matrix.
Can give you code in a bit if you dont figure it out. On mobile atm.
jonas
jonas 2018 年 9 月 23 日
Here you go
A=peaks;
imagesc(A);
I=imread('image.png')
cmap=im2double([I(:,1,1) I(:,1,2) I(:,1,3)])
colormap(cmap);

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeModify Image Colors についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by