2016-03-18 20 views
0

私はMatlabのYUV色空間画像で作業することに興味がありますが、私が間違っていれば修正します。Matlabのデフォルトの色空間とYUVでの作業

したがって、私が実際に赤色(R)チャンネルで作業しているときなど、輝度(Y)チャンネルで操作していると思うと、誤解を招いているかもしれません。私は正しいですか?使用されている色空間を変更することは可能ですか?

私は変換について認識していますが、現時点では、MatlabにYUVカラースペースで作業するように指示することが可能であるかどうか不思議です。たとえば、輝度チャネルを変更するのではなく、 RGBの場合は赤の輝度)。

http://www.mathworks.com/help/imaq/returnedcolorspace.html(ReturnedColorSpace)が見つかりましたが、実装方法はわかりません。

編集:

t = Tiff('e82.tiff','r'); 
[Y,Cb,Cr] = read(t); 
close(t) 

figure; imshow(Cr); 

私もMatlabの中でこのコードを試してみたが、私はそれがRGB色空間を想定しているので、私はそれがグレースケールとしてのCrチャンネルを読んでいると仮定して、右だかはわかりません関係する? (図はグレースケールのイメージを表示します)

EDIT(28/3/16) - 私のYUVファイルのimfinfo出力。それらはRGB(各出力は、RGB各色チャンネルのグレースケールバージョンである)

a = imread('3d008.tiff'); 
a1 = a(:,:,1); imwrite(a1,'xdel1.tiff'); 
a2 = a(:,:,2); imwrite(a2,'xdel2.tiff'); 
a3 = a(:,:,3); imwrite(a3,'xdel3.tiff'); 
ているかのように

    FileSize: 353500 
        Format: 'tif' 
      FormatVersion: [] 
        Width: 720 
        Height: 243 
       BitDepth: 24 
       ColorType: 'YCbCr' 
      FormatSignature: [73 73 42 0] 
       ByteOrder: 'little-endian' 
      NewSubFileType: 0 
      BitsPerSample: [8 8 8] 
       Compression: 'PackBits' 
PhotometricInterpretation: 'YCbCr' 
      StripOffsets: [1x49 double] 
      SamplesPerPixel: 3 
      RowsPerStrip: 5 
      StripByteCounts: [1x49 double] 
       XResolution: 72 
       YResolution: 72 
      ResolutionUnit: 'Inch' 
       Colormap: [] 
     PlanarConfiguration: 'Chunky' 
       TileWidth: [] 
       TileLength: [] 
       TileOffsets: [] 
      TileByteCounts: [] 
       Orientation: 1 
       FillOrder: 1 
     GrayResponseUnit: 0.0100 
      MaxSampleValue: [255 255 255] 
      MinSampleValue: [0 0 0] 
      Thresholding: 1 
        Offset: 353302 
       Software: 'Lavc56.60.100' 
     YCbCrSubsampling: [2 1] 
     ReferenceBlackWhite: [15 235 128 240 128 240] 

しかし、次のコードスニペットは、「Y」、「U」、「V」の画像を書き込みます

この "YUV"画像をYUV(rgb2yuvコード経由)に変換し、上記の4行のコードを繰り返して見ると、私は目に見えるものを出力します。 a1は輝度チャネルであり、その他はクロミナンスである。

+0

を提案します。 RGB画像を読み込んだ場合、色空間を変換する以外に、YUVを取得するにはどうしますか? – Daniel

+0

申し訳ありません。私はYUV色空間イメージ(tiff形式)を読み込み、その上で操作を実行したい。何もせずに、YUVまたはRGBシステムで作業していますか?たとえば、Uは-128から128に変わります。私はYUVを信じており、GはRGBについて0から255になります。だから私の操作に応じて違いがあります。私はMatlabがデフォルトでRGBで作業しているのか、それが実際にYUVであることを認識していて、YUVで動作しているのかは不明です。 @Daniel – DragonDance27

+0

@ DragonDance27あなたの画像に 'imfinfo'の出力を投稿できますか? – Amro

答えて

-3

トラフ、このページを読んで、私はあなたの質問を理解することに問題がある

http://www.mathworks.com/help/imaq/specifying-the-color-space.html

I = imread('image.tiff'); 
I.ReturnedColorSpace = 'YCbCr'; 
+1

'ReturnedColorSpace'は' videoinput'オブジェクトのプロパティです。 'imread'は' videoinput'オブジェクトを返しません。 – Daniel

+0

Image Processing ToolboxとImage Acquisition Toolboxを混在させています。あなたは 'imread'でこれを行うことはできません。 'imread'は単にピクセルの生の行列を返します。返されるものはオブジェクト/構造体**ではないため、この割り当ては無効です。 – rayryeng

関連する問題