鳴門教育大学大学院 授業科目「画像情報処理研究」に関する情報提供ページ 2011年度版


○ 参考書:「画像処理工学」末松良一,山田浩尚著,コロナ社,2000.ISBN4-339-04398-2

○ 参考書:「C言語による画像処理入門」安居院猛,長尾智晴著,昭晃堂,2000.ISBN4-7856-3124-4


「画像情報処理研究」の実習では,Windows XP に Visual C++ Express Editionがインストールされた環境を使います。

実習で使うツールと画像データ,サンプルプログラムは,以下のとおりです。

    1. Windows用画像表示・変換ツール Irfan View(外部リンク)
    2. Windows用テキストエディッタ Tera Pad(外部リンク)
    3. 研究用画像データベース SIDBA(Standard Image Data-BAse) モノクロ(BMP形式)  カラー(BMP形式)

鳴門教育大学の教育用情報システムにおけるC++の使い方

Microsoft Visual C++ Express Edition(VC++ EE)の環境

(1) VC++ EE用の環境変数が登録されたコマンドプロンプトを起動します。

(2) コンパイル・リンクは,cl /EHsc <C++プログラム名> とします。

   上記の設定を実行するバッチファイル例: vcl.bat

   バッチファイルの使用方法: vcl <C++プログラム名>


画像処理用C++プログラムの使い方

共通ヘッダファイル:eps-header.hhをプログラムの最初に

#include "eps-header.hh"

として使います。

取り扱える画像ファイルの形式は,8ビット,24ビット,32ビット形式の圧縮なしのBMPファイルのみです。画像の大きさは,縦方向をライン,横方向をピクセルと表記します。


画像処理プログラム用ヘッダーファイルの一覧

共通ヘッダーファイル:eps-header.hh     imageクラスの利用方法

フーリエ変換用ヘッダーファイル:fft-header.hh fourierクラスの利用方法

 

画像処理プログラムの一覧

【グレイスケール画像処理】

ヒストグラムを求め,グラフ化した画像を作成するプログラム:histogram.cpp

ヒストグラムを求め,CSV形式のファイルに出力するプログラム:histogram_csv.cpp

ヒストグラムを平滑化するプログラム:smooth_hist.cpp

輝度値を反転するプログラム:invert.cpp

輝度値を線形変換するプログラム:linear.cpp

 

グレイスケール画像を2値化したディザ画像に変換するプログラム (ランダム法):dither_rnd.cpp

グレイスケール画像を2値化したディザ画像に変換するプログラム (組織的ディザ法):dither_org1.cpp

グレイスケール画像を2値化したディザ画像に変換するプログラム (組織的ディザ法,縦横4倍):dither_org4.cpp

グレイスケール画像を2値化したディザ画像に変換するプログラム (誤差拡散法 その1):dither_err1.cpp

グレイスケール画像を2値化したディザ画像に変換するプログラム (誤差拡散法 その2):dither_err2.cpp

グレイスケール画像を2値化したディザ画像に変換するプログラム (誤差拡散法 その3):dither_err3.cpp

 

3×3マスクによるフィルタリング・プログラム:filter_3x3.cpp

ガウシアンフィルタ・プログラム:filter_gauss.cpp

点状のノイズを加えるプログラム:dot_noise.cpp

メディアンフィルタ・プログラム:median.cpp

 

幾何変換(最近隣内挿法)プログラム:affine_nn.cpp

幾何変換(共一次内挿法)プログラム:affine_bl.cpp

幾何変換(sinc関数)プログラム:affine_sinc.cpp      sinc関数と3次式による近似式の比較(エクセルファイル)

幾何変換(三次内挿法(キュービック・コンボリューション))プログラム:affine_cc.cpp

 

【カラー画像処理】

輝度値を反転するプログラム:invert_c.cpp

幾何変換(三次内挿法(キュービック・コンボリューション))プログラム:affine_cc_c.cpp

 

【2値画像処理】

グレイスケール画像の2値化(判別分析法)プログラム:binary_da.cpp

2値画像の膨張処理(8近傍)プログラム:dilate_8.cpp

2値画像の膨張処理(4近傍)プログラム:dilate_4.cpp

2値画像の収縮処理(8近傍)プログラム:erode_8.cpp

2値画像の収縮処理(4近傍)プログラム:erode_4.cpp

連結数計算用ワークシート(エクセルファイル)

2値画像の細線化処理(Erode法)プログラム:skl_erode.cpp    (細線化処理用サンプル画像 英文字:letterA.bmp,線分:lines.bmp

2値画像の細線化処理(Hilditchの方法)プログラム:skl_hilditch.cpp    (細線化処理用サンプル画像 英文字:letterA.bmp,線分:lines.bmp

2値画像から直線用Hough変換画像を生成するプログラム:hough_conv.cpp    (直線抽出用サンプル画像 lines.bmplines_90cw.bmplines_180cw.bmp

Hough変換画像から直線を抽出するプログラム:hough_inv.cpp

 

【画像に対する2次元フーリエ変換】

1次元フーリエ変換説明資料(パワーポイントファイル)1次元フーリエ変換(N=4)の例(エクセルファイル)

共通ヘッダーファイル(eps-header.hh)に加えて,フーリエ変換用ヘッダーファイル(fft-header.hh fourierクラスの利用方法)も使う。

2次元複素数配列データをテキスト形式で利用するため,本画像処理プログラムで定義したComplex Text形式のファイルフォーマットを使う。

 

グレイスケール画像をテキストファイル(Complex Text形式)に変換するプログラム:bmp2cpx.cpp

テキストファイル(Complex Text形式)のデータ(0: 実数部,1: 虚数部,2: 振幅,3: パワー値,4: パワーのデシベル値,5: 位相) からグレイスケール画像を作成するプログラム:cpx2bmp.cpp

特定の周波数成分を持つ空間領域のテキストファイル(Complex Text形式)のデータを作成するプログラム:make_cpx.cpp

テキストファイル(Complex Text形式)のデータからグレイスケール画像(振幅等と位相)を作成するプログラム:cpx2amp_phase.cpp

グレイスケール画像を高速フーリエ変換したデータのテキストファイルComplex Text形式)を作成するプログラム:fft_bmp2cpx.cpp

周波数/空間領域のテキストファイルComplex Text形式)を読み込み高速フーリエ逆変換/フーリエ変換して,(0: 実数部,1: 虚数部,2: 振幅,3: パワー値,4: パワーのデシベル値,5: 位相)のグレイスケール画像を作成するプログラム:fft_cpx2bmp.cpp

テキストファイルComplex Text形式)を読み込み高速フーリエ変換/逆変換して,テキストファイルComplex Text形式)を作成するプログラム:fft_cpx2cpx.cpp

グレイスケール画像の特定のバンド幅の周波数領域をフィルタリングするプログラム:band_filter.cpp

グレイスケール画像の特定周波数成分を調整するプログラム:fft_adjust.cpp

グレイスケール画像をFFTを使って拡大(2, 4, 8…倍)するプログラム:enlarge_by_fft.cpp

2つのグレイスケール画像を読み込み,周波数成分の振幅と位相を交換した2つのグレイスケール画像を作成するプログラム:ex_amp_phase.cpp

ガウシアンフィルタ用画像を生成するプログラム:gauss_img.cpp

グレイスケール画像に対して,FFTを使った畳み込み演算によりフィルタリングするプログラム:fft_convolution.cpp

グレイスケール画像用サンプル(256×256):naruto1.bmp

グレイスケール画像を点対称画像に変換するプログラム:ptr_symmetry.cpp

画像透かし用サンプル画像(256×256,点対称):naruto2.bmp  (naruto1.bmpから作成)

グレイスケール画像にFFTを使って画像透かしを入れる(取り出す)プログラム:fft_watermark.cpp

 


画像処理用C++プログラムのファイル一式】 eps-processor.zip

(1) Linux,Cygwin用makeファイル(Makefile-eps-g)の使い方

   Windows用nmakeファイルも作成するとは,Makefile-eps-gの中にNMAKE_FILEをnmakeファイル名と記述します。

   make -f Makefile-eps-g clean

   make -f Makefile-eps-g all

(2) Windows用nmakeファイル(Makefile-eps-n)の使い方

   nmake /f Makefile-eps-n clean

   nmake /f Makefile-eps-n all


更新日:2011年10月12日