(57)【要約】【課題】カメラなどが撮影した「枠を含む画像」からその枠を検出する。【解決手段】撮影画像をグレースケール画像にしてから二値化画像にする。中心付近を通る３本の直線上の黒点を検出し、両端の線上の黒点の全ての組合せについて中点に中央の線の黒点があるかを調べ、あるならば、両端の線上の黒点の間に黒い直線があるかを調べ、そのような直線を集める。集めた直線の対について枠確定処理を行い、確定したならば、それが画像の中央付近にあるかを調べる。【選択図】図１
2010113653.tif 000002
【特許請求の範囲】
【請求項１】
入力したグレースケール画像を白黒に二値化して二値化画像を得る二値化ステップと、
前記二値化画像から、前記二値化画像の中心付近を通る縦方向の第１直線を通る黒点、前記第１直線に平行であって検出しようとする枠の横方向の辺よりも短くなるように定められた距離だけ前記第１の直線から一方の方向に離れた第２直線を通る黒点又は前記第１直線に平行であって検出しようとする枠の横方向の辺よりも短くなるように定められた距離だけ前記第１の直線から他方の方向に離れた第３直線を通る黒点があれば、それらの黒点を全て検出する第１黒点検出ステップと、
前記二値化画像から、前記二値化画像の中心付近を通る横方向の第４直線を通る黒点、前記第４直線に平行であって検出しようとする枠の縦方向の辺よりも短くなるように定められた距離だけ前記第４の直線から一方の方向に離れた第５直線を通る黒点又は前記第４直線に平行であって検出しようとする枠の横方向の辺よりも短くなるように定められた距離だけ前記第４の直線から他方の方向に離れた第６直線を通る黒点があれば、それらの黒点を全て検出する第２黒点検出ステップと、
前記第１黒点検出ステップで検出した前記第２直線を通る黒点と前記第１黒点検出ステップで検出した前記第３直線を通る黒点との組合せを全て求める第１組合せ生成ステップと、
前記第２黒点検出ステップで検出した前記第５直線を通る黒点と前記第２黒点検出ステップで検出した前記第６直線を通る黒点との組合せを全て求める第２組合せ生成ステップと、
前記第１組合せ生成ステップで生成した組合せから、組合せをなす２つの黒点の中点に前記第１直線を通る黒点がある組合せのみを選択する第１選択ステップと、
前記第２組合せ生成ステップで生成した組合せから、組合せをなす２つの黒点の中点に前記第４直線を通る黒点がある組合せのみを選択する第２選択ステップと、
前記第１選択ステップで選択した組合せから、組合せをなす２つの黒点の間の全ての画素が黒い線分を成す組合せのみを選択する第３選択ステップと、
前記第２選択ステップで選択した組合せから、組合せをなす２つの黒点の間の全ての画素が黒い線分を成す組合せのみを選択する第４選択ステップと、
前記第３選択ステップで選択した組み合わせについて、組合せをなす２点を通る線分の両端の点を求める第１直線端点検出ステップと、
前記第４選択ステップで選択した組み合わせについて、組合せをなす２点を通る線分の両端の点を求める第２直線端点検出ステップと、
前記第３選択ステップで選択した組合せに係る線分の全ての対について線分が長い順に第１枠確定処理を行い、或る線分の対について前記第１枠確定処理により枠が確定したならば、前記或る線分の対について前記第１枠確定処理により確定した枠が前記二値画像の中心付近にあるか否かを調べ、そうであれば、前記或る線分の対について前記第１枠確定処理により確定した枠を最終的に検出された枠とする第１枠検出ステップと、
前記第４選択ステップで選択した組合せに係る線分の全ての対について線分が長い順に第２枠確定処理を行い、或る線分の対について前記第２枠確定処理により枠が確定したならば、前記或る線分について前記第２枠確定処理により確定した枠が前記二値画像の中心付近にあるか否かを調べ、そうであれば、前記第２枠確定処理により確定した枠を最終的に検出された枠とする第２枠検出ステップと、
を備えることを特徴とする枠検出方法。
【請求項２】
前記第１枠検出ステップにおいて、前記第１枠確定処理により確定した枠が前記二値画像の中心付近にないと判断されたならば、前記第１枠確定処理により確定した枠の中心と前記二値画像の中心との間の距離を測ると共に、前記第１枠確定処理により確定した枠と測った距離とを保存する第１枠候補保存ステップと、
前記第２枠検出ステップにおいて、前記第２枠確定処理により確定した枠が前記二値画像の中心にないと判断されたならば、前記第２枠確定処理により確定した枠の中心と前記二値画像の中心との間の距離を測ると共に、前記第２枠確定処理により確定した枠と測った距離とを保存する第２枠候補保存ステップと、
前記第１枠候補保存ステップで保存された枠と前記第２枠候補保存ステップで保存された枠のうち、枠の中心と前記二値画像の中心との間の距離が最も短い枠を最終的に検出された枠とする第３枠検出ステップと、
を更に備えることを特徴とする請求項１に記載の枠検出方法。
【請求項３】
前記枠確定処理は、
対象となっている一方の辺の一方の端点と対象となっている他方の辺の一方の端点との間に辺が存在するか否かを確認する第１結合辺存在確認ステップと、
対象となっている前記一方の辺の他方の端点と対処となっている前記他方の辺の他方の端点との間に辺が存在するか否かを確認する第２結合辺存在確認ステップと、
前記第１結合辺存在確認ステップ及び前記第２結合辺存在確認ステップの双方の確認結果が肯定的であれば、前記対象となっている一方の辺と、前記対象となっている他方の辺と、前記第１結合辺存在確認ステップで存在することが確認された辺と、前記第２結合辺存在確認ステップで存在することが確認された辺とが長方形を構成するか否かを確認する第１長方形構成確認ステップと、
前記第１長方形構成確認ステップでの確認結果が肯定的であれば、前記対象となっている片方の辺と、前記対象となっている他方の辺と、前記第１結合辺存在確認ステップで存在することが確認された辺と、前記第２結合辺存在確認ステップで存在することが確認された辺とが枠を構成すると確定する第１確定ステップと、
を備えることを特徴とする請求項１又は２に記載の枠検出方法。
【請求項４】
前記第１結合辺存在確認ステップ及び前記第２結合辺存在確認ステップの一方の確認結果のみが肯定的であれば、対象となっている一方の辺の、対象となっている他方の辺の端点との間に辺が存在しない端点を通り、対象となっている一方の辺の法線方向に伸びる線、又は、対象となっている他方の辺の、対象となっている一方の辺の端点との間に辺が存在しない端点を通り、対象となっている他方の辺の法線方向に伸びる線が存在するか否かを確認する第１線存在確認ステップと、
前記第１線存在確認ステップの確認結果が肯定的であれば、前記対象となっている一方の辺と、前記対象となっている他方の辺と、前記第１結合辺存在確認ステップ又は前記第２結合辺存在確認ステップで存在することが確認された辺と、前記第１線存在確認ステップで存在することが確認された線分を拡張した線分とが長方形を構成するか否かを確認する第２長方形構成確認ステップと、
前記第２長方形構成確認ステップでの確認結果が肯定的であれば、前記対象となっている一方の辺と、前記対象となっている他方の辺と、前記第１結合辺存在確認ステップ又は前記第２結合辺存在確認ステップで存在することが確認された辺と、前記第１線存在確認ステップで存在することが確認された線分を拡張した線分とが長方形を構成すると確定する第２確定ステップと、
を更に備えることを特徴とする請求項３に記載の枠検出方法。
【請求項５】
前記第１結合辺存在確認ステップ及び前記第２結合辺存在確認ステップの双方の確認結果が否定的であれば、対象となっている一方の辺の、対象となっている他方の辺の一方の端点との間に辺が存在しない一方の端点を通り、対象となっている一方の辺の法線方向に伸びる線、又は、対象となっている他方の辺の、対象となっている一方の辺の一方の端点との間に辺が存在しない一方の端点を通り、対象となっている他方の辺の法線方向に伸びる線が存在するか否かを確認する第２線存在確認ステップと、
前記第１結合辺存在確認ステップ及び前記第２結合辺存在確認ステップの双方の確認結果が否定的であれば、対象となっている一方の辺の、対象となっている他方の辺の他方の端点との間に辺が存在しない他方の端点を通り、対象となっている一方の辺の法線方向に伸びる線、又は、対象となっている他方の辺の、対象となっている一方の辺の他方の端点との間に辺が存在しない他方の端点を通り、対象となっている他方の辺の法線方向に伸びる線が存在するか否かを確認する第３線存在確認ステップと、
前記第２線存在確認ステップの確認結果及び前記第３線存在確認ステップの確認結果の双方が肯定的であれば、前記対象となっている一方の辺と、前記対象となっている他方の辺と、前記第２線存在確認ステップで存在することが確認された線分を拡張した線分と、前記第３線存在確認ステップで存在することが確認された線分を拡張した線分とが長方形を構成するか否かを確認する第３長方形構成確認ステップと、
前記第３長方形構成確認ステップでの確認結果が肯定的であれば、前記対象となっている一方の辺と、前記対象となっている他方の辺と、前記第２線存在確認ステップで存在することが確認された線分を拡張した線分と、前記第３線存在確認ステップで存在することが確認された線分を拡張した線分とが長方形を構成すると確定する第３確定ステップと、
を更に備えることを特徴とする請求項３又は４に記載の枠検出方法。
【請求項６】
入力したカラー画像を前記グレースケール画像に変換する変換ステップを更に備えることを特徴とする
請求項１乃至５の何れか１項に記載の枠検出方法。
【請求項７】
前記二値化ステップでは、入力したグレースケール画像を複数のエリアに分割し、エリア毎にエリア毎の閾値を用いて画像を白黒に二値化することを特徴とする
請求項１乃至６の何れか１項に記載の枠検出方法。
【請求項８】
前記閾値は、自エリアについて求めた仮の閾値と、自エリアの周辺の８エリアの仮の閾値のうち自エリアについて求めた仮の閾値よりもレベルが低いものとの平均値であることを特徴とする
請求項７に記載の枠検出方法。
【請求項９】
入力したグレースケール画像を白黒に二値化して二値化画像を得る二値化手段と、
前記二値化画像から、前記二値化画像の中心付近を通る縦方向の第１直線を通る黒点、前記第１直線に平行であって検出しようとする枠の横方向の辺よりも短くなるように定められた距離だけ前記第１の直線から一方の方向に離れた第２直線を通る黒点又は前記第１直線に平行であって検出しようとする枠の横方向の辺よりも短くなるように定められた距離だけ前記第１の直線から他方の方向に離れた第３直線を通る黒点があれば、それらの黒点を全て検出する第１黒点検出手段と、
前記二値化画像から、前記二値化画像の中心付近を通る横方向の第４直線を通る黒点、前記第４直線に平行であって検出しようとする枠の縦方向の辺よりも短くなるように定められた距離だけ前記第４の直線から一方の方向に離れた第５直線を通る黒点又は前記第４直線に平行であって検出しようとする枠の横方向の辺よりも短くなるように定められた距離だけ前記第４の直線から他方の方向に離れた第６直線を通る黒点があれば、それらの黒点を全て検出する第２黒点検出手段と、
前記第１黒点検出手段で検出した前記第２直線を通る黒点と前記第１黒点検出手段で検出した前記第３直線を通る黒点との組合せを全て求める第１組合せ生成手段と、
前記第２黒点検出手段で検出した前記第５直線を通る黒点と前記第２黒点検出手段で検出した前記第６直線を通る黒点との組合せを全て求める第２組合せ生成手段と、
前記第１組合せ生成手段で生成した組合せから、組合せをなす２つの黒点の中点に前記第１直線を通る黒点がある組合せのみを選択する第１選択手段と、
前記第２組合せ生成手段で生成した組合せから、組合せをなす２つの黒点の中点に前記第４直線を通る黒点がある組合せのみを選択する第２選択手段と、
前記第１選択手段で選択した組合せから、組合せをなす２つの黒点の間の全ての画素が黒い線分を成す組合せのみを選択する第３選択手段と、
前記第２選択手段で選択した組合せから、組合せをなす２つの黒点の間の全ての画素が黒い線分を成す組合せのみを選択する第４選択手段と、
前記第３選択手段で選択した組み合わせについて、組合せをなす２点を通る線分の両端の点を求める第１直線端点検出手段と、
前記第４選択手段で選択した組み合わせについて、組合せをなす２点を通る線分の両端の点を求める第２直線端点検出手段と、
前記第３選択手段で選択した組合せに係る線分の全ての対について線分が長い順に第１枠確定処理を行い、或る線分の対について前記第１枠確定処理により枠が確定したならば、前記或る線分の対について前記第１枠確定処理により確定した枠が前記二値画像の中心付近にあるか否かを調べ、そうであれば、前記或る線分の対について前記第１枠確定処理により確定した枠を最終的に検出された枠とする第１枠検出手段と、
前記第４選択手段で選択した組合せに係る線分の全ての対について線分が長い順に第２枠確定処理を行い、或る線分の対について前記第２枠確定処理により枠が確定したならば、前記或る線分について前記第２枠確定処理により確定した枠が前記二値画像の中心付近にあるか否かを調べ、そうであれば、前記第２枠確定処理により確定した枠を最終的に検出された枠とする第２枠検出手段と、
を備えることを特徴とする枠検出装置。
【請求項１０】
前記第１枠検出手段において、前記第１枠確定処理により確定した枠が前記二値画像の中心付近にないと判断されたならば、前記第１枠確定処理により確定した枠の中心と前記二値画像の中心との間の距離を測ると共に、前記第１枠確定処理により確定した枠と測った距離とを保存する第１枠候補保存手段と、
前記第２枠検出手段において、前記第２枠確定処理により確定した枠が前記二値画像の中心にないと判断されたならば、前記第２枠確定処理により確定した枠の中心と前記二値画像の中心との間の距離を測ると共に、前記第２枠確定処理により確定した枠と測った距離とを保存する第２枠候補保存手段と、
前記第１枠候補保存手段で保存された枠と前記第２枠候補保存手段で保存された枠のうち、枠の中心と前記二値画像の中心との間の距離が最も短い枠を最終的に検出された枠とする第３枠検出手段と、
を更に備えることを特徴とする請求項９に記載の枠検出装置。
【請求項１１】
前記枠確定処理は、
対象となっている一方の辺の一方の端点と対象となっている他方の辺の一方の端点との間に辺が存在するか否かを確認する第１結合辺存在確認手段と、
対象となっている前記一方の辺の他方の端点と対処となっている前記他方の辺の他方の端点との間に辺が存在するか否かを確認する第２結合辺存在確認手段と、
前記第１結合辺存在確認手段及び前記第２結合辺存在確認手段の双方の確認結果が肯定的であれば、前記対象となっている一方の辺と、前記対象となっている他方の辺と、前記第１結合辺存在確認手段で存在することが確認された辺と、前記第２結合辺存在確認手段で存在することが確認された辺とが長方形を構成するか否かを確認する第１長方形構成確認手段と、
前記第１長方形構成確認手段での確認結果が肯定的であれば、前記対象となっている片方の辺と、前記対象となっている他方の辺と、前記第１結合辺存在確認手段で存在することが確認された辺と、前記第２結合辺存在確認手段で存在することが確認された辺とが枠を構成すると確定する第１確定手段と、
を備えることを特徴とする請求項９又は１０に記載の枠検出装置。
【請求項１２】
前記第１結合辺存在確認手段及び前記第２結合辺存在確認手段の一方の確認結果のみが肯定的であれば、対象となっている一方の辺の、対象となっている他方の辺の端点との間に辺が存在しない端点を通り、対象となっている一方の辺の法線方向に伸びる線、又は、対象となっている他方の辺の、対象となっている一方の辺の端点との間に辺が存在しない端点を通り、対象となっている他方の辺の法線方向に伸びる線が存在するか否かを確認する第１線存在確認手段と、
前記第１線存在確認手段の確認結果が肯定的であれば、前記対象となっている一方の辺と、前記対象となっている他方の辺と、前記第１結合辺存在確認手段又は前記第２結合辺存在確認手段で存在することが確認された辺と、前記第１線存在確認手段で存在することが確認された線分を拡張した線分とが長方形を構成するか否かを確認する第２長方形構成確認手段と、
前記第２長方形構成確認手段での確認結果が肯定的であれば、前記対象となっている一方の辺と、前記対象となっている他方の辺と、前記第１結合辺存在確認手段又は前記第２結合辺存在確認手段で存在することが確認された辺と、前記第１線存在確認手段で存在することが確認された線分を拡張した線分とが長方形を構成すると確定する第２確定手段と、
を更に備えることを特徴とする請求項１１に記載の枠検出装置。
【請求項１３】
前記第１結合辺存在確認手段及び前記第２結合辺存在確認手段の双方の確認結果が否定的であれば、対象となっている一方の辺の、対象となっている他方の辺の一方の端点との間に辺が存在しない一方の端点を通り、対象となっている一方の辺の法線方向に伸びる線、又は、対象となっている他方の辺の、対象となっている一方の辺の一方の端点との間に辺が存在しない一方の端点を通り、対象となっている他方の辺の法線方向に伸びる線が存在するか否かを確認する第２線存在確認手段と、
前記第１結合辺存在確認手段及び前記第２結合辺存在確認手段の双方の確認結果が否定的であれば、対象となっている一方の辺の、対象となっている他方の辺の他方の端点との間に辺が存在しない他方の端点を通り、対象となっている一方の辺の法線方向に伸びる線、又は、対象となっている他方の辺の、対象となっている一方の辺の他方の端点との間に辺が存在しない他方の端点を通り、対象となっている他方の辺の法線方向に伸びる線が存在するか否かを確認する第３線存在確認手段と、
前記第２線存在確認手段の確認結果及び前記第３線存在確認手段の確認結果の双方が肯定的であれば、前記対象となっている一方の辺と、前記対象となっている他方の辺と、前記第２線存在確認手段で存在することが確認された線分を拡張した線分と、前記第３線存在確認手段で存在することが確認された線分を拡張した線分とが長方形を構成するか否かを確認する第３長方形構成確認手段と、
前記第３長方形構成確認手段での確認結果が肯定的であれば、前記対象となっている一方の辺と、前記対象となっている他方の辺と、前記第２線存在確認手段で存在することが確認された線分を拡張した線分と、前記第３線存在確認手段で存在することが確認された線分を拡張した線分とが長方形を構成すると確定する第３確定手段と、
を更に備えることを特徴とする請求項１１又は１２に記載の枠検出装置。
【請求項１４】
入力したカラー画像を前記グレースケール画像に変換する変換手段を更に備えることを特徴とする
請求項９乃至１３の何れか１項に記載の枠検出装置。
【請求項１５】
前記二値化手段では、入力したグレースケール画像を複数のエリアに分割し、エリア毎にエリア毎の閾値を用いて画像を白黒に二値化することを特徴とする
請求項９乃至１４の何れか１項に記載の枠検出装置。
【請求項１６】
前記閾値は、自エリアについて求めた仮の閾値と、自エリアの周辺の８エリアの仮の閾値のうち自エリアについて求めた仮の閾値よりもレベルが低いものとの閾値の平均値であることを特徴とする
請求項１５に記載の枠検出装置。
【請求項１７】
請求項１乃至８の何れか１項に記載の枠検出方法をコンピュータに実行させるための枠検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カメラなどが撮影した「枠を含む画像」からその枠を検出するための枠検出方法、枠検出装置及び枠検出プログラムに関する。
【背景技術】
【０００２】
これまでに、画像中から枠領域を選択する手段として以下の方法がある。
【０００３】
１つ目の方法は、撮影時にガイドを表示し、対象物をそれに合わせる方法である。
【０００４】
２つ目の方法は、撮影対象の枠をユーザが指定する方法である。
【０００５】
特許文献１には、車両のナンバープレート文字の抽出に際し、ヒストグラム処理を行うことにより、不要箇所を削除する発明が記載されているが、この方法は、数字の「１」のような直線を持つ文字を不要箇所であると誤判断する可能性がある。
【特許文献１】特開２００５−３５２７０５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述した１つめの方法では、ガイドがつけられないデバイスが多く存在するため、対応できない場合がある。また、ユーザは撮影対象物をガイドに合わせなければならないのでユーザに不便を与える。また、上述した２つめの方法でもユーザに不便を与える。
【０００７】
そこで、本発明は、撮影対象物がカメラに対して回転していたり、大きさが一定でなくても、撮影画像から自動的に枠を選択することを可能にする枠検出方法、枠検出装置及び枠検出プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明によれば、入力したグレースケール画像を白黒に二値化して二値化画像を得る二値化ステップと、前記二値化画像から、前記二値化画像の中心付近を通る縦方向の第１直線を通る黒点、前記第１直線に平行であって検出しようとする枠の横方向の辺よりも短くなるように定められた距離だけ前記第１の直線から一方の方向に離れた第２直線を通る黒点又は前記第１直線に平行であって検出しようとする枠の横方向の辺よりも短くなるように定められた距離だけ前記第１の直線から他方の方向に離れた第３直線を通る黒点があれば、それらの黒点を全て検出する第１黒点検出ステップと、前記二値化画像から、前記二値化画像の中心付近を通る横方向の第４直線を通る黒点、前記第４直線に平行であって検出しようとする枠の縦方向の辺よりも短くなるように定められた距離だけ前記第４の直線から一方の方向に離れた第５直線を通る黒点又は前記第４直線に平行であって検出しようとする枠の横方向の辺よりも短くなるように定められた距離だけ前記第４の直線から他方の方向に離れた第６直線を通る黒点があれば、それらの黒点を全て検出する第２黒点検出ステップと、前記第１黒点検出ステップで検出した前記第２直線を通る黒点と前記第１黒点検出ステップで検出した前記第３直線を通る黒点との組合せを全て求める第１組合せ生成ステップと、前記第２黒点検出ステップで検出した前記第５直線を通る黒点と前記第２黒点検出ステップで検出した前記第６直線を通る黒点との組合せを全て求める第２組合せ生成ステップと、前記第１組合せ生成ステップで生成した組合せから、組合せをなす２つの黒点の中点に前記第１直線を通る黒点がある組合せのみを選択する第１選択ステップと、前記第２組合せ生成ステップで生成した組合せから、組合せをなす２つの黒点の中点に前記第４直線を通る黒点がある組合せのみを選択する第２選択ステップと、前記第１選択ステップで選択した組合せから、組合せをなす２つの黒点の間の全ての画素が黒い線分を成す組合せのみを選択する第３選択ステップと、前記第２選択ステップで選択した組合せから、組合せをなす２つの黒点の間の全ての画素が黒い線分を成す組合せのみを選択する第４選択ステップと、前記第３選択ステップで選択した組み合わせについて、組合せをなす２点を通る線分の両端の点を求める第１直線端点検出ステップと、前記第４選択ステップで選択した組み合わせについて、組合せをなす２点を通る線分の両端の点を求める第２直線端点検出ステップと、前記第３選択ステップで選択した組合せに係る線分の全ての対について線分が長い順に第１枠確定処理を行い、或る線分の対について前記第１枠確定処理により枠が確定したならば、前記或る線分の対について前記第１枠確定処理により確定した枠が前記二値画像の中心付近にあるか否かを調べ、そうであれば、前記或る線分の対について前記第１枠確定処理により確定した枠を最終的に検出された枠とする第１枠検出ステップと、前記第４選択ステップで選択した組合せに係る線分の全ての対について線分が長い順に第２枠確定処理を行い、或る線分の対について前記第２枠確定処理により枠が確定したならば、前記或る線分について前記第２枠確定処理により確定した枠が前記二値画像の中心付近にあるか否かを調べ、そうであれば、前記第２枠確定処理により確定した枠を最終的に検出された枠とする第２枠検出ステップと、を備えることを特徴とする枠検出方法が提供される。
【０００９】
また、本発明によれば、入力したグレースケール画像を白黒に二値化して二値化画像を得る二値化手段と、前記二値化画像から、前記二値化画像の中心付近を通る縦方向の第１直線を通る黒点、前記第１直線に平行であって検出しようとする枠の横方向の辺よりも短くなるように定められた距離だけ前記第１の直線から一方の方向に離れた第２直線を通る黒点又は前記第１直線に平行であって検出しようとする枠の横方向の辺よりも短くなるように定められた距離だけ前記第１の直線から他方の方向に離れた第３直線を通る黒点があれば、それらの黒点を全て検出する第１黒点検出手段と、前記二値化画像から、前記二値化画像の中心付近を通る横方向の第４直線を通る黒点、前記第４直線に平行であって検出しようとする枠の縦方向の辺よりも短くなるように定められた距離だけ前記第４の直線から一方の方向に離れた第５直線を通る黒点又は前記第４直線に平行であって検出しようとする枠の横方向の辺よりも短くなるように定められた距離だけ前記第４の直線から他方の方向に離れた第６直線を通る黒点があれば、それらの黒点を全て検出する第２黒点検出手段と、前記第１黒点検出手段で検出した前記第２直線を通る黒点と前記第１黒点検出手段で検出した前記第３直線を通る黒点との組合せを全て求める第１組合せ生成手段と、前記第２黒点検出手段で検出した前記第５直線を通る黒点と前記第２黒点検出手段で検出した前記第６直線を通る黒点との組合せを全て求める第２組合せ生成手段と、前記第１組合せ生成手段で生成した組合せから、組合せをなす２つの黒点の中点に前記第１直線を通る黒点がある組合せのみを選択する第１選択手段と、前記第２組合せ生成手段で生成した組合せから、組合せをなす２つの黒点の中点に前記第４直線を通る黒点がある組合せのみを選択する第２選択手段と、前記第１選択手段で選択した組合せから、組合せをなす２つの黒点の間の全ての画素が黒い線分を成す組合せのみを選択する第３選択手段と、前記第２選択手段で選択した組合せから、組合せをなす２つの黒点の間の全ての画素が黒い線分を成す組合せのみを選択する第４選択手段と、前記第３選択手段で選択した組み合わせについて、組合せをなす２点を通る線分の両端の点を求める第１直線端点検出手段と、前記第４選択手段で選択した組み合わせについて、組合せをなす２点を通る線分の両端の点を求める第２直線端点検出手段と、前記第３選択手段で選択した組合せに係る線分の全ての対について線分が長い順に第１枠確定処理を行い、或る線分の対について前記第１枠確定処理により枠が確定したならば、前記或る線分の対について前記第１枠確定処理により確定した枠が前記二値画像の中心付近にあるか否かを調べ、そうであれば、前記或る線分の対について前記第１枠確定処理により確定した枠を最終的に検出された枠とする第１枠検出手段と、前記第４選択手段で選択した組合せに係る線分の全ての対について線分が長い順に第２枠確定処理を行い、或る線分の対について前記第２枠確定処理により枠が確定したならば、前記或る線分について前記第２枠確定処理により確定した枠が前記二値画像の中心付近にあるか否かを調べ、そうであれば、前記第２枠確定処理により確定した枠を最終的に検出された枠とする第２枠検出手段と、を備えることを特徴とする枠検出装置が提供される。
【００１０】
更に、本発明によれば、上記の枠検出方法をコンピュータに実行させるための枠検出プログラムが提供される。
【発明の効果】
【００１１】
携帯電話等のカメラでユーザが様々な条件下で撮影したデジタル画像を利用する画像処理システムにおいて、背景などの不要な情報が含む画像から、ユーザの補助なしに、枠のみを認識する。これにより、画像について枠内の領域だけを抜き出すことが可能になる。また、枠の持つ情報（回転角度・拡大縮小率・歪み）より、後工程の画像処理精度を高めることができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して本発明を実施するための最良の形態について詳細に説明する。
【００１３】
画像から枠領域だけを選択する方法として、枠が長方形であるため、画像内から平行する二本の直線を見つけることにより、枠領域を選択する。枠以外の背景にも二本の平行線が入る可能性はあるが、これに対して撮影対象がほぼ中心に来ることを利用して、枠を選択するようにする。
【００１４】
具体的な枠の取得方法を説明する。
【００１５】
まず、枠と背景を切り離す二値化を行う。しかし、画像全体に一意な二値化閾値を適用できることは少なく、またこの値を選択することは困難である。
【００１６】
この理由は、
・光（照明・外光）の影響が出る
・画像の枠以外の領域がどのような色、形になるかわからない
ためである。撮影環境が光の遮られる状態であったり、撮影対象画像が白黒であったり、枠の場所が一定であったりすれば、一意な二値化閾値を決定するのは難しくない。しかし、携帯電話で室内や、屋外を問わず、対象となる撮影物も雑誌、ポスター、商品パッケージなど、様々な環境を想定すると、前述の通り一意に二値化閾値を決定するのは困難である。
【００１７】
そのため、枠と背景を切り離すための二値化プログラムを作成した。これを以後エリア別二値化と呼ぶ。この二値化画像は、枠を残し、枠を周囲から浮き出させることを主眼においており、枠以外の背景等の情報（ノイズ）が入っていてもかまわない。
【００１８】
この二値化の手順は、
１．カラー画像をグレースケール画像に変換する。
２．画像を細かなブロックに分割する。
３．ブロック画像ごとに判別分析法等により動的に二値化閾値を決定する。
４．ブロックの周囲の閾値と比較して、自身より大きい閾値がある場合その値に近づける。
５．ブロックごとの閾値を用いて画像を白と黒の二値化データに変換する。
である。
【００１９】
２の分割サイズは小さすぎても、大きすぎても上手くいかない。小さすぎると、ブロック一杯に枠が入り込んでしまい、適切な閾値が求まらない。大きすぎると、ブロックに多くの画素が入るため、ブロックを区切って二値化精度を上げることの意味が薄れる。よって、画像サイズと、撮影対象の枠の大きさにより適切な値を選択する必要がある（図５参照）。
【００２０】
４では、ブロックの周囲の情報を用いて、閾値を上げている。これを行う理由は二つある。一つは閾値を周囲のものに近づけることで、二値化した際のブロックの境界が目立たないようにするためである。二つは閾値が大きいほど、枠の領域が多く残るためである。この実施例として、あるブロックの周囲３×３ブロックの閾値と比較して、自身の閾値と、それよりも値が大きいものとの平均を用いている（図６参照）。
【００２１】
次に、ブロックごとに枠が確実に存在しないブロック画像（ノイズ）を除去する。この処理は、後の処理時間を短くするためと、精度を上げるために行っており、必須ではない。
【００２２】
枠が確実に存在しないブロックの判別方法を三つ挙げる。一つ目は、ブロック内の画素値の最大と最小の差が一定以下であれば枠がないと判定できる。この理由として、ブロック内にもし枠と背景がそれぞれ存在するならば、最小値に枠の中の一点の画素値、最大値に背景中の一点の画素値が選択され、通常これらの差は大きくなる。よって、差が小さいならブロックに枠が存在しないと判断できる。二つ目は、ブロック内の黒い画素が一定割合以上であれば、枠が存在しないと判別できる。ブロックサイズに対して枠の太さが小さいならば、枠が存在するブロックの全体が黒くなることはありえないためである。これらのブロックは、枠が存在しない、つまり背景部分であるとして、白く塗りつぶす。三つ目は、中心からの距離が大きいブロックは、枠が存在しないといえる。この距離は、中心に枠を配置し、カメラプレビュー画面いっぱいに枠を写した場合に、枠が含まれない距離のブロックを除去する（図７参照）。
【００２３】
次に、この二値画像から枠の辺の候補となる線を抽出する。
【００２４】
画像についての前提として、画像の左上を（０，０）として、右方向がｘの正方向、下方向がｙの正方向とする。
【００２５】
まず、中心座標を（ＣＸ，ＣＹ）とし、ｘ＝ＣＸをｙ軸方向に走査する。黒い画素を見つけた場合、この座標を保存する。連続して黒い画素の場合、それら画素の真ん中の点を保存する。同様に、ｘ＝ＣＸ±Ａ（Ａは整数）の走査をそれぞれ行う。このＡの値は、枠の短辺の長さよりも十分に小さい値にする。
【００２６】
ｘ＝ＣＸ＋Ａの点と、ｘ＝ＣＸ−Ａの点の全ての組み合わせについて、二点の中点がｘ＝ＣＸでの点に存在する組み合わせをリストアップする。この二点を結んだ線が、枠線の一部である可能性がある。
【００２７】
画像のｙ軸方向に走査したが、次はｘ軸方向にｙ＝ＣＹ，ｙ＝ＣＹ±Ｂ（Ｂは整数）に対しても同様の操作を行い、点の組み合わせをリストアップする。正位置（画像が回転していない状態）で撮影した場合、撮影対象を中心よりも少し下側にして撮影する場合が多く見られるため、ＣＹの値を中心よりもいくらか下側に修正することも考えられる。
【００２８】
次に先ほどリストアップした二点の間に、黒い画素の直線が存在するか調べる。この時、線が途切れた場合は除外する。直線となった場合には、さらにこの線がどこまで伸びているか調べる。これらの処理により、直線の端となる点と、その間の長さをリストアップする。
【００２９】
ここまでの処理により、ｙ軸方向と、ｘ軸方向の走査の結果の数本の線分が取得できた。これらの線分は枠の辺であるものもあるが、背景に含まれる関係のない線分も含まれている。また、画像に枠が複数並んでいる場合には、探索対象とする枠以外の枠の辺も含まれている。よって、これらの線分から、枠線となるものを選択する必要がある。
【００３０】
ここで注意すべきは、上記の候補に枠の四辺全てが含まれていない可能性があるということである。ガイドのない状態で撮影した際に、対象物を中心に据えて撮影することは難しい。特に枠が短い辺を合わせる場合にはなおさらである。ただし、四本全てを取得することが難しくても片方の向かい合う辺の取得はできる。例えば、片側の辺が短くても長い方の辺で中心のＸかＹの中心軸を捕らえることはでき、また縦で対象物を中心に据えることは難しくても、横で中心を捕らえることは無意識に行われる。よって、普通の撮影画像で、上記の方法により、片方の向かい合う辺を取得できる可能性は高い。図８（ａ）はｘ軸は平行線をとれていないが、ｙ軸はきちんととらえている。図８（ｂ）は反対に、ｙ軸は中心が枠をかする程度でｘ＝ＣＸ＋ＡのＡの値次第で、枠から外れてしまうが、ｘ軸はきちんと枠をとらえている。このように、枠が小さすぎなければ、これまでの方法で４辺は無理でも、一組の向かいあう辺が取得できる可能性が高い。
【００３１】
これからの処理では、先ほどＸ軸方向と、Ｙ軸方向でリストアップした線分のうち、枠の向かい合う辺のペアとなる線分を探す。
【００３２】
得られた線分について、Ｘ軸方向の線分と、Ｙ軸方向の線分とに分け、それぞれについて長い線から二本を組み合わせる。長い線から組み合わせる理由は、短い線分ほど背景や、枠内の文字等のノイズである可能性が高いためである。また、枠中心の「□」（読みでいうと「くち」や「ろ」）のような長方形に近い文字は枠と誤認識される恐れがあるが、長い線が先だと枠の方が先に順番がくるため、先に枠と特定できる。別の線分の組み合わせ順序として、まず長さが等しい線分を選択し、その後長い辺を組み合わせる方法がある。
【００３３】
次に、この二本の線分が向かい合わせの辺かどうか調べる。これには、それらの線分が並行であるかどうか調べる。そのために、それぞれの辺の基準線に対する回転角度を調べ、この値が近いかどうか見る。画像からとった線分であるため、角度が完全に一致しないため、ここでは絶対に平行ではないといえるものを省く程度でよい。また、この二つの線分が同一線分でないことを調べる。これは、片方の線分の一点を抽出し、これが他方の線分、もしくはその延長からの距離により判明する。
【００３４】
辺のペアが見つかれば、その二辺と垂直に交わる辺が二本あるかどうかを調べる。見つからない場合は、辺のペアは枠の一部ではないといえる。
【００３５】
上記の向かいあう辺を、辺１、辺２と呼ぶ。辺１の端の点を点１、点２と呼び、辺２の端の点を点３、点４と呼ぶ。点１と点３、点２と点４がそれぞれ対応する点（枠線で結ばれる点同士）とする。よって、点１と点４、点２と点３は対角線上の点となる。
【００３６】
新たな辺を見つける方法は、下記のようにする。
（１）．点１と点３、点２と点４の間に線があるか調べる。
（２）．（１）で線が二本とも見つかった場合、その四本により長方形になるか調べる。
（３ａ）．（１）で一本見つかった場合、見つからなかった側の二点について、一方の点から辺の法線方向に線があるか調べる。見つからなかった場合、もう一方の点に対しても同様の処理を行う。
（３ｂ）．線が見つかった場合、それら四本により長方形になるか調べ、見つからなかった場合、辺１と、辺２のペアは枠の一部とならないことが確定する。
（４ａ）．（１）で線が見つからなかった場合、点１と、点３のそれぞれに対し、どちらかに辺の法線方向に線があるかどうか調べる。点２と、点４に対しても同様のことを行う。
（４ｂ）．上記の結果、どちらとも線が見つかった場合、それらが四本により長方形になるか調べる。そうでなければ、辺１と、辺２のペアが枠の一部とならないことが確定する。
【００３７】
（３）と（４）の処理は、元の二辺の端点がきちんと取得できていれば必要ない。しかし、実際は線の探索中、線が途切れてしまうことがままある。そのため、どちらか片側の端点が正常に取れていれば、辺が見つかるように、（３）、（４）の処理を行う。
【００３８】
これまでの処理の結果得られる枠は、基本的に長方形（もしくは、長方形に近い形状）となるはずである。しかし、念のためこれが長方形になるかどうか調べ、長方形でなければ枠でないとすることができる。長方形の調べ方は、四つの交点についての二つの条件が考えられ、一つ目は、点１、点２の長さと、点３、点４の長さ。点１、点３の長さと、点２、点４の長さがほぼ一致するかどうか調べる。二つ目は、向かいあう二組の辺がほぼ平行になればよい。
【００３９】
次に、この枠が中心にあるかどうか調べる。もし中心でなければ、この枠は撮影時に紛れ込んだ対象物以外の枠や、背景等のノイズである可能性がある。この判別方法は、基本的に撮影対象物は真ん中にあることから、画像中心と枠の中心の距離を求めてそれが一定以下の場合とする方法と、枠の領域内に画像中心が含まれる場合という方法がある。
【００４０】
もし、中心から外れていた場合、これを枠に最も近い枠候補として、画像中心と枠の中心の距離とともに保存しておく。そして、他の辺の候補を調べていき、もし該当する枠がなければこれを正解とする。また、同様に中心をずれた枠が見つかった場合、これと枠候補の中心からの距離を求め、値が小さいほうを枠候補とする。
【００４１】
最後に、枠の最も外側の点を取るため補正処理を行う。これは、線が太いため頂点のエリアが広いため、同じ状態の枠を二回撮影したものでも、枠の頂点座標が異なる可能性があるからである。これをほぼ同じ頂点をとるようにするため、枠の最も外側の頂点を取るようにする。
【００４２】
この方法は、各点について接する二本の辺を見て、ここから頂点の移動方向を決定する。移動方向についての説明は図１０も参照。各辺の頂点方向のベクトルを加えたベクトルの方向に向かって枠を広げていくが、これをｘ，ｙ成分の＜＋，０，−＞のいずれかで表す。その変換は、図９のように、先ほどのベクトル方向をｘ，ｙ成分の正負の方向で表す。現在の頂点を（Ｘ，Ｙ）としたとき、ベクトルがｘが＋、ｙが−であれば、ｘ成分について（Ｘ＋１，Ｙ）が枠かどうか調べ、次にｙ成分について（Ｘ，Ｙ−１）を調べる。いずれかが枠だった場合、頂点座標をその座標に移動する。また、この頂点座標について同様のことを座標が動かなくなるまで行う。これを全ての頂点について行う。
【００４３】
これにより、画像内の枠の４点の頂点座標が特定できる。
【００４４】
次に、図１〜図４に示すフローチャートを参照して本発明の実施形態による枠検出方法について説明をする。
【００４５】
図１を参照すると、まず、グレースケール画像についてエリア別二値化を行い、二値化画像を得る（ステップＳ１０１）。このステップＳ１０１の詳細については後述する。
【００４６】
次に、ｘ＝ＣＸの直線上を通る黒点、ｘ＝ＣＸ＋Ａの直線上を通る黒点又はｘ＝ＣＸ−Ａの直線上を通る黒点があれば、それらを検出する（ステップＳ１０３）。ここで、ＣＸは、画像のＸ方向の中心付近の座標であり、Ａは、通常の撮影画像において、枠の短辺よりも短くなるように定められた値である。
【００４７】
次に、ｙ＝ＣＹの直線上を通る黒点、ｙ＝ＣＹ＋Ｂの直線上を通る黒点又はｙ＝ＣＹ−Ｂの直線上を通る黒点があれば、それらを検出する（ステップＳ１０５）。ここで、ＣＹは、画像のＹ方向の中心付近の座標であり、Ｂは、通常の撮影画像において、枠の短辺よりも短くなるように定められた値である。
【００４８】
次に、ステップＳ１０３で検出されたｘ＝ＣＸ−Ａの直線上を通る黒点とｘ＝ＣＸ−Ａの直線上を通る黒点との組合せを全て求める（ステップＳ１０７）。例えば、ｘ＝ＣＸ−Ａの直線上を通る黒点の数が３であり、ｘ＝ＣＸ−Ａの直線上を通る黒点の数が４であれば、３×４＝１２通りの組合せを求める。
【００４９】
次に、ステップＳ１０５で検出されたｙ＝ＣＹ−Ｂの直線上を通る黒点とｙ＝ＣＹ−Ｂの直線上を通る黒点との組合せを全て求める（ステップＳ１０９）。例えば、ｙ＝ＣＹ−Ｂの直線上を通る黒点の数が２であり、ｙ＝ＣＹ−Ｂの直線上を通る黒点の数が５であれば、２×５＝１０通りの組合せを求める。
【００５０】
次に、ステップＳ１０７で求めた全ての組合せのうち、組合せをなす２点の中点のｘ＝ＣＸ上の黒点がある組合せのみを選択する（ステップＳ１１１）。
【００５１】
次に、ステップＳ１０９で求めた全ての組合せのうち、組合せをなす２点の中点のｙ＝ＣＹ上の黒点がある組合せのみを選択する（ステップＳ１１３）。
【００５２】
次に、ステップＳ１１１で選択した全ての組合せのうち、組合せをなす２点の間の全ての画素が黒い線分をなす組合せのみを選択する（ステップＳ１１５）。
【００５３】
次に、ステップＳ１１３で選択した全ての組合せのうち、組合せをなす２点の間の全ての画素が黒い線分をなす組合せのみを選択する（ステップＳ１１６）。
【００５４】
次に、ステップＳ１１５で選択した全ての組合せについて、組合せをなす２点を通る直線の両端の点を求める（ステップＳ１１７）。
【００５５】
次に、ステップＳ１１６で選択した全ての組合せについて、組合せをなす２点を通る直線の両端の点を求める（ステップＳ１１８）。
【００５６】
図２を参照すると、次に、ステップＳ１１５で選択した組合せに係る線分の全ての組合せについてステップＳ１１９ＳからステップＳ１１９Ｅまでの処理を線分が長い順に繰り返す。
【００５７】
各繰り返しの中では、まず、枠確定処理を行う（ステップＳ１２１）。枠確定処理の詳細については後述する。
【００５８】
次に、枠確定処理で枠が確定したか否かを判断して（ステップＳ１２３）、確定しなければ、次の繰り返しに進む。確定したならば（ステップＳ１２３でＹＥＳ）、枠が画像の中心付近にあるか否かを判断する（ステップＳ１２５）。
【００５９】
枠が画像の中心付近にあれば（ステップＳ１２５でＹＥＳ）、ステップＳ１３９に進む。すなわち、ステップＳ１１９ＳとステップＳ１１９Ｅとの間の繰り返しを抜ける。
【００６０】
枠が画像の中心付近になければ（ステップＳ１２５でＮＯ）、ステップＳ１２１で確定した枠を枠候補として保存する（ステップＳ１２７）。この際、枠の中心と画像の中心との間の距離を測り、この距離も枠候補に関連付けて保存する。ステップＳ１２７が終了したならば、次の繰り返しに進む。
【００６１】
ステップＳ１１９ＳからステップＳ１１９Ｅまでの繰り返しが終了したならば、ステップＳ１１６で選択した組合せに係る線分の全ての組合せについてステップＳ１２９ＳからステップＳ１２９Ｅまでの処理を線分が長い順に繰り返す。
【００６２】
各繰り返しの中では、まず、ステップＳ１２１と同様な枠確定処理を行う（ステップＳ１３１）。
【００６３】
次に、枠確定処理で枠が確定したか否かを判断して（ステップＳ１３３）、確定しなければ、次の繰り返しに進む。確定したならば（ステップＳ１３３でＹＥＳ）、枠が画像の中心付近にあるか否かを判断する（ステップＳ１３５）。
【００６４】
枠が画像の中心付近にあれば（ステップＳ１３５でＹＥＳ）、ステップＳ１３９に進む。すなわち、ステップＳ１２９ＳとステップＳ１２９Ｅとの間の繰り返しを抜ける。
【００６５】
枠が画像の中心付近になければ（ステップＳ１３５でＮＯ）、ステップＳ１３１で確定した枠を枠候補として保存する（ステップＳ１３７）。この際、枠の中心と画像の中心との間の距離を測り、この距離も枠候補に関連付けて保存する。ステップＳ１３７が終了したならば、次の繰り返しに進む。
【００６６】
ステップＳ１２９ＳからステップＳ１２９Ｅまでの繰り返しが終了したならば、枠確定処理（ステップＳ１２１又はステップＳ１３１）で確定した枠があるか否かを調べる（ステップＳ１３９）。
【００６７】
確定した枠がなければ（ステップＳ１３９でＮＯ）、エラー処理をして（ステップＳ１４１）、動作を終了する。
【００６８】
確定した枠があれば（ステップＳ１３９でＹＥＳ）、確定した枠のうち、枠の中心と前記二値画像の中心との間の距離が最も短い枠を最終的に検出された枠として（ステップＳ１３７）、ステップＳ１３９に進む。
【００６９】
ステップＳ１３９では、枠を拡げ、頂点座標を特定する。すなわち、枠の線には幅があるが、枠の最も外側の四隅の座標を特定する。
【００７０】
次に、エリア別二値化のステップ（ステップＳ１０１）の詳細について、図３を参照して説明する。
【００７１】
図３を参照すると、まず、カラー画像をグレースケール変換し、グレースケール画像を得る（ステップＳ１０１−１）。
【００７２】
次に、グレースケール画像を、例えば、横２０画素×縦２０画素のブロックに分割する（ステップＳ１０１−３）。
【００７３】
次に、ブロック毎に二値化のための暫定の閾値を決定する（ステップＳ１０１−５）。ここでは、例えば、大津による閾値選定の方法を用いて、各ブロック毎の閾値を求め、それを暫定の閾値とする。
【００７４】
次に、二値化のための閾値を補正する（ステップＳ１９１−７）。ここでは、各ブロックについて周辺の８ブロックの暫定の閾値のうち自ブロックの暫定の閾値よりもレベルの低いものと、自ブロックの暫定の閾値とを合わせた暫定の閾値の平均値を最終的な閾値とする。
【００７５】
次に、ステップＳ１０１−７で求めた閾値を用いて各ブロック毎にグレースケール画像を二値化画像に変換する（ステップＳ１０１−９）。
【００７６】
次に、枠確定処理のステップ（ステップＳ１２１、Ｓ１３１）の詳細について、図４を参照して説明する。ここでは、一方の線の左側の端点を点１、右側の端点を点２、他方の線の左側の端点を点３、右側の端点を点４とする。
【００７７】
図４を参照すると、まず、点１と点３との間に辺が存在するか否かを調べる（ステップＳ１２１−１）。ここで、点１と点３との間の全ての画素が黒であれば、辺が存在すると判断する。
【００７８】
次に、点２と点４との間に辺が存在するか否かを調べる（ステップＳ１２１−３）。ここで、点２と点４との間の全ての画素が黒であれば、辺が存在すると判断する。
【００７９】
次に、ステップＳ１２１−１及びステップＳ１２１−３で辺が見つかったか否かを判断する（ステップＳ１２１−５）。ステップＳ１２１−５の判断結果が肯定的であれば（辺が２本見つかったならば）、ステップＳ１２１−７に進む。
【００８０】
ステップＳ１２１−５の判断結果が否定的であれば、ステップＳ１２１−１及びステップＳ１２１−３のうち片方のステップで辺が見つかったか否かを判断する（ステップＳ１２１−１１）。ステップＳ１２１−１１での判断結果が肯定的であれば（辺が１本見つかったならば）、ステップＳ１２１−１３に進む。ステップＳ１２１−１１での判断結果が否定的であれば（辺が１本も見つからなかったらば）、ステップＳ１２１−２１に進む。
【００８１】
ステップＳ１２１−１３では、辺が見つからなかった側について、片方の線分の端点を通り、その線の法線方向に伸びる線分があるか否かを調べる。
【００８２】
次に、ステップＳ１２１−１３での要件を満たす線分が見つかったか否かを判断し（ステップＳ１２１−１５）、見つかったならば（ステップＳ１２１−１５でＹＥＳ）、ステップＳ１２１−７に進む。
【００８３】
見つからなかったならば（ステップＳ１２１−１５でＮＯ）、辺が見つからなかった側について、他方の線分の端点（ステップＳ１２１−１３で調べなかった線の端点）を通り、その線の法線方向に伸びる線分があるか否かを調べる（ステップＳ１２１−１７）。
【００８４】
次に、ステップＳ１２１−１７での要件を満たす線分が見つかったか否かを判断し（ステップＳ１２１−１９）、見つかったならば（ステップＳ１２１−１９でＹＥＳ）、ステップＳ１２１−７に進む。
【００８５】
見つからなかったならば（ステップＳ１２１−１９でＮＯ）、ステップＳ１２１−３７に進む。
【００８６】
ステップＳ１２１−２１では、４つある端点（点１、点２、点３、点４）のうち１つの端点（例えば、点１）について、その端点を通り、その端点を有する線の法線方向に伸びる線分があるか否かを調べる。
【００８７】
ステップＳ１２１−２３では、ステップＳ１２１−２１での要件を満たす線分が見つかったか否かを判断し、見つかったならば（ステップＳ１２１−２３でＹＥＳ）、ステップＳ１２１−２５に進む。
【００８８】
見つからなかったならば（ステップＳ１２１−２３でＮＯ）、ステップＳ１２１−２１で調べた端点と向かい合う端点（例えば点３）を通り、その端点を有する線の法線方向に伸びる線分があるか否かを調べる（ステップＳ１２１−２７）。
【００８９】
ステップＳ１２１−２９では、ステップＳ１２１−２７での要件を満たす線分が見つかったか否かを判断し、見つかったならば（ステップＳ１２１−２９でＹＥＳ）、ステップＳ１２１−２５に進む。
【００９０】
見つからなかったならば（ステップＳ１２１−２９でＮＯ）、ステップＳ１２１−３７に進む。
【００９１】
ステップＳ１２１−２５では、ステップＳ１２１−２１で調べた端点を有する線分の他方の端点（例えば点２）を通り、その端点を有する線の法線方向に伸びる線分があるか否かを調べる。
【００９２】
ステップＳ１２１−３１では、ステップＳ１２１−２５での要件を満たす線分が見つかったか否かを判断し、見つかったならば（ステップＳ１２１−３１でＹＥＳ）、ステップＳ１２１−７に進む。
【００９３】
見つからなかったならば（ステップＳ１２１−３１でＮＯ）、ステップＳ１２１−２５で調べた端点と向かい合う点（例えば点４）を通り、その端点を有する線の法線方向に伸びる線分があるか否かを調べる（ステップＳ１２１−３３）。
【００９４】
ステップＳ１２１−３５では、ステップＳ１２１−３３の条件を満たす線分が見つかったか否かを判断し、見つかったならば（ステップＳ１２１−３５でＹＥＳ）、ステップＳ１２１−７に進む。
【００９５】
見つからなかったならば（ステップＳ１２１−３５でＮＯ）、ステップＳ１２１−３７に進む。
【００９６】
ステップＳ１２１−７では、見つかった４辺が長方形を構成するか否かを調べる。ここで、線分が結ばれていない場合には、結ばれて辺を構成するまで線分を延ばす。
【００９７】
見つかった４辺が長方形を構成する場合には（ステップＳ１２１−７でＹＥＳ）、見つかった４辺を枠を構成する４辺として確定する（ステップＳ１２１−９）。すなわち、枠が見つかったと確定する。
【００９８】
見つかった４辺が長方形を構成しない場合には（ステップＳ１２１−７でＮＯ）、ステップＳ１２１−３７に進む。
【００９９】
ステップＳ１２１−３７では、向かい合う線分は枠の一部ではないことを確定する。
【０１００】
上述した方法は、ハードウェアのみによっても実現することができる。ただし、上述した方法をコンピュータによって実現することもできる。この場合、コンピュータを各ステップを行う機能部として機能させるためのプログラムをコンピュータが読み込んで実行することによって、上述した方法を実現することができる。
【実施例１】
【０１０１】
図５は、グレースケール画像をブロック化し、その上で、二値化して二値化画像を得る過程において、ブロックサイズによって、二値化画像がどのように変化するのかを示している。
【０１０２】
（ａ）〜（ｅ）は、枠の太さが３ポイントであり、撮影された画像が回転していない場合の例を示す。（ｆ）〜（ｊ）は、枠の太さが６ポイントであり、撮影された画像が回転している場合の例を示す。（ａ）、（ｆ）はブロックサイズが横１２画素×縦１２画素の場合の二値化画像を示し、（ｂ）、（ｇ）はブロックサイズが横２０画素×縦２０画素の場合の二値化画像を示し、（ｃ）、（ｈ）はブロックサイズが横３２画素×縦３２画素の場合の二値化画像を示し、（ｄ）、（ｉ）はブロックサイズが横４８画素×縦４８画素の場合の二値化画像を示し、（ｅ）、（ｊ）はブロックに分割しない場合の二値化画像を示す。
【０１０３】
実験では、ブロックサイズが横２０画素×縦２０画素である場合に、枠を最も検出しやすいという結果が出ている。
【実施例２】
【０１０４】
図６は、グレースケール画像をブロック化し、その上で、二値化して二値化画像を得る過程において、閾値によって、二値化画像がどのように変化するのかを示している。
【０１０５】
（ａ）〜（ｃ）は、枠の太さが３ポイントであり、撮影された画像が回転していない場合の例を示す。（ｄ）〜（ｆ）は、枠の太さが６ポイントであり、撮影された画像が回転している場合の例を示す。ブロックサイズは横２０画素×縦２０画素である。（ａ）、（ｄ）は実施形態で述べた暫定の閾値をそのまま利用した場合の二値化画像を示し、（ｂ）、（ｇ）は自ブロックの暫定の閾値と上下左右の暫定の閾値の合わせて５つの暫定の閾値の平均値を最終的な閾値として利用した場合の二値化画像を示し、（ｃ）、（ｆ）は自ブロックの暫定の閾値と周囲８ブロックの暫定の閾値のうち自ブロックの暫定の閾値よりレベルが低いものと合わせた暫定の閾値の平均値を最終的な閾値として利用した場合の二値化画像を示す。
【０１０６】
実験では、自ブロックの暫定の閾値と周囲８ブロックの暫定の閾値のうちのレベルが低い閾値と合わせた暫定の閾値の平均値を最終的な閾値として利用した場合に、枠を最も検出しやすいという結果が出ている。
【実施例３】
【０１０７】
図７は、実施形態で述べた暫定の閾値をそのまま利用した場合のノイズ除去後の二値化画像と、実施形態で述べた暫定の閾値を基に、自ブロックの暫定の閾値と周囲８ブロックの暫定の閾値のうち自ブロックの暫定の閾値よりレベルが低いものと合わせた暫定の閾値の平均値を最終的な閾値として利用した場合のノイズ除去後の二値化画像を示す。
【実施例４】
【０１０８】
図８（ａ）は、Ｙ軸方向の３本の線が枠の長い方の線を捉えることができるため、枠の検出をすることができる例を示している。
【０１０９】
図８（ｂ）は、Ｘ軸方向の３本の線が枠の長い方の線を捉えることができるため、枠の検出をすることができる例を示している。
【実施例５】
【０１１０】
図９は、実施形態のステップＳ１３９において、枠を拡げる方向を示す。交わる２つの辺の外角は２７０度であるが、この半分の角度である１３５度の方向が枠を拡げる方向である。しかし、画素は格子状に並んでいるため、枠に含まれる少ない画素数では、枠を拡げたい方向に枠を拡げることができない。そこで、図９に示すように、枠を拡げたい方向を８分割し、各分割方向毎に実際に枠を拡げる方向を定める。
【０１１１】
例えば、ｘ軸のプラス方向を中心にしてプラスマイナス１５度の枠を拡げたい方向の範囲（ａ）に対しては、実際に枠を拡げる方向をゼロ度に定める。また、ｙ軸のプラス方向を中心にしてプラスマイナス１５度の枠を拡げたい方向の範囲（ｃ）に対しては、実際に枠を拡げる方向を−９０度に定める。更に、ｘ軸のマイナス方向を中心にしてプラスマイナス１５度の枠を拡げたい方向の範囲（ｅ）に対しては、実際に枠を拡げる方向を１８０度に定める。更に、ｙ軸のマイナス方向を中心にしてプラスマイナス１５度の枠を拡げたい方向の範囲（ｇ）に対しては、実際に枠を拡げる方向を９０度に定める。更に、範囲（ａ）と範囲（ｃ）とに挟まれた範囲（ｂ）に対しては、実際に枠を拡げる方向を−４５度に定める。更に、範囲（ｃ）と範囲（ｅ）とに挟まれた範囲（ｄ）に対しては、実際に枠を拡げる方向を−１３５度に定める。更に、範囲（ｅ）と範囲（ｇ）とに挟まれた範囲（ｆ）に対しては、実際に枠を拡げる方向を１３５度に定める。更に、範囲（ａ）と範囲（ｇ）とに挟まれた範囲（ｂ）に対しては、実際に枠を拡げる方向を４５度に定める。
【０１１２】
図１０（ａ）は、枠を拡げたい方向と実際に枠を拡げる方向とが共に１３５度の方向である例を示している。図１０（ｂ）は、枠を拡げたい方向と実際に枠を拡げる方向とが共に９０度の方向である例を示している。
【図面の簡単な説明】
【０１１３】
【図１】本発明の実施形態による枠検出方法の全体を示すフローチャート（１／２）である。
【図２】本発明の実施形態による枠検出方法の全体を示すフローチャート（２／２）である。
【図３】図１に示すエリア別二値化の詳細を示すフローチャートである。
【図４】図２に示す枠確定処理の詳細を示すフローチャートである。
【図５】グレースケール画像をブロック化し、その上で、二値化して二値化画像を得る過程において、ブロックサイズによって、二値化画像がどのように変化するのかを示す図である。
【図６】グレースケール画像をブロック化し、その上で、二値化して二値化画像を得る過程において、閾値によって、二値化画像がどのように変化するのかを示す図である。
【図７】（ｃ）は、本発明の実施形態で述べた暫定の閾値をそのまま利用した場合のノイズ除去後の二値化画像を示し、（ｆ）は、本発明の実施形態で述べた暫定の閾値を基に、自ブロックの暫定の閾値と周囲８ブロックの暫定の閾値のうち自ブロックの暫定の閾値よりレベルが低いものと合わせた暫定の閾値の平均値を最終的な閾値として利用した場合のノイズ除去後の二値化画像を示す。（ａ）、（ｄ）は、原画像を示す。（ｂ）は、本発明の実施形態で述べた暫定の閾値をそのまま利用した場合の二値化した直後の画像を示し、（ｅ）は、本発明の実施形態で述べた暫定の閾値を基に、自ブロックの暫定の閾値と周囲８ブロックの暫定の閾値のうち自ブロックの暫定の閾値よりレベルが低いものと合わせた暫定の閾値の平均値を最終的な閾値として利用した場合の二値化直後の画像を示す。
【図８】（ａ）は、Ｙ軸方向の３本の線が枠の長い方の線を捉えることができるため、枠の検出をすることができる例を示す。（ｂ）は、Ｘ軸方向の３本の線が枠の長い方の線を捉えることができるため、枠の検出をすることができる例を示す。
【図９】本発明の実施形態のステップＳ１３９において、枠を拡げる方向を示す。
【図１０】（ａ）は、枠を拡げたい方向と実際に枠を拡げる方向とが共に１３５度の方向である例を示す。（ｂ）は、枠を拡げたい方向と実際に枠を拡げる方向とが共に９０度の方向である例を示す。
【図１】
2010113653.tif 000003
【図２】
2010113653.tif 000004
【図３】
2010113653.tif 000005
【図４】
2010113653.tif 000006
【図５】
2010113653.tif 000007
【図６】
2010113653.tif 000008
【図９】
2010113653.tif 000009
【図１０】
2010113653.tif 000010
【図７】
2010113653.tif 000011
【図８】
2010113653.tif 000012