2004年10月21日(木) 画像情報処理演習
◎濃淡画像処理




a0014712_13391159.jpg


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

均一化→平滑化
a0014712_1422789.jpg


/* 画像の濃度ヒストグラムの画像を作るプログラム 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;
}
[PR]
by viewtleaf | 2004-10-21 13:43 | 画像処理
<< 2004年10月21日(木) ... 人間講座でピーター・フランクル... >>



毎日起こった出来事を記入し、「振り返り」に活用したいと思います。写真は我が子の作品。
by viewtleaf
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
検索
カテゴリ
全体
Diary
学校での取り組み全般
バレーボール
修論
Linux
Network
Security
Software
総合関係
Medical treatment
JAVAプログラミング
研究会等
特別支援
Fishing
流体力学
機械工学
画像処理
電気工学
情報工学
木材加工
異文化間教育
ビデオ編集
イギリスの学校
書評
リンク
金属加工
学ぶ・わかる
Bowling
Hardware
麺類
Piano
English
パズル
卓球
未分類
フォロー中のブログ
異能者集団のチームワーキング
私たちにもできる!国際協力
ジャストジャンプ3@フレ...
その他のジャンル
記事ランキング
ブログジャンル
画像一覧