Back
戻る

 

Java Appletによる画像処理プログラム集

 

私の研究室では,研究や教育用に多くのプログラムを作ってきました.これまでは,主としてC言語やVisual Basic を用いたアプリケーションプログラムとして作成していたために,それらの実行結果は文書や写真でしか公表できませんでした.ところが,ここにきて状況が大きく変わってきました.Java Applet を用いることによって,プログラム自体をインターネット上で公開できるようになってきました.これまでに行ってきた,教育,研究成果をプログラムでフィードバックすることが可能となってきたのです.アプリケーションとは違い,Java Applet ですので,制限も多くありますが,可能な限りプログラムを公表していきたいと思っています.


教育用画像処理システム

 学部や大学院の画像処理工学の講義で活用するために作成したプログラムです.VisualBasicで製作したものをJavaAppletに移植しました.視認性と処理速度を優先するために,画像の解像度は256×256にしてあります.
 画像処理では,1枚の画像に対して次々と処理を加えていく必要があります.そこで,このプログラムでは, 画像の表示枠を4枚用意してあります.これにより,処理を重ねるにつれて,どのように画像が変化するかを確認することができるようになっています.処理をする画像の枠と処理後の画像を入れる枠を選択した後,メニューから処理内容を選択してください.
 現在は「前処理」と呼ばれる基本的な処理が入っているだけですが,順次処理内容を追加していく予定です.

 画像処理を行う際は「何をしたいのか」という目的があります.適当に処理をしても意味がありませんので,いくつかの場面を想定した手順を作ってみました.こちらを参考にしてください.



Hough変換を用いた廊下画像からの床面領域の検出

移動ロボットを自律走行させようとすると,走行可能領域を検出する必要があります.このプログラムは,廊下で自立型移動ロボットを走行させるときに必要となる基本プログラムです.このプログラムでは,廊下の画像から,左右の床面の端を求めることができます.「実行」を選択すると,緑色の枠には,Hough平面(θ-ρ平面)が,青色の枠には床面を示す直線が ,黒色の枠には廊下画像に直線を合成したものが表示されます.また,廊下の端を示す直線の式も求めることができます.

 



平均重心距離法を用いた鍵画像認識プログラム

 これは画像認識のサンプルプログラムです.ここで用いた手法は,対象物の重心から画素までの平均距離を認識パラメータとして用いています.この手法は,非常に簡単なアルゴリズムですが,
 認識速度が速い,
 正像と鏡像を同一画像として扱える(裏返った物も同じように扱える),
 回転変換に対して普遍である,
などの特徴を有しています.

 このプログラムは,4枚の画像から,同じ鍵を見つけ出すように作っています.あらかじめ,2番から4番までの枠に鍵の画像が表示されますので,1番の枠に入れる画像をメニューから選択した後,実行を選んでください.すぐに「実行」を選ぶのではなく,どの鍵が同じか,自分で見つけてから実行してください.

 



画像処理を用いた不良品検出例のデモプログラム

これはキッチンユニットを製造する場合を想定し,製造過程で不良品が発生した場合,その不良箇所を検出するためのプログラムです.赤色の枠に表示されているキッチンユニットが良品,緑色の枠に表示されているものが不良品です.

目で見ただけでは,どこに不良箇所があるのかはわからないと思いますが,不良箇所検出プログラムを実行させると,不良箇所が赤色で表示されます.

メニューから「実行」を選んでください.青色の枠に不良箇所が,黒色の枠にはキッチンユニットの画像に不良箇所を重ね合わせた画像が表示されます.