Microsoft PowerPoint - comprog11.pptx

Similar documents
PowerPoint プレゼンテーション

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

Microsoft PowerPoint - dm1_3.pptx

スライド 1

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

Microsoft PowerPoint - DigitalMedia2_2.pptx

Microsoft PowerPoint - Lec15 [互換モード]

適応フィルタのSIMD最適化

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

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

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

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

Microsoft PowerPoint - Lec17 [互換モード]

Microsoft Word - 卒論レジュメ_最終_.doc

Microsoft PowerPoint - handout09.ppt

ディジタル信号処理

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

Microsoft PowerPoint - Lec24 [互換モード]

例 e 指数関数的に減衰する信号を h( a < + a a すると, それらのラプラス変換は, H ( ) { e } e インパルス応答が h( a < ( ただし a >, U( ) { } となるシステムにステップ信号 ( y( のラプラス変換 Y () は, Y ( ) H ( ) X (

Microsoft Word - 3new.doc

コンピュータ工学講義プリント (7 月 17 日 ) 今回の講義では フローチャートについて学ぶ フローチャートとはフローチャートは コンピュータプログラムの処理の流れを視覚的に表し 処理の全体像を把握しやすくするために書く図である 日本語では流れ図という 図 1 は ユーザーに 0 以上の整数 n

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

今後の予定 6/29 パターン形成第 11 回 7/6 データ解析第 12 回 7/13 群れ行動 ( 久保先生 ) 第 13 回 7/17 ( 金 ) 休講 7/20 まとめ第 14 回 7/27 休講?

02: 変数と標準入出力

pp2018-pp9base

スライド 1

Microsoft PowerPoint - pr_12_template-bs.pptx

今回のプログラミングの課題 ( 前回の課題で取り上げた )data.txt の要素をソートして sorted.txt というファイルに書出す ソート (sort) とは : 数の場合 小さいものから大きなもの ( 昇順 ) もしくは 大きなものから小さなもの ( 降順 ) になるよう 並び替えること

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

02: 変数と標準入出力

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

図 5 一次微分 図 6 コントラスト変化に伴う微分プロファイルの変化 価し, 合否判定を行う. 3. エッジ検出の原理ここでは, 一般的なエッジ検出の処理内容と, それぞれの処理におけるパラメータについて述べる. 3.1 濃度投影検出線と直交する方向に各画素をスキャンし, その濃度平均値を検出線上

Microsoft PowerPoint - Lec14 [互換モード]

内容梗概近年 液晶用ガラスはテレビやパソコンディスプレイ スマートフォンなど 様々な分野で使用されている 液晶用ガラスの欠損を検出するためには 欠損検出の精度の高さが重要である そのほかでは 劣化などの問題で認識しにくい甲骨文字の解読が必要である 甲骨文字を切り出し 鮮明化することが未解読資料の解読

cp-7. 配列

スライド 1

Microsoft PowerPoint - exp2-02_intro.ppt [互換モード]

第1回 プログラミング演習3 センサーアプリケーション

PowerPoint プレゼンテーション

Microsoft PowerPoint - spe1_handout11.ppt

スライド 1

スライド タイトルなし

Microsoft PowerPoint - ca ppt [互換モード]

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

ゲームエンジンの構成要素

Prog1_3rd

l10

Microsoft PowerPoint - 第3回2.ppt

ToDo: 今回のタイトル

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

( 慣性抵抗 ) 速度の 2 乗に比例流体中を進む物体は前面にある流体を押しのけて進む. 物 aaa 体の後面には流体が付き従う ( 渦を巻いて ). 前面にある速度 0 の流体が後面に移動して速度 vとなったと考えてよい. この流体の質量は単位時間内に物体が押しのける体積に比例するので,v に比例

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

02: 変数と標準入出力

Microsoft PowerPoint - handout10.ppt

プログラミングA

02: 変数と標準入出力

Microsoft PowerPoint - dm1_5.pptx

Microsoft Word - 卒業論文.doc

プログラミング方法論 II 第 14,15 回 ( 担当 : 鈴木伸夫 ) 問題 17. x 座標と y 座標をメンバに持つ構造体 Point を作成せよ 但し座標 は double 型とする typedef struct{ (a) x; (b) y; } Point; 問題 18. 問題 17 の

Microsoft PowerPoint - dm1_6.pptx

ARToolKit プログラムの仕組み 1: ヘッダファイルのインクルード 2: Main 関数 3: Main Loop 関数 4: マウス入力処理関数 5: キーボード入力処理関数 6: 終了処理関数 3: Main Loop 関数 1カメラ画像の取得 2カメラ画像の描画 3マーカの検出と認識

認識行動システム論

PowerPoint プレゼンテーション

memo

情報処理Ⅰ

Microsoft PowerPoint - e-stat(OLS).pptx

スライド 1

JavaプログラミングⅠ

Microsoft PowerPoint - 4.pptx

画像処理工学

memo

OpenFOAM(R) ソースコード入門 pt1 熱伝導方程式の解法から有限体積法の実装について考える 前編 : 有限体積法の基礎確認 2013/11/17 オープンCAE 富山富山県立大学中川慎二

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

PowerPoint Presentation

<4D F736F F D DC58F498D5A814091E6318FCD814089E6919C82C682CD89BD82A92E646F63>

臨床画像技術学Ⅱ

プログラミングA

2 写真を加工します * 切り取る部分を枠で囲む 楕円 縦長の丸 まん丸など 切り抜きたい部分を中心として 写真の上で マウスを左クリックのままドラッグして枠を作る メニューバーのイメージから [ 円形切り抜き ] をクリックする * 円形切抜き 画面が表示されるので 背景色を白 にして 右上の [

第9回 配列(array)型の変数

<4D F736F F D208D5C91A297CD8A7793FC96E591E631318FCD2E646F63>

初めてのプログラミング

Microsoft PowerPoint - 画像工学 print

Microsoft Word - 1B2011.doc

参考書 (1) 中村, 山本, 吉田 : ウェーブレットによる信号処理と画像処理, 共立出版 応用の紹介とプログラムリストが中心, 理論的背景はほとんどなし 意味不明の比喩を多用 各時代 各国別に美女を探すのが窓フーリエ変換である 応用テーマ : 不連続信号検出, 相関の検出, ノイズ除去, 画像デ

プログラミング基礎

Microsoft PowerPoint - C4(反復for).ppt

PowerPoint プレゼンテーション

Microsoft PowerPoint - kougi7.ppt

Microsoft PowerPoint - 三次元座標測定 ppt

Microsoft PowerPoint - DigitalMedia2_12.pptx

02: 変数と標準入出力

4-4 while 文 for 文と同様 ある処理を繰り返し実行するためのものだが for 文と違うのは while 文で指定するのは 継続条件のみであるということ for 文で書かれた左のプログラムを while 文で書き換えると右のようになる /* 読込んだ正の整数値までカウントアップ (for

プログラミングA

Microsoft Word - no11.docx

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

Microsoft PowerPoint - 画像工学2007-8印刷用

メソッドのまとめ

パソコンシミュレータの現状

memo

関数の定義域を制限する 関数のコマンドを入力バーに打つことにより 関数の定義域を制限することが出来ます Function[ < 関数 >, <x の開始値 >, <x の終了値 > ] 例えば f(x) = x 2 2x + 1 ( 1 < x < 4) のグラフを描くには Function[ x^

Transcription:

Outline プログラミング演習第 回エッジを検出する on 3..4 電気通信大学情報理工学部知能機械工学科長井隆行 画像の本質 輝度の境目に情報あり! 画像の微分と 階微分 エッジ検出 画像をぼかす 本日の課題 画像の本質 エッジ抽出 画像の情報は境目にあり! エッジ 輝度が大きく変化しているところ ( 境界 ) 画像の情報はエッジにあり 輝度 人間の視覚系でも特定のエッジの方向に発火するニューロンが見つかっている 画像の微分 白い線で切った断面 8 6 4 縦エッジ 横 画像上の全ての点で微分を計算すれば 変化しているところが一目瞭然! 離散 ( 時間 ) 信号なので微分は 差分として考えればよい 階微分がゼロとなる点としても 8 検出できる 6 4 4 6 8 4 6 3 4

画像の微分 画像の微分 ( 実際の計算方法 ) 横方向 縦方向の微分 f ( x, x x ( x, f ( x, ) f ( x, = = f ( x, f ( x, ) f ( x, 縦方向 ( 横方向 ) のエッジ ( 微分 ) 8 8 8 9 - 積和の計算 - - 8-8 8 8-8 (x, における微分とするために f ( x, f ( x, ) ) 5 足りないところはで埋める 横方向 ( 縦方向 ) のエッジ ( 微分 ) - どうなる? 6 オペレータ 実際はノイズ除去のための平滑化と組み合わせる 平滑化によって色々なパターンがある 3 3がよく用いられる オペレータ適用の例 sobel 横方向微分 横方向平均 Prewitt プレウィット - - - 縦方向平均 - - - 縦方向微分 Sobel ソーベル - - - 中心を重視した平均 - - - 8

オペレータ - - - 図解オペレータ適用 オペレータ適用 ( フィルタリング 次元畳み込み ) の計算手順を図解 中心 入力画像 8 8 8 9 出力画像 足りないところはゼロで補う - - - 8 8 8 9 - - - 8 8 8 9 プログラムでの実現 画像の横と縦を 重ループ (x-, -) (-)widthx- (x, widthx - (x, ) () widthx - - - プレウィット ( 横 ) の場合 - - - 8 8 8 9 - - - 8 8 8 9 8 - - - 8 8 8 9 8 - - - - 8 8 8 9 8-8 9-8- 8 8-9 - 右下 9 ( 注目画素 ) を画像の左上から右下まで動かす 重ループ double pixel_val =.; for(=; <height-; ){ p-.c for(x=; x<width-; x){ pixel_val = -.*buffer[(-)*widthx-]buffer[(-)*widthx] -.*buffer[*widthx-]buffer[*widthx] -.*buffer[()*widthx-]buffer[()*widthx]; out_buffer[*widthx] = (fabs(pixel_val) <= 55)? (unsigned char) fabs(pixel_val) : 55; 微分値の絶対値を画像で表示するため 条件演算子 画像の境界問題 ( 補足 ) 図解のスライドではゼロを補って考えましたが 前のプログラムでは端を処理しないことで対処しました 単純に面倒だから 境界をちゃんと処理するには ゼロを埋める 対称拡張 画像 ゼロ埋め マスクの中心 必要な分だけゼロを足す if 文で一生懸命場合分け端を膨らませたバッファを用意する 画像 対称拡張法 マスクの中心 必要な分だけ画像を対称に拡張 階微分 微分の微分 ( 差分の差分 ) = { f ( x, { f ( x, { ) { ) = f ( x, laplacian 4 近傍 f ( x, -4 上下左右のみ考慮する ) laplacian 8 近傍 ) 4-8 ななめも考慮する

4 近傍のラプラシアン 階微分の例 注 ) 表示を見やすくするために最小値を ( 負の値 ) 引いて そのときの最大値で正規化している 白と黒にはさまれた灰色が 階微分がゼロの点に相当する ( ゼロクロス ) 55 白 黒 3 エッジ検出 最終的には その画素がエッジなのかエッジでないかを判定する必要がある 様々な手法が提案されている オペレータの結果を閾値処理する ( 最も簡単 ) p = _ x( ) _ ( 閾値 : 55 ( エッジ ) p( x, = < 閾値 : ( エッジではない ラプラシアンの結果のゼロクロスを抽出する ゼロクロスは符号の変化を捉えれば簡単に見つかる ノイズのために細かなエッジが大量に見つかってしまう 対象としている点の周りの値が大きく変化しているかどうかをチェックする ( 閾値 ) ラプラシアンの結果をガウスフィルタでぼかす ( ノイズを除去する ) LOGフィルタ (Laplacian Of Gaussianフィルタ ) ) )) 4 Cann エッジ検出器 ( 補足 ) 最もよく使われる手法 性能がよい 画像をぼかす ( ガウシアンでノイズを除去 ) 微分の計算 ( 大きさと方向 ) G = G x G θ = G tan G エッジの細線化 ( エッジの方向を利用 ) つの閾値で値の大きい ( 信頼性の高いエッジ ) と値の小さい ( 信頼性の低いエッジ ) を選ぶ 信頼性の高いエッジをもとに それに接続した信頼性の低いエッジを選んで行く x 5 画像をぼかす 画像をぼかすためには エッジのような変化を小さくする 近傍画素を平均化すればよい 平滑化 ( 平らにするということ ) 積分と考えてもよい 平均化フィルタ ( 移動平均 ) /9 /9 /9 /9 /9 /9 /9 /9 /9 3 3 ガウシアンフィルタ 移動平均よりもなめらかになるガウス関数をベースに作られる /6 /6 オペレータのサイズは N N にできる /6 /6 /6 4/6 /6 /6 /6 6

フィルタリング ( 補足 ) オペレータの適用による処理は一般化できる フィルタリング ( 時間領域での畳み込み ) 周波数領域では微分はハイパスフィルタ平滑化はローパスフィルタ 用いるオペレータ ( フィルタ ) の係数を変えれば同じプログラムが使える フィルタリングプログラム int x,,i,k; double mask[3][3]={{./9,./9,./9, {./9,./9,./9, {./9,./9,./9; double pixel_val; 3 3 のオペレータ for(=; <height-; ){ for(x=; x<width-; x){ /* ここで3 3のフィルタリング ( オペレータを適用 )*/ pixel_val =.; for(i=-:i<;i){ for(k=-;k<;k){ pixel_val = mask[i][k]*buffer[(i)*widthxk]; /* オーバーフローの処理 */ out_buffer[*widthx] = (unsigned char) pixel_val; if(pixel_val>55) out_buffer[*widthx] = 55; if(pixel_val<) out_buffer[*widthx] = ; p-.c 8 本日の演習 課題のヒント ー準備ー まずは p-.c( 画像を横方向に微分するプログラム ) をダウンロードする p-.cを実行して画像の縦方向の線が検出されていることを確かめる 画像はgra_girl.bmpを使う ( 自分で用意してもよいがサイズに注意 ) ー課題ー ( ここから先をメールで送る ) 画像のエッジを検出するプログラムを作る p-3.cを完成させる 手法は 横方向のプレウィットと縦方向のプレウィットの出力の二乗和の平方根を閾値処理する p.4の式 閾値 (threshold) を変えると結果の画像はどのように変化するかを観察する ソースコードと結果の画像 ( どの閾値でもよい ) をメールで送る 送る画像のサイズは小さいものを送る ( こちらで用意した画像と同じ程度 ) 送る際には注意事項をよく確認すること http://apple.ee.uec.ac.jp/comprog 諸注意 今日の講義の感想 質問をメール本文に書いてください よく分かった ここが分からない など 9 /***************** 画像処理をここで行う ********************/ for(=; <height-; ){ for(x=; x<width-; x){ /* ここで横方向の微分を計算して pixel_val に代入 */ pixel_val =.; for(i=-;i<;i){ for(k=-;k<;k){ pixel_val = mask[i][k]*rbuffer[(i)*widthxk]; /* ここで縦方向の微分を計算して pixel_val に代入 */ pixel_val=.; /************************************************************ ************************************************************/ /* 微分値の 乗和の平方根が閾値 (threshold) より大きければ55そうでなければを代入 */ if( /* ここの条件を書く */ ) { out_buffer[*widthx] = 55; else{ out_buffer[*widthx] = ; _ x( f ( x _ ( f ( x /******************* 画像処理ここまで ******************************/ ここを参考にする, ), ) pixel_val pixel_val