(57)【要約】  【課題】  スリット光投光画像内からスリット光の軌跡を構成する画素を検出する検出処理を高速に且つ高精度に行うことができる３次元形状検出装置、撮像装置、及び、３次元形状検出プログラムを提供すること。  【解決手段】  第１スリット光の軌跡の一部を構成する画素を検出した後、その検出された画素に基づき第１スリット光の軌跡に関する近似曲線を算出し（Ｓ９０２）、その近似曲線に基づき、残りの第１スリット光の軌跡を構成する画素を検出するための検出領域を制限し（Ｓ９０９，Ｓ９１０）、その制限された検出領域内から残りの第１スリット光の軌跡を構成する画素を検出する（Ｓ９１１からＳ９１４）。  【選択図】        図９
2005148813.tif 000002
【特許請求の範囲】
【請求項１】
光ビームを出力する光出力手段と、
その光出力手段から出力される光ビームを所定角度で平面状に放射される光束であるスリット光に変換し、そのスリット光を対象物体へ投光するスリット光投光手段と、
そのスリット光投光手段からスリット光が投光されている状態における対象物体のスリット光投光画像を撮像する撮像手段と、
その撮像手段によって撮像されたスリット光投光画像から抽出されるスリット光の軌跡に基づき、対象物体の３次元形状を算出する３次元形状算出手段とを備えた３次元形状検出装置において、
前記スリット光投光画像内から、そのＸ軸方向に延びる前記スリット光の軌跡の一部を含む第１領域を設定する第１領域設定手段と、
その第１領域設定手段で設定される第１領域内から前記スリット光の軌跡の一部を構成する複数の画素を検出する第１検出手段と、
その第１検出手段で検出される複数の画素に基づき、前記スリット光の軌跡に関する近似曲線を算出する近似曲線算出手段と、
その近似曲線算出手段で算出される近似曲線に基づき、前記スリット光投光画像内から前記スリット光の軌跡の残り部分を構成する画素を検出するための第２領域を設定する第２領域設定手段とを備え、
前記スリットの軌跡は、前記第１検出手段で検出される複数の画素と、前記第２領域設定手段で設定される前記第２領域内から検出される画素とに基づき抽出されることを特徴とする３次元形状検出装置。
【請求項２】
前記第１領域設定手段は、前記スリット光の軌跡の一部を含む第１領域として、前記スリット光投光画像内における前記スリット光の軌跡の中央部分を含む領域を設定することを特徴とする請求項１に記載の３次元形状検出装置。
【請求項３】
前記スリット光投光画像のＸ軸方向において前記スリット光の軌跡の残り部分を構成する画素を検出するための複数の検出位置を、前記第１領域の範囲外から前記スリット光投光画像の端部に向かって設定する検出位置設定手段と、
その検出位置設定手段で設定される検出位置毎に前記スリット光の軌跡の残り部分を構成する画素を検出する第２検出手段と、
その第２検出手段で検出される画素毎に、その画素と、前記第１検出手段で検出される複数の画素とに基づいて前記近似曲線算出手段で算出される近似曲線を更新する第１更新手段とを備え、
前記第２領域設定手段は、前記検出位置設定手段で設定される検出位置毎に前記スリット光投光画像のＹ軸方向の領域を制限するものであり、そのＹ軸方向の領域は、前記検出位置設定手段によって最初に設定される検出位置では、前記近似曲線算出手段で算出される近似曲線に基づき制限され、次から設定される検出位置では、前記第１更新手段で更新される近似曲線に基づき制限されることを特徴とする請求項１又は２に記載の３次元形状検出装置。
【請求項４】
前記検出位置設定手段は、前記検出位置として、前記第１領域を挟む両側を交互に設定することを特徴とする請求項３に記載の３次元形状検出装置。
【請求項５】
前記検出位置毎に前記第２検出手段によって画素が検出されなかった回数を計数する計数手段と、
その計数手段によって計数された回数が連続する検出位置において所定回数を超えるか否かを判断する判断手段と、
その判断手段によって前記計数手段によって計数された回数が連続する検出位置において所定回数を超えると判断された場合には、以後の検出位置における前記第２検出手段による検出を中止する中止手段とを備えていることを特徴とする請求項３又は４に記載の３次元形状検出装置。
【請求項６】
前記第１検出手段で検出される複数の画素の内から、前記近似曲線算出手段で算出される近似曲線に対して前記スリット光投光画像のＹ軸方向に所定間隔以上離れた画素を抽出する抽出手段を備え、
前記スリットの軌跡は、その抽出手段で抽出される画素を前記第１検出手段で検出される複数の画素から取り除いた残りの画素と、前記第２領域設定手段で設定された第２領域内から検出される画素とに基づき抽出されることを特徴とする請求項１から５のいずれかに記載の３次元形状検出装置。
【請求項７】
前記抽出手段で抽出される画素を前記第１検出手段で検出される複数の画素から取り除いた残りの画素に基づき、前記近似曲線算出手段で算出される近似曲線を更新する第２更新手段を備え、
前記制限手段は、前記検出位置設定手段によって最初に設定される検出位置におけるＹ軸方向の領域を前記第２更新手段で更新される近似曲線に基づき制限することを特徴とする請求項１から６のいずれかに記載の３次元形状検出装置。
【請求項８】
前記第１更新手段又は前記第２更新手段は、段階的に高次の近似曲線を算出することを特徴とする請求項３から６のいずれかに記載の記載の３次元形状検出装置。
【請求項９】
請求項１から８のいずれかに記載の３次元形状検出装置と、
その３次元形状検出装置の３次元形状算出手段により算出される対象物体の３次元形状に基づいて、その３次元形状検出装置の撮像手段によって撮像されるスリット光が投光されていない状態における対象物体のスリット光非投光画像を対象物体の所定面の略鉛直方向から観察される平面画像に補正する平面画像補正手段とを備えていることを特徴とする撮像装置。
【請求項１０】
スリット光が投光されている状態における対象物体を撮像したスリット光投光画像から抽出されるスリット光の軌跡に基づき、対象物体の３次元形状を算出する３次元形状算出ステップを備えた３次元形状検出プログラムにおいて、
前記スリット光投光画像内から前記スリット光の軌跡の一部を含む第１領域を設定する第１領域設定ステップと、
その第１領域設定手段で設定される第１領域内から前記スリット光の軌跡の一部を構成する画素を検出する第１検出ステップと、
その第１検出手段で検出される画素に基づき、前記スリット光の軌跡に関する近似曲線を算出する近似曲線算出ステップと、
その近似曲線算出手段で算出される近似曲線に基づき、前記スリット光投光画像内から前記スリット光の軌跡の残り部分を構成する画素を検出するための第２領域を設定する第２領域設定ステップとを備え、
前記スリットの軌跡は、前記第１検出ステップで検出される複数の画素と、前記第２領域設定ステップで設定された前記第２領域内から検出される画素とに基づき抽出されることを特徴とする３次元形状検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、光ビームを用いて対象物体の３次元形状を検出する３次元形状検出装置、撮像装置、及び、３次元形状検出プログラムに関する。
【背景技術】
【０００２】
従来より、対象物体としてホワイトボードや書籍等を撮像し、その撮像画像から対象物体の３次元形状を検出することで、ホワイトボードや書籍等を、その正面に対して斜め方向となる位置から撮像したとしても、あたかも正面から撮像したように、その撮像画像を補正する補正手段を備えた撮像装置が知られており、例えば、特許文献１には、そのような補正手段を備えた可搬型のデジタルカメラが開示されている。
【０００３】
また、上述した補正手段に必要なパラメータとしての対象物体の３次元形状を検出する技術として、特許文献２には、スリット光が投光された状態の対象物体を撮像したスリット光投光時画像と、スリット光が投光されていない状態の対象物体を撮像したスリット光非投光時画像との減算を行うことでスリット光を抽出し、その抽出したスリット光に基づいて対象物体の３次元形状を検出する据え置き型の３次元形状測定装置が開示されている。
【特許文献１】特開平９−２８９６１１号公報（図１等）
【特許文献２】特許３２８２３３１号公報（第１０段落、図３等）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した３次元形状測定装置は据え置き型で、撮像時の自由度が制限され不便であるため、３次元形状測定装置は可搬型であることが望ましいが、可搬型とした場合には、「手ぶれ」によってスリット光投光時画像の撮像位置と、スリット光非投光時画像の撮像位置とがズレる場合がある。かかる場合には、当然にスリット光投光時画像とスリット光非投光時画像との間にもズレが生じ、スリット光投光時画像とスリット光非投光時画像との減算を行ったとしても、正確にスリット光を抽出できないという問題点があった。
【０００５】
そこで、スリット光投光時画像とスリット光非投光時画像との減算を行うことなくスリット光投光時画像だけからスリット光を抽出する方法として、スリット光を赤外領域とする方法があるものの、その方法では、光学系を赤外領域と可視領域との２系統を用意する必要があり、可搬型としての装置の大型化、構造の複雑化、コストアップ等の問題を招来する。
【０００６】
よって、可視領域のスリット光を照射したスリット光投光時画像から正確にスリット光を抽出できることが望ましいが、一般照明環境下で撮像された画像におけるスリット光の軌跡部分と他の部分とでは輝度や彩度が近似しており、明らかな差異が得られず、特に、スリット光と近い色で印刷された印刷部分や照明の反射部分では、その傾向が強く、スリット光を高精度に検出するのが困難であるという問題点があった。
【０００７】
また、スリット光の出力を上げることでスリット光の検出精度を向上させることも考えられるが、かかる場合には、スリット光発生装置の大型化によるコストアップや、安全性への配慮も生ずるという問題点があった。
【０００８】
かかる問題点を解決すべく、本願出願人は、特願２００３‐３３７０６６号において、スリット光を構成する主な色値に対応する色値に関する高低を表す色値パラメータと、輝度に関する高低を表す輝度パラメータとから強調パラメータを算出し、その強調パラメータに基づいて、スリット光投光画像内からスリット光を含む画素を検出することで、スリット光投光画像内から高精度にスリット光を抽出する技術を提案している。
【０００９】
しかしながら、かかる方法では、スリット光投光画像内からスリット光を含む画素を検出するための検出領域が広く設定されていたため高速に検出処理を実行することができないという問題点があった。また、その検出領域が広く設定されていたために依然として誤検出する可能性があった。
【００１０】
本発明は、上述した問題点を解決するためになされたものであり、スリット光投光画像内からスリット光の軌跡を構成する画素を検出する検出処理を高速に且つ高精度に行うことができる３次元形状検出装置、撮像装置、及び、３次元形状検出プログラムを提供することを目的としている。
【課題を解決するための手段】
【００１１】
この目的を達成するために請求項１記載の３次元形状検出装置は、光ビームを出力する光出力手段と、その光出力手段から出力される光ビームを所定角度で平面状に放射される光束であるスリット光に変換し、そのスリット光を対象物体へ投光するスリット光投光手段と、そのスリット光投光手段からスリット光が投光されている状態における対象物体のスリット光投光画像を撮像する撮像手段と、その撮像手段によって撮像されたスリット光投光画像から抽出されるスリット光の軌跡に基づき、対象物体の３次元形状を算出する３次元形状算出手段と、前記スリット光投光画像内から、そのＸ軸方向に延びる前記スリット光の軌跡の一部を含む第１領域を設定する第１領域設定手段と、その第１領域設定手段で設定される第１領域内から前記スリット光の軌跡の一部を構成する複数の画素を検出する第１検出手段と、その第１検出手段で検出される複数の画素に基づき、前記スリット光の軌跡に関する近似曲線を算出する近似曲線算出手段と、その近似曲線算出手段で算出される近似曲線に基づき、前記スリット光投光画像内から前記スリット光の軌跡の残り部分を構成する画素を検出するための第２領域を設定する第２領域設定手段とを備え、前記スリットの軌跡は、前記第１検出手段で検出される複数の画素と、前記第２領域設定手段で設定された前記第２領域内から検出される画素とに基づき抽出される。
【００１２】
請求項２記載の３次元形状検出装置は、請求項１記載の３次元形状検出装置において、前記第１領域設定手段は、前記スリット光の軌跡の一部を含む第１領域として、前記スリット光投光画像内における前記スリット光の軌跡の中央部分を含む領域を設定する。
【００１３】
請求項３記載の３次元形状検出装置は、請求項１又は２に記載の３次元形状検出装置において、前記スリット光投光画像のＸ軸方向において前記スリット光の軌跡の残り部分を構成する画素を検出するための複数の検出位置を、前記第１領域の範囲外から前記スリット光投光画像の端部に向かって設定する検出位置設定手段と、その検出位置設定手段で設定される検出位置毎に前記スリット光の軌跡の残り部分を構成する画素を検出する第２検出手段と、その第２検出手段で検出される画素毎に、その画素と、前記第１検出手段で検出される複数の画素とに基づいて前記近似曲線算出手段で算出される近似曲線を更新する第１更新手段とを備え、前記第２領域設定手段は、前記検出位置設定手段で設定される検出位置毎に前記スリット光投光画像のＹ軸方向の領域を制限するものであり、そのＹ軸方向の領域は、前記検出位置設定手段によって最初に設定される検出位置では、前記近似曲線算出手段で算出される近似曲線に基づき制限され、次から設定される検出位置では、前記第１更新手段で更新される近似曲線に基づき制限される。
【００１４】
請求項４記載の３次元形状検出装置は、請求項３に記載の３次元形状検出装置において、前記検出位置設定手段は、前記検出位置として、前記第１領域を挟む両側を交互に設定する。
【００１５】
請求項５記載の３次元形状検出装置は、請求項３又は４に記載の３次元形状検出装置において、前記検出位置毎に前記第２検出手段によって画素が検出されなかった回数を計数する計数手段と、その計数手段によって計数された回数が連続する検出位置において所定回数を超えるか否かを判断する判断手段と、その判断手段によって前記計数手段によって計数された回数が連続する検出位置において所定回数を超えると判断された場合には、以後の検出位置における前記第２検出手段による検出を中止する中止手段とを備えている。
【００１６】
請求項６記載の３次元形状検出装置は、請求項１から５のいずれかに記載の３次元形状検出装置において、前記第１検出手段で検出される複数の画素の内から、前記近似曲線算出手段で算出される近似曲線に対して前記スリット光投光画像のＹ軸方向に所定間隔以上離れた画素を抽出する抽出手段を備え、前記スリットの軌跡は、その抽出手段で抽出される画素を前記第１検出手段で検出される複数の画素から取り除いた残りの画素と、前記第２領域設定手段で設定された第２領域内から検出される画素とに基づき抽出される。
【００１７】
請求項７記載の３次元形状検出装置は、請求項１から６のいずれかに記載の３次元形状検出装置において、前記抽出手段で抽出される画素を前記第１検出手段で検出される複数の画素から取り除いた残りの画素に基づき、前記近似曲線算出手段で算出される近似曲線を更新する第２更新手段を備え、前記第２領域設定手段は、前記検出位置設定手段によって最初に設定される検出位置におけるＹ軸方向の領域を前記第２更新手段で更新される近似曲線に基づき制限する。
【００１８】
請求項８記載の３次元形状検出装置は、請求項３から６のいずれかに記載の３次元形状検出装置において、前記第１更新手段又は前記第２更新手段は、段階的に高次の近似曲線を算出する。
【００１９】
この目的を達成するために請求項９記載の撮像装置は、請求項１から８のいずれかに記載の３次元形状検出装置と、その３次元形状検出装置の３次元形状算出手段により算出される対象物体の３次元形状に基づいて、その３次元形状検出装置の撮像手段によって撮像されるスリット光が投光されていない状態における対象物体のスリット光非投光画像を対象物体の所定面の略鉛直方向から観察される平面画像に補正する平面画像補正手段とを備えている。
【００２０】
この目的を達成するために請求項１０記載の３次元形状検出プログラムは、スリット光が投光されている状態における対象物体を撮像したスリット光投光画像から抽出されるスリット光の軌跡に基づき、対象物体の３次元形状を算出する３次元形状算出ステップと、前記スリット光投光画像内から前記スリット光の軌跡の一部を含む第１領域を設定する第１領域設定ステップと、その第１領域設定手段で設定される第１領域内から前記スリット光の軌跡の一部を構成する画素を検出する第１検出ステップと、その第１検出手段で検出される画素に基づき、前記スリット光の軌跡に関する近似曲線を算出する近似曲線算出ステップと、その近似曲線算出手段で算出される近似曲線に基づき、前記スリット光投光画像内から前記スリット光の軌跡の残り部分を構成する画素を検出するための第２領域を設定する第２領域設定ステップとを備え、前記スリットの軌跡は、前記第１検出ステップで検出される複数の画素と、前記第２領域設定ステップで設定された前記第２領域内から検出される画素とに基づき抽出される。
【発明の効果】
【００２１】
請求項１記載の３次元形状検出装置によれば、第２領域設定手段は、スリット光の軌跡の残り部分を構成する画素を検出するための第２領域をスリット光の軌跡に関する近似曲線に基づき設定するので、第２領域内には、かかる画素が含まれる可能性が極めて高く、余分な領域内をも検出して、スリット光を構成する画素以外の画素を検出してしまう等の弊害を抑制することができる。従って、スリット光投光画像内からスリット光の軌跡を構成する画素を検出する検出処理を高精度に行うことができるという効果がある。
【００２２】
請求項２記載の３次元形状検出装置によれば、請求項１に記載の３次元形状検出装置の奏する効果に加え、第１領域設定手段は、第１領域としてスリット光投光画像内におけるスリット光の軌跡の中央部分を含む領域を設定する。操作者は対象物体が撮像画像の中央部に位置するように撮像するのが一般的である。一方、画像の両端部には、対象物体以外の背景や不要な物等が写り込んでいる可能性が高い。よって、画像の両端部を第１領域として設定し、その第１領域内から抽出された画素に基づき近似曲線を算出した場合には、対象物体上のスリット光の軌跡に沿った近似曲線が算出される可能性は低い。一方、本装置にように、スリット光投光画像内におけるスリット光の軌跡の中央部分を含む領域を第１領域として設定することで、対象物体上のスリット光の軌跡に沿った近似曲線を算出することができるという効果がある。
【００２３】
請求項３記載の３次元形状検出装置によれば、請求項１又は２に記載の３次元形状検出装置の奏する効果に加え、近似曲線算出手段で算出される近似曲線は、第２検出手段で検出される画素毎に、その画素と、第１検出手段で検出される複数の画素とに基づいて第１更新手段によって更新されるので、スリット光の軌跡に関する近似曲線を高精度に算出することができる。また、近似曲線が更新された後は、第２領域設定手段は、その更新された近似曲線に基づき、スリット光を構成する画素を検出するためのＹ軸方向の領域を制限するので、スリット光を含む画素を検出するための検出処理を高速に行うことができるという効果がある。
【００２４】
請求項４記載の３次元形状検出装置によれば、請求項３に記載の３次元形状検出装置の奏する効果に加え、検出位置設定手段は、検出位置として第１領域を挟む両側を交互に設定するので、特に、第１領域を挟む両側において略対照に延びるスリット光の軌跡に関する近似曲線を高精度に算出することができるという効果がある。
【００２５】
例えば、第１領域を挟む両側において略対照に延びるスリット光の軌跡を抽出しようとする場合に、第１領域を挟む一方の領域内の全てを検出した後に、他方の領域内を検出するようとすると、一方の領域における検出軌跡の影響を受け、他方の領域の最初の検出位置におけるスリット光を含む画素が、第１領域を挟む一方の領域から検出された画素に基づいて算出される近似曲線から所定の閾値以上離れ正確にスリット光を含む画素を検出できないケースが発生するという弊害を防止することができる。
【００２６】
請求項５記載の３次元形状検出装置によれば、請求項３又は４に記載の３次元形状検出装置の奏する効果に加え、計数手段によって計数された回数が連続する検出位置において所定回数を越えると判断された場合には、以後の検出位置における第２検出手段による検出は中止手段によって中止されるので、不要な検出を省略して、スリット光の軌跡を抽出するための処理を高速化させることができるという効果がある。
【００２７】
請求項６記載の３次元形状検出装置によれば、請求項１から５のいずれかに記載の３次元形状検出装置の奏する効果に加え、スリットの軌跡は、第１検出手段で検出される複数の画素から抽出手段で抽出される画素を取り除いた残りの画素と、第２領域設定手段で設定された第２領域内から検出される画素とに基づき抽出されるので、第１検出手段で検出される複数の画素の全部をスリット光の軌跡を構成する画素とする場合に比べて、高精度にスリット光の軌跡を抽出することができるという効果がある。
【００２８】
請求項７記載の３次元形状検出装置によれば、請求項１から６のいずれかに記載の３次元形状検出装置の奏する効果に加え、近似曲線算出手段で算出される近似曲線は、第１検出手段で検出される複数の画素から抽出手段で抽出される画素取り除いた残りの画素に基づき更新されるので、第１検出手段で検出される複数の画素に基づき算出される近似曲線に比べて、近似曲線の精度を向上させることができる。また、検出位置設定手段によって最初に設定される検出位置におけるＹ軸方向の領域は、更新される近似曲線に基づき制限されるので、Ｙ軸方向の領域をより適正な範囲に制限することができるという効果がある。
【００２９】
請求項８記載の３次元形状検出装置によれば、請求項３から６のいずれかに記載の３次元形状検出装置の奏する効果に加え、第１更新手段又は第２更新手段は、段階的に高次の近似曲線を算出するので、凹凸を有する対象物体に投光されたスリット光であっても、そのスリット光の軌跡を高精度に抽出することができるという効果がある。
【００３０】
請求項９記載の撮像装置によれば、請求項１から８のいずれかに記載の３次元形状検出装置と同様な効果を奏することができると共に、請求項１から８のいずれかに記載の３次元検出装置装置によって高精度に抽出されるスリット光の軌跡に基づいて、スリット光非投光画像を正確な平面画像に補正することができるという効果がある。
【００３１】
請求項１０記載の３次元形状検出プログラムによれば、請求項１記載の３次元形状検出装置と同様な効果を奏することができるという効果がある。
【発明を実施するための最良の形態】
【００３２】
以下、本発明の好ましい実施例について、添付図面を参照して説明する。図１（ａ）は本発明の撮像装置１の外観斜視図であり、（ｂ）は撮像装置１の概略断面図である。尚、本発明の３次元形状検出装置は撮像装置１に含まれる装置であり、本発明の３次元形状検出プログラムは撮像装置１のＣＰＵ４１（図４参照）によって制御されるプログラムである。
【００３３】
撮像装置１は、方形箱形の本体ケース１０と、本体ケース１０の正面に設けられた結像レンズ３１と、結像レンズ３１の後方（撮像装置１の内部側）に設けられたＣＣＤ画像センサ３２と、結像レンズ３１の下方に設けられたスリット光投光ユニット２０と、本体ケース１０に内蔵されたプロセッサ４０と、本体ケース１０の上部に設けられたレリーズボタン５２及びモード切替スイッチ５９と、本体ケース１０に内蔵されるメモリカード５５とで構成され、これらの構成品は図４に示すように、それぞれ信号線により繋がっている。
【００３４】
その他にも、撮像装置１には、撮像装置１による撮像範囲を使用者が決定する際に利用するものとして、本体ケース１０の背面に設けられたＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）５１と、本体ケース１０の背面から前面を通して配設されるファインダ５３とが装備されている。
【００３５】
結像レンズ３１は、複数枚のレンズで構成され、オートフォーカス機能を有し、自動で焦点距離及び絞りを調整して外部からの光をＣＣＤ画像センサ３２上に結像する。
【００３６】
ＣＣＤ画像センサ３２は、ＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）素子などの光電変換素子がマトリクス状に配列されてなる構成で、表面に結像される画像の光の色及び強さに応じた信号を生成し、これをデジタルデータに変換してプロセッサ４０へ出力する。尚、ＣＣＤ素子一つ分のデータが画像を形成する画素の画素データであり、画像データはＣＣＤ素子の数の画素データで構成される。
【００３７】
レリーズボタン５２は、押しボタン式のスイッチで構成され、プロセッサ４０に接続されおり、プロセッサ４０にて使用者による押し下げ操作が検知される。  モード切替スイッチ５９は、２つの位置に切換え可能なスライドスイッチなどで構成され、一方のスイッチ位置を「ノーマルモード」、他方のスイッチ位置を「補正撮像モード」として検知されるようにプロセッサ４０にて割り当てられている。「ノーマルモード」は、撮像した原稿Ｐそのものを画像データとするモードであり、「補正撮像モード」は、原稿Ｐを斜め方向から撮像した場合に、その画像データを原稿Ｐを正面から撮像したような補正された画像データとするモードである。
【００３８】
メモリカード５５は、不揮発性で書き換え可能なメモリで構成され、本体ケース１０に着脱可能である。
【００３９】
ＬＣＤ５１は、画像を表示する液晶ディスプレイなどで構成され、プロセッサ４０からの画像信号を受けて画像を表示する。そして、プロセッサ４０からは、状況に応じてＣＣＤ画像センサ３２で受光したリアルタイムの画像や、メモリカード５５に記憶された画像や、装置の設定内容の文字等を表示するための画像信号が送られて来る。
【００４０】
ファインダ５３は、光学レンズで構成され、撮像装置１の後ろ側から使用者がのぞき込んだ時に、結像レンズ３１がＣＣＤ画像センサ３２上に結像する範囲とほぼ一致する範囲が見えるようになっている。
【００４１】
次に、図２及び図３を参照して、スリット光投光ユニット２０について説明する。図２は、スリット光投光ユニット２０の構成を示す図である。図３は、スリット光の角度幅を説明するための図である。スリット光投光ユニット２０は、レーザーダイオード２１と、コリメートレンズ２２と、アパーチャ２３と、透明平板２４と、シリンドリカルレンズ２５と、反射ミラー２６と、ロッドレンズ２７とで構成されている。
【００４２】
レーザーダイオード２１は、赤色レーザー光線を放射する。そして、プロセッサ４０からの指令に応じて、レーザー光線の放射及び停止を切り換える。また、レーザーダイオード２１の出力は、最大出力定格（例えば５ｍＷ）に対して、レーザービームの広がり角の個体ばらつきを考慮して、アパーチャ２３を通った箇所で一定の出力（例えば１ｍＷ）を得られるように定格出力が調整されている。
【００４３】
コリメートレンズ２２は、レーザーダイオード２１からのレーザー光線を、スリット光投光ユニット２０からの基準距離ＶＰ（例えば３３０ｍｍ）に焦点を結ぶように集光する。
【００４４】
アパーチャ２３は、矩形に開口された板で構成され、コリメートレンズ２２からのレーザー光線を開口部で透過して矩形に整形する。
【００４５】
透明平板２４は、無垢のガラス材料などの透明な平板で構成され、裏面にＡＲコート（無反射コーティング）が施され、アパーチャ２３からのレーザー光線の光軸に直交する面に対して、本体ケース１０の正面側に所定角度β（例えば３３度）傾斜して配設されて、アパーチャ２３から入射するレーザー光線のパワーの約５％（約５０μＷ）を表面で反射して、約９５％（約９５０μＷ）を透過する。尚、透明平板２４でレーザー光線を反射した方向（撮像装置１の前方へ水平面に対して３３度上向き）を第２の方向と呼ぶ。
【００４６】
透明平板２４の裏面にＡＲコートを施すことにより、透明平板２４内に入射したレーザー光線の透明平板２４から出射する際の反射が少なくなり、透明平板２４内でのレーザー光線の損失が少なくなるようになっている。また、透明平板２４で反射するレーザー光線の割合を、透明平板２４の材質の屈折率より決まる表面反射率５％として設定することにより、通常のハーフミラーで実現する場合に必要な反射面に金属蒸着膜を形成するプロセスを省略することができる。
【００４７】
反射ミラー２６は、鏡など、レーザー光線を全反射する部材で構成され、透明平板２４を透過したレーザー光線の下流に、本体ケース１０の正面側に４５度傾斜して配設され、レーザー光線を全反射して光路の向きを９０度変える。このレーザー光線を反射した方向（撮像装置１の前方へ水平面に対して０度の向き）を第１の方向と呼ぶ。
【００４８】
ロッドレンズ２７は、正の焦点距離が短い円筒形状のレンズで構成され、反射ミラー２６で反射されるレーザー光線の下流に、円筒形状の軸方向が垂直方向になるように配設されている。そして、反射ミラー２６からレーザー光線が入射されると、図３（ａ）に示すように、焦点距離が短いため、このレーザー光線がすぐに焦点を越えて広がり、所定の広がり角度ε（例えば４８度）のスリット光として第１の方向へ出射される。尚、ロッドレンズ２７から出射されるスリット光を第１スリット光７１と呼ぶ。
【００４９】
シリンドリカルレンズ２５は、負の焦点距離となるように一方向が凹形状となったレンズであり、透明平板２４で反射されたレーザー光線の下流に、第２の方向に対してレンズ面が直交するように配設さている。そして、透明平板２４から入射されるレーザー光線を、図３（ｂ）に示すように、透明平板２４でレーザー光線を分割したパワーの比に対して、第１スリット光７１の広がり角度εとの比が同等になるような広がり角度κ（つまり、広がり角度εの５％（２．４度））で、第２の方向に広がるスリット光として出射する。尚、シリンドリカルレンズ２５から出射されるスリット光を第２スリット光７２と呼ぶ。
【００５０】
これらの構成品によって、スリット光投光ユニット２０は、プロセッサ４０からの指令に応じて、レーザーダイオード２１からレーザー光線を放射して、第１の方向へ第１スリット光７１、及び、第２の方向へ第２スリット光７２を、本体ケース１０の結像レンズ３１の下方に設けられた窓２９から出射する。また、レーザーダイオード２１からは赤色レーザー光線が放射されるため、その赤色レーザー光線から生成される第１スリット光７１と第２スリット光７２とは、その分光成分としてＲＧＢ空間におけるＲ、Ｇ、Ｂ値のうち、主に赤値Ｒから構成されることになる。
【００５１】
上述したように構成されるスリット光投光ユニット２０によれば、レーザダイオード２１から出力されるパワーのうち、透明平板２４で分割される第１スリット光７１のパワーは９５％に対し、第２スリット光７２のパワーは約５％と少ないが、角度幅あたりのパワーで見ると、広がり角が４８度の第１スリット光７１の単位角度あたりのパワーが約２０μＷ／度で、広がり角が２．４度の第２スリット光７２の単位角度あたりのパワーも約２１μＷ／度であり、ほぼ変わらない。そして、原稿Ｐが基準距離ＶＰである３３０ｍｍの位置にある白色の用紙の場合、第１スリット光７１及び第２スリット光７２による照度は約１２６０ルクスとなり、一般的な室内の明るさである５００〜１０００ルクスの場所でも、スリット光の軌跡と原稿Ｐとの輝度差が十分あり、後述するスリット光軌跡抽出プログラム４２２にてスリット光の軌跡画像を確実に抽出することができる。
【００５２】
図４は、撮像装置１の電気的構成を示したブロック図である。撮像装置１に搭載されたプロセッサ４０は、ＣＰＵ４１、ＲＯＭ４２、ＲＡＭ４３を備えている。
【００５３】
ＣＰＵ４１は、ＲＯＭ４２に記憶されたプログラムによる処理に応じて、ＲＡＭ４３を利用して、レリーズボタン５２の押し下げ操作の検知、ＣＣＤ画像センサ３２から画像データの取り込み、画像データのメモリカード５５への書き込み、モード切替スイッチ５９の状態検出、スリット光投光ユニット２０によるスリット光の出射切り換え等の各種処理を行う。
【００５４】
ＲＯＭ４２には、カメラ制御プログラム４２１、スリット光軌跡抽出プログラム４２２、三角測量演算プログラム４２３、原稿姿勢演算プログラム４２４、平面変換プログラム４２５、輝度分散演算プログラム４２６、相互相関係数演算プログラム４２７、対応画素検索プログラム４２８、近似曲線演算プログラム４２９が記憶されている。
【００５５】
カメラ制御プログラム４２１は、図５に示すフローチャートの処理（詳細は後述する。）を含む撮像装置１全体の制御に関するプログラムである。スリット光軌跡抽出プログラム４２２は、スリット光を投光した原稿Ｐの画像からスリット光の軌跡を抽出するプログラムである。三角測量演算プログラム４２３は、スリット光軌跡抽出プログラム４２２で抽出されたスリット光の軌跡の各画素に対する３次元空間位置を演算するプログラムである。
【００５６】
原稿姿勢演算プログラム４２４は、第１スリット光の軌跡７１ａ及び第２スリット光の軌跡７２ａの３次元空間位置から、原稿Ｐの３次元形状を推定して求めるプログラムである。平面変換プログラム４２５は、原稿Ｐの位置及び姿勢が与えられて、スリット光無画像格納部４３２に格納された画像データを、原稿Ｐの正面から撮像したような画像に変換するためのプログラムである。輝度分散演算プログラム４２６は、スリット光無画像内の小領域毎に色値に関する標準偏差を演算するためのプログラムである。
【００５７】
相互相関係数演算プログラム４２７は、スリット光有画像とスリット光無画像とのズレ量を演算するためのプログラムである。対応画素検索プログラム４２８は、スリット光有画像内から検出された画素が、スリット光無画像内に存在するか否かを検索するプログラムである。近似曲線演算プログラム４２９は、第１スリット光の軌跡７１ａの一部を構成する画素から第１スリット光の軌跡７１ａに関する近似曲線を演算するプログラムである。
【００５８】
ＲＡＭ４３には、スリット光有画像格納部４３１、スリット光無画像格納部４３２、検出対象画素値一時格納部４３３、三角測量演算結果格納部４３４、原稿姿勢演算結果格納部４３５、スリット光軌跡情報格納部４３６、手ぶれ量格納部４３７、近似曲線格納部４３８、ワーキングエリア４３９が記憶領域として割り当てられている。
【００５９】
スリット光有画像格納部４３１とスリット光無画像格納部４３２とは、ＣＣＤ画像センサ３２からのスリット光有画像とスリット光無画像との画像データを各々格納する。検出対象画素値一時格納部４３３は、スリット光有画像の内で、探索範囲に含まれる各画素について、その赤値Ｒから緑値Ｇと青値Ｂとの平均を減算して求められる赤差分値Ｒｄと、輝度値Ｙとを乗算して得られる値（Ｒｄ・Ｙ値）を格納する。三角測量演算結果格納部４３４は、スリット光有画像の各ポイントの位置を演算した結果を格納する。
【００６０】
原稿姿勢演算結果格納部４３５は、原稿Ｐの位置及び姿勢の演算結果を格納する。スリット光軌跡情報格納部４３６は、後述するスリット光重心位置計算処理において計算される重心位置を格納する。手ぶれ量格納部４３７は、相互相関係数演算プログラム４２７によって演算されたスリット光有画像とスリット光無画像とのズレ量を格納する。近似曲線格納部４３８は、近似曲線演算プログラム４２９によって演算された近似曲線を格納する。ワーキングエリア４３９は、ＣＰＵ４１での演算のために一時的にデータを格納する。
【００６１】
次に、図５のフローチャートを参照して、上述したように構成された撮像装置１に関し、使用者によりレリーズボタン５２が押されてからの動作について説明する。図５は、撮像装置１のプロセッサ４０での処理手順を示すフローチャートである。尚、スリット光軌跡抽出処理（Ｓ１４０）、三角測量演算処理（Ｓ１６０）、原稿姿勢演算処理（Ｓ１７０）、平面変換処理（Ｓ１８０）の詳細については、後述する。
【００６２】
使用者によりレリーズボタン５２が押されると、まず、モード切替スイッチ５９のスイッチの位置を検知して、そのスイッチの位置が「補正撮像モード」の位置であるか否かを判別する（Ｓ１１０）。判別の結果、「補正撮像モード」の位置にある場合には（Ｓ１１０：Ｙｅｓ）、スリット光投光ユニット２０に対しレーザーダイオード２１の発光を指令し、第１スリット光７１及び第２スリット光７２が出射されてから、スリット光有画像として、ＣＣＤ画像センサ３２からＲＧＢ値で表現された画像データを取得し、この画像データをＲＡＭ４３のスリット光有画像格納部４３１へ読込む（Ｓ１２０）。
【００６３】
スリット光有画像の画像データを読込むと（Ｓ１２０）、スリット光投光ユニット２０に対しレーザーダイオード２１の発光停止を指令し、第１スリット光７１及び第２スリット光７２が出射されなくなってから、スリット光無画像としてＣＣＤ画像センサ３２からＲＧＢ値で表現された画像データを取得し、この画像データをスリット光無画像格納部４３２へ読込む（Ｓ１３０）。
【００６４】
スリット光無画像の画像データを読込むと（Ｓ１３０）、スリット光軌跡抽出処理（Ｓ１４０）を実行し、スリット光軌跡抽出プログラム４２２によりスリット光有画像格納部４３１に読込まれたスリット光有画像の画像データから各スリット光の軌跡７１ａ、７２ａを構成する画素を検出し、その画素に関するデータを検出対象画素値一時格納部４３３に格納する。
【００６５】
スリット光軌跡抽出処理（Ｓ１４０）を終了すると、次に収差補正処理（Ｓ１５０）を実行する。この収差補正処理によって、光軸からの角度に依存する画像の歪みを補正する。
【００６６】
収差補正処理（Ｓ１５０）を終了すると、三角測量演算処理（Ｓ１６０）を実行する。三角測量演算処理（Ｓ１６０）では、検出対象画素値一時格納部４３３に格納されている第１スリット光の軌跡７１ａ及び第２スリット光の軌跡７２ａを構成する画素に関し、その画素毎に３次元空間位置を三角測量演算プログラム４２３により演算し、演算結果をそれぞれ三角測量演算結果格納部４３４に格納する。
【００６７】
三角測量演算処理（Ｓ１６０）を終了すると、原稿姿勢演算処理（Ｓ１７０）を実行する。原稿姿勢演算処理（Ｓ１７０）では、三角測量演算結果格納部４３４に格納された第１スリット光７１及び第２スリット光７２のスリット光の軌跡の３次元空間位置を用いて、原稿姿勢演算プログラム４２４により、原稿Ｐの位置及び姿勢を演算し、演算結果を原稿姿勢演算結果格納部４３５に格納する。
【００６８】
原稿姿勢演算処理（Ｓ１７０）を終了すると、平面変換処理（Ｓ１８０）を実行する。平面変換処理（Ｓ１８０）では、原稿Ｐの位置及び姿勢から、平面変換プログラム４２５により、スリット光無画像格納部４３２に記憶された画像データを、正面から観察されたような画像の画像データに変換する。
【００６９】
平面変換処理（Ｓ１８０）が終了すると、生成された正立画像の画像データをメモリカード５５に書き込み（Ｓ１９０）、当該処理を終了する。
【００７０】
一方、Ｓ１１０におけ判別の結果が、「補正撮像モード」ではなく「ノーマルモード」の位置の場合には（Ｓ１１０：Ｎｏ）、スリット光投光ユニット２０のレーザーダイオード２１が発光せず、第１スリット光７１及び第２スリット光７２が出射されていない状態で、ＣＣＤ画像センサ３２からスリット光無画像を読込み（Ｓ２００）、その画像データをメモリカード５５に書込む（Ｓ２１０）。こうして、当該処理を終了する。
【００７１】
次に、図６乃至図１６を参照して、上述したスリット光軌跡抽出処理（Ｓ１４０）について具体的に説明する。
【００７２】
まず、図６を参照して、スリット光有画像内において、スリット光の軌跡を構成する画素（スリット光を含む画素）と、スリット光を含まない画素との差異を明確にして、スリット光有画像からスリット光を含む画素を高精度で抽出するための抽出原理について説明する。
【００７３】
図６（ａ）は、スリット光が照射されている状態の原稿Ｐの撮像画像を示している。原稿Ｐ上には、原稿の幅方向に複数列に並ぶ文字部分Ｍと、矩形状に示した照明反射部分Ｓと、円状に囲んで示す主の色成分として赤（Ｒ）成分を持つ印刷部分Ｉと、原稿Ｐの幅方向に延びる第１、第２スリット光の軌跡７１ａ，７２ａとが形成されている。また、原稿Ｐの幅方向と直交する方向に延びる１点鎖線はスリット光検出位置を示し、そのスリット光検出位置と第１スリット光の軌跡７１ａとの交点をスリット光検出画素Ｋとする。
【００７４】
図６（ｂ）は、スリット光検出位置（図中の１点鎖線参照）における所定パラメータ値を示すグラフであり、スリット光検出位置から各グラフに向かって真っ直ぐに延長線を引いた部分が、そのスリット光検出位置の各所定パラメータ値を示している。所定パラメータとして（ア）は赤値Ｒ、（イ）は赤差分値Ｒｄ、（ウ）は輝度値Ｙ、（エ）は赤差分値Ｒｄと輝度値Ｙとの積値Ｒｄ・Ｙを採用している。
【００７５】
赤差分値Ｒｄは、赤値Ｒから緑値Ｇと青値Ｂとの平均を減算して算出される。即ち、この赤差分値Ｒｄによって、スリット光検出位置において、スリット光の主成分であるＲ成分に対応する赤値Ｒを他の成分（Ｇ値、Ｂ値）より強調させることができ、赤値Ｒが緑値Ｇ、青値Ｂと近い値を有する画素は、赤差分値Ｒｄ値が低く、逆に、赤値Ｒが緑値Ｇ、青値Ｂに比べて高い画素は、赤差分値Ｒｄ値が高い値となることを示している。
【００７６】
輝度値Ｙは、スリット光検出位置における各画素の輝度を示すもので、輝度値Ｙは、ＹＣｂＣｒ空間におけるＹ値であり、ＲＧＢ空間からＹＣｂＣｒ空間へは以下の式で変換される。
Ｙ  ＝  ０．２９８９＊Ｒ＋０．５８６６＊Ｇ＋０．１１４５＊Ｂ
Ｃｂ＝−０．１６８７＊Ｒ−０．３３１２＊Ｇ＋０．５０００＊Ｂ
Ｃｒ＝  ０．５０００＊Ｒ−０．４１８３＊Ｇ−０．０８１６＊Ｂ
（ア）のグラフからは、スリット光検出画素Ｋ、Ｒ成分を持つ印刷部分Ｉ、照明反射部分Ｓでは赤値Ｒが高いことが分かる。ここで、赤値Ｒの高低を基準に、スリット光検出画素Ｋを検出しようとすると、スリット光検出画素Ｋが、Ｒ成分を持つ印刷部分Ｉや照明反射部分Ｓに含まれている場合には、赤値Ｒについて両者に明確な差異がないので、Ｒ成分を持つ印刷部分Ｉや照明反射部分Ｓからスリット光検出画素Ｋを正確に検出できない。
【００７７】
（イ）のグラフからは、照明反射部分Ｓは、スリット光検出画素Ｋ、Ｒ成分を持つ印刷部分Ｉより赤差分値Ｒｄが低いことが分かる。よって、赤差分値Ｒｄの高低を基準に、スリット光検出画素Ｋを検出すれば、スリット光検出画素Ｋが照明反射部分Ｓに含まれていたとしても、赤差分値Ｒｄに関する両者の差異は明確なので照明反射部分Ｓからスリット光検出画素Ｋを正確に検出することは可能である。しかし、スリット光検出画素ＫがＲ成分を持つ印刷部分Ｉに含まれている場合には、赤差分値Ｒｄに関して両者に明確な差異がないので、Ｒ成分を持つ印刷部分Ｉからスリット光検出画素Ｋを正確に検出できない。
【００７８】
（ウ）のグラフからは、Ｒ成分を持つ印刷部分Ｉが、スリット光検出画素Ｋ、照明反射部分Ｓより輝度値Ｙが低いことが分かる。よって、輝度値Ｙの高低を基準に、スリット光検出画素Ｋを検出すれば、たとえスリット光検出画素ＫがＲ成分を持つ印刷部分Ｉに含まれていたとしても、輝度値Ｙに関する両者の差異は明確なので、Ｒ成分を持つ印刷部分からスリット光検出画素Ｋを検出することは可能である。しかし、スリット光検出画素が照明反射部分Ｓに含まれている場合には、輝度値Ｙに関して両者に明確な差異がないので、照明反射部分Ｓからスリット光検出画素Ｋを正確に検出できない。
【００７９】
そこで、（イ）、（ウ）のグラフに示す通り、スリット光検出画素Ｋは、赤差分値Ｒｄと輝度値Ｙとの両方が、照明反射部分ＳやＲ成分を持つ印刷部分Ｉよりも高い値を有していることに着目し、その赤差分値Ｒｄと輝度値Ｙとの積値Ｒｄ・Ｙ（以下Ｒｄ・Ｙ値）の高低を基準に、スリット光を含む画素を検出することとする。
【００８０】
かかる場合には、（エ）のグラフに示す通り、スリット光検出位置画素ＫのＲｄ・Ｙ値は、照明反射部分ＳのＲｄ・Ｙ値やＲ成分を持つ印刷部分ＩのＲｄ・Ｙ値よりも高いので、たとえスリット光検出画素Ｋが照明反射部分ＳやＲ成分を持つ印刷部分Ｉに含まれていたとしても、Ｒｄ・Ｙ値に関する両者の差異は明確なので、照明反射部分ＳやＲ成分を持つ印刷部分Ｉからスリット光検出画素Ｋを正確に検出することができる。
【００８１】
次に、図７乃至図１０のフローチャートを参照して、スリット光軌跡抽出処理の具体的な処理の流れを明する。図７はスリット光軌跡抽出処理のフローチャートである。
【００８２】
スリット光軌跡抽出処理（図５のＳ１４０）では、まず、スリット光有画像とスリット光無画像とのズレ量を計算する（Ｓ７０１）。
【００８３】
両画像におけるズレ量は、スリット光有画像とスリット光無画像とは、同時に撮像されていないため、その間のユーザの「手ぶれ」等に起因して生ずる。両画像のズレ量は、相互相関係数演算プログラム４２７により２つの画素間の相互相関係数ｃｃを計算することで得ることができる。尚、相互相関係数ｃｃは−１〜１の値を持ち、最大の値を持つ位置がズレ量となる。
【００８４】
また、相互相関係数ｃｃを計算するに当たっては、画像中の特徴ある部分で計算することが好ましい。黒べた部分、白べた部分、或いは特定の色によるべた部分等において相互相関係数ｃｃを計算しても、相互相関係数ｃｃに明確な差異が得られないためである。そこで、相互相関係数ｃｃを計算するに前に、スリット光無画像内において特徴ある部分を探索する探索処理を行う。
【００８５】
この探索処理では、図１１に示すように、スリット光無画像を４つの大領域１〜４に分け、更に、その各大領域１〜４を各大領域内の端（領域１では右上、領域２では左上、領域３では左下、領域４では右下）から中央に向かって小領域に分け、その小領域毎に輝度Ｙの標準偏差を求める。輝度Ｙの標準偏差σＹは輝度分散演算プログラム４２６により以下の数１、数２に示す式を使って計算される。
【００８６】
尚、数１において（ｘｃ、ｙｃ）は小領域中心画素、Ｒｄは小領域のサイズを２等分したサイズを示しており、具体的には、画像サイズが１２００ｐｉｘｅｌ×１６００ｐｉｘｅｌ程度の場合には、小領域のサイズは４１ｐｉｘｅｌ×４１ｐｉｘｅｌ程度（数１，２におけるＲｄ＝２０）で良い。
【００８７】
【数１】
2005148813.tif 000003
【００８８】
【数２】
2005148813.tif 000004
そして、各大領域１〜４内において最大の標準偏差を有する小領域の中心座標を相互相関係数ｃｃを求める中心位置として、スリット光照射有り画像と無し画像の相互相関係数ｃｃを下記の数３に示す式より求めれば、正確なズレ量を得ることができる。
【００８９】
尚、数３では、スリット光有画像とスリット光無画像との画素の位置の差を（ｘｃ、ｙｃ）とし、スリット光有画像の画素の輝度をＹ１、スリット光無画像の輝度をＹ２とする。また、本実施例のように画像サイズが１２００ｐｉｘｅｌ×１６００ｐｉｘｅｌ程度の場合には、相互相関係数ｃｃを求める範囲も４１ｐｉｘｅｌ×４１ｐｉｘｅｌ（Ｒｃ＝２０）程度でよい。
【００９０】
【数３】
2005148813.tif 000005
再び、図７に戻って説明を続ける。上述した通りに、スリット光有画像とスリット光無画像とのズレ量が算出されると（Ｓ７０１）、次に、第２スリット光の軌跡７２ａを抽出する探索範囲を指定する探索パラメータを設定する（Ｓ７０２）。ここで、図１２（ａ）は、スリット光が照射されている状態の原稿Ｐの撮像画像を模式的に示す図であり、図１２（ａ）に示すように、探索パラメータは第２スリット光の軌跡７２ａ上のｃｃｄｘ方向におけるｃＸ２と、ｃｃｄｙ方向のｙＭｉｎ２からｙＭａｘ２までの範囲とで設定される。
【００９１】
例えば、画像サイズが１２００ｐｉｘｅｌ（幅Ｗ）×１６００ｐｉｘｅｌ（高さＨ）の場合には、ｃＸ２の値としては、撮像画像の幅Ｗの画像中心位置とし（図１２（ａ）の一点鎖線）、ｃＸ２＝５９９の１点が設定され、ｙＭｉｎ２からｙＭａｘ２の範囲としては、撮像画像の上半分の領域である０から７９９の範囲で設定される。
【００９２】
ｃｃｄｘ方向に関してｃＸ２を１点に設定するのは、本実施例では、第１スリット光の軌跡７１ａにより湾曲φを算出するため、第２スリット光の軌跡７２ａとしては、傾きθ（実空間においてＸ軸を中心とした回転角）を求めるのに用いるｃｃｄｙ軸上の軌跡座標のみを抽出すれば良いためである。
【００９３】
探索パラメータを設定すると（Ｓ７０２）、後述するスリット光重心位置計算処理を実行する（Ｓ７０３）。そしてスリット光重心位置計算処理（Ｓ７０３）で算出される重心位置の画素に対応する画素が、スリット光無画像内に存在するか否かを検索する（Ｓ７０４）。
【００９４】
ここで、この検索範囲に関し、例えば、図１３に示すように、スリット光有画像からスリット光を含む画素として検出された画素が、大領域４内の（ｘｐ、ｙｐ）において見つかったとする。かかる場合には、Ｓ７０１で算出したスリット光無画像内の大領域４のズレ量（ｄｘ４、ｄｙ４）を考慮に入れて、ｘｐ＋ｄｘ４−Ｒｓ≦ｘ≦ｘｐ＋ｄｘ４＋Ｒｓと、ｘｐ＋ｄｙ４−Ｒｓ≦ｙ≦ｙｐ＋ｄｙ４＋Ｒｓとの範囲で、検出された画素に対応する画素を探索する。
【００９５】
尚、対照物体までの距離が３５０ｍｍ程度、画像サイズが１２００ｐｉｘｅｌ×１６００ｐｉｘｅｌ程度の場合、手ぶれ量は数１０ピクセル程度なので、Ｒｓは数１０ピクセル程度で設定すれば良い。
【００９６】
そして、スリット光無画像内を検索した結果、対応する画素が検索された場合には（Ｓ７０５：Ｙｅｓ）、その画素はスリット光有画像にも、スリット光無画像にも共通に存在する画素ということになる。即ち、スリット光有画像内において検出された画素は、スリット光を含む画素とは認められないため、計算された重心位置まわりの画素を抽出対象から外し（Ｓ７０６）、再び、Ｓ７０３からＳ７０５までの処理を繰り返す。
【００９７】
一方、対応する画素がスリット光無画像内で検索されなければ（Ｓ７０５：Ｎｏ）、その画素はスリット光無画像には存在せず、スリット光有画像固有の画素ということになる。即ち、その画素は、スリット光を含む画素であると判定し、その計算された重心位置をスリット軌跡情報格納部４３６に記憶する（Ｓ７０７）。
【００９８】
次に、第１スリット光の軌跡７１ａを抽出する探索範囲を指定する探索パラメータを設定する（Ｓ７０８）。この探索パラメータは、図１２（ａ）に示すように、ｃｃｄｙ方向についてｙＭｉｎ１からｙＭａｘ１の範囲で設定される。
【００９９】
具体的には、撮像画像の下半分の領域の内、９５０から１５９９の範囲で設定される。下半分の全部の領域を設定しないのは、本実施例では、第１スリット光７１は結像レンズ３１の光軸と平行で、且つ、結像レンズ３１より下から照射されるので、第１スリット光７１の存在する範囲は、原稿Ｐを撮像する場合の使用に耐え得る原稿Ｐと結像レンズ３１との距離から逆算できるため、探索範囲を予め絞りこみ、高速に処理させるためである。一方、ｃｃｄｘ方向については、ｃＸｍｉｎからｃＸｍａｘの範囲で設定される。
【０１００】
探索パラメータを設定すると（Ｓ７０８）、ｃｃｄｘ方向の検出位置を表す変数ｃＸをｃＸｃｍｉｎに設定し（Ｓ７０９）、その位置においてｃｃｄｙ方向のｙＭｉｎ１からｙＭａｘ１までの範囲内から、スリット光を含む画素の重心位置を求めるべく、上述したＳ７０３からＳ７０８までの処理と同様に、Ｓ７１１からＳ７１５の処理を実行する。こうして、ｃＸ＝ｃＸｃｍｉｎの位置において、Ｓ７１１からＳ７１５までの処理が終了すると、変数ｃＸに検出間隔ｄｘが加算され（Ｓ７１６）、検出位置ｃＸ＝ｃＸ＋ｄｘの位置において、再びＳ７１１からＳ７１５までの処理が繰り返される。この繰り返し処理は、変数ｃＸの値がｃＸｃｍａｘに到達するまで繰り返される（Ｓ７１０）。
【０１０１】
こうして、ｃｃｄｘ方向のｃＸｃｍｉｎからｃＸｃｍａｘまでの各検出位置毎に、スリット光を含む画素の重心位置が計算されると（Ｓ７１０：Ｎｏ）、近似曲線算出処理（Ｓ７１７）によって、ｃｃｄｘ方向の残りの範囲における各検出位置毎にスリット光を含む画素の重心位置が求められ、当該処理を終了する。
【０１０２】
次に、図８のフローチャートを参照して、上述したスリット光重心位置計算処理（図７のＳ７０３，Ｓ７１１）について具体的に説明する。図８は、スリット光軌跡抽出処理に含まれるスリット光重心位置計算処理のフローチャートである。
【０１０３】
スリット光重心位置計算処理は、スリット光を含む画素として検出される画素位置と、スリット光の輝度中心位置とは、スリット光を構成するレーザー光の特性、撮像対象物の表面の細かな凹凸により必ずしも一致ないため、検出される画素を中心とする一定の範囲内でＲｄ・Ｙ値の重心位置を求め、その重心位置をスリット光を含む画素位置とするための処理である。
【０１０４】
尚、本実施例では、図１２（ｂ）に示すように、その一定の範囲内としてｃｃｄｘ方向にｘＲａｎｇｅ＝２，ｃｃｄｙ方向にｇＲａｎｇｅ＝５が設定されている。
【０１０５】
スリット光重心位置計算処理では、まず、与えられた変数ｃＸについて、ｃｃｄｘ方向の探索範囲を示すｘＭｉｎとｘＭａｘとを設定する（Ｓ８０１）。ｘＭｉｎは、変数ｃＸが最小値ｃＸｍｉｎ（＝初期値＝０）の場合には、最小値ｃＸｍｉｎで設定され、それ以外の場合には、ｃＸからｘＲａｎｇｅを減算した値（＝ｃＸ−ｘＲａｎｇｅ）で設定される。ｘＭａｘは、変数ｃＸが最大値ｃＸｍａｘ（＝１２００）の場合には、その最大値ｃＸｍａｘで設定され、それ以外の場合には、ｃＸにｘＲａｎｇｅを加算した値（＝ｃＸ＋ｘＲａｎｇｅ）で設定される。よって、Ｓ７０３では変数ｃＸとしてｃＸ２が与えられ、Ｓ７０９では変数ｃＸとしてｃＸｃｍｉｎが与えられることになる。
【０１０６】
ｃｃｄｘ方向の探索範囲を設定すると（Ｓ８０１）、ｘＭｉｎ≦ｃｃｄｘ≦ｘＭａｘとｙＭｉｎ≦ｃｃｄｙ≦ｙＭａｘとの範囲における各画素について赤差分値Ｒｄと輝度値Ｙとを計算し（Ｓ８０２，Ｓ８０３）、更に、その各画素について計算された赤差分値Ｒｄと輝度値Ｙとを乗算して、各画素についてＲｄ・Ｙ値を計算し、その結果を検出対象画素値一時格納部４３３に記憶する（Ｓ８０４）。
【０１０７】
次に、与えられた変数ｃＸの±ｘＲａｎｇｅの範囲における検出位置を示す変数ｃｃＸを初期化し（＝ｘＭｉｎ）（Ｓ８０５）、その変数ｃｃＸが探索範囲（ｃｃＸ≦ｘＭａｘ）を超えていないか否かを判定する（Ｓ８０６）。変数ｃｃＸが探索範囲を超えていなければ（Ｓ８０６：Ｙｅｓ）、更に、変数ｃｃＸが画像範囲（ｃｃＸ≧０、ｃｃＸ＜ｃＭＡＸ）を超えていないか否かを判定する（Ｓ８０７）。変数ｃｃＸが画像範囲をも超えていなければ（Ｓ８０７：Ｙｅｓ）、検出対象画素値一時格納部４３３に記憶されている探索範囲内の各画素のＲｄ・Ｙ値の中から、最大値を有しており、且つ、予め設定した閾値ｖＴｈを越えている画素を検索する（Ｓ８０８）。
【０１０８】
上述した通りに、最大のＲｄ・Ｙ値を有する画素は、探索範囲内でスリット光を含む画素である可能性が極めて高いためである。また、その画素が閾値ｖＴｈを超えていることを条件とするのは、たとえ最大のＲｄ・Ｙ値を有する画素であっても、閾値ｖＴｈを越えていない画素は、撮像対象物から外れた遠方の物体にスリット光が当たっている画素（この場合、非常に弱い輝度を持っている）である可能性があり、その画素はスリット光を含む画素の対象候補から外すことで、より高精度にスリット光を含む画素を検出するためである。
【０１０９】
探索範囲内で最大のＲｄ・Ｙ値を有し、且つ、閾値ｖＴｈを越える画素を検索したら（Ｓ８０８）、その検索された画素の画素位置±ｇＲａｎｇｅの範囲で、Ｒｄ・Ｙ値についての重心位置を計算する（Ｓ８０９）。そして、検出位置を更新し（Ｓ８１０）、上述したＳ８０６からＳＳ８１０までの処理を繰り返す。
【０１１０】
こうして、ｃＸの±ｘＲａｎｇｅの範囲における変数ｃｃＸの各位置での重心の計算が終了したと判断された場合には（Ｓ８０６：Ｎｏ）、ｃＸの±ｘＲａｎｇｅの範囲における各ｃｃＸで求めた重心位置と、Ｒｄ・Ｙ値とを用いて更に、ｃｃｄｙ方向についての重心位置を求め、それをｃＸにおけるスリット光軌跡のｃｃｄｙ値（Ｙｇ）とし（Ｓ８１１）、当該処理を終了する。
【０１１１】
尚、重心位置Ｙｇは下記の数４に示す式で算出される。
【０１１２】
【数４】
2005148813.tif 000006
このようにスリット光を含む画素を検出することで、たとえスリット光を含む画素が、照明反射部分Ｓに含まれていたとしても、照明反射部分Ｓでは赤値Ｒが低く、Ｒｄ・Ｙ値が低いので、その照明反射部分Ｓと最大のＲｄ・Ｙ値を有するスリット光を含む画素との差異が明確となり、高精度にスリット光を含む画素を検出できる。
【０１１３】
また、たとえスリット光を含む画素が、Ｒ成分を持つ印刷部分Ｉに含まれていたとしても、Ｒ成分を持つ印刷部分Ｉでは、輝度値Ｙが低く、Ｒｄ・Ｙ値が低いので、そのＲ成分を持つ印刷部分Ｉと最大のＲｄ・Ｙ値を有するスリット光を含む画素との差異が明確となり、高精度にスリット光を含む画素を検出できる。
【０１１４】
上述したスリット光重心位置計算処理を経て、ｃｃｄｘ方向のｃＸｃｍｉｎからｃＸｃｍａｘまでの各検出位置毎に、スリット光を含む画素の重心位置が計算されることになる。図１４は、図１２（ａ）のＡ部分を示した拡大図である。図１４に示すように、本実施例では、ｃｃｄｘ方向のｃＸｃｍｉｎからｃＸｃｍａｘまでの各検出位置として、画像中心に１箇所、画像中心から左側に４箇所、画像中心から右側に４箇所の合計９箇所が設定されており、各検出位置からスリット光を含む画素の重心位置が計算されることになる。
【０１１５】
次に、図９のフローチャートを参照して、上述した近似曲線算出処理（図７のＳ７１７）について詳細に説明する。図９は、スリット光軌跡抽出処理に含まれる近似曲線算出処理のフローチャートである。
【０１１６】
近似曲線算出処理は（Ｓ７１７）、ｃｃｄｘ方向のｃＸｃｍｉｎからｃＸｃｍａｘまでの各検出位置で求められたスリット光を含む画素の重心位置から、第１スリット光の軌跡７１ａに関する近似曲線を算出し、その近似曲線に基づいてｃｃｘ方向の残りの範囲における各検出位置でスリット光を含む画素の重心位置を求める処理である。
【０１１７】
近似曲線算出処理では、まず、算出する近似曲線の次数Ｎを「１」に設定する（Ｓ９０１）。次数Ｎを「１」に設定するのは、Ｓ７１１からＳ７１５で検出される画素の重心位置は、そのデータ数が少ないため（本実施例では９点）、この時点で近似曲線の次数を上げとしまうと算出される近似曲線が振動、発散してしまうので、それを防止するためである。
【０１１８】
近似曲線の次数Ｎを設定すると（Ｓ９０１）、Ｓ７１５でスリット光軌跡情報格納部４３６に記憶されている複数の画素に関する重心位置から近似曲線ｙ＝ｆ（ｘ）を算出する（Ｓ９０２）。近似曲線は、測定値ｙがｍ−１個の変数ｘ＾１，ｘ＾２，・・・ｘ＾（ｍ−１）に依存する場合、ｙ＝ａ（０）＋ａ（１）＊ｘ＾１＋ａ（２）＊ｘ＾２＋・・・ａ（ｍ−１）＊ｘ＾（ｍ−１）となる線形の式を当てはめて算出される。
【０１１９】
また、この近似曲線を算出するためのベースとなる画素の重心位置のデータは、図７のＳ７０９からＳ７１６の処理によってｃｃｄｘ方向の画像範囲であるｃＸＭｉｎからｃＸＭａｘまでの範囲の内、第１スリット光の軌跡７１ａの中央部分を含むｃＸｃｍｉｎからｃＸｃｍａｘまでの範囲内から検出された画素から計算されているので、例えば、画像の端部から検出された画素から計算された重心位置から近似曲線を算出する場合に比べて、原稿Ｐ上の第１スリット光の軌跡７１ａに沿った近似曲線を算出することができる。
【０１２０】
即ち、操作者は対象物体である原稿Ｐを撮像する場合には、原稿Ｐが撮像画像の中央部に位置するように撮像するのが一般的であるため、画像の両端部には、原稿Ｐ以外の背景や不要物等が写り込んでいる可能性が高い。よって、画像の両端部から抽出された画素に基づき近似曲線を算出した場合には、原稿Ｐ上の第１スリット光の軌跡７１ａに沿った近似曲線が算出される可能性は低いのに対し、本実施例のように、スリット光有画像内における第１スリット光の軌跡７１ａの中央部分を含む領域から検出された画素に基づき近似曲線を算出する場合には、原稿Ｐ上の第１スリット光の軌跡７１ａに沿った近似曲線を算出することができる可能性を高くすることができる。
【０１２１】
近似曲線ｙ＝ｆ（ｘ）を算出すると、その近似曲線ｙ＝ｆ（ｘ）から閾値ｃＴｈ以上離れている重心位置の画素を抽出する（Ｓ９０３）。本実施例では、図１４に示すように、近似曲線から所定の閾値ｃＴｈ以上離れた左から３番目の画素が抽出される。尚、本実施例では、所定の閾値ｃＴｈとして近似曲線から±２ｍｍ程度（ｄｏｔ換算で１１ｐｉｘｅｌ程度：Ｚ＝０のＸＹ平面位置でスリット光の巾が１ｍｍ程度の広がりを持ち、その２倍程度）が設定されている。
【０１２２】
そして、その抽出された画素を除いた残りの画素の重心位置から、Ｓ９０２で算出した近似曲線ｙ＝ｆ（ｘ）を更新する（Ｓ９０４）。これにより、第１スリット光の軌跡７１ａに関する近似曲線として一層高精度な近似曲線を算出することができる。
【０１２３】
近似曲線を更新すると（Ｓ９０４）、次に、スリット光を含む画素が連続して見つからなかった回数を表す変数ＵｎｄｅｔｅｃｔＮｏ（左側用：ｌＵｎｄｅｔｅｃｔＮｏ，右側用ｒＵｎｄｅｔｅｃｔＮｏ）を「０」に設定する（Ｓ９０５）。
【０１２４】
ＵｎｄｅｔｅｃｔＮｏを左側用と右側用とに分けて設定するのは、本実施例では、ｃｃｄｘ方向におけるｃＸｃｍｉｎとｃＸｃｍａｘとを挟む左側と右側とを交互に検出位置として設定するためである。
【０１２５】
そして、このＵｎｄｅｔｅｃｔＮｏは各検出位置毎にスリット光を含む画素が見つからなかった場合にＳ９１９やＳ９１３において「１」加算されてゆき、Ｓ９０８やＳ９２０においてＵｎｄｅｔｅｃｔＮｏの値が所定の閾値ｕｄＬｉｍｉｔを越えていると判断されると、スリット光の軌跡が急激に変化したと判断し、それ以降の検出を中止する。
【０１２６】
これは、例えば、図１６に示すように、撮像対象としての原稿Ｐがファイルされているような場合に、一般的には、操作者は原稿Ｐが画像の中央部に位置するように撮像するものの、画像の両側には不要なものが一緒に撮像されてしまう場合がある。
【０１２７】
かかる場合、第１スリット光の軌跡７１ａは原稿Ｐ上では画像中心から左右略対照に湾曲するような軌跡を執るものの、画像の両端部では、図１６のＣ部分に示すように、ファイル状況に応じて不規則に変化する軌跡を執る。一方、操作者においても、少なくとも原稿Ｐの部分が正立画像に変換されれば良く、画像両端部までを正立画像に変換することを要求する場合は少ない。
【０１２８】
そこで、スリット光を含む画素が連続して見つからなかった回数を計数し、その計数した結果が所定閾値ｕｄＬｉｍｉｔを越える場合には、それ以降の検出を中止するで、スリット光の軌跡が急激に変化する可能性の高い画像両端部における検出を省略して、必要な部分（原稿Ｐ上の部分）だけを検出することで、スリット光軌跡抽出処理を高速化させるためである。
【０１２９】
次に、ｃｃｄｘ方向におけるｃＸｃｍｉｎより左側の検出位置を表す変数ｃｌｘと、ｃｃｄｘ方向におけるｃＸｃｍａｘより右側の検出位置を表す変数ｃｒｘを設定する（ｃｌｘ＝ｃＸｃｍｉｎ−ｄｘ，ｃｒｘ＝ｃＸｃｍａｘ＋ｄｘ）（Ｓ９０６）。即ち、左側の最初の設定位置としては、ｃｃｄｘ方向のｃＸｃｍｉｎより所定間隔ｄｘだけ左側の位置が設定され、右側の最初の設定位置としては、ｃｃｄｘ方向のｃＸｃｍａｘより所定間隔ｄｘだけ右側の位置が設定される。
【０１３０】
その後、本実施例では、左側の最初の検出位置から検出を開始し、左側の最初の検出位置での検出が終了したら、次に右側の最初の検出位置での検出を開始する。右側の最初の検出位置での検出が終了したら、次に左側の最初の検出位置から所定間隔ｄｘだけ左側の位置に検出位置が設定される。この繰り返し処理を、左側の検出位置ｃｌｘがｃＸｍｉｘ、右側の検出位置ｃｒｘがｃＸｍａｘになるまで実行する（Ｓ９０７）。
【０１３１】
こうして、Ｓ９０６においてｃｃｄｘ方向の検出位置を設定し、Ｓ９０７においてその検出位置が画像範囲内であることが確認されると（Ｓ９０７：Ｙｅｓ）、先ず、設定された左側の検出位置ｃｌｘが画像範囲の最小値ｃＸｍｉｎ以上か否か、或いは、ｌＵｎｄｅｔｅｃｔＮｏが閾値ｕｄＬｉｍｉｔより小さいか否かを判定する（Ｓ９０８）。
【０１３２】
設定された左側の検出位置ｃｌｘが画像範囲の最小値ｃＸｍｉｎより小さければ、左側の検出は終了したと判断し（Ｓ９０８：Ｙｅｓ）、右側の検出を実行すべくＳ９２０に移行する。また、ｌＵｎｄｅｔｅｃｔＮｏが閾値ｕｄＬｉｍｉｔより大きければ、上述した通りその検出位置における検出は中止され、Ｓ９２０に移行する。
【０１３３】
一方、検出位置ｃｌｘが画像範囲の最小値ｃＸｍｉｎ以上であり、或いは、ｌＵｎｄｅｔｅｃｔＮｏが閾値ｕｄＬｉｍｉｔより小さいと判断されると（Ｓ９０８：Ｙｅｓ）、検出位置ｃｌｘにおけるＳ９０４で更新した近似曲線ｙ＝ｆ（ｘ）上の値を計算し（Ｓ９０９）、その値から検出位置ｃｌｘにおけるｃｃｄｙ方向の検出範囲を設定する（Ｓ９１０）（ｙＭｉｎ＝ｙ−ｙＳＲａｎｇｅ，ｙＭａｘ＝ｙ＋ｙＳＲａｎｇｅ）。尚、本実施例では、図１５に示すようにｙＳＲａｎｇｅとして、Ｚ＝０のＸＹ平面において、スリット光の巾の２倍とスリット光の許容傾きにより、１２ｐｉｘｅｌ程度が設定されている。
【０１３４】
検出位置ｃｌｘにおけるｃｃｄｙ方向の検出範囲が設定されると、その範囲内で上述したのと同様にスリット光を含む画素を検出すべくＳ９１１からＳ９１４の処理を実行する。
【０１３５】
即ち、本来、ｃｃｄｙ方向の検出範囲としては、図１２（ａ）に示すようにｙＭｉｎ１からｙＭａｘ１までの範囲を検出する必要がある所、そのｃｃｄｙ方向の検出範囲を近似曲線から±ｙＳＲａｎｇｅの範囲に制限することで、検出処理を高速化することができる。また、近似曲線の周辺にはスリット光を含む画素が存在する可能性が極めて高いため、ｙＭｉｎ１からｙＭａｘ１までの範囲を検出する場合に比べて誤検出する可能性を低減することができる。
【０１３６】
そして、Ｓ９１４において計算された重心位置をスリット光軌跡情報格納部４３６に格納すると（Ｓ９１４）、今回探索された画素の重心位置と、過去に探索された画素の重心位置とを使ってＳ９０４で更新された近似曲線ｙ＝ｆ（ｘ）を再度更新する（Ｓ９１５）。これにより、第１スリット光の軌跡７１ａに関する近似曲線を一層高精度にすることができる。近似曲線を更新すると、ｌＵｎｄｅｔｅｃｔＮｏを「０」に設定して（Ｓ９１６）、検出位置ｃｌｘにおける検出を終了する。
【０１３７】
一方、Ｓ９１０で設定されたｙＭＩＮからｙＭＡＸの範囲をすべて検索した結果、スリット光有画像内から検出された画素がスリット光無画像内から検出された場合、即ち、スリット光を含む画素が検出されなかった場合には（Ｓ９１８：Ｙｅｓ）、ｌＵｎｄｅｔｅｃｔＮｏに「１」を加算し（Ｓ９１９）、検出位置ｃｌｘにおける検出を終了する。
【０１３８】
こうして、検出位置ｃｌｘにおける検出を終了すると、次は、右側の検出位置ｃｒｘにおける検出を開始する。尚、検出位置ｃｒｘにおいて行われるＳ９２０からＳ９３１の処理は、左側の検出位置ｃｌｘにおいて行われるＳ９０７からＳ９１１と同様であるため、その説明は省略する。
【０１３９】
上述したように、ｃｃｄｘ方向のｃＸｃｍｉｎ−ｄｘからｃＸｍｉｘまでの範囲（左側）、ｃｃｄｘ方向のｃＸｃｍａｘ＋ｄｘからｃＸｍａｘまでの範囲（右側）における各検出位置での検出が終了すると当該処理を終了する。
【０１４０】
次に、図１０のフローチャートを参照して、図９のフローチャートにおけるＳ９０２，Ｓ９０３，Ｓ９１５，Ｓ９２７において、探索された画素の重心位置を使って近似曲線ｙ＝ｆ（ｘ）を求める処理について説明する。
【０１４１】
近似曲線ｙ＝ｆ（ｘ）を求める場合には、まず、最小２乗法を用いてＮ次の近似曲線ｙ＝ｆ（ｘ）が求められる（Ｓ１００１）。Ｓ９０４では１次の近似曲線ｙ＝ｆ（ｘ）から求められることになる。次に、検出された画素の重心位置と近似曲線との誤差の標準偏差σａが求められる（Ｓ１００２）。そして、求められた標準偏差σａが所定の閾値ａＴｈより大きいか否かが判定される（Ｓ１００３）。尚、本実施例では、所定の閾値ａＴｈを３．５４ｐｉｃｅｌ程度（Ｚ＝０のＸＹ平面上の換算で、スリット光の巾の広がりが１ｍｍ程度であり、その広がりの標準偏差σの２倍である２σの値をｐｉｘｅｌ換算した値）として用いている。その結果、標準偏差σａが閾値ａＴｈより小さければ（Ｓ１００３：Ｎｏ）、近似曲線の次数Ｎを上げることなく、設定されている次数Ｎの近似曲線とする。
【０１４２】
一方、標準偏差σａが閾値ａＴｈ以上であれば（Ｓ１００３：Ｙｅｓ）、設定されている次数Ｎが所定の閾値ｎＴｈ以上か否かが判定される（Ｓ１００４）。所定の閾値ｎＴｈは、見開き原稿の片側部分の表面形状で（３次或いはそれ以上）を想定し、本実施例では、５次としている。その結果、次数Ｎが所定の閾値ｎＴｈ以上であれば（Ｓ１００４：Ｙｅｓ）、近似曲線の次数Ｎを上げることなく設定されている次数Ｎの近似曲線とし、次数Ｎが所定の閾値ｎＴｈより小さければ（Ｓ１００４：Ｎｏ）、設定されている次数Ｎに「１」を加算する（Ｓ１００５）。そして、その「１」加算された次数ＮでＳ１００１からＳ１００４までの処理を繰り返す。
【０１４３】
このように近似曲線を更新する場合に、近似曲線の次数Ｎを段階的に高次に設定することで、たとえ原稿Ｐに凹凸がある場合であっても第１スリット光の軌跡７１ａに関する近似曲線を高精度に算出することができる。
【０１４４】
次に、図１７及び図１８を参照して、上述した三角測量演算処理（図５のＳ１６０）を具体的に説明する。三角測量演算処理（Ｓ１６０）では、検出対象画素値一時格納部４３３に読込まれた画素データに基づいて、第１スリット光の軌跡７１ａ及び第２スリット光の軌跡７２ａの縦方向のピークを重心計算によって画像データの横方向座標毎に求め、このピーク抽出座標に対する３次元空間位置を次のようにして求める。
【０１４５】
図１７は、スリット光有画像を説明するための図である。図１８は、スリット光の３次元空間位置を算出する方法を説明するための図である。図１８に示すように撮像される横方向に湾曲した原稿Ｐに対する撮像装置１の座標系を、結像レンズ３１の光軸方向をＺ軸として、撮像装置１から基準距離ＶＰ離れた位置をＸ，Ｙ，Ｚ軸の原点位置として、撮像装置１に対して水平方向をＸ軸、垂直方向をＹ軸とする。
【０１４６】
そして、ＣＣＤ画像センサ３２のＸ軸方向の画素数をＲｅｓＸ、Ｙ軸方向の画素数をＲｅｓＹと呼び、Ｘ−Ｙ平面に、結像レンズ３１を通してＣＣＤ画像センサ３２を投影した位置の上端をＹｆｔｏｐ、下端をＹｆｂｏｔｔｏｍ、左端をＸｆｓｔａｒｔ、右端をＸｆｅｎｄと呼ぶ。また、結像レンズ３１の光軸から、スリット光投光ユニット２０から出射される第１スリット光７１の光軸までの距離をＤ、第１スリット光７１がＸ−Ｙ平面に交差するＹ軸方向の位置をｌａｓ１、第２スリット光７２がＸ−Ｙ平面に交差するＹ軸方向の位置をｌａｓ２とする。
【０１４７】
このとき、第１スリット光の軌跡７１ａの画像の画素の１つに注目した注目点１のＣＣＤ画像センサ３２上の座標（ｃｃｄｘ１，ｃｃｄｙ１）に対応する３次元空間位置（Ｘ１，Ｙ１，Ｚ１）を、ＣＣＤ画像センサ３２の結像面上の点と、第１スリット光７１及び第２スリット光７２の出射点と、Ｘ−Ｙ平面に交差する点とで形成される三角形について立てた次の５つの連立方程式の解から導き出す。
（１）Ｙ１＝−（（ｌａｓ１＋Ｄ）／ＶＰ）Ｚ１＋ｌａｓ１
（２）Ｙ１＝−（Ｙｔａｒｇｅｔ／ＶＰ）Ｚ１＋Ｙｔａｒｇｅｔ
（３）Ｘ１＝−（Ｘｔａｒｇｅｔ／ＶＰ）Ｚ１＋Ｘｔａｒｇｅｔ
（４）Ｘｔａｒｇｅｔ＝Ｘｆｓｔａｒｔ＋（ｃｃｄｘ１／ＲｅｓＸ）×（Ｘｆｅｎｄ−Ｘｆｓｔａｒｔ）
（５）Ｙｔａｒｇｅｔ＝Ｙｆｔｏｐ―（ｃｃｄｙ１／ＲｅｓＹ）×（Ｙｆｔｏｐ−Ｙｆｂｏｔｔｏｍ）
尚、本実施例では、第１スリット光７１がＺ軸に対して平行のためｌａｓ１＝−Ｄであり、Ｙ１＝−Ｄである。
【０１４８】
同様に、ＣＣＤ画像センサ３２上の第２スリット光の軌跡７２ａの画像の画素の一つに注目した注目点２の座標（ｃｃｄｘ２，ｃｃｄｙ２）に対応する３次元空間位置（Ｘ２，Ｙ２，Ｚ２）を、次に５つの連立方程式の解から導き出す。
（１）Ｙ２＝−（（ｌａｓ２＋Ｄ）／ＶＰ）Ｚ２＋ｌａｓ２
（２）Ｙ２＝−（Ｙｔａｒｇｅｔ／ＶＰ）Ｚ２＋Ｙｔａｒｇｅｔ
（３）Ｘ２＝−（Ｘｔａｒｇｅｔ／ＶＰ）Ｚ２＋Ｘｔａｒｇｅｔ
（４）Ｘｔａｒｇｅｔ＝Ｘｆｓｔａｒｔ＋（ｃｃｄｘ２／ＲｅｓＸ）×（Ｘｆｅｎｄ−Ｘｆｓｔａｒｔ）
（５）Ｙｔａｒｇｅｔ＝Ｙｆｔｏｐ―（ｃｃｄｙ２／ＲｅｓＹ）×（Ｙｆｔｏｐ−Ｙｆｂｏｔｔｏｍ）
こうして算出されたスリット光の３次元空間位置を、三角測量演算結果格納部４３４へ書き込み、当該処理を終了する。
【０１４９】
次に、図１９を参照して、上述した原稿姿勢演算処理（図５のＳ１７０）を具体的に説明する。図１９は、原稿姿勢演算の際の座標系を説明するための図である。
【０１５０】
この原稿姿勢演算処理（Ｓ１７０）では、例えば、三角測量演算結果格納部４３４のデータから、第１スリット光の軌跡７１ａに対応する３次元空間位置の各点を回帰曲線近似した線を求め、この曲線のＸ軸方向の位置が「０」における点と、第２スリット光の軌跡７２ａのＸ軸方向の位置が「０」における３次元位置とを結ぶ直線を想定し、この直線がＺ軸と交わる点、つまり、光軸が原稿Ｐと交差する点を、原稿Ｐの３次元空間位置（０，０，Ｌ）とする（図１９（ａ）参照）。そして、この直線がＸ−Ｙ平面となす角を原稿ＰのＸ軸まわりの傾きθとする。
【０１５１】
また、図１９（ｂ）に示すように、第１スリット光の軌跡７１ａを回帰曲線近似した線を、先に求めたＸ軸まわりの傾きθ分だけ逆方向に回転変換し、つまり、原稿ＰをＸ−Ｙ平面に対して平行にした状態を考える。そして、図１９（ｃ）に示すように、原稿ＰのＸ軸方向の断面形状を、Ｘ−Ｚ平面における原稿Ｐの断面について、Ｚ軸方向の変位を複数のＸ軸方向の点で求めてその変位度から、Ｘ軸方向の位置を変数としたＸ軸方向の傾きの関数である湾曲φ（Ｘ）を求め、当該処理を終了する。
【０１５２】
次に、図２０を参照して、上述した平面変換処理（図５のＳ１８０）を具体的に説明する。図２０は平面変換処理を示すフローチャートである。
【０１５３】
平面変換処理では、まず、ＲＡＭ４３のワーキングエリア４３６に当該処理の処理領域を割り当て、当該処理に用いるカウンタｂの変数を初期値（ｂ＝０）に設定する（Ｓ１３００）。
【０１５４】
次に、原稿姿勢演算プログラム４２５での演算結果による原稿Ｐの位置Ｌと、傾きθと、湾曲φ（ｘ）とに基づき、スリット光無画像格納部４３２に格納されたスリット光無画像の４隅の点を、それぞれ、湾曲φ（ｘ）でＹ軸まわりに回転移動し、Ｘ軸まわりに傾きθだけ回転し、Ｚ軸方向に位置Ｌだけ移動した点で取成される矩形領域（つまり、原稿Ｐの文字等が書かれた面が略直交方向から観察されたような画像となる矩形領域）を設定すると共に、この矩形領域内に含まれる画素数ａを求める（Ｓ１３０１）。
【０１５５】
次に、設定された矩形領域を構成する各画素に対応するスリット光無画像上の座標を求めて、この座標周辺の画素情報から、平面画像の各画素の画素情報を設定する。つまり、まず、カウンタｂが画素数ａに到達したか否かを判断する（Ｓ１３０２）。その結果、カウンタｂが画素数ａに到達していなけば（Ｓ１３０２：Ｎｏ）、矩形領域を構成する１つの画素を、Ｙ軸を中心に湾曲φ（ｘ）回転移動させ（Ｓ１３０４）、Ｘ軸を中心に傾きθ回転移動させ（Ｓ１３０５）、Ｚ軸方向に距離Ｌだけシフトさせ（Ｓ１３０６）、求められた３次元空間位置を、先の３角測量の関係式により理想カメラで写されたＣＣＤ画像上の座標（ｃｃｄｃｘ，ｃｃｄｃｙ）に変換し（Ｓ１３０７）、使用している結像レンズ３１の収差特性に従って、公知のキャリブレーション手法により、実際のカメラで写されたＣＣＤ画像上の座標（ｃｃｄｘ，ｃｃｄｙ）に変換し（Ｓ１３０８）、この位置にあるスリット光無画像の画素の状態を求めて、ＲＡＭ４３のワーキングエリア４３６に格納する（Ｓ１３０９）。そして、次の画素について上述したＳ１３０３からＳ１３０９までの処理を実行すべく、カウンタｂに「１」を加算する（Ｓ１３０９）。
【０１５６】
こうして、Ｓ１３０８からＳ１３０９までの処理をカウンタｂが画素数ａになるまで繰り返すと（Ｓ１３０２：Ｙｅｓ）、Ｓ１３０１において、当該処理を実行するためにワーキングエリア４３６に割り当てた処理領域を開放して（Ｓ１３１０）、当該処理を終了する。
【０１５７】
以上説明したように、「撮像補正モード」における撮像装置１は、第１スリット光７１及び第２スリット光７２の２列のスリット光を原稿Ｐに投光し、その原稿Ｐを結像レンズ３１によってＣＣＤ画像センサ３２に結像させて撮像し、続けて、スリット光が投光されていない原稿Ｐの画像を撮像する。
【０１５８】
次に、この２つの撮像画像の内、スリット光が原稿Ｐに投光された状態を撮像したスリット光有画像から、スリット光の軌跡を抽出する場合には、スリット光の軌跡を構成する画素の一部の画素を検出し、その検出した画素からスリット光の軌跡に関する近似曲線を算出する。
【０１５９】
ここで、スリット光の軌跡を構成する画素の残り画素を検出するためのｃｃｄｙ方向の検出範囲は、この近似曲線に基づいて制限されるので、全体として、スリット光を構成する画素を検出するための処理を高速化できると共に、スリット光を含む画素が含まれる可能性が極めて高い範囲だけを検出するので、スリット光を構成する画素以外の画素を誤検出する可能性を低減でき、高精度にスリット光の軌跡を抽出することができる。
【０１６０】
こうしてスリット光の軌跡を抽出して、三角測量原理によりスリット光の軌跡各部の３次元空間位置を演算し、これらから原稿Ｐの位置、傾き、及び湾曲状態（３次元形状データ）を求め、これらの３次元形状データとスリット光無画像の画像データとをメモリカード５５に書込む。
【０１６１】
よって、撮像装置１によれば、使用者は、モード切替スイッチ５９を「補正撮像モード」側に切り換え、ファインダ５３、又は、ＬＣＤ５１で原稿Ｐの所望の範囲が撮像範囲に入っているか確認し、レリーズボタン５２を押して画像を撮影することによって、湾曲などの形状変形した原稿Ｐを斜めから撮像した場合でも、平らな原稿Ｐを正面から撮像したかのような画像データをカードメモリ５５に記憶させることができる。
【０１６２】
尚、カードメモリ５５に記憶された画像データは、ＬＣＤ５１で表示して撮像内容を確認したり、カードメモリ５５を撮像装置１から取り外して、外部のパーソナルコンピュータなどにより表示したり、印刷したりして用いることができる。
【０１６３】
上記実施例において、請求項１記載の第１領域設定手段や請求項１０記載の第１領域設定ステップとしては、図７のフローチャートのＳ７０９，Ｓ７１０の処理が該当する。請求項１記載の第１検出手段や請求項１０記載の第１検出ステップとしては、図７のフローチャートのＳ７１１からＳ７１５までの処理が該当する。請求項１記載の近似曲線算出手段や請求項１０記載の近似曲線算出ステップとしては、図９のフローチャートのＳ９０２の処理が該当する。請求項１記載の第２領域設定手段や請求項１０記載の第２領域設定ステップとしては、図９のフローチャートのＳ９０９，Ｓ９１０の処理が該当する。
【０１６４】
請求項３記載の検出位置設定手段としては、図９のフローチャートのＳ９０５の処理が該当する。請求項３記載の第２検出手段としては、図９のフローチャートのＳ９１１からＳ９１４，Ｓ９２３からＳ９２６の処理が該当する。請求項３記載の第１更新手段としては、図９のフローチャートのＳ９１５やＳ９２７の処理が該当する。
【０１６５】
請求項５記載の係数手段としては図９のフローチャートのＳ９１９，Ｓ９３１の処理が該当する。請求項５記載の判断手段や中止手段としては、図９のフローチャートのＳ９０８，Ｓ９２０の処理が該当する。
【０１６６】
請求項６記載の抽出手段としては図９のフローチャートのＳ９０３の処理が該当する。請求項７記載の第２更新手段としては、図９のフローチャートのＳ９０４の処理が該当する。
【０１６７】
以上実施例に基づき本発明を説明したが、本発明は上記実施例に何ら限定されるものでなく、本発明の主旨を逸脱しない範囲内で種々の改良変形が可能であることは容易に推察できるものである。
【０１６８】
例えば、上記実施例では、赤成分を主成分とするスリット光を抽出する場合について説明したが、主成分となる成分は赤成分に限定されるものではなく、緑成分、青成分を主成分とするスリット光であっても良い。例えば、赤成分を主成分とするスリット光に代えて緑成分を主成分とするスリット光を抽出する場合には、赤差分値Ｒｄ（＝Ｒ−（Ｇ＋Ｂ／２））に代えて、緑差分値Ｇｄ（＝Ｇ−（Ｒ＋Ｂ／２））を算出し、Ｒｄ・Ｙ値に代えてＧｄ・Ｙ値を採用することもできる。
【０１６９】
また、上記実施例では、赤差分値Ｒｄは、赤値Ｒから緑値Ｇと青値Ｂとの平均値を減算することにより算出していたが、赤差分値Ｒｄを算出する方法としては、赤値Ｒから緑値Ｇと青値Ｂとの重み付け平均を減算して算出するようにしても良い。例えば、Ｒｄ＝Ｒ−（２・Ｇ＋１・Ｂ）／３等の式により算出するようにしても良い。
【０１７０】
また、撮像装置１で撮像する対象物体は、シート状の原稿Ｐの他にも、個体ブロックの滑らかな表面であったり、場合によっては稜線をもつ物体の表面であっても良く、およそ２列のスリット光の軌跡から、その３次元空間における３次元形状を希求したい用途にはすべて同様に、対象物体の３次元形状を検出する効果を発揮することができる。
【０１７１】
但し、本実施例のように、対象物体がシート状の原稿Ｐであれば、第１スリット光の軌跡７１ａを原稿Ｐの断面形状であるとして、原稿Ｐの全体の形状を推定し、原稿Ｐの湾曲などの形状変形に対する画像補正をすることができる。また、対象物体がスリット光の長手方向に対する直交方向に略均一な３次元形状であれば、スリット光を投光する位置に含まれる対象物体の突起部など特異な形状により生じる検出姿勢のずれなどを考慮しなくて良く、スリット光が投光される箇所に気をつかわないでも良いようにできる。
【０１７２】
また、本実施例の撮像装置１では、スリット光投光ユニット２０が、第１スリット光７１と、第２スリット光７２の２列のスリット光を出射するように構成されているが、出射するスリット光は、２列に限らず、３列以上を出射するように構成されるものであっても良い。例えば、図１７（ｂ）に示す原稿Ｐのスリット光の軌跡画像のように、第１スリット光７１及び第２スリット光７２に加えて、第２スリット光７２と同様の第３スリット光が、原稿Ｐにて第２スリット光７２の上方に投光されるようにスリット光投光ユニット２０を構成すれば、第１〜第３スリット光のスリット光の軌跡の各点の位置から、原稿Ｐの縦方向の湾曲形状に対しても推定することができ、これによりスリット無し画像を補正して、更に見やすい画像とすることができる。
【０１７３】
また、本実施例では光源に、赤色レーザー光線を放射するレーザーダイオード２１を用いているが、その他、面発光レーザー、ＬＥＤ、ＥＬ素子など、光ビームを出力できるものであれば、いずれを用いるものであっても良い。
【０１７４】
また、透明平板２４に代えて、入射するレーザー光線のパワーの所定の割合を所定方向に回折する回折格子を１面に形成した透明平板で構成し、回折格子で回折された１次光のレーザー光線を第２スリット光７２とし、そのまま透過する０次光のレーザー光線を第１スリット光７１とするものでも良い。
【０１７５】
また、スリット光投光ユニット２０から出射されるスリット光は、長手方向に直交する方向に、急峻に絞り込まれた細線の他に、一定の幅を備えたストライプ状の光パターンでも良い。
【０１７６】
また、第１スリット光７１と、第２スリット光７２の位置関係は逆転しても良く、第１の方向つまり撮像装置１から見て下側に第２スリット光７２を、そして、第２の方向に第１スリットを形成すべく、各光学素子を配設しても良い。
【０１７７】
また、撮像装置１は、スリット光有画像及びスリット光無画像を、結像レンズ３１及びＣＣＤ画像センサ３２を用いて撮像するよう構成されている。これに対して、結像レンズ３１及びＣＣＤ画像センサ３２の他に、スリット光有画像を撮像するための結像レンズ及びＣＣＤ画像センサを別途追加して設けたもので合っても良い。このように構成することにより、スリット光有画像とスリット光無画像とを撮像する間の時間経過（ＣＣＤ画像センサ３２の画像データを転送する時間など）を無くすることができ、スリット光有画像に対してスリット光無画像の撮像範囲のずれが無く、検出する対象物体の３次元形状の精度が高いものとすることができる。但し、本実施例の撮像装置１の方が、構成部品が少なく、小型で安価なものとすることができる。
【図面の簡単な説明】
【０１７８】
【図１】（ａ）は撮像装置の外観斜視図であり、（ｂ）は撮像装置１の概略断面図である。
【図２】スリット光投光ユニットの構成を示す図である。
【図３】スリット光の角度幅を説明するための図である。
【図４】撮像装置の電気的構成を示したブロック図である。
【図５】プロセッサでの処理手順を示すフローチャートである。
【図６】スリット光軌跡抽出処理の原理を説明するための図である。
【図７】スリット光軌跡抽出処理を示すフローチャートである。
【図８】スリット光重心位置計算処理を示すフローチャートである。
【図９】近似曲線算出処理を示すフローチャートである。
【図１０】近似曲線を更新する場合の処理を示すフローチャートである。
【図１１】スリット光無画像内において対応画素を探索する際の探索範囲を設定する方法を説明するための図である。
【図１２】（ａ）は、スリット光が照射されている状態の原稿Ｐの撮像画像を示している。（ｂ）は、スリット光検出位置ｃＸにおける周辺画素を模式的に示した拡大図である。
【図１３】手ぶれ量を考慮してスリット光無画像内の探索範囲を設定する方法を説明するための図である。
【図１４】図１２（ａ）のＡ部分を模式的に示した拡大図である。
【図１５】図１２（ａ）のＢ部分を模式的に示した拡大図である。
【図１６】ファイルされた状態の原稿を撮像した撮像画像を示す図である。
【図１７】スリット光有画像を示した図である。
【図１８】３次元空間位置算出方法を説明するための図である。
【図１９】原稿姿勢演算の際の座標系を説明するための図である。
【図２０】平面変換処理を示すフローチャートである。
【符号の説明】
【０１７９】
１      撮像装置（３次元形状検出装置を含む）
２０      スリット光投光ユニット（スリット光投光手段）
２１      レーザーダイオード（光出力手段）
３２      ＣＣＤ画像センサ（撮像手段）
４２１    カメラ制御プログラム（撮像手段）
４２２    スリット光軌跡抽出プログラム
４２３    三角測量演算プログラム
４２４    原稿姿勢演算プログラム（３次元形状算出手段）
４２５    平面変換プログラム（平面画像補正手段）
４２９    近似曲線算出プログラム（近似曲線算出手段）
【図１】
2005148813.tif 000007
【図２】
2005148813.tif 000008
【図３】
2005148813.tif 000009
【図４】
2005148813.tif 000010
【図５】
2005148813.tif 000011
【図６】
2005148813.tif 000012
【図７】
2005148813.tif 000013
【図８】
2005148813.tif 000014
【図９】
2005148813.tif 000015
【図１０】
2005148813.tif 000016
【図１１】
2005148813.tif 000017
【図１２】
2005148813.tif 000018
【図１３】
2005148813.tif 000019
【図１４】
2005148813.tif 000020
【図１５】
2005148813.tif 000021
【図１６】
2005148813.tif 000022
【図１７】
2005148813.tif 000023
【図１８】
2005148813.tif 000024
【図１９】
2005148813.tif 000025
【図２０】
2005148813.tif 000026