2016-06-21 15 views
2

灰色の色空間を持ついくつかの(実際には数千の)jpgイメージがありますが、それらを使用するプログラムではrgbにする必要があります。 jpgをモノクロからrgbに変換する方法はありますか(つまり、基本的にはグレースケール画像を作成するためにrgb値を使用しています)。グレイスケールのJPEGをRGBのJPEGに変換する

私はMATLABでの2Dマトリックスとしてイメージを持っている、と私はやってRGB画像を強制的にimwriteを使用しようとしました:

imwrite(image, 'rgb.jpg') 

私はimwriteのドキュメントは、と言うので、これは働くだろうと思いましたjpgはrgbにあるはずですが、まだモノクロームの画像があります。

答えて

3

2DマトリックスをJPEGに保存すると、まだグレースケールになります。

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)にしたい場合は、separate red, green, and blue channelsを作成するために、三次元で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

関連する問題