Presentation is loading. Please wait.

Presentation is loading. Please wait.

2014/05/02 知的画像処理研究室 M1 中津美冴 is0080rh@ed.ritsumei.ac.jp 画像情報処理1 ~画像処理プログラミング~ 2014/05/02 知的画像処理研究室 M1 中津美冴 is0080rh@ed.ritsumei.ac.jp.

Similar presentations


Presentation on theme: "2014/05/02 知的画像処理研究室 M1 中津美冴 is0080rh@ed.ritsumei.ac.jp 画像情報処理1 ~画像処理プログラミング~ 2014/05/02 知的画像処理研究室 M1 中津美冴 is0080rh@ed.ritsumei.ac.jp."— Presentation transcript:

1 2014/05/02 知的画像処理研究室 M1 中津美冴 is0080rh@ed.ritsumei.ac.jp
画像情報処理1 ~画像処理プログラミング~ 2014/05/02 知的画像処理研究室 M1 中津美冴

2 目次 画像処理プログラミングの準備 サンプルプログラムの説明 画像を添付する際の注意点 画像処理の方法、プログラム例題 レポートについて
ファイルのダウンロード・解凍・コンパイル サンプルプログラムの説明 画像を添付する際の注意点 画像処理の方法、プログラム例題 レポートについて

3 サンプルプログラムのダウンロード http://www.iipl.is.ritsumei.ac.jp/lecture
ファイルの解凍方法,コンパイル,実行方法などは、上記ページに全て書いてあります.

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

5 コンパイルの方法 Makefike Imgfilterという実行ファイルが作成される makeコマンドを使用する為のファイル

6 画像の表示 displayコマンドで確認 画像の表示が上手くいかない場合 % display Castle.ppm &
ディスク容量がいっぱい? % du –sh     ・・・ディスク使用量の確認 Rainbowの個人容量は最大50Mまで

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

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

9 入出力関数(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次元座標を取得 など・・・

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

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

12 ファイル形式変換方法(Linux) ターミナル画面で↓を入力 >display ○○.pgm
ImageMagic(画像表示ツール)が起動されたら以下の手順で変換 表示された画像を右クリック→Save Formatボタンをクリック 変換後のファイル形式を選んでSelect (LaTeXに添付する場合はeps形式推奨) 必要ならファイル名を変更し、Saveをクリック、Selectをクリック

13 ファイル形式変換方法(Windows) irfanview(

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

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

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

17 手順2 関数ReversalImageの中で反転処理を実装 ImageFilter.c 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); //出力画像の書き出し FreePgm(pRVOutputData); //出力画像のメモリ解放 ImageFilter.c

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

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

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

21 レポート課題1 課題内容 アルファブレンディング処理
今回の例題にあるReversalImage(void)を参考にAlphaBlending (void)というアルファブレンディング処理を行う関数を作成しなさい ImageFilter.h内での宣言やmain関数内での呼び出しについては、例題と同じ

22 アルファブレンディング(alpha blending)
αの値が、画像左端で0、右端で1で、その間では直線的に変化させた。 g=af1+(1-a)f2

23 レポート課題2 課題内容 空間フィルタリング フィルタリング処理を行う関数を作成しなさい 平滑化,Smoothing (void)
エッジ検出,EdgeDetection (void) フィルタリング処理を行う関数を作成しなさい

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

25 課題について 提出期限:2014/5/16(金) 12:00 何か分からないことがあったら、TAの中津まで連絡してください
クリエーションコア 4F 知的画像処理研究室


Download ppt "2014/05/02 知的画像処理研究室 M1 中津美冴 is0080rh@ed.ritsumei.ac.jp 画像情報処理1 ~画像処理プログラミング~ 2014/05/02 知的画像処理研究室 M1 中津美冴 is0080rh@ed.ritsumei.ac.jp."

Similar presentations


Ads by Google