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

조회 수: 4 (최근 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 CenterFile Exchange에서 Modify Image Colors에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by