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
ありがとうございました!これはまさに私が必要とすることです。 – nbingo