一方, 物体色 ( 色や光を反射して色刺激を起こすもの, つまり印刷物 ) の表現には, 減法混色 (CMY) が用いられる CMY の C はシアン (Cyn),M はマゼンタ (Mgent),Y はイエロー (Yellow) であり, これらは色の 3 原色と呼ばれるものである なお, 同じシア

Similar documents
スライド 1

PowerPoint Presentation

Microsoft PowerPoint - ip02_01.ppt [互換モード]

PowerPoint プレゼンテーション

tottori2013-print.key

0 21 カラー反射率 slope aspect 図 2.9: 復元結果例 2.4 画像生成技術としての計算フォトグラフィ 3 次元情報を復元することにより, 画像生成 ( レンダリング ) に応用することが可能である. 近年, コンピュータにより, カメラで直接得られない画像を生成する技術分野が生

画像ファイルを扱う これまでに学んだ条件分岐, 繰り返し, 配列, ファイル入出力を使って, 画像を扱うプログラムにチャレンジしてみよう

以下に java.awt.graphics クラスの主なメソッドを示す (Graphics クラスの ) メソッド drawline(int x1, int y1, int x2, int y2) drawrect(int x, int y, int width, int height) fillr

スライド 1

Javaプログラムの実行手順

l10

vecrot

もう少し詳しい説明 1. アルゴリズムを構築するための 4 枚のサンプル画像を次々と読み込むここで重要なことは画像を順番に読み込むための文字列操作 for 文の番号 i を画像の番号として使用している strcpy は文字列のコピー,sprinf は整数を文字列に変換,strcat は文字列を繋げる

掲示用ヒート表 第34回 藤沢市長杯 2017

1/2

PowerPoint Presentation

画像解析論(2) 講義内容

電子ブック 基本制作説明書

Microsoft Word - thesis.doc

Microsoft Word - 卒業論文.doc

技術者のための構造力学 2014/06/11 1. はじめに 資料 2 節点座標系による傾斜支持節点節点の処理 三好崇夫加藤久人 従来, マトリックス変位法に基づく骨組解析を紹介する教科書においては, 全体座標系に対して傾斜 した斜面上の支持条件を考慮する処理方法として, 一旦, 傾斜支持を無視した

CG

コンピューターグラフィックスS

★結果★ 藤沢市長杯 掲示用ヒート表

JavaプログラミングⅠ

Microsoft PowerPoint - dm1_6.pptx

untitled

補足 中学で学習したフレミング左手の法則 ( 電 磁 力 ) と関連付けると覚えやすい 電磁力は電流と磁界の外積で表される 力 F 磁 電磁力 F li 右ねじの回転の向き電 li ( l は導線の長さ ) 補足 有向線分とベクトル有向線分 : 矢印の位

Microsoft PowerPoint - adi05.ppt [互換モード]

演算増幅器

Microsoft PowerPoint - dm1_5.pptx

前回のあらすじ 物理演算ライブラリ chipmunk を使って チキンが地面に落ちるところまで

HCI プログラミング 5 回目ウィンドウに画像を表示してみよう 今日の講義で学ぶ内容 画像の表示 画像のエフェクト 画像のビューポート指定 画像の表示 1 画像を表示してみましょう 画像の表示はクラス ImageView により管理されます ソースファイル名 :Sample5_1.java //

Microsoft Word - SKY操作マニュアル.doc

モデリングとは

書式に示すように表示したい文字列をダブルクォーテーション (") の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf(" 情報処理基礎 "); printf("c 言語の練習 "); printf

ToDo: 今回のタイトル

7 ポインタ (P.61) ポインタを使うと, メモリ上のデータを直接操作することができる. 例えばデータの変更 やコピーなどが簡単にできる. また処理が高速になる. 7.1 ポインタの概念 変数を次のように宣言すると, int num; メモリにその領域が確保される. 仮にその開始のアドレスを 1

Microsoft PowerPoint - 12.ppt [互換モード]

Microsoft PowerPoint - DigitalMedia2_3b.pptx

コンピュータグラフィックス第8回

スライド タイトルなし

Microsoft PowerPoint - Lec24 [互換モード]

Microsoft Word - 犬飼.doc

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

Microsoft PowerPoint - 画像工学 print

cp-7. 配列

情報システム設計論II ユーザインタフェース(1)

Microsoft PowerPoint - 13.ppt [互換モード]

Microsoft PowerPoint - 第3回2.ppt

Java 基礎問題ドリル ~ メソッドを理解する ~ 次のプログラムコードに 各設問の条件にあうメソッドを追加しなさい その後 そのメソッドが正しく動作することを検証するためのプログラムコードを main メソッドの中に追加しなさい public class Practice { // ここに各設問

プログラミング実習I

johokiso-graphics

画像類似度測定の初歩的な手法の検証

C#の基本2 ~プログラムの制御構造~

第32回新春波乗り大会2018

相関係数と偏差ベクトル

02InDesign_img.indd

座標系.rtf

コンピュータグラフィックス基礎              No

コンピュータグラフィックス - 第4回 色彩の表現

Microsoft PowerPoint - chap10_OOP.ppt

ファイル入出力

pp2018-pp9base

コンピュータグラフィックス第6回

Microsoft PowerPoint - qcomp.ppt [互換モード]

ベクトルの基礎.rtf

Prog1_2nd

XAML Do-It-Yourself シリーズ 第 12 回 3D グラフィックス -1-

Microsoft PowerPoint kiso.ppt

座標変換におけるテンソル成分の変換行列

ComicStudio4.0ショートカット一覧

<4D F736F F D DC58F498D5A814091E6318FCD814089E6919C82C682CD89BD82A92E646F63>

DVIOUT-17syoze

複素数平面への誘い

2006年10月5日(木)実施

スライド 1

02: 変数と標準入出力

file:///N|/ncs/サービス技術課/e-learning/社内検図用/販促用/32-35/ope35ver3.02.html

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

目次. はじめに デジタル画像のビット数 図形認識に用いた画像と方法 ハフ変換 検出方法と画像について TIFF 画像 RAW 画像データ フィルタ処理 平滑化

ソフトウェア基礎技術研修

JTrimで「さくらんぼ《を描く[下巻]

02: 変数と標準入出力

Img_win.book

専門基礎11(情報の表現)

<4D F736F F D EBF97CD8A B7982D189898F4B A95748E9197BF4E6F31312E646F63>

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ

スライド 1

目次 1 はじめに ラスタ画像 bit 数による差 画像拡大と画像補間法 ニアレストネイバー法 バイリニア法 バイキュービック法 Lanczos(n) 法 拡大画像の比

Microsoft PowerPoint - 9.pptx

ピクシア練習問題① 明るさ・コントラスト

Microsoft PowerPoint - comprog11.pptx

始めに, 最下位共通先祖を求めるための関数 LcaDFS( int v ) の処理を記述する. この関数は値を返さない再帰的な void 関数で, 点 v を根とする木 T の部分木を深さ優先探索する. 整数の引数 v は, 木 T の点を示す点番号で, 配列 NodeSpace[ ] へのカーソル

Microsoft PowerPoint - 9.pptx

Microsoft PowerPoint - [150421] CMP実習Ⅰ(2015) 橋本 CG編 第1回 幾何変換.pptx

Microsoft PowerPoint - handout09.ppt

ファイル入出力

Transcription:

第 4 章デジタル画像の処理 デジタル画像処理の基礎について理解し,Jv によるフィルタリング処理や座標変換のプログラムを作成する 4.1 RGB 表色系と CMY 表色系 TV やコンピュータのディスプレイ, デジタルカメラでの色の表現には, 加法混色 (RGB) が用いられる RGB の R は赤 (Red),G は緑 (Green),B は青 (Blue) であり, これらは光の 3 原色と呼ばれるものである R,G,B はそれぞれ,0~255 の 256(= 2 8 ) 個 ( すなわち,1 バイト = 8ビット ) のピクセル値 ( 整数 ) で表現される さらに,R,G,B の各ピクセル値を, 順に左から並べて連結させたもの (8 3 = 24 ビット ) は RGB 値と呼ばれ, これを 16 進表記で取り扱う また, この RGB 表色系に透明度 ( アルファチャンネル ) を加えた RGBA 表色系の他,sRGB や AdobeRGB などの RGB 色空間も定義されている 4-1

一方, 物体色 ( 色や光を反射して色刺激を起こすもの, つまり印刷物 ) の表現には, 減法混色 (CMY) が用いられる CMY の C はシアン (Cyn),M はマゼンタ (Mgent),Y はイエロー (Yellow) であり, これらは色の 3 原色と呼ばれるものである なお, 同じシアン, マゼンタ, イエローでも,RGB 表色系 ( 光の世界 ) のものとは色が異なっている 現実世界の物体色の表現法としては, この CMY 表色系にキーとなるブラック (Blck) を加えた CMYK 表色系を採用している これは, 綺麗な黒色を CMY だけの混色で表現することは理論上可能であるが, 実際には技術的に困難なためである 4-2

4.1.1 ピクセル値,RGB 値,webcolor の関係 16 進表記の RGB 値は,webcolor としても定義されている その対応関係 ( 例 ) を以下に示す (R, G, B) (10 進ピクセル値 ) RGB 値 (16 進表記 ) webcolor (0, 0, 0) 000000 blck (0, 0, 128) 000080 nvy (0, 0, 255) 0000 blue B 備考 (0, 128, 0) 008000 green ( 下記 参照 ) (0, 128, 128) 008080 tel (0, 255, 0) 0000 lime G( 下記 参照 ) (0, 255, 255) 00 qu(cyn) 光としてのシアン と同義 (128, 0, 0) 800000 mroon (128, 0, 128) 800080 purple (128, 128, 0) 808000 olive (128, 128, 128) 808080 gry (192, 192, 192) c0c0c0 silver (255, 0, 0) 0000 red R (255, 0, 255) 00 uchsi(mgent) 光としてのマゼンタ と同義 (255, 255, 0) 00 yellow 光としてのイエロー と同義 (255, 255, 255) white webcolor として指定する green は,RGB の G(webcolor として指定する lime) とは異なる 4-3

4.2 コンピュータにおけるカラー画像の処理 カラーのデジタル画像は,R,G,B の 3 つのピクセル値 (0~255 の整数 ) を持つピクセル ( 画素 ) から構成され, 画像のピクセル数は 画像の幅 画像の高さ ( 単位はピクセル ) で表記される データの圧縮が施されていないカラー画像では, ピクセル数 3 バイト分のメモリ ( 記憶領域 ) が必要になる 一方,JPEG などの圧縮画像では, エンコード ( 符号化 ) による圧縮でこのメモリを節減している また, 画像の各ピクセルの位置は,2 次元座標 ( 平面 ) 上で指定される ディスプレイの画面上における座標平面は, 左上が原点 (0, 0) であり, 画像の幅 (width) と高さ (height) の各方向はそれぞれ, 右向きと下向きが正 (+) の方向になる (0, 0) width height (width, height) 4-4

4.3 算術シフトを用いたピクセル値と RGB 値の求め方 画像中の各ピクセルの RGB 値から R,G,B の各ピクセル値を求める場合は算術右シフト (>>) を用いて計算させる 逆に,R,G,B の各ピクセル値から RGB 値を求めるには, 算術左シフト (<<) を用いて計算させる 4.3.1 算術右シフトによるピクセル値の計算方法 画像中のあるピクセルの RGB 値に対する R,G,B の各ピクセル値は, 下記のようにして計算できる ( 但し下記の rgb は int 型変数で,RGB 値が入っているものとする ) R のピクセル値は (rgb >> 16) & 0x000000 G のピクセル値は (rgb >> 8) & 0x000000 B のピクセル値は rgb & 0x000000 16 ビット右シフトして抽出 8 ビット右シフトして抽出 下位 8 ビットをそのまま抽出 0x ( 頭に 0x が付いている数 ) は 16 進表記の値をあらわす BueredImge クラスの getrgb メソッド ( 後述 ) は, デフォルト RGB カラーモデル TYPE_INT_ARGB およびデフォルト srgb カラースペースのピクセルを int 型で返す (4 バイト = 32 ビット, 但し上位 1 バイト分は 0 と考える ) 4.3.2 算術左シフトによるピクセル値の計算方法 画像中のあるピクセルにおける R,G,B の各ピクセル値に対する RGB 値は, 下記のようにして計算できる (R と G に対して上記とは逆の操作を行い, 論理和で足し合わせればよい ) ( R のピクセル値 << 16) ( G のピクセル値 << 8) B のピクセル値 4-5

4.4 画像ファイルの読み込みと出力 画像 ( イメージ ) は jv.wt.imge パッケージの BueredImge クラスで扱い, 画像ファイルからイメージの読み込み ( 画像入力 ) および表示 ( 画像出力 ) には jvx.imgeio パッケージの下記メソッドを使用する ( なお,File クラスへの画像ファイルの入出力のために jv.io パッケージも必要 ) 扱えるイメージ形式には jpg や gi などがある メソッド red 記述例 (jv.io.* と jv.wt.imge.* と jvx.imgeio.* をインポートした場合 ) 画像ファイル myimge.jpg をインスタンス bi として画像読み込みする ( 記述例 ) File = new File("myimge.jpg"); BueredImge bi = ImgeIO.red(); write インスタンス bi を画像ファイル newimge.jpg として画像出力する ( 記述例 ) BueredImge bi; File = new File("newimge.jpg"); ImgeIO.write(bi, "jpg", ); 4-6

4.5 画像データの取得 画像ファイルより, その画像の幅 (width) と高さ (height), 画像中のある座標における RGB 値を取得するための,jv.wt.imge.BueredImge のメソッドとして下記がある メソッド getwidth 説明と記述例 画像ファイルのインスタンス imge から, その画像の幅 ( 単位 : ピクセル ) を整数値 (int 型 ) で取得 ( 記述例 ) int width = imge.getwidth(); getheight 画像ファイルのインスタンス imge から, その画像の高さ ( 単位 : ピクセル ) を整数値 (int 型 ) で取得 ( 記述例 ) int height = imge.getheight(); getrgb 画像ファイルのインスタンス imge から, 指定したピクセル ( 画素 ) の RGB 値を int 型で取得 ( 記述例 ) int rgb = imge.getrgb(x, y); // x,y は画像中の座標 上記 rgb( 座標 (x, y)) に対する R,G,B 各値の求め方 ( 詳細は 4.3.1 節を参照 ) R の場合 : (rgb >> 16) & 0x000000 G の場合 : (rgb >> 8) & 0x000000 B の場合 : rgb & 0x000000 4-7

4.6 画像データの設定 画像ファイルに, 画像中のある座標における RGB 値を設定するための,jv.wt.imge. BueredImge のメソッドとして下記がある メソッド setrgb 説明と記述例 画像ファイルのインスタンス imge に, 指定したピクセル ( 画素 ) の RGB 値を設定 ( 記述例 ) imge.setrgb(x, y, rgb); // 引数 x,y は画像中の座標,rgb は新しく設定する rgb 値 上記 rgb( 座標 (x, y)) には新しく設定する RGB 値が入る ( 詳細は 4.3.2 節を参照 ) 4-8

4.7 近傍処理を用いたフィルタリング 画像内に含まれる雑音を除去したりする操作をフィルタリングと呼び, デジタル画像空間において直接操作する空間フィルタがある 空間フィルタは近傍処理 ( 入力画像 1 座標とその近傍座標の RGB 値を使用して, 出力画像の 1 座標の RGB を決定する処理 ) によって実行される 近傍処理におけるピクセルと配列表現の関係を下記に示す M 画素 N 画素 i [0,0] [1,0] [N-1,0] [0,1] j [0,M-1] [N-1,M-1] M*N pic の画像 配列表現 近傍処理は入力画像における 1 座標とその近傍のピクセルの RGB 値にある重み ( オペレータ ) を付け, それらの和の結果を出力画像の 1 座標の RGB 値とする これらを積和演算と呼ぶ 3 3 の場合の重み係数行列を 11 21 31 12 22 32 13 23 33 ( 但し s t 1 ), また, 座標 ( i, におけるピクセル値を P( i, であらわすとき, 近傍処理 st 適用後の座標 ( i, におけるピクセル値 P( i, は次式で計算できる P ( i, P( i 1, j 1) P( i 1, 11 21 P( i 1, j 1) P( i, j 1) P( i, 31 22 12 P( i, j 1) P( i 1, j 1) P( i 1, 32 23 13 P( i 1, j 1) 33 4-9

4.7.1 オペレータの種類 ここでは, 代表的なものとして, 平滑化オペレータと鮮鋭化オペレータについて紹介する 平滑化オペレータ 鮮鋭化オペレータ ( 例 ) 0.11 0.11 0.11 0.11 0.11 0.11 0.11 0.11 0.11 ( 例 ) -1-1 -1-1 9-1 -1-1 -1 double [][] ilter ={ {0.111, 0.111, 0.111}, {0.111, 0.111, 0.111}, {0.111, 0.111, 0.111} }; double [][] ilter ={ {-1, -1, -1}, {-1, 9, -1}, {-1, -1, -1} }; 平滑化 : ノイズ等の規則雑音を軽減する ( 高い周波数成分を除去する ) 雑音除去をする一方, 画像がボケる 鮮鋭化 : 高い周波数成分を強調する ボケた画像を鮮鋭化する ( 画質改善の一種 ) その他にもさまざまな種類のオペレータがある ( さらに詳細について知りたい場合は, 各自勉強すること ) 4.7.2 外縁での近傍処理 1 座標 ( i, を左上より走査しながら実行するが, 外縁のピクセル ( i 0 あるいは i M 1; j 0 あるいは j N 1 ) は周辺のピクセルが欠けているため計算ができない このため, 該当条件を含む近傍処理では, 入力画像の RGB 値をそのまま出力画像に反映する ( つまり, 近傍処理は行わない ) 4-10

4-11 4.8 アフィン変換拡大, 縮小, 回転, 反転のように, 行列で表現される変換と, ベクトルで表現される平行移動を組み合わせて統一的に扱う変換を, アフィン変換 (Aine trnsormtion) と呼ぶ 変換前の座標を ), ( j i, 変換後の座標を ), ( j i とするとき,6 つのパラメータを用いて, 次式のような形で一括して, 画像に含まれる各ピクセルの座標を変換できる 2 22 21 1 12 11 2 1 22 21 12 11 b j i b j i b b j i j i

特に, 11 21 12 22 cos sin sin p cos 0 0 q p cos psin qsin q cos b1 s, b2 t すなわち i j p cos i q sin j psin i q cos j s t の場合, 次のような変換になる (step1) 水平方向に p 倍, 垂直方向に q 倍 (step2) 時計回り ( ) に 回転 (step3) 水平方向に s, 垂直方向に t, それぞれ平行移動 O w s pw t O h qh ディスプレイ上では, 水平方向 ( 幅 ) は右向きが+, 垂直方向 ( 高さ ) は下向きが+ 上記の場合, 回転は時計回りが+になる (C. 通常の座標平面上では反時計回りが+) 4-12