画像情報処理 1 プログラミング課題 知的画像処理研究室 M2 大村 瑞穂. 目次 プログラミング課題の準備 – ファイルのダウンロード・解凍・コンパイル サンプルプログラムの説明 画像処理の方法 レポートに載せる画像について 例題と第 1 回レポート課題.

Slides:



Advertisements
Similar presentations
プログラミング演習Ⅱ 課題 4 第 2 週 画像ファイル (ppm) の読み書き 画像データ用のメモリ確保・解放 1.
Advertisements

10: ファイル入出力 Linux にログインし、以下の講義ページ を開いておくこと teachers/w483692/CPR1/ C プログラミング入門 総機 1 ( 月 1) 1.
知能情報工学演習 I 第 12 回( C 言語第6 回) 課題の回答 岩村雅一
1 全体の流れ 画像ファイルを開き,画像データをメモリ上にロード メモリ上にロードした画像データに処理を加える 処理後のデータを出力ファイルに書き出す 画像データ用に確保したメモリを解放.
C 言語講座 第 7 回 ポインター. メモリとアドレス(ポインターの前 に) コンピュータのメモリには 1 バイトずつ 0 番地、 1 番地、 2 番地・・・というように 住所が割り当てられている この住所をアドレスという。 メモリはデータをしまうもので それを引き出すためには メモリに番号(アドレス)を振っておけばよいな.
画像情報処理1 ~画像処理プログラミング~ 2015/05/01 知的画像処理研究室 M1 吉原寛樹
第5章 JMPのインストールと基本操作 廣野元久
初年次セミナー 第13回 2次元グラフィックス(1).
TeX で数式を書くための PowerPoint アドイン Ver (2011/06/26) Ver. 0.1 (2007/5/30)
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第3回 配列(1) 情報・知能工学系 山本一公
初年次セミナー 第8回 データの入力.
情報基礎演習B 後半第5回 担当 岩村 TA 谷本君.
数理情報工学演習第一C プログラミング演習 (第3回 ) 2014/04/21
TeX で数式を書くための PowerPoint アドイン Ver. 0.1 (2007/5/30)
第13回構造体.
第12回構造体.
アプレット (Applet)について.
画像ファイル(ppm)の読み書き 画像データ用のメモリ確保・解放
システムプログラミング 第5回 情報工学科 篠埜 功 ヒアドキュメント レポート課題 main関数の引数 usageメッセージ
ただで使えるソフトウェア ーインストールとお絵かきー
OSとコマンド OS:コンピュータを使うための基本プログラム コマンド:OS上で使用できる命令 OS本体であるカーネルの内部コマンド
プログラミング演習II 2004年10月19日(第1回) 理学部数学科・木村巌.
配列の扱い、探索 有効範囲と記憶域期間 第12回 [7月10日、H.15(‘03)] 今日のメニュー 1 前回の課題の復習
プログラミング演習Ⅰ 課題2 10進数と2進数 2回目.
画像ファイル(ppm)の読み書き 画像データ用のメモリ確保・解放
2014/05/02 知的画像処理研究室 M1 中津美冴 画像情報処理1 ~画像処理プログラミング~ 2014/05/02 知的画像処理研究室 M1 中津美冴
精密工学科プログラミング基礎Ⅱ 第3回資料 今回の授業で習得してほしいこと: 2次元配列の使い方 (前回の1次元配列の復習もします.)
10: ファイル入出力 C プログラミング入門 基幹2 (月4) Linux にログインし、以下の講義ページ を開いておくこと
経営工学基礎演習a PowerPointの利用.
第2回 Microsoft Visual Studio C++ を使ってみよう
情報工学科 3年生対象 専門科目 システムプログラミング 第5回、第6回 ヒアドキュメント レポート課題 情報工学科 篠埜 功.
Borland Delphi 6 でビジュアルプログラミング
Cプログラミング演習.
Cプログラミング演習 第7回 メモリ内でのデータの配置.
メモリの準備 メモリには、その準備の方法で2種類ある。 静的変数: コンパイル時にすでにメモリのサイズがわかっているもの。 普通の変数宣言
復習 前回の関数のまとめ(1) 関数はmain()関数または他の関数から呼び出されて実行される.
デジタル画像とC言語.
地域情報学 C言語プログラミング 第1回 導入、変数、型変換、printf関数 2016年11月11日
2013年度 プログラミングⅡ ~ はじめてのプログラミング ~.
UNIX演習 情報ネットワーク特論.
関数への道.
2017年度 プログラミングⅡ ~ はじめてのプログラミング ~.
画像処理プログラミング 知的画像処理研究室 M2 小林 佳奈美.
2014年度 プログラミングⅡ ~ はじめてのプログラミング ~.
プログラミング言語論 第六回 理工学部 情報システム工学科 新田直也.
C言語 はじめに 2016年 吉田研究室.
UNIX演習 情報ネットワーク特論資料.
高度プログラミング演習 (01).
UNIX演習 情報ネットワーク特論資料.
UNIX演習 情報ネットワーク特論資料.
TeX で数式を書くための PowerPoint アドイン Ver. 0.1 (2007/5/30)
復習 Cにおけるループからの脱出と制御 break ループを強制終了する.if文と組み合わせて利用するのが一般的. continue
情報基礎演習B 後半第2回 担当 岩村 TA 谷本君.
TeX で数式を書くための PowerPoint アドイン Ver. 0.1 (2007/5/30)
第5回 プログラミングⅡ 第5回
vc-1. Visual Studio C++ の基本操作 (Visual Studio C++ の実用知識を学ぶシリーズ)
標準入出力、変数、演算子、エスケープシーケンス
Visual Studio 2013 の起動と プロジェクトの新規作成 (C プログラミング演習,Visual Studio 2019 対応) 金子邦彦.
extern の意味 (C プログラミング演習,Visual Studio 2019 対応)
モジュール分割.
情報工学科 3年生対象 専門科目 システムプログラミング 第3回 makeコマンド 動的リンクライブラリ 情報工学科 篠埜 功.
情報工学科 3年生対象 専門科目 システムプログラミング 第3回 makeコマンド 動的リンクライブラリ 情報工学科 篠埜 功.
Cp-1. Microsoft Visual Studio 2019 C++ の使い方 (C プログラミング演習,Visual Studio 2019 対応) 金子邦彦.
全体の流れ 画像ファイルを開き,画像データをメモリ上にロード メモリ上にロードした画像データに処理を加える
プログラミング演習II 2003年11月19日(第6回) 木村巌.
プログラミング演習II 2003年12月10日(第7回) 木村巌.
情報処理概論Ⅰ 2007 第11回 2007/7/4 情報処理概論Ⅰ 第11回.
岩村雅一 知能情報工学演習I 第13回(後半第7回) 岩村雅一
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
プログラミング 2 静的変数.
Presentation transcript:

画像情報処理 1 プログラミング課題 知的画像処理研究室 M2 大村 瑞穂

目次 プログラミング課題の準備 – ファイルのダウンロード・解凍・コンパイル サンプルプログラムの説明 画像処理の方法 レポートに載せる画像について 例題と第 1 回レポート課題

目次 プログラミング課題の準備 – ファイルのダウンロード・解凍・コンパイル サンプルプログラムの説明 画像処理の方法 レポートに載せる画像について 例題と第 1 回レポート課題

サンプルプログラムのダウンロー ド クリック

サンプルプログラムのダウンロー ド ファイルの解凍方法,コンパイル,実行方法などは このページに全て書いてあります! この PPT はこの HP の下の方から ダウンロードできます!

目次 プログラミング課題の準備 – ファイルのダウンロード・解凍・コンパイル サンプルプログラムの説明 画像処理の方法 レポートに載せる画像について 例題と第 1 回レポート課題

圧縮ファイルの内容 1.ImageFileIO.c 2.ImageFileIO.h 3.ImageFilter.c 4.ImageFilter.h 5.main.c 6.○○○.ppm 7.○○○.pgm 8.ImageTools.c 9.ImageTools.h 10.Makefi l e 1. 画像の読み込み, 出力データの書き 出しなどを行う関数の定義 2.ImageFileIO.c 内の関数の宣言 3. データを画像処理する関数の定義 4.ImageFilter.c 内の関数の宣言 5. メインプログラム 6. カラー画像ファイル 7. モノクロ画像ファイル 8. 今回は関係なし 9. 今回は関係なし 10.make ファイル

コンパイルの方法 Makefi l e – make コマンドを使用する為のファイル – make コマンド・・・複数のファイルを同時に 順序よく コンパイルするコマンド imgfilter という実行ファイルが作成される %./imgfilter make コマンドを実行し, コンパイ ルとリンクを自動的に行う

画像の表示 display コマンドで確認 % display Castle.ppm & 画像の表示が上手くいかない場合 – ディスク容量がいっぱい? % du –sh ・・・ディスク使用量の確認 Netscape のキャッシュの削除 – Netscape を立ち上げる 編集 → 設定 → 詳細 → キャッシュ – キャッシュのクリアを行い,保存するキャッシュ 容量も減らすことをオススメします(デフォルト は 50MB )

メイン関数 (main.c) main.c int main(void) { // 画像処理を行う関数の呼び出し // 例1) PPM 形式の入力データをネガ画像に変換 NegativeImage(); // 例2) PGM 形式のデータに線を描く // DrawLines(); // 正常終了 return 0; } – main() 関数から NegativeImage() 関数が呼び出さ れている

画像処理関数 (ImageFilter.c) ImageFilter.c – void NegativeImage(void) PPM 形式の入力データをネガ画像に変換 void NegativeImage(void) { ・・・ // PPM 形式の入力データの読み込み pRGBInputData = ReadPpm(&iWidth, &iHeight, &iMaxValue); ・・・ }

入出力関数 (ImageFileIO.c) ReadPpm(int * iWidth, int * iHeight, int * iMaxValue) – PPM ファイルの読み込み WritePpm(struct RGB * pRGBOutputData, int iWidth, int iHeight, int iMaxValue) – PPM ファイルへ書き出し GetAxisFromIndex(int iWidth, int iIndex, int * iX, int * iY) – 1次元のインデックスから2次元座標を取得 など・・・

目次 プログラミング課題の準備 – ファイルのダウンロード・解凍・コンパイル サンプルプログラムの説明 画像処理の方法 レポートに載せる画像について 例題と第 1 回レポート課題

画像処理の手順 1.ImageFilter.c に関数を追加する – BinaryImage(void) 2.ImageFilter.h 内で関数の宣言を行う 3.main.c 内の main() 関数から呼び出す 4.make コマンドでコンパイル つまり・・・ プログラミングの際に変更するファイルは, ImageFilter.c ・ ImageFilter.h ・ main.c の3つ

周辺画素の処理 (フィルタリングプログラムを作成する際の注意) 端の画素の例外処理を忘れずに行うこと 注目画素

目次 プログラミング課題の準備 – ファイルのダウンロード・解凍・コンパイル サンプルプログラムの説明 画像処理の方法 レポートに載せる画像について 例題と第 1 回レポート課題

レポートに画像を添付する際の注 意 pgm 画像および ppm 画像は, そのままだと レポートには載せられません( latex でも word でも) 次の方法でファイル形式を変換してから 載せてください

ファイル形式変換方法( Linux ) ターミナル画面で ↓ を入力 >display ○○.pgm ImageMagic (画像表示ツール)が起動された ら以下の手順で変換 1. 表示された画像を右クリック →Save 2.Format ボタンをクリック 3. 変換後のファイル形式を選んで Select ( latex に 載せる場合は eps 形式がいいと思います) 4. 必要ならファイル名を変更し, Save をクリック, Select をクリック

ファイル形式変換方法( Windows ) irfanview ( ) を使うと好きな形式に変換することがで きます

latex で画像を添付する方法 以下のコマンドをレポートに貼り付け \begin{figure}[htbp] \begin{center} \epsfile{file=○○.eps,width=1.0\hsize} \caption{ レポート上に表示させるタイトル } \label{fig:○○} \end{center} \end{figure} 参考:

何か質問があれば, TA の大村 ( CC 4 F 知的画像処理研究室 ( 陳研 ) )まで メールアドレス:

目次 プログラミング課題の準備 – ファイルのダウンロード・解凍・コンパイル サンプルプログラムの説明 画像処理の方法 レポートに載せる画像について 例題と第 1 回レポート課題

プログラム例題 白黒画像( pgm ファイル)から,反転画像 を作成する 反転画像は, 255 から各画素の値を引き, その値を新しい画素値とすることで作成 できる

手順1 ImageFilter.c の中に反転画像を作成する ReversalImage(void) という関数を作る #include ・・・・・・ void NegativeImage(void) { int iWidth, iHeight, iMaxValue; ・・・・・・ } void DrawLines(void) { int iWidth, iHeight, iMaxValue; ・・・・・・ } void ReversalImage(void){ } ImageFilter.c

手順2 関数 ReversalImage の中で反転処理を実装 void ReversalImage(void){ int iWidth, iHeight, iMaxValue; // 横幅のサイズ, 縦幅のサイズ, 最大輝度値 int *piInputData; // 入力画像の画素値を格納 int *pRVOutputData; // 出力画像の画素値を格納 int I; // ループ変数 printf(“**** Reversal Image ****\n”); // 入力画像の読み込み piInputData = ReadPgm(&iWidth, &iHeight, &iMaxValue); // 出力画像のメモリ確保 pRVOutputData = (int *)malloc(iWidth*iHeight*sizeof(int)); // 反転処理 for(i=0; i<iWidth*iHeight; i++){ pRVOutputData[i] = piInputData[i]; } FreePgm(piInputData); // 入力画像のメモリ解放 WritePgm(pRVOutputData, iWidth, iHeight, iMaxValue); // 出力画像の書き出し FreePgm(pRVOutputData); // 出力画像のメモリ解放 } ImageFilter.c

手順3 ImageFilter.h 内で ReversalImage 関数の宣言 #ifndef _IMAGEFILTER_H_ #define _IMAGEFILTER_H_ void NegativeImage(void); void DrawLines(void); void ReversalImage(void); #endif ImageFilter.h

手順4 main.c 内の main() 関数で ReversalImage 関数 を呼び出し #include #include "ImageFilter.h" int main(void) { // NegativeImage(); // DrawLines(); ReversalImage(); return 0; } !他の関数をコメントアウトするのを忘れないようにしてくだ さい! main.c

手順5 コマンドプロンプトで「 make 」と入力す る コンパイルが行われ, imgfilter という名前 の実行ファイルが作成される 「./imgfilter 」でプログラムを実行

第 1 回レポート課題では,今回の例題にあ る ReversalImage(void) の代わりに BinaryImage(void) という 2 値化を行う関数を 作ってください ImageFilter.h 内での宣言や main 関数内での 呼び出しの仕方は,例題と同じです