saving coloured image in gui
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
ash fairy
am 28 Jul. 2017
Kommentiert: Image Analyst
am 29 Jul. 2017
hiii all!!' i was trying to save an image in tif format after doing maximum intensity projection!!whenever m saving the image stored is in grey scale...my original image colour is green....can anyone give me a solution!!thanks in advance
2 Kommentare
Akzeptierte Antwort
Image Analyst
am 28 Jul. 2017
Bearbeitet: Image Analyst
am 28 Jul. 2017
Are you SURE? Have you passed the image you're passing to imwrite() into the size() function and seen what it says?
[rows, columns, numberOfColorChannels] = size(yourImage) % No semicolon
whos yourImage
What gets reported to the command line for numberOfColorChannels and the data type? If it's 1 instead of 3, then it's gray scale, NOT color. If it's 3, it should save as color, if it's uint8.
3 Kommentare
Image Analyst
am 29 Jul. 2017
Ash fairy, you need to make a full size colormap, then you need to do this:
rgbImage = ind2rgb(imageInAxes, colormap(cmap));
rgbImage16 = im2uint16(rgbImage);
See this full demo code:
% Initialization
gray8 = imread('cameraman.tif');
gray16 = im2uint16(gray8);
subplot(1, 3, 1);
hAxis = imshow(gray16);
whos gray16
% OK, let's start.
imageInAxes = getimage(hAxis);
whos imageInAxes % Should be uint16.
% Create green color map.
maxGL = double(intmax(class(gray16)))
z = zeros(maxGL + 1, 1);
ramp = (0 : maxGL)' / maxGL;
cmap = [z, ramp, z];
% Convert gray scale 16 bit image to color using colormap
rgbImage = ind2rgb(imageInAxes, colormap(cmap));
whos rgbImage
% Right now rgbImage is double in the range 0-1.
% Convert to uint16 in the range 0-65535
rgbImage16 = im2uint16(rgbImage);
subplot(1, 3, 2);
imshow(rgbImage16);
whos rgbImage
% Ask user to save the image.
[baseFileName, folder] = uiputfile('*.tif','Save the image?');
fullFileName = fullfile(folder, baseFileName)
imwrite(rgbImage16, fullFileName)
% Recall it from disk to check that it looks normal
recalledImage = imread(fullFileName);
subplot(1, 3, 3);
imshow(recalledImage);
Weitere Antworten (0)
Siehe auch
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!