(57)【特許請求の範囲】
【請求項１】
撮影対象の画像を取得する撮影手段と、
重力方向を検出する重力検出手段と、
この重力検出手段によって検出された重力方向とカメラの光軸が為す角度が所定値以下であった場合にカメラの向きが第１の向きであると判定し、前記角度が前記所定値よりも大きければカメラの向きが第２の向きであると判定する向き判定手段と、
この向き判定手段によって判定されたカメラの向きが第１の向きであった場合に、前記撮影画像を天地左右方向について射影補正するためのパラメータを、カメラの光軸と重力方向とがなす角度に基づいて算出し、前記向き判定手段によって判定されたカメラの向きが第２の向きであった場合に、前記撮影画像を垂直方向に射影補正するためのパラメータを、カメラの光軸と重力方向とがなす角度に基づいて算出するパラメータ算出手段と、
このパラメータ算出手段によって算出されたパラメータを用いて前記撮影画像の歪みを補正する画像補正手段と
を具備したことを特徴とする撮像装置。
【請求項２】
撮影対象となる被写体の画像を取得する撮影手段と、
重力方向を検出する重力検出手段と、
この重力検出手段によって検出された重力方向とカメラの光軸が為す角度が所定値以下であった場合にカメラの向きが第１の向きであると判定し、前記角度が前記所定値よりも大きければカメラの向きが第２の向きであると判定する向き判定手段と、
この向き判定手段によって判定されたカメラの向きが第２の向きであった場合に、前記撮影手段によって得られた撮影画像から水平方向の直線を検出する直線検出手段と、
前記向き判定手段によって判定されたカメラの向きと前記直線検出手段によって検出された直線とに基づいて、前記撮影手段によって得られた撮影画像を射影補正するためのパラメータを算出するパラメータ算出手段と、
このパラメータ算出手段によって算出されたパラメータを用いて前記撮影画像の歪みを補正する画像補正手段と
を具備したことを特徴とする撮像装置。
【請求項３】
前記パラメータ算出手段によって算出されたパラメータを記憶する記憶手段と、
前記画像補正手段によって補正された画像を表示する表示手段と、
前記記憶手段に記憶されたパラメータの変更を指示する変更指示手段と、
この変更指示手段による変更指示に従ってパラメータを変更し、その変更後のパラメータによって得られる補正画像を前記表示手段に再表示する制御手段と
を具備したことを特徴とする請求項１または２記載の撮像装置。
【請求項４】
前記変更指示手段は、上下左右方向のカーソルキーの操作により、前記記憶手段に記憶されたパラメータの変更を指示することを特徴とする請求項３記載の撮像装置。
【請求項５】
撮影対象となる被写体の画像を取得する第１のステップと、
重力方向を検出する第２のステップと、
この第２のステップによって検出された重力方向とカメラの光軸が為す角度が所定値以下であった場合にカメラの向きが第１の向きであると判定し、前記角度が前記所定値よりも大きければカメラの向きが第２の向きであると判定する第３のステップと、
この第３のステップによって判定されたカメラの向きが第１の向きであった場合に、前記撮影画像を天地左右方向について射影補正するためのパラメータを、カメラの光軸と重力方向とがなす角度に基づいて算出し、前記第３のステップによって判定されたカメラの向きが第２の向きであった場合に、前記撮影画像を垂直方向に射影補正するためのパラメータを、カメラの光軸と重力方向とがなす角度に基づいて算出する第４のステップと、
この第４のステップによって算出されたパラメータを用いて前記撮影画像の歪みを補正する第５のステップと
を備えたことを特徴とする画像補正方法。
【請求項６】
撮影対象となる被写体の画像を取得する第１のステップと、
重力方向を検出する第２のステップと、
この第２のステップによって検出された重力方向とカメラの光軸が為す角度が所定値以下であった場合にカメラの向きが第１の向きであると判定し、前記角度が前記所定値よりも大きければカメラの向きが第２の向きであると判定する第３のステップと、
前記第３のステップによって判定されたカメラの向きが第２の向きであった場合に前記第１のステップによって得られた撮影画像から水平方向の直線を検出する第４のステップと、
前記第３のステップによって判定されたカメラの向きと前記第４のステップによって検出された直線とに基づいて、前記第１のステップによって得られた撮影画像を射影補正するためのパラメータを算出する第５のステップと、
この第５のステップによって算出されたパラメータを用いて前記撮影画像の歪みを補正する第６のステップと
を備えたことを特徴とする画像補正方法。
【請求項７】
コンピュータによって読取り可能なプログラムであって、
前記コンピュータに、
撮影対象となる被写体の画像を取得する第１の機能と、
重力方向を検出する第２の機能と、
この第２の機能によって検出された重力方向とカメラの光軸が為す角度が所定値以下であった場合にカメラの向きが第１の向きであると判定し、前記角度が前記所定値よりも大きければカメラの向きが第２の向きであると判定する第３の機能と、
この第３の機能によって判定されたカメラの向きが第１の向きであった場合に、前記撮影画像を天地左右方向について射影補正するためのパラメータを、カメラの光軸と重力方向とがなす角度に基づいて算出し、前記第３の機能によって判定されたカメラの向きが第２の向きであった場合に、前記撮影画像を垂直方向に射影補正するためのパラメータを、カメラの光軸と重力方向とがなす角度に基づいて算出する第４の機能と、
この第４の機能によって算出されたパラメータを用いて前記撮影画像の歪みを補正する第５の機能と
を実現させることを特徴とするプログラム。
【請求項８】
コンピュータによって読取り可能なプログラムであって、
前記コンピュータに、
撮影対象となる被写体の画像を取得する第１の機能と、
重力方向を検出する第２の機能と、
この第２の機能によって検出された重力方向とカメラの光軸が為す角度が所定値以下であった場合にカメラの向きが第１の向きであると判定し、前記角度が前記所定値よりも大きければカメラの向きが第２の向きであると判定する第３の機能と、
前記第３の機能によって判定されたカメラの向きが第２の向きであった場合に前記第１の機能によって得られた撮影画像から水平方向の直線を検出する第４の機能と、
前記第３の機能によって判定されたカメラの向きと前記第４の機能によって検出された直線とに基づいて、前記第１の機能によって得られた撮影画像を射影補正するためのパラメータを算出する第５の機能と、
この第５の機能によって算出されたパラメータを用いて前記撮影画像の歪みを補正する第６の機能と
を実現させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばデジタルカメラ等の撮像装置に係り、特に撮影対象に対するカメラの傾きによって歪んで撮影された画像を補正する機能を備えた撮像装置と、この撮像装置に用いられる画像補正方法及びプログラムに関する。
【背景技術】
【０００２】
近年のデジタルカメラの普及に伴い、デジタルカメラを単なる風景や人の撮影だけに用いるのではなく、紙面文書や名刺などの書類や、黒板等に表示されたものを撮影して、これらの画像をパーソナルコンピュータ等にデジタル的に保存、管理しておくような用途が考えられる。
【０００３】
ここで、書類や黒板などを撮影対象とした場合に、撮影者の位置や照明光などの関係で撮影対象を斜め方向から撮影することがある。このような場合、カメラの傾きに応じて画像が台形状に歪んでしまい、文字などが判別できなくなる。
【０００４】
従来、このような画像の歪みを補正する方法として、例えば特許文献１に開示されている方法がある。この特許文献１では、撮影対象となる被写体の輪郭情報を抽出し、その輪郭情報に基づいて撮影画像の歪みを補正する。これにより、カメラを傾けて撮影した場合でも、正面から撮影したような矩形状の画像を得ることを可能としている。
【特許文献１】特開２００５−１１５７１１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、前記特許文献１の方法では、撮影対象となる被写体の輪郭情報を用いるため、その輪郭情報を正しく抽出できない場合には補正できないといった問題がある。この場合、ユーザが画面上で画像の輪郭部分を指定する方法もあるが、それでは非常に面倒であり、ユーザに負担をかけてしまうことになる。
【０００６】
本発明は前記のような点に鑑みなされたもので、被写体の輪郭情報を必要とせずに、傾いて撮影された画像の歪みを簡単に補正することのできる撮像装置、画像補正方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の請求項１に係る撮像装置は、撮影対象の画像を取得する撮影手段と、重力方向を検出する重力検出手段と、この重力検出手段によって検出された重力方向とカメラの光軸が為す角度が所定値以下であった場合にカメラの向きが第１の向きであると判定し、前記角度が前記所定値よりも大きければカメラの向きが第２の向きであると判定する向き判定手段と、この向き判定手段によって判定されたカメラの向きが第１の向きであった場合に、前記撮影画像を天地左右方向について射影補正するためのパラメータを、カメラの光軸と重力方向とがなす角度に基づいて算出し、前記向き判定手段によって判定されたカメラの向きが第２の向きであった場合に、前記撮影画像を垂直方向に射影補正するためのパラメータを、カメラの光軸と重力方向とがなす角度に基づいて算出するパラメータ算出手段と、このパラメータ算出手段によって算出されたパラメータを用いて前記撮影画像の歪みを補正する画像補正手段とを具備して構成される。
【００１０】
このような構成によれば、カメラの向きが垂直向きであった場合には、撮影画像を射影補正するためのパラメータが算出され、そのパラメータ基づいて撮影画像の歪みが適切な方向に補正される。一方、カメラの向きが水平向きであった場合には、撮影画像を垂直方向に射影補正するためのパラメータが算出され、そのパラメータ基づいて撮影画像の歪みが垂直方向にのみ補正される。
【００１１】
本発明の請求項２に係る撮像装置は、撮影対象となる被写体の画像を取得する撮影手段と、重力方向を検出する重力検出手段と、この重力検出手段によって検出された重力方向とカメラの光軸が為す角度が所定値以下であった場合にカメラの向きが第１の向きであると判定し、前記角度が前記所定値よりも大きければカメラの向きが第２の向きであると判定する向き判定手段と、この向き判定手段によって判定されたカメラの向きが第２の向きであった場合に、前記撮影手段によって得られた撮影画像から水平方向の直線を検出する直線検出手段と、前記向き判定手段によって判定されたカメラの向きと前記直線検出手段によって検出された直線とに基づいて、前記撮影手段によって得られた撮影画像を射影補正するためのパラメータを算出するパラメータ算出手段と、このパラメータ算出手段によって算出されたパラメータを用いて前記撮影画像の歪みを補正する画像補正手段とを具備したことを特徴とする。
【００１２】
このような構成によれば、重力方向から撮像時のカメラの向きが判定されると共に、撮影画像から水平方向の直線が検出される。そのカメラ向きと直線の検出結果に基づいて撮影画像を射影補正するためのパラメータが算出され、そのパラメータを用いて当該撮影画像の歪みが適切な方向に補正される。これにより、被写体の輪郭情報を必要とせずに、傾いて撮影された画像の歪みを簡単に補正することができる。
【００１３】
また、本発明の請求項３は、前記請求項１または２記載の撮像装置において、前記パラメータ算出手段によって算出されたパラメータを記憶する記憶手段と、前記画像補正手段によって補正された画像を表示する表示手段と、前記記憶手段に記憶されたパラメータの変更を指示する変更指示手段と、この変更指示手段による変更指示に従ってパラメータを変更し、その変更後のパラメータによって得られる補正画像を前記表示手段に再表示する制御手段とを具備したことを特徴とする。
【００１４】
このような構成によれば、補正画像を画面上で確認しながら、ユーザの意図する画像形状に合わせて射影補正のパラメータを変更することができる。
【００１５】
また、本発明の請求項４は、前記請求項３記載の撮像装置において、前記変更指示手段は、上下左右方向のカーソルキーの操作により、前記記憶手段に記憶されたパラメータの変更を指示することを特徴とする。
【００１６】
このような構成によれば、補正画像を画面上で確認しながら、上下左右のカーソルキーの操作によりパラメータを変更することができる。
【００１７】
本発明の請求項５に係る画像補正方法は、撮影対象となる被写体の画像を取得する第１のステップと、重力方向を検出する第２のステップと、この第２のステップによって検出された重力方向とカメラの光軸が為す角度が所定値以下であった場合にカメラの向きが第１の向きであると判定し、前記角度が前記所定値よりも大きければカメラの向きが第２の向きであると判定する第３のステップと、この第３のステップによって判定されたカメラの向きが第１の向きであった場合に、前記撮影画像を天地左右方向について射影補正するためのパラメータを、カメラの光軸と重力方向とがなす角度に基づいて算出し、前記第３のステップによって判定されたカメラの向きが第２の向きであった場合に、前記撮影画像を垂直方向に射影補正するためのパラメータを、カメラの光軸と重力方向とがなす角度に基づいて算出する第４のステップと、この第４のステップによって算出されたパラメータを用いて前記撮影画像の歪みを補正する第５のステップとを備えたことを特徴とする。
【００１８】
このような画像補正方法によれば、前記各ステップに従った処理を実行することにより、前記請求項１記載の発明と同様の作用効果が奏せられる。
【００１９】
本発明の請求項６に係る画像補正方法は、撮影対象となる被写体の画像を取得する第１のステップと、重力方向を検出する第２のステップと、この第２のステップによって検出された重力方向とカメラの光軸が為す角度が所定値以下であった場合にカメラの向きが第１の向きであると判定し、前記角度が前記所定値よりも大きければカメラの向きが第２の向きであると判定する第３のステップと、前記第３のステップによって判定されたカメラの向きが第２の向きであった場合に前記第１のステップによって得られた撮影画像から水平方向の直線を検出する第４のステップと、前記第３のステップによって判定されたカメラの向きと前記第４のステップによって検出された直線とに基づいて、前記第１のステップによって得られた撮影画像を射影補正するためのパラメータを算出する第５のステップと、この第５のステップによって算出されたパラメータを用いて前記撮影画像の歪みを補正する第６のステップとを備えたことを特徴とする。
【００２０】
このような画像補正方法によれば、前記各ステップに従った処理を実行することにより、前記請求項２記載の発明と同様の作用効果が奏せられる。
【００２１】
本発明の請求項７に係るプログラムは、コンピュータによって読取り可能なプログラムであって、前記コンピュータに、撮影対象となる被写体の画像を取得する第１の機能と、重力方向を検出する第２の機能と、この第２の機能によって検出された重力方向とカメラの光軸が為す角度が所定値以下であった場合にカメラの向きが第１の向きであると判定し、前記角度が前記所定値よりも大きければカメラの向きが第２の向きであると判定する第３の機能と、この第３の機能によって判定されたカメラの向きが第１の向きであった場合に、前記撮影画像を天地左右方向について射影補正するためのパラメータを、カメラの光軸と重力方向とがなす角度に基づいて算出し、前記第３の機能によって判定されたカメラの向きが第２の向きであった場合に、前記撮影画像を垂直方向に射影補正するためのパラメータを、カメラの光軸と重力方向とがなす角度に基づいて算出する第４の機能と、この第４の機能によって算出されたパラメータを用いて前記撮影画像の歪みを補正する第５の機能とを実現させることを特徴とする。
【００２２】
したがって、コンピュータが前記各機能を実現するためのプログラムを実行することにより、前記請求項１記載の発明と同様の作用効果が奏せられる。
【００２３】
本発明の請求項８に係るプログラムは、コンピュータによって読取り可能なプログラムであって、前記コンピュータに、撮影対象となる被写体の画像を取得する第１の機能と、重力方向を検出する第２の機能と、この第２の機能によって検出された重力方向とカメラの光軸が為す角度が所定値以下であった場合にカメラの向きが第１の向きであると判定し、前記角度が前記所定値よりも大きければカメラの向きが第２の向きであると判定する第３の機能と、前記第３の機能によって判定されたカメラの向きが第２の向きであった場合に前記第１の機能によって得られた撮影画像から水平方向の直線を検出する第４の機能と、前記第３の機能によって判定されたカメラの向きと前記第４の機能によって検出された直線とに基づいて、前記第１の機能によって得られた撮影画像を射影補正するためのパラメータを算出する第５の機能と、この第５の機能によって算出されたパラメータを用いて前記撮影画像の歪みを補正する第６の機能とを実現させることを特徴とする。
【００２４】
したがって、コンピュータが前記各機能を実現するためのプログラムを実行することにより、前記請求項２記載の発明と同様の作用効果が奏せられる。
【発明の効果】
【００２５】
本発明によれば、被写体の輪郭情報を必要とせずに、傾いて撮影された画像の歪みを簡単に補正することができる。
【発明を実施するための最良の形態】
【００２６】
以下、図面を参照して本発明の実施形態を説明する。
【００２７】
（１）装置構成
図１および図２は本発明の一実施形態に係る撮像装置としてデジタルカメラを例にした場合の撮影状態を示す図である。図１はカメラのレンズを垂直向き（下向き）にした状態、図２はカメラのレンズを水平向きにした状態を示している。
【００２８】
なお、以下の説明で「天地」，「左右」といった表現を使うことがあるが、これは撮影画像の座標系に対応した向きを表わすものである。一方、実世界の座標系については、「垂直」，「水平」と表現している。
【００２９】
本実施形態におけるデジタルカメラ１は、机上の上などに水平に置かれた用紙２、または、床面などに垂直に立脚されたホワイトボード３に筆記された文字や、そこに貼り付けられた用紙などを撮影対象としており、その撮影対象となる被写体を正面以外の方向から傾いて撮影した場合でも、台形に歪む画像を補正して、あたかも正面から撮影したような画像を生成する機能を備える。
【００３０】
図１および図２に示すように、このデジタルカメラ１には、撮影レンズ部１１、液晶モニタ１２、シャッタキー１３が設けられている。
【００３１】
撮影レンズ部１１は、光を集光するレンズ等を備え、被写体からの光を集光するものである。液晶モニタ１２は、撮影レンズ部１１を介して内部に取り込まれた画像を映し出すためのものである。シャッタキー１３は、撮影タイミングを指示するための操作ボタンである。
【００３２】
図３は同実施形態におけるデジタルカメラ１の回路構成を示すブロック図である。
【００３３】
デジタルカメラ１は、光学レンズ装置２１、イメージセンサ２２、メモリ２３、表示装置２４、画像処理装置２５、操作部２６、コンピュータインタフェース部２７、外部記憶ＩＯ装置２８、プログラムコード記憶装置２９、ＣＰＵ３０、メモリカード３１、そして、３軸加速度センサ３２を備えて構成される。
【００３４】
光学レンズ装置２１は、撮影レンズ部１１とその駆動部とからなり、イメージセンサ２２上に撮影対象からの光を集光させて像を結像させる。
【００３５】
イメージセンサ２２は、光学レンズ装置２１により結像した被写体の画像を、デジタル化した画像データとして取り込むためのものであり、例えば、ＣＣＤ（Charge Coupled Device：電荷結合素子）等によって構成される。イメージセンサ２２は、ＣＰＵ３０によって制御され、シャッタキー１３が押下されなければ、プレビュー用の解像度の低いデジタルの画像データを生成し、この画像データを秒間３０枚程度の間隔で、定期的にメモリ２３に送出する。また、イメージセンサ２２は、シャッタキー１３が押下されると、解像度の高い画像データを生成し、生成した画像データをメモリ２３に送出する。また、イメージセンサ２２はＣＰＵ３０によって撮像感度（ＩＳＯ感度）の設定が可能になっており、被写体の明るさに応じて調整が可能になっている。
【００３６】
メモリ２３は、イメージセンサ２２からの低解像度のプレビュー画像、高解像度の画像データまたは画像処理装置２５が画像処理する元画像のデータ、処理後の画像データを一時記憶するものである。メモリ２３は、一時記憶した画像データを表示装置２４または画像処理装置２５に送り出す。また、このメモリ２３には、後述する射影補正パラメータを記憶するためのパラメータ記憶領域が設けられている。
【００３７】
表示装置２４は、液晶モニタ１２を備え、液晶モニタ１２に画像を表示させるためのものである。表示装置２４は、メモリ２３が一時記憶した低解像度のプレビュー画像または解像度の高い画像を液晶モニタ１２に表示する。
【００３８】
画像処理装置２５は、メモリ２３に一時記憶された画像データに対して、画像データの圧縮等の画像処理を行うためのものである。また、本実施形態では、この画像処理装置２５は、図４（ａ）、（ｂ）にように台形状に歪んだ画像を同図（ｃ）のように補正するための処理を行う。
【００３９】
操作部２６は、シャッタキー１３の他に、図示せぬ電源キー、撮影キー、再生キーなどから構成され、それらのキー操作に伴う信号は直接ＣＰＵ３０へ送出される。また、この操作部２６は、図５に示すように、決定キー１１０と上下左右のカーソルキー１１１〜１１４を備える。これらのキー１１０、１１１〜１１４は、後述する射影補正の微調整用操作キーとして用いられる。
【００４０】
コンピュータインタフェース部２７は、デジタルカメラ１がコンピュータ（図示せず）に接続されたときに、ＵＳＢのストレジクラスドライバとして動作するものである。これにより、コンピュータは、デジタルカメラ１に接続されると、メモリカード３１をコンピュータの外部記憶装置として取り扱う。
【００４１】
外部記憶ＩＯ装置２８は、メモリカード３１との間で、画像データ等の入出力を行うものである。メモリカード３１は、外部記憶ＩＯ装置２８から供給された画像データ等を記憶するものである。
【００４２】
プログラムコード記憶装置２９は、ＣＰＵ３０が実行するプログラムを記憶するためのものであり、ＲＯＭやフラッシュメモリなどによって構成される。
【００４３】
ＣＰＵ３０は、プログラムコード記憶装置２９に格納されているプログラムに従って、システム全体を制御するものである。なお、メモリ２３は、ＣＰＵ３０の作業メモリとしても用いられる。
【００４４】
操作部２６のスイッチ・キーが押下されることにより、操作部２６から操作情報が送信されると、ＣＰＵ３０は、この操作情報に基づいて、イメージセンサ２２、メモリ２３、表示装置２４、画像処理装置２５等を制御する。
【００４５】
具体的には、ＣＰＵ３０は、操作部２６から、撮影キーが押下された旨の操作情報が送信されると、各部を撮影モードに設定する。ＣＰＵ３０は、撮影モードに設定した状態で、シャッタキー１３が押下されなければ、イメージセンサ２２をプレビューモードに設定し、シャッタキー１３が押下されれば、解像度の高い撮影対象画像を読み込む高解像度モードに設定する。また、ＣＰＵ３０は、再生キーが押下された旨の操作情報が送信されると、各部を再生モードに設定する。
【００４６】
また、ＣＰＵ３０は、外部記憶ＩＯ装置２８を介してメモリカード３１に、プレビュー画像、高解像度の画像のデータを記録したり、メモリカード３１から、記録された画像データを読み出したりする。ＣＰＵ３０は、メモリカード３１には、例えば、ＪＰＥＧフォーマットで圧縮した画像データを記録する。
【００４７】
ＣＰＵ３０は、メモリ２３に画像データを一時記憶する際、プレビュー画像、高解像度の画像データを異なる記憶領域に記録する。また、ＣＰＵ３０は、メモリカード３１には、画像データを画像ファイルに分けて記録する。
【００４８】
また、ＣＰＵ３０は、外部記憶ＩＯ装置２８を介してメモリカード３１に、プレビュー画像、高解像度の画像のデータを記録したり、メモリカード３１から、記録された画像データを読み出したりする。ＣＰＵ３０は、このため、メモリカード３１に、画像データを格納する画像ファイルを作成する。
【００４９】
３軸加速度センサ３２は、重力方向を検出するためのものであり、デジタルカメラ１の筐体内に設けられている。この３軸加速度センサ３２は、ＣＰＵ３０から３軸それぞれの加速度成分を読み出すことができる。これにより、ＣＰＵ３０では、デジタルカメラ１の撮影方向と重力方向との相対関係を判断することができる。なお、この３軸加速度センサ３２は近年様々なものが実用化されており、例えばピエゾ抵抗素子を用いたものであっても良い。
【００５０】
次に、前記構成のデジタルカメラ１によって実現される画像補正について詳しく説明する。
【００５１】
（２）カメラの向きと射影補正制御
デジタルカメラ１には、３軸加速度センサ３２が搭載されている。この３軸加速度センサ３２によって検出される３軸の方向は任意に幾何補正できる。便宜上、図６のようなＩ，Ｊ，Ｋの座標系を考える。Ｉ軸をＣＣＤの横方向、Ｊ軸をＣＣＤの縦方向、Ｋ軸を光軸方向とする。
【００５２】
図６に示すように、机上などに水平に置かれた用紙２を被写体とする場合には、デジタルカメラ１の光軸（Ｋ軸）は重力方向（Ｇ）を向くようになる。このような向きで撮影が行われた場合、デジタルカメラ１では、撮影対象となる被写体が水平面上に置かれているものと仮定して射影補正を行う。
【００５３】
一方、図7に示すように、床面などに垂直に立つホワイトボード３を被写体とする場合には、デジタルカメラ１の光軸（Ｋ軸）は水平方向を向くようになる。このような向きで撮影が行われた場合、デジタルカメラ１では、撮影対象となる被写体が垂直方向に置かれているものと仮定して射影補正を行う。
【００５４】
ここで、前記２つの射影補正の切り替え方法について説明する。  
３軸加速度センサ３２から読み出した３軸の各成分を（ｉ，ｊ，ｋ）と表すものとする。カメラ向きの検出方法は、デジタルカメラ１が下向きのときは、光軸（Ｋ軸）が重力方向（Ｇ）に向くので、下記の数式１に示すように、成分ｋが他の成分のベクトル和より大きくなることを利用する。
【数１】
0004529837.tif 000002
【００５５】
また、別の方法として、重力の大きさは予めわかっているので、その重力の大きさを｜Ｇ｜とすると、下記の数式２に示すように、成分ｋが｜Ｇ｜／２より大きいかどうかでもカメラ向きを検出することができる。
【数２】
0004529837.tif 000003
【００５６】
（３）カメラが下向きの場合の射影補正
デジタルカメラ１が下向きの場合には、撮影対象は水平に置かれているものと仮定して射影補正を行う。射影補正とは、射影変換を利用した画像の歪み補正（台形補正）のことを言う。この射影補正はＪ軸方向とＫ軸方向で独立に行うので、まず、Ｊ軸側の射影補正について説明する。
【００５７】
図８はデジタルカメラ１がＪ−Ｋ平面上において重力方向に対して傾いている例である。図の点Ｏはデジタルカメラ１の中心位置である。また、Ｇは３軸加速度センサ３２で検出している重力ベクトルである。この場合、デジタルカメラ１はＩ軸側には傾いていないとするので、ＧのＩ成分は０になる。
【００５８】
また、ψは重力ベクトルＧとＫ軸とがなす角度である。ここでは、Ｇ方向を０度とし、便宜上、Ｊ軸が正への角度を＋方向と定義するので、図８のような場合の角度ψは負となる。
【００５９】
また、Ｋ軸とＪ軸がつくる平面と用紙が置かれる平面Ｆとの交線をＶ軸とする。Ｊ軸とＫ軸が作る平面とＦ平面との交線をＵ軸とする。この直線上でデジタルカメラ１の光軸（Ｋ軸）との交点をＱとし、ここを原点（０，０）とする。また、Ｕ−Ｖ平面上のある任意の点Ｐの座標を（ｕ，ｖ）とする。点ＰをＵ軸上、Ｖ軸上への垂線を下ろしたときの点をそれぞれＲ＝（ｕ，０），Ｓ＝（０、ｖ）とする。図９（ａ）にＯ−Ｑ−Ｓ面、同図（ｂ）にＯ−Ｐ−Ｓ面を抜き出して示す。
【００６０】
図中ｆはデジタルカメラ１の焦点距離である。デジタルカメラ１で撮像する画像はデジタルカメラ１の中心点Ｏから光軸（Ｋ軸）上でｆだけ離れた位置にある仮想スクリーン上に画像Ｌが投影されると考えることができる。この画像Ｌの座標系をＸ−Ｙとし、Ｘ軸とＩ軸、Ｙ軸とＪ軸は同じ向きであるとする。図８の例では、画像Ｆ上の点Ｐが座標ｐ（ｘ，ｙ）に投影されていることを示している。
【００６１】
このとき、
【数３】
0004529837.tif 000004
【００６２】
の関係が成り立つ。ただし、α＝ｗ／ｆである。αは画像Ｌの座標系（Ｘ−Ｙ）と用紙面の座標系（Ｕ−Ｖ）との尺度関係を示しているが、補正処理では出力画像の座標は入力画像の座標と同じものとするので、この尺度αを１として扱う。
【００６３】
変換の記述を簡単にするために、以後、同次座標系で表記を行う。Ｕ−Ｖ平面上の点Ｐの座標（ｕ，ｖ）は、次の数式４で表される。Ｈは射影補正パラメータ（変換行列式）である。
【数４】
0004529837.tif 000005
【００６４】
最終的な座標（ｕ，ｖ）は、次の数式５によって算出される。
【数５】
0004529837.tif 000006
【００６５】
同次座標系では、前記数式３は次式で表記される。ただし、α＝１とした。
【数６】
0004529837.tif 000007
【００６６】
Ｈｐｙは、画像の天地方向の射影補正パラメータである。
【００６７】
同様に、デジタルカメラ１の光軸（Ｋ軸）が重力Ｇに対してＩ−Ｋ軸平面のみで傾いている場合には、重力ベクトルＧとＫ軸がなす角度φを用いて次式の関係が成り立つ。
【数７】
0004529837.tif 000008
【００６８】
Ｈｐｘは、画像の左右方向の射影補正パラメータである。
【００６９】
次に、デジタルカメラ１の光軸が重力の方向に対して、Ｉ−Ｋ軸平面上ではφ、Ｊ−Ｋ軸平面上ではψだけ傾いていたとする。このような場合は、数式６と数式７の合成の関係が成り立つ。
【数８】
0004529837.tif 000009
【００７０】
なお、数式８のφ，ψは、重力ベクトルＧの成分が（ｉ，ｊ，ｋ）である場合には、次式の関係から求められる。
【数９】
0004529837.tif 000010
【００７１】
実際の射影補正は、まず、検出した重力ベクトルＧの成分（ｉ，ｊ，ｋ）から数式９に従ってφ，ψを求める。次に、これらのφ，ψの値により数式８のＨ＝Ｈｐｘ・Ｈｐｙの値を求める。
【００７２】
次に、前記数式４にＨの値と補正画像の各座標（ｕ，ｖ）を代入して、それに対応する射影歪みのある元画像の座標（ｘ，ｙ）を得る。この場合、（ｘ，ｙ）の解は整数とは限らないので、補正画像である出力画像の画素値Ｐ（ｕ，ｖ）は、元画像である入力画像の座標（ｘ，ｙ）の周辺の画素からバイリニア法を用いて次式にて求めるものとする。なお、バイリニア法（bi-linear interpolation）とは、画像補間法の１つであり、周囲の４つの画素の濃度値から、その座標の画素値を求める方法である。
【数１０】
0004529837.tif 000011
【００７３】
以上の手順を出力範囲全ての座標点において行う。これにより、斜めに撮影された画像を正面方向から撮影した画像に補正することができる。
【００７４】
（４）射影補正の微調
前記（３）の方法により、机上などに水平に置かれた用紙２を撮影した画像は良好に射影補正される。ただし、これは撮影対象である用紙２が水平に置かれていることが前提である。したがって、例えば机が斜めに傾いていた場合には、正しく補正されないこともある。
【００７５】
このような場合には、ユーザがデジタルカメラ１の液晶モニタ１２に表示された補正画像を見ながら、図５に示した上下左右の４つのカーソルキー１１１〜１１４を操作することで、射影角度のφ，ψを増減させて画像の形状を任意に調整することが可能である。
【００７６】
（５）カメラが水平方向である場合の射影補正
次に、図７のようにデジタルカメラ１を水平方向に向いてホワイトボード３に筆記された文字や、ホワイトボード３に貼り付けられた用紙などを撮影する場合を想定する。
【００７７】
この場合、図１０に示すように、デジタルカメラ１の重力ベクトルＧは撮影対象としているホワイトボード３上の平面ＦのＶ軸と平行である。よって、平面ＦのＶ軸とデジタルカメラ１の光軸Ｋとのなす角度は求めることができるが、平面ＦのＵ軸とデジタルカメラ１の光軸Ｋとのなす角度は特定することができない。
【００７８】
そこで、デジタルカメラ１が水平方向にある場合には、撮影画像に対し、垂直方向の射影補正のみを行うことになる。つまり、上下間の長さの不均による画像の歪みについてのみ補正するものとする。この場合、水平方向の歪みが残ることになるが、一般に、左右方向については、撮影者が撮影対象と向かい合う位置を右あるいは左に変えて容易に調整することができるため、特に支障ないものと考えられる。
【００７９】
また、前記（４）で述べた微調整機能を利用すれば、水平方向の歪みを左右カーソルキー１１３，１１４の操作により手動にて補正することも可能である。
【００８０】
図１０に示すように、デジタルカメラ１が水平方向にある場合には、重力方向を調べて、その重力方向に射影補正を行う必要がある。そのため、補助的なＩ′−Ｊ′−Ｋ座標空間を考える。
【００８１】
Ｊ′軸は、Ｉ−Ｊ平面上でＧ軸を垂直に投影した軸であって、その方向はＧ軸とは逆向きとする。Ｉ′軸は、同じくＩ−Ｊ平面上でＪ′軸に対してデジタルカメラ１の原点Ｏを中心に−９０度回転した軸である。Ｋ軸はどちらの座標系でも同じとする。もし、デジタルカメラ１の光軸Ｋとカメラ長手方向ともに重力Ｇに対して直角をなしていれば、Ｉ−Ｊ−Ｋ空間とＩ′−Ｊ′−Ｋ空間とは一致する。
【００８２】
ここで、ホワイトボード平面上のＵ−Ｖ座標をＩ′−Ｊ′平面をＫ軸方向に投影したものと定義する。
【００８３】
また、前記（３）の場合と同様に、デジタルカメラ１の中心点Ｏから光軸（Ｋ軸）上でｆだけ離れた位置にある仮想スクリーン上に画像Ｌが投影されたものと考え、その画像Ｌの座標系をＩ′−Ｊ′座標系のＸ２−Ｙ２とし、Ｘ２軸とＩ′軸、Ｙ２軸とＪ′軸は同じ向きであるとする。図１０の例では、画像Ｆ上の点Ｐ(ｕ，ｖ)が座標ｐ′（ｘ２，ｙ２）に投影されていることを示している。
【００８４】
このとき、点ｐ′の、Ｘ−Ｙ座標系での座標が（ｘ，ｙ）であるとすると、（ｘ、ｙ）と（ｘ２、ｙ２）との関係は次式のようになる。
【数１１】
0004529837.tif 000012
【００８５】
ＨＲは、垂直方向と画像の天地方向とを補正する回転補正パラメータであって、Ｘ−Ｙ座標系とＸ′−Ｙ′座標系の座標変換を示すものである。これらの座標系のなす角度は、Ｉ−Ｊ座標とＩ′−Ｊ′座標となす角度θと同じである。このθは定義からデジタルカメラ１の回転軸（Ｊ軸）と重力ベクトルＧとのなす角度であるので、以下のような式で表せる。
【数１２】
0004529837.tif 000013
【００８６】
また、ホワイトボード３の傾きはＶ軸側のみの補正しか行わない。すなわち、射影補正はＪ′軸に沿って行い、Ｊ′軸からＪ軸への座標回転を行うと考えれば良いから、そのときの射影変換式は次式で与えられる。
【数１３】
0004529837.tif 000014
【００８７】
ただし、数式１３のψは、光軸Ｋと被写体平面とのなす角度であって、今、被写体は重力Ｇに対して平行をなしていると仮定しているので、ψはＫ軸とＪ′−Ｋ平面において水平方向のベクトルＧ２となす角度になる。よってψは、重力Ｇの成分が（ｉ，ｊ，ｋ）である場合は、
【数１４】
0004529837.tif 000015
【００８８】
となる。よって、数式１２、数式１４からψ，θを求め、その値を数式１３に代入することで射影補正パラメータＨが求まる。この射影補正パラメータＨを前記数式４の式に代入することで、垂直方向の射影補正が可能となる。
【００８９】
（６）カメラが水平方向であって水平線がみつかった場合の射影補正
上述した（５）の方法では、デジタルカメラ１の垂直方向の射影歪みは補正されるが、水平方向の射影歪みは補正されなかった。これは、撮影対象となる被写体がカメラの光軸に対し水平面内でどのような傾きを持っているのかが３軸加速度センサ３２では特定できないためである。
【００９０】
そこで、撮影対象から水平方向の直線を見つけ出し、この直線から撮影対象の水平面内での傾きを推測して射影補正を行う方法を提案する。
【００９１】
図１１は垂直に立脚したホワイトボード３の一部を写した画像を示している。図中の斜線で示す部分がホワイトボードである。この例では、ホワイトボード３の上辺の直線Ｌ１が写っているが、下部は画角内に収まらず切れている状態を示している。また、この例では、垂直方向には射影歪みがない状態であるとする。
【００９２】
図中の直線Ｌ１はエッジ処理とハフ変換を行うことで検出できる。ハフ変換とは、線分を抽出する手法の１つである。なお、ハフ変換による直線検出方法については、後に図１３を用いて詳しく説明する。
【００９３】
今、検出された直線Ｌ１の式が下記であったとする。
【数１５】
0004529837.tif 000016
【００９４】
ホワイトボード３がＵ軸（横手方向）に傾いている場合は前記数式７の関係が成り立つ。また、直線Ｌ１上の点（ｘ，ｙ）の対応座標（ｕ，ｖ）は常に一定の座標を持つことになる。これらと、前記数式１５から次式の関係が求まる。
【数１６】
0004529837.tif 000017
【００９５】
よって、次式で垂直方向に射影歪みがない場合は補正できる。
【数１７】
0004529837.tif 000018
【００９６】
以上のことから、次のような手順で撮影画像を射影補正すれば良いことになる。  
まず、前記（５）で説明した方法により、垂直方向に射影補正した画像を得る。  
次に、この補正画像を再び入力画像として水平方向の射影補正を行う。そのために、当該補正画像の輪郭を示したエッジ画像を作成し、そのエッジ画像をハフ変換することで水平線に近い直線の式を算出する。  
次に、前記算出された直線のパラメータａ，ｂから前記数式１６で撮影対象の傾きψを求め、前記数式１７に代入して最終的な変換式を得る。
【００９７】
なお、複数の直線が検出される場合は、それぞれの直線からφを求め、それらの平均値を撮影対象の水平方向の傾きと推測して射影補正することが望ましい。
【００９８】
（７）直線改良法
前記（６）の方法では、一旦上下方向の射影補正を作成してから、直線検出を行わなければならなかったので、処理時間がかかる問題がある。
【００９９】
そこで、上下方向の射影補正を行っていない元画像から、左右方向の直線の検出を行うものとする。そのときの直線が
【数１８】
0004529837.tif 000019
【０１００】
であったとする。この直線を前記数式１３で重力の垂直方向に補正を行ったときのＵ−Ｖ座標の直線式は下記のようになる。
【数１９】
0004529837.tif 000020
【０１０１】
ただし、ａｉｊはＨ＝ＨＲ・Ｈｐｙの各要素である。
【数２０】
0004529837.tif 000021
【０１０２】
この直線が水平方向つまり横手方向に歪んだ直線となる。この直線を再び歪み画像とする。すなわち、前記数式１９の変数（ｕ，ｖ）を（ｘ，ｙ）に変換して、前記数式１５と比較することで、前記数式１６により、水平方向の歪み角度φが次式で求められることがわかる。
【数２１】
0004529837.tif 000022
【０１０３】
よって、合成射影補正パラメータＨは、以下のようになる。
【数２２】
0004529837.tif 000023
【０１０４】
以上のことから、次のような手順で撮影画像を射影補正すれば良いことになる。  
まず、入力画像から前記数式１２、数式１４からψ，θを求めて、Ｈ＝ＨＲ・Ｈｐｙを求める。  
次に、エッジ画像を作成し、そのエッジ画像からハフ変換によって水平方向に近い直線を検出する。その直線のパラメータから前記数式２１でφを求め、最終的な射影補正パラメータとして、Ｈ＝ＨＲ・Ｈｐｙ・Ｈｐｘを求める。これにより、前記数式４を用いて、バイリニア補間により射影補正が可能である。
【０１０５】
（８）実際の動作説明
次に、上述したカメラ向きに応じた射影補正を実現するデジタルカメラ１の動作について説明する。なお、以下のフローチャートで示される処理は、マイクロコンピュータであるＣＰＵ３０がプログラムコード記憶装置２９に記憶されたプログラムを読み込むことにより、そのプログラムに記述された手順に従って実行される。
【０１０６】
図１２はデジタルカメラ１の撮影処理の動作を示すフローチャートである。この処理は、ＣＰＵ３０にて画像処理装置２５を用いながら実行される。以後、ＣＰＵ３０の行う処理手順を順に説明する。
【０１０７】
まず、ＣＰＵ３０は、シャッタキー１３の押下に伴い、光学レンズ装置２１、イメージセンサ２２などを制御して撮影処理を行い、イメージセンサ２２によって得られた画像をメモリ２３に取り込む（ステップＳ１０１）。
【０１０８】
次に、デジタルカメラ１の向きを判断するため、ＣＰＵ３０は３軸加速度センサ３２からＩ軸、Ｊ軸、Ｋ軸のそれぞれの成分を読み出す。この場合、通常の撮影ではデジタルカメラ１を静止した状態で行うため、加速度成分（ｉ，ｊ，ｋ）は重力成分Ｇのみと仮定することができ、Ｇ＝（ｉ，ｊ，ｋ）とする（ステップＳ１０２）。なお、ここで言うデジタルカメラ１の向きとは、撮影レンズ部１１が向いている方向つまり光軸Ｋの方向である。
【０１０９】
ここで、射影補正パラメータであるＨｐｘ，Ｈｐｙ，ＨＲの３つの要素を単位行列Ｉに初期化（ステップＳ１０３）する。Ｈｐｘはデジタルカメラ１の水平方向、または画像の左右方向の射影補正パラメータ、Ｈｐｙはデジタルカメラ１の垂直方向、または画像の天地方向の射影補正パラメータである。また、ＨＲは垂直方向とデジタルカメラ１の画像の天地方向とを補正する回転補正パラメータである。
【０１１０】
次に、ＣＰＵ３０は、前記数式１または数式２に従ってデジタルカメラ１の向きを判定する（ステップＳ１０４）。その結果、デジタルカメラ１が垂直向きと判定された場合には、ＣＰＵ３０は、重力成分Ｇから前記数式９に従ってφ，ψを求め、そのφ，ψを前記数式６，７の行列Ｈｐｘ，Ｈｐｙの要素に代入することにより、画像の左右方向の射影補正パラメータＨｐｘと、画像の天地方向の射影補正パラメータＨｐｙを求める（ステップＳ１０５）。この画像の左右方向の射影補正パラメータＨｐｘと、画像の天地方向の射影補正パラメータＨｐｙは、それぞれメモリ２３のパラメータ記憶領域に記憶される。
【０１１１】
次に、ＣＰＵ３０は、Ｈ＝ＨＲ・Ｈｐｙ・Ｈｐｘを求める（ステップＳ１０６）。このとき、ＨＲは単位行列Ｉに初期化されていたので、射影補正パラメータＨは前記数式８と同値となる。よって、この射影補正パラメータＨを用いることで、水平面に置かれた撮影対象の射影歪みを補正することができる。
【０１１２】
このようにして射影補正パラメータＨが得られると、ＣＰＵ３０は、この射影補正パラメータＨを画像処理装置２５に渡して射影補正画像の作成を指示する。これにより、画像処理装置２５では、撮影画像を射影補正することで、あたかも正面から撮影したような矩形状の画像を作成する（ステップＳ１０７）。
【０１１３】
詳しくは、前記ステップＳ１０６で得られた射影補正パラメータＨを用いて、前記数式５の変換式に補正画像の各座標（ｕ，ｖ）を順に代入することにより、その補正画像に対応する射影歪みのある元画像の座標（ｘ，ｙ）を求める。続いて、前記数式１０に従って座標（ｘ，ｙ）の周辺の画素からバイリニア法により補正画像の各画素値Ｐ（ｕ，ｖ）を求める。
【０１１４】
ＣＰＵ３０は、このようにして射影補正された画像をメモリ２３の表示領域にコピーした後、これを液晶モニタ１２に表示する（ステップＳ１０８）。これにより、ユーザは補正画像を画面上で確認することができ、必要に応じて微調整することができる。
【０１１５】
補正画像の表示後、ＣＰＵ３０は、操作部２６に設けられた決定キー１１０が押下されたか否かを判断する（ステップＳ１０９）。決定キー１１０が押下された場合には（ステップＳ１０９のＹｅｓ）、ＣＰＵ３０は、補正画像を画像処理装置２５にて所定の方式で圧縮処理した後（ステップＳ１１０）、外部機器ＩＯ装置２８を介してメモリカード３１に転送して保存する（ステップＳ１１１）。
【０１１６】
次に、補正画像の微調整処理について説明する。
【０１１７】
前記ステップＳ１０９にて決定キー１１０が押下されなかった場合には、ＣＰＵ３０は、操作部２６に設けられたカーソルキー１１１〜１１４の操作に従って補正画像の微調整処理を行う（ステップＳ１１２）。この微調整処理とは、撮影画像から自動検出した被写体（撮影対象）の傾きφとψを微調整するための処理である。図５に示したように、カーソルキー１１１〜１１４は上下、左右の方向指示を行うための操作キーである。
【０１１８】
ＣＰＵ３０は、右カーソルキー１１３または左カーソルキー１１４が押されていることを検出すると、Ｕ軸側の射影歪み補正を微調整する。具体的には、ＣＰＵ３０は自動検出したφを右カーソルキー１１３が押下された場合に＋１度、左カーソルキー１１４が押下された場合には−１度をして、画像の左右方向の射影補正パラメータＨｐｘの変換行列を修正する。
【０１１９】
同様に、上カーソルキー１１１が押下された場合には、ψを＋１度、下カーソルキー１１２が押下された場合はψを−１度をして、Ｖ軸側の射影歪み補正を微調整するように、画像の天地方向の射影補正パラメータＨｐｙの変換行列を修正する。
【０１２０】
このような微調整によりＨｐｘまたはＨｐｙを修正すると、ＣＰＵ３０は、前記ステップＳ１０６に戻って合成変換式であるＨを求め直す。この修正後のＨを用いて射影補正された画像が再表示されるので、ユーザはその補正画像を確認しながら、射影補正の微調整を行うことができる。補正画像が満足できるものであった場合には、決定キー１１０を押す。これによって、最終的な補正画像が圧縮処理されてメモリカード３１に保存されることになる。
【０１２１】
次に、カメラの向きが水平方向であった場合の補正手順について説明する。
【０１２２】
前記ステップＳ１０４でデジタルカメラ１の向きが水平方向であると判定された場合には、ステップＳ１１３に分岐される。
【０１２３】
デジタルカメラ１が水平向きの場合には、ＣＰＵ３０は、まず、重力ベクトルＧの成分から前記数式１２、数式１４でψ，θの角度を求め、それからの値から射影補正パラメータＨｐｙとＨＲを求める（ステップＳ１１３）。
【０１２４】
次に、撮影画像から水平方向の直線を検出する方法を図１４の撮影画像の例を用いて説明する。撮影画像の中の斜線部の領域は、被写体であるホワイトボード３が少し傾いた状態で撮影されたことを示している。図には撮影画像のＸ軸、Ｙ軸を示した。これらの軸はカメラの座標系Ｉ、Ｊと同じ方向を向いている。
【０１２５】
今、重力ベクトルＧ＝（ｉ，ｊ，ｋ）であったとして、そのＧベクトルのＩ，Ｊ成分の部分ベクトルＧ′＝（ｉ，ｊ）を撮影画像に重ねて図示した。このベクトル方向が撮影画像における重力方向になる。もし検出する水平線が奥行き（Ｋ軸方向）に対して等距離で射影ひずみがない場合は、このＧ′と直角をなすベクトルｖ＝（−ｊ，ｉ）方向となる。このベクトルｖとＩ軸となす角度θ′は、図に示したように、tan-1（−ｉ／ｊ）の角度となる。ところが、実際の検出を行いたい水平方向の直線は、この角度θ′を中心にして射影歪みによって角度が変化する。図中の直線Ｌ１はホワイトボード３の水平方向の直線の一例であって、直線Ｌ１の角度はθ１はθ′に近い角度でひずみの影響を受けている。よって、平行線の検出はθ′の付近の角度をもつ直線の検出を行えばよい。
【０１２６】
通常、射影ひずみによって変化する角度差は±３０度ぐらいに存在すると想定できるので、ＣＰＵ３０は直線の検出範囲はθ′を中心とした（θ′−３０度〜θ′＋３０度）とする（ステップＳ１１４）。
【０１２７】
次に、ＣＰＵ３０は、入力画像の輪郭を追跡してエッジ画像を作成する（ステップＳ１１５）。続いて、ＣＰＵ３０は、このエッジ画像からハフ変換を行って直線を検出するが、そのときの検出範囲は前記ステップＳ１１４で設定した範囲とする。この検出範囲内でハフ変換により得られた（ρ，θ）の投票数に基づいて直線を検出する（ステップＳ１１７）。
【０１２８】
ここで、ハフ変換について説明する。
【０１２９】
線分を抽出する手法として、ハフ変換と呼ばれる手法がある。例えば、図１３に示すようなｘ−ｙ座標系における１つの直線ｙ＝ａｘ＋ｂを考える。この直線に原点Ｏから垂線を下ろして、その垂線の長さをρ、ｘ軸とのなす角をθとすると、  
ρ＝ｘｃｏｓθ＋ｙｓｉｎθ
と表わすことができる。
【０１３０】
すなわち、極座標系では、１点（ρ，θ）が分かれば、１つの直線が定まることになる。この（ρ，θ）を直線ｙ＝ａｘ＋ｂのハフ変換と呼ぶ。また、（ρ，θ）で表される線分上の画素数を、（ρ，θ）に対する投票数と呼ぶ。この投票数が高いほど、長い直線であることを意味する。
【０１３１】
ＣＰＵ３０は、前記（ρ，θ）の投票数の最大値を予め設定された閾値と比較し、閾値以上であれば、水平方向の直線が検出されたとする（ステップＳ１１８のＹｅｓ）。一方、閾値より少なかった場合には、水平方向の直線が検出されなかったとする（ステップＳ１１８のＮｏ）。
【０１３２】
水平方向の直線が検出されなかった場合、ステップＳ１０６にジャンプして、合成変換Ｈを求める。この場合、Ｈｐｘは求めておらず、単位行列Ｉのままであるので、そのときのＨは前記数式１３に等しくなる。よって、ステップＳ１０７では、例えばホワイトボード３などを被写体とした場合の撮影画像が重力に対して垂直方向のみ射影補正されることになる。
【０１３３】
一方、ステップＳ１１８で直線が検出された場合には、ＣＰＵ３０は、前記投票最大値の（ρ，θ）から前記数式１８の直線パラメータａ′，ｂ′を求める（ステップＳ１１９）。
【０１３４】
続いて、ＣＰＵ３０は、合成Ｈ＝ＨＲ・Ｈｐｙを求め、Ｈの要素と、前記直線パラメータａ′，ｂ′から前記数式２１を用いて水平方向の歪み角度φを求めた後、前記数式７に従って水平方向の射影補正パラメータＨｐｘを求める（ステップＳ１２０）。
【０１３５】
このように、水平方向の直線が検出された場合には、その直線に基づいて水平方向の射影補正パラメータＨｐｘを算出することができる。続いて、ステップＳ１０６にて、このＨｐｘと以前に求めたＨＲ、Ｈｐｙを用いて合成変換Ｈを求めるが、このＨは前記数式２２に等しい。よって、ステップＳ１０７では、例えばホワイトボード３などを被写体とした場合の撮影画像が重力に対して垂直方向だけでなく、水平方向を含めて射影補正されることになる。
【０１３６】
また、デジタルカメラ１を水平向きで撮影した場合も、垂直向きで撮影した場合と同様に、射影補正された画像の微調整が可能である（ステップＳ１０８〜１１２）。したがって、例えばホワイトボード３が少し斜めに傾いて立脚されていたとしても、手動操作にて補正画像を微調整してから保存することができる。
【０１３７】
以上のように、本実施形態によれば、３軸加速度センサ３２で検出される重力方向の向きから水平あるいは垂直に置かれた撮影対象に対するデジタルカメラ１の向きを判断し、その向きに応じて射影補正の方法を切り替えることで、被写体の輪郭情報を必要とせずに撮影画像の歪みを正しく補正することが可能となる。
【０１３８】
また、ホワイトボード３のように床面などに垂直に置かれた被写体を撮影対象とする場合には、３軸加速度センサ３２による重力検出だけでは、画像の水平方向の歪みを射影補正することはできないが、撮影画像の中から水平方向の直線を少なくとも一本検出することにより、その直線に基づいて画像の水平方向を特定して射影補正することができる。
【０１３９】
また、射影補正された画像をモニタ画面上で確認しながら、上下左右カーソルキーの操作により微調整することができる。これにより、ユーザの意図する形に整形してから当該撮影画像を保存することができる。
【０１４０】
なお、前記実施形態では、デジタルカメラにより静止画が撮影する場合を例にして説明したが、静止画の撮影に限らず、動画を撮影する場合でも応用できる。
【０１４１】
また、本発明は、デジタルカメラの他に、例えばカメラ付きの携帯電話機など、撮影機能を備えた電子機器であれば、これらのすべてに適用可能である。
【０１４２】
要するに、本発明は前記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、前記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【０１４３】
さらに、上述した実施形態において記載した手法は、コンピュータに実行させることのできるプログラムとして、例えば磁気ディスク（フレキシブルディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等）、半導体メモリなどの記録媒体に書き込んで各種装置に適用したり、そのプログラム自体をネットワーク等の伝送媒体により伝送して各種装置に適用することも可能である。本装置を実現するコンピュータは、記録媒体に記録されたプログラムあるいは伝送媒体を介して提供されたプログラムを読み込み、このプログラムによって動作が制御されることにより、上述した処理を実行する。
【図面の簡単な説明】
【０１４４】
【図１】図１は本発明の一実施形態に係る撮像装置としてデジタルカメラを例にした場合の撮影状態を示す図であり、カメラのレンズを垂直向き（下向き）にした状態を示す図である。
【図２】図２は本発明の一実施形態に係る撮像装置としてデジタルカメラを例にした場合の撮影状態を示す図であり、カメラのレンズを水平向きにした状態を示す図である。
【図３】図３は同実施形態におけるデジタルカメラの回路構成を示すブロック図である。
【図４】図４は同実施形態におけるデジタルカメラの画像補正を説明するための図である。
【図５】図５は同実施形態におけるデジタルカメラの操作部に備えられた決定キーと上下左右のカーソルキーの配置を示す図である。
【図６】図６は同実施形態におけるデジタルカメラと水平方向に置かれた撮影対象との関係を示す図である。
【図７】図７は同実施形態におけるデジタルカメラと垂直方向に置かれた撮影対象との関係を示す図である。
【図８】図８は同実施形態におけるデジタルカメラが垂直向きにある場合での射影補正を説明するための図である。
【図９】図９は図８のＯ−Ｑ−Ｓ面とＯ−Ｐ−Ｓ面を抜き出して示した図である。
【図１０】図１０は同実施形態におけるデジタルカメラが水平向きにある場合での射影補正を説明するための図である。
【図１１】図１１は同実施形態におけるデジタルカメラにより垂直に立脚したホワイトボードの一部を写した画像を示す図である。
【図１２】図１２は同実施形態におけるデジタルカメラの撮影処理の動作を示すフローチャートである。
【図１３】図１３は同実施形態におけるデジタルカメラのハフ変換を説明するための図である。
【図１４】図１４は同実施形態におけるデジタルカメラの撮影画像から水平方向の直線を検出する方法を説明するための図である。
【符号の説明】
【０１４５】
１…デジタルカメラ、２…用紙、３…ホワイトボード、１１…撮影レンズ部、１２…液晶モニタ、１３…シャッタキー、２１…光学レンズ装置、２２…イメージセンサ、２３…メモリ、２４…表示装置、２５…画像処理装置、２６…操作部、２７…コンピュータインタフェース部、２８…外部記憶ＩＯ装置、２９…プログラムコード記憶装置、３０…ＣＰＵ、３１…メモリカード、３２…３軸加速度センサ、１１０…決定キー、１１１〜１１４…カーソルキー。
【図１】
0004529837.tif 000024
【図２】
0004529837.tif 000025
【図３】
0004529837.tif 000026
【図４】
0004529837.tif 000027
【図５】
0004529837.tif 000028
【図６】
0004529837.tif 000029
【図７】
0004529837.tif 000030
【図８】
0004529837.tif 000031
【図９】
0004529837.tif 000032
【図１０】
0004529837.tif 000033
【図１１】
0004529837.tif 000034
【図１２】
0004529837.tif 000035
【図１３】
0004529837.tif 000036
【図１４】
0004529837.tif 000037