• 検索結果がありません。

MATLABによる画像・映像処理2 - Sophia

N/A
N/A
Protected

Academic year: 2024

シェア "MATLABによる画像・映像処理2 - Sophia"

Copied!
19
0
0

読み込み中.... (全文を見る)

全文

(1)

MATLAB による画像・映像処理2

目的

カラー画像処理と映像のサンプリン グについて理解する

(2)

カラー画像の輝度と色差成分の分離

カラー画像の成分の表現方法として、

様々な方式が提案され、利用されている。

ここでは、画像・映像の符号化において よく用いられている

YCbCr

方式を取り上げ て、その効果について実感する。
(3)

YCbCr 方式への変換

RGB

カラー画像から、YCbCr カラー方式への変換は、次 に示す線形方程式によって表される。 

      (1)   

ここで、示した係数は JPEG で用いられているものである。 

 

Y 成分は輝度成分、Cb 成分は青−黄成分の青らしさ、Cr 成分は赤−緑成分の赤らしさを示している。

CbY

Cr = 0.299 0.587 0.114

−0.169 −0.331 0.5 0.5 −0.419 0.081

RG

B + 0 128128

(4)

YC b Cr カラーから RGB カラーへの変換

YCbCr

方式から

RGB

カラー方式への逆変換は、次に示す線形方 程式によってあらわされる。 

   

      (2)   

   

ここで、示した係数は JPEG で用いられているものである。 

 

  RGB から YCbCr への変換 

   

関数名    rgb2ycbcr(rgb画像変数名) 

  YCbCr から RGB への変換 

    関数名    ycbcr2rgb(ycbcr 画像変数名) 

R G

B = 1 0 1.402

1 −0.344 −0.714

1 1.772 0

Cb − Y 128

Cr − 128

(5)

YCbCr カラーと RBG カラー画像

次のプログラムは、

RGB

カラー画像

F

を読み込

み、先の変換により

YCbCr

カラー画像

H

を求め、

Y

分の解像度を4分の

1

にした後、

RGB

成分に逆変換 してオリジナル画像とともに表示するものである。

このとき、

Y

成分は

H(:,:,1)

Cb

成分は

H(:,:,2)

Cr

成分は

H(:,:,3)

として求められている。

このプログラム中で、

RGB

成分のヒストグラムも表 示している。
(6)

色変換のプログラム(例2−1)

F=imread(‘color?.bmp');

H=rgb2ycbcr(F);

figure(1);

subplot(2,2,1); imshow(F);

subplot(2,2,2); imhist(F(:,:,1));

subplot(2,2,3); imhist(F(:,:,2));

subplot(2,2,4); imhist(F(:,:,3));

HL=H;

HL(:,:,1)=lowRes2(H(:,:,1), 4);

FL=ycbcr2rgb(HL);

figure(2);

subplot(2,2,1); imshow(FL);

subplot(2,2,2); imhist(FL(:,:,1));

subplot(2,2,3); imhist(FL(:,:,2));

subplot(2,2,4); imhist(FL(:,:,3));

(7)

提出課題5

指定された

RGB カラー画像 F

を読み込み、

YCbCr 方式のカ

ラー画像 H

に変換し、

Cb, Cr 成分の解像度を4分の 1 にした画像 HL

を求めなさい。さらに、

HL の RGB 変換画像 FL

を求めない。

このとき、

kadai5_1

として、画像

FL と、 HL のヒストグラムを

表示して提出しなさい。

また、オリジナル画像

F

R 成分と B 成分について解像度を4 分の 1 に変更した画像 FL2

を求めなさい。

kadai5_2 として、 FL2 と

HL2 ( FL を Yc b Cr 成分に変換したもの)の各成分のヒストグラム表示 したものを提出しなさい。

解像度の変更には、関数

lowRes2

を用いること。

subplot

2

2

列とすること。

kadai*_*

の拡張子はjpgとする。

※参考 例2−1

(8)

映像の表現

映像は、モノクロ、またはカラー画像を 一定の時間間隔でサンプリングした画像 の集まりとして表現される。

各々の画像はフレームと呼ばれ、映画 では

24

フレーム

/

秒、

TV

では

30

フレーム

/

秒 などが用いられている。

したがって、映像の属性を示すパラメー タは、次のように与えられる

(9)

映像の属性

フレーム数:

F

フレームレート:

1

秒あたりのフレーム数 画像サイズ:

M

×

N

色成分: モノクロ画像の

1

成分、

RGB

など

3

成分 各成分の諧調レベル数:

記録用

8

ビット符号なし整数表現(

uint8

型)、

256

レベル、

0

から

255

の画素値

演算用 倍精度浮動小数点数表現(

double

型)、

0

から

1.0

の画素値
(10)

MATLAB における映像表現

ムービー方式においては、映像は、モノクロ 画像、または

RGB

カラー画像をメンバー名

cdata

として持つ構造体として表現される。

映像の変数名を

M

とすると、各フレームは

M(1), M(2), …, M(F)

と表される。また、フレー

M(f)

の画像は

M(f).cdata

と表され、その画素 値は、モノクロ画像の時には

M(f).cdata(i,j)

RGB

カラー画像の時には

M(f).cdata

i,j,k)

とな る。ここで、

(i,j)

は画素位置、

k

RGB

成分を示 す番号である。
(11)

映像の入力と表示

映像の読み込み

aviread(

ファイル名 ) 映像の属性の読み出し

aviinfo(

ファイル名 ) 映像の表示

movie(

映像変数名、表示回数、フレームレート)

フレームの画像への変換

frame2im(

映像変数名

)

画像のフレームへの変換

im2frame(

映像変数名

)

(12)

構造体による映像の表現

構造体の作成 フィールド名 フィールドの値

M=struct(‘cdata’,uint8(zeros(128,128,3)),

‘colormap’, uint8(zeros(0))), ;

符号なし整数

フレームの作成 第2フィールド名 第2フィールドの値

M(1).cdata(:,:,1)=255;

赤の成分

M(1:15)=M(1); 1

15

フレームは赤

M(16).cdata(:,:,2)=255;

緑の成分

M(16:30)=M(16); 16

30

フレームは緑

M(31).cdata(:,:,3)=255;

赤の成分

M(31:45)=M(31); 31

45

フレームは青

映像の表示 表示回数

movie(M,2,15);

配列名 フレームレート

(13)

映像のコピーと表示

・映像のコピー

xterm

のウィンドウで次のコマンドを実行する

cp /thome/lct/lct-d189/image/mother.avi mother.avi

・映像の表示

matlab

のコマンド・ウィンドウで次の命令を実行する

M=aviread(‘mother.avi’);

movie( M,1,15);

画像変数名 表示回数 フレームレート

(14)

映像の属性の表示例

コマンド

Minfo=aviinfo(‘mother.avi’)

表示例

Minfo =

Filename: ‘mother.avi' FileSize: 11410944

FileModDate: '06-Apr-2010 12:43:45' NumFrames: 150

FramesPerSecond: 15 Width: 176

Height: 144

ImageType: 'truecolor'

VideoCompression: 'none' Quality: 0

NumColormapEntries: 0

(15)

時間サンプリング削減関数 lowFrm

次に示す関数は連続する2フレームごと に後のフレームの画素値を先のフレーム の値に置き換えることにより、実質的に時 間サンプリング・レートを

2

分の

1

にする関 数である。

ファイル名は

lowFrm.m

とする。
(16)

時間軸のサンプルレートの変更(例

2-2

function ML=lowFrm(M) ML=M;

s=size(M); fn=s(2); %s(2)

がフレーム数を示している

for f=1:2:fn % for

変数=初期値:増分:終値

picture=M(f).cdata;

for i=f+1:f+2-1 if i<=fn

ML(i).cdata=picture;

end end

end end

(17)

時間サンプリングの変更(例2−3)

次のプログラムは、ファイル名

sampleMovie.avi

を読み込み、関数

lowFrm

を 用いて、偶数フレームを直前のフレームで書 き換え、時間軸のサンプリング・レートを実質 的に

2

分の

1

に削減するものである。

このとき、表示のフレーム・レートは入力画 像と同じにする。

(18)

時間軸のサンプルレートの変更(例2−3)

V=aviread(‘mother.avi ');

VL=lowFrm(V);

figure(1);

subplot(1,2,1) movie(V,1,15);

subplot(1,2,2);

movie(VL,1,15);

(19)

提出課題6

関数

lowFrm

を変更して、映像の時間サンプルレート

を実質的に k 分の1にする関数 lowFrm2(M,k)

を作成しなさい。

そして、指定された映像

V

を読み込み、関数

lowFrm2

を用いて時間軸のサンプルレートを実質的に

2 分の 1

4 分の1、

8 分の1にした映像を変数 VL2

VL4

VL8

に求めるプログラムを 作成し、実行しなさい。表示は、s

ubplot

2

2

列として、

V

VL2

VL4

VL8

を描画する。

提出物として、作成したプログラム

kadai6 と関数 lowFrm 2の m ファイル ( 拡張子を txt とする)をメールで送りなさい。

※ txt

形式のファイルは、

save as

において、拡張子なし、

All

files

として保存することで作成する。

参照

関連したドキュメント

超解像(Super

みると、画像同士の異なる部分のみを検出できているのが 確認できる。

CPU/DSP, FPGA実装ツール Simulinkを使用する事で、画像処理システムの机上検証 から、Software/Hardwareと連携した検証まで実現可能 外部入力 EDA環境(Xilinx,

デジタル画像は用いる bit 数によって表現できる色の数が変わる.画素を構成する原色 RGB

システムの効果 背景がブルー ブルーバックスクリーン の前で撮影した画像 特定色(クロマ) を透明化 ターゲット画像 背景画像

概要:本研究では、映画に描かれる、芸術家のアトリエにおける自画像の分析を行い、とりわけジャン=リュック・ゴ

マスク画像の AND を とるとフレーム画像2

新製品の開発において、消費者に好まれる デザインを探り当て、市場に即座に提供する