getting RGB from image created with imagesc
31 ビュー (過去 30 日間)
古いコメントを表示
Hi. I am creating am image of a matrix using imagesc.
i want to get the RGB values of every pixel in the image.
I tried using get(im,'CData'), but it gives back the matrix that created the image.
how can do it?
thanks, Ariel
0 件のコメント
採用された回答
Mike Garrity
2016 年 3 月 15 日
編集済み: Mike Garrity
2016 年 3 月 15 日
You probably want ind2rgb. But if you're using imagesc, rather than image, you're probably need to scale your color values. It looks something like this:
v = ??; % my matrix
map = colormap;
minv = min(v(:));
maxv = max(v(:));
ncol = size(map,1);
s = round(1+(ncol-1)*(v-minv)/(maxv-minv));
rgb_image = ind2rgb(s,map);
If you have integer color values, then you don't need to do that scaling before calling ind2rgb.
その他の回答 (1 件)
Image Analyst
2016 年 3 月 15 日
imagesc() does not create images - it displays them. So you already have the image. If you want it pseudocolored, look up colormap in the help - there are a variety of predefined colormaps to choose from: hot, winter, jet, parula, etc. Pick one that you like and use ind2rgb to create a pseudocolored RGB image from your gray scale image.
% Use hsv color map to create an RGB image from a gray scale image:
rgbImage = ind2gray(grayImage, hsv(256));
2 件のコメント
Image Analyst
2016 年 3 月 16 日
Yes. If you want some certain amount, specify it. Like if you want 1000 colors, say jet(1000).
参考
カテゴリ
Help Center および File Exchange で Blue についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!