CodeZine(コードジン)

特集ページ一覧

画像を小刻みに回転して写真の傾きを補正する

アフィン変換の回転と拡大を同時に行う

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2006/06/02 00:00
目次

プログラムの使い方

 アプレットを実行すると、上部の左にスクロールバーが、右に[元に戻す]ボタンが現れ、その下に、水平が傾いた原画像が表示されます。スライダを右に移動させると、画像が右下がり(時計方向)に回転し、その時の回転角が下方に表示されます。スライダを左に移動させると、画像が左下がりに回転します。スクロールバーの端部の方向ボタンを1回クリックすると、回転角は0.5度変わります。画像を最初の状態に戻すには、[元に戻す]ボタンをクリックします。

プログラムの実行結果

 図4は、補正をした後の画面を示しています。スライダを左に動かして、原画像を左下がりに2.0度傾けた結果です。

図4 補正後の実行画面
図4 補正後の実行画面

まとめ

 画像の回転や拡大はアフィン変換と呼ばれ、画像処理の重要な変換の一つで、カメラで撮影した写真の水平補正に適しています。Java APIには、アフィン変換用のAffineTransformクラスが用意されていますが、実際に試してみたところ、ジャギーが発生する欠点があり、写真画像の補正には不十分であることが分かりましたので、この使用は避けました。

 従来の既存画像ソフトでは回転機能が単独なのに対して、本稿では回転と同時に自動的に拡大する機能を持たせ、良好な結果を得ました。

参考資料

 この記事は、筆者のウエブサイト『Visual C++ 6.0 を用いた易しい画像処理(17)-画像を回転し、拡大する-(ただし、現在はVisual C++ 2005 Express Edition版に改定)(』を改良し、Java言語に書き直して、分かりやすく加筆したものです。

 アフィン変換の一般的な解説の図書としては、下記があります。

  1. ビギナーズブック15-はじめての画像処理技術』 岡本彰夫 著、工業調査会、2000
  2. 年10月
  3. メカトロニクス教科書シリーズ9-画像処理工学』 末松良一・山田宏尚 共著、コロ
  4. ナ社、2000年10月


  • LINEで送る
  • このエントリーをはてなブックマークに追加

修正履歴

  • 2008/03/16 10:27 参考資料をVisual C++ 2005 Express Edition版に変更

バックナンバー

連載:Javaで学ぶグラフィックス処理

もっと読む

著者プロフィール

  • 石立 喬(イシダテ タカシ)

    1955年東京工大卒。同年、NECへ入社し、NEC初のコンピュータの開発に参画。磁気メモリ、半導体メモリの開発、LSI設計などを経て、1989年帝京大学理工学部教授。情報、通信、電子関係の教育を担当。2002年定年により退職し現在に至る。2000年より、Webサイト「Visual C++の勉強部屋」...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5