필터 지우기
필터 지우기

Can anyone please answer why the pixel value changes from about 90 to about 0.23 when I apply ind2rgb function?

조회 수: 2 (최근 30일)
% I have true color image (looks gray though because it is ultrasound image). I read the image.
im = imread('c1d7.JPG');
% converted the image into gray,
I = rgb2gray(im);
imshow(im);
% Then ind2rgb
rgbImage = ind2rgb(I, jet(256));
% This leads the value change as in my question from ~90 to ~0.23
What would be the solution?
Thanks
Surya

채택된 답변

Image Analyst
Image Analyst 2017년 1월 25일
Try this:
% I have true color image (looks gray though because it is ultrasound image). I read the image.
im = imread('peppers.png');
subplot(2,2,1);
imshow(im);
% Convert the image into gray scale.
I = rgb2gray(im);
subplot(2,2,2);
imshow(I);
% Then ind2rgb
rgbImage = uint8(255 * ind2rgb(I, jet(256)));
subplot(2,2,3);
imshow(rgbImage);
% Set up figure properties:
% Enlarge figure to full screen.
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0 0 1 1]);
% Get rid of tool bar and pulldown menus that are along top of figure.
set(gcf, 'Toolbar', 'none', 'Menu', 'none');
% Give a name to the title bar.
set(gcf, 'Name', 'Demo by ImageAnalyst', 'NumberTitle', 'Off')
  댓글 수: 2
Walter Roberson
Walter Roberson 2017년 1월 25일
I have found that im2uint8 has a slightly different answer than uint8(255*x). I do not recall the details at the moment but I found that im2uint8 was better handling. I think it might have had to do with uint8 rounding so 0 and 255 could result with only half the probability of the other values if you use uint8 naively

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Walter Roberson
Walter Roberson 2017년 1월 25일
Color tables used with ind2rgb must have entries in the range 0 to 1, which jet() does have. If you want the uint8 version of the colored image apply im2uint8 to it.

카테고리

Help CenterFile Exchange에서 Convert Image Type에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by