2016-06-21 4 views
2

회색 공간이있는 몇 개의 (실제로는 몇 천 개의) jpg 이미지가 있지만이를 사용하려는 프로그램은 RGB로 있어야합니다. jpg를 모노크롬에서 rgb로 변환하는 방법이 있습니까? (즉, 기본적으로 rgb 값을 사용하여 그레이 스케일 이미지를 만들 수 있습니다.) 회색조 JPEG를 RGB JPEG로 변환

내가 MATLAB에서 2 차원 매트릭스와 같은 이미지를 가지고 있고, 나는 수행하여 RGB 이미지를 강제로 imwrite을 사용하려고했습니다
imwrite(image, 'rgb.jpg') 

나는 imwrite가 있다고이이 문서 이후 일 것이라고 생각 jpg는 RGB이어야하지만 흑백 이미지는 계속 표시됩니다.

답변

3

2D 매트릭스를 JPEG로 저장할 때 여전히 회색 음영이됩니다. 만약 결과적인 이미지가 트루 싶은 경우 separate red, green, and blue channels을 만들

imwrite(rand(100), 'test.jpg'); 

info = imfinfo('test.jpg'); 

%   FileSize: 6286 
%   Format: 'jpg' 
%    Width: 100 
%   Height: 100 
%   BitDepth: 8 
%   ColorType: 'grayscale' <---- Grayscale 
% NumberOfSamples: 1    <---- Number of Channels 
%  CodingMethod: 'Huffman' 
%  CodingProcess: 'Sequential' 

size(imread('test.jpg')) 
% 100 100 

(즉 RGB)을 사용하면 제 3 차원 매트릭스 회 반복 할 필요가있다. 모든 채널에 대해 동일한 값을 반복합니다. 그레이 스케일 값은 빨강, 초록, 파랑의 같은 가중치로 나타낼 수 있기 때문입니다. 이것을 repmat을 사용하여 수행 할 수 있습니다.

imwrite(repmat(im, [1 1 3]), 'rgb.jpg') 

info = imfinfo('rgb.jpg'); 

%   FileSize: 6660 
%   Format: 'jpg' 
%    Width: 100 
%   Height: 100 
%   BitDepth: 24 
%   ColorType: 'truecolor'  <---- True Color (RGB) 
% NumberOfSamples: 3    <---- Number of Channels 
%  CodingMethod: 'Huffman' 
%  CodingProcess: 'Sequential' 


size(imread('rgb.jpg')) 
% 100 100 3 
+0

고마워요! 이것은 내가해야 할 일을 정확하게 수행합니다. – nbingo

관련 문제