• 締切済み

RGBからYUVへの変換(Matlab)についての質問です.

先ほども質問させていただきましたが, 画像に誤りがあった為再度投稿させていただきます. 貴重なスペースを無駄に使用してしまい大変申し訳ありません. >> 現在Matlabを勉強中の者です. 160*120ピクセルの画像の色空間を RGBからYUV(YCbCr)へ変換するプログラムを考えているのですが, 以下のソースコードで大まかな点はあっているでしょうか? 実際にYUVへ変換後,画像を表示したところ, 元画像とは色調が変わってしまい頭を抱えています. 画像を表示する際のカラーマップに問題があるのでしょうか. ご教授お願い致します. % 画像ファイルの読込 pictureRgb = imread('./data/gazou0.bmp'); pictureYcbcr = imread('./data/gazou0.bmp'); % YCbCr空間(フルレンジ)への変換 pictureYcbcr(:,:,1) = uint8(0.257 * double(pictureRgb(:,:,1)) + 0.504 * double(pictureRgb(:,:,2))... + 0.098 * double(pictureRgb(:,:,3))+16.0); pictureYcbcr(:,:,2) = uint8(-0.148 * double(pictureRgb(:,:,1)) - 0.291 * double(pictureRgb(:,:,2))... + 0.439 * double(pictureRgb(:,:,3))+128.0); pictureYcbcr(:,:,3) = uint8(0.439 * double(pictureRgb(:,:,1)) - 0.368 * double(pictureRgb(:,:,2))... + 0.071 * double(pictureRgb(:,:,3))+128.0); %R成分の表示 subplot(3,3,1); image(pictureRgb(:,:,1)); axis image; axis off; title('R 成分'); %G成分の表示 subplot(3,3,2); image(pictureRgb(:,:,2)); axis image; axis off; title('G 成分'); %B成分の表示 subplot(3,3,3); image(pictureRgb(:,:,3)); axis image; axis off; title('B 成分'); %--------------------------- %Y成分の表示 subplot(3,3,4); image(pictureYcbcr(:,:,1)); axis image; axis off; title('Y 成分'); %Cb成分の表示 subplot(3,3,5); image(pictureYcbcr(:,:,2)); axis image; axis off; title('Cb成分'); %Cr成分の表示 subplot(3,3,6); image(pictureYcbcr(:,:,3)); axis image; axis off; title('Cr成分'); %--------------------------- %原画像の表示 subplot(3,3,7); image(pictureRgb); axis image; axis off; title('元画像'); %YUV画像の表示 subplot(3,3,8); image(pictureYcbcr); axis image; axis off; title('YUV画像');

みんなの回答

回答No.2

#1です。 普通に help image help colormap で調べれます。 もしくはMathWorksのページでも調べられます。 http://www.mathworks.co.jp/access/helpdesk_ja_JP/help/techdoc/ref/image.html YUVができないとは書いてませんが、 できるとも書いていません。

e0652251
質問者

お礼

確かにYUVができるという記載は無いですね… 大変助かりました. 情報ありがとうございました!

回答No.1

matlabのimageはYUVの表示には対応していないと思います。 よってYUV→RGB変換の結果はimageで表示できても。 RGB→YUV変換の結果をimageでは表示できないはずです。

e0652251
質問者

お礼

回答ありがとうございます!! そうだったのですか… 対応していないとは,まさかでした.笑 ちなみに,YUVの表示には対応していないという情報は どこから得たのでしょうか? これから先他にも不都合な点があった時に参照したいと 思いまして.