◎濃淡画像処理
ttsshを起動 sanuki、ユーザー名、パスワードを入力 <ここで、Setup-Terminalをクリックし、KanjiをEUCに変更> sanuki% tcsh > cd miho > gcc -o histgram histgram.c -lm←数学関数を利用するとき > ls -l histgram > ls -l *.pgm -rw-r--r-- 1 ******** gr04-u 65574 Oct 21 13:20 LENNA.pgm > ./histgram ----------------------------------------------------- モノクロ階調画像入力ルーチン ----------------------------------------------------- ファイル形式は pgm, バイナリ形式とします. 入力ファイル名 (*.pgm) : LENNA.pgm 横の画素数 = 256, 縦の画素数 = 256 最大階調値 = 255 データは正しく読み込まれました. ----------------------------------------------------- 今,原画像のヒストグラムを求めています. 頻度の最大値 = 1173 ----------------------------------------------------- モノクロ階調画像(pgm形式)出力ルーチン ----------------------------------------------------- 出力ファイル名 (*.pgm) :LENNA.pgm ----------------------------------------------------- モノクロ階調画像入力ルーチン ----------------------------------------------------- ファイル形式は pgm, バイナリ形式とします. 入力ファイル名 (*.pgm) : LENNA.pgm 横の画素数 = 256, 縦の画素数 = 256 最大階調値 = 255 データは正しく読み込まれました. ----------------------------------------------------- 今,原画像のヒストグラムを求めています. 頻度の最大値 = 1173 ----------------------------------------------------- モノクロ階調画像(pgm形式)出力ルーチン ----------------------------------------------------- 出力ファイル名 (*.pgm) : LENNA2.pgm データは正しく出力されました. ----------------------------------------------------- > gcc -o smth_hst smth_hst.c -lm > ./smth_hst ----------------------------------------------------- モノクロ階調画像入力ルーチン ----------------------------------------------------- ファイル形式は pgm, バイナリ形式とします. 入力ファイル名 (*.pgm) : LENNA.pgm 横の画素数 = 256, 縦の画素数 = 256 最大階調値 = 255 データは正しく読み込まれました. ----------------------------------------------------- ヒストグラムの平滑化を行います. ----------------------------------------------------- モノクロ階調画像(pgm形式)出力ルーチン ----------------------------------------------------- 出力ファイル名 (*.pgm) : LENNA3.pgm データは正しく出力されました. ----------------------------------------------------- > ./histgram ----------------------------------------------------- モノクロ階調画像入力ルーチン ----------------------------------------------------- ファイル形式は pgm, バイナリ形式とします. 入力ファイル名 (*.pgm) : LENNA3.pgm 横の画素数 = 256, 縦の画素数 = 256 最大階調値 = 255 データは正しく読み込まれました. ----------------------------------------------------- 今,原画像のヒストグラムを求めています. 頻度の最大値 = 1321 ----------------------------------------------------- モノクロ階調画像(pgm形式)出力ルーチン ----------------------------------------------------- 出力ファイル名 (*.pgm) : LENNA4.pgm データは正しく出力されました. ----------------------------------------------------- >exit exit 均一化→平滑化 /* 画像の濃度ヒストグラムの画像を作るプログラム histgram.c */ #include #include #include #include"mypgm.h" #define IMAGESIZE 256 /* = GRAYLEVEL */ void make_histogram_image( ) /* 原画像 image1 のヒストグラムを作り画像としてimage2 に代入 */ { long int histogram[GRAYLEVEL]; /* ヒストグラム用配列 */ long int max_frequency; /* 頻度の最大値 */ int i, j, x, y; /* 制御変数 */ int data; /* 頻度を表すグラフの長さ */ /* 原画像のヒストグラムを求める */ for ( i = 0; i < GRAYLEVEL; i ++ ) histogram[ i ] = 0; printf("今,原画像のヒストグラムを求めています.\n"); for ( y = 0; y < y_size1; y ++ ) for ( x = 0; x < x_size1; x ++ ) histogram[ image1[x][y] ] ++; /* 頻度の最大値を求める */ max_frequency = INT_MIN; for ( i = 0; i < GRAYLEVEL; i ++ ) if ( histogram[i] > max_frequency ) max_frequency = histogram[i]; printf("頻度の最大値 = %d\n", max_frequency); /* ヒストグラム画像を image2 に代入 */ x_size2 = IMAGESIZE; y_size2 = IMAGESIZE; for ( y = 0; y < y_size2; y ++ ) for ( x = 0; x < x_size2; x ++ ) image2[y][x] = 0; for ( i = 0; i < GRAYLEVEL; i ++ ){ data = (int)( MAX_BRIGHTNESS / (double)max_frequency * (double)histogram[i] ); for ( j = 0; j < data; j ++ ) image2[IMAGESIZE-1-j][i] = MAX_BRIGHTNESS; } } main( ) { load_image_data( ); /* 原画像を image1 に読み込む */ make_histogram_image( ); /* ヒストグラムの画像を image2 へ */ save_image_data( ); /* image2 を保存する */ return 0; }
by viewtleaf
| 2004-10-21 13:43
| 画像処理
|
検索
カテゴリ
全体Diary 学校での取り組み全般 バレーボール 修論 Linux Network Security Software 総合関係 Medical treatment JAVAプログラミング 研究会等 特別支援 Fishing 流体力学 機械工学 画像処理 電気工学 情報工学 木材加工 異文化間教育 ビデオ編集 イギリスの学校 書評 リンク 金属加工 学ぶ・わかる Bowling Hardware 麺類 Piano English パズル 卓球 未分類 フォロー中のブログ
異能者集団のチームワーキング私たちにもできる!国際協力 ジャストジャンプ3@フレ... その他のジャンル
記事ランキング
ブログジャンル
画像一覧
| ||||||||||||||||||||||||||||||||||||||||||||||||||
ファン申請 |
||