How do I convert gray or indexed images to color images?
    3 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    fereshte
 el 24 de Mayo de 2014
  
    
    
    
    
    Editada: Image Analyst
      
      
 el 24 de Mayo de 2014
            Hi. I applied The following code to resize my images. The input images are color images. But as an output, the resized images are gray! How do I correct it?
0 comentarios
Respuesta aceptada
  Image Analyst
      
      
 el 24 de Mayo de 2014
        That image is a 2D image, an indexed image with a color map. It's not a 3D color RGB image. You need to convert it to an RGB image if you recognize it's an indexed image. Replace your loop with this:
for k = 1:numel(bmpFiles)
  fullInputFileName = fullfile(inputFolder,bmpFiles(k).name)
  [originalImage, colorMap] = imread(fullInputFileName);
  [rows, columns, numberOfColorChannels] = size(originalImage)
  if ~isempty(colorMap) && numberOfColorChannels == 1
    % It's an indexed image with a colormap.
    % Convert it to RGB color
    originalImage = ind2rgb(originalImage, colorMap);
    [rows, columns, numberOfColorChannels] = size(originalImage)
  end
  fullOutputFileName = fullfile(outputFolder, bmpFiles(k).name);
  outputImage = imresize(originalImage, [100,50]);
  [rows columns numberOfColorChannels] = size(outputImage);
  if numberOfColorChannels == 1
    % It's monochrome, so convert to color.
    outputImage = cat(3, outputImage, outputImage, outputImage);
  end
  figure,imshow(outputImage);
  imwrite(outputImage, fullOutputFileName);
end
Más respuestas (0)
Ver también
Categorías
				Más información sobre Modify Image Colors en Help Center y File Exchange.
			
	Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

