(57)【特許請求の範囲】
【請求項１】
光を出射する複数の半導体発光素子と、その半導体発光素子により出射された光に対して空間変調を施して画像信号光を出力する空間変調素子と、その空間変調素子から出力される画像信号光を投影面に向けて投影する投影手段と、その投影手段から出力される画像信号光が投影される投影方向に配置される被写体に対して、前記投影手段から画像信号光としてのパターン光が投影されている状態を撮像する撮像手段と、その撮像手段によって撮像された撮像画像に基づき、前記被写体の３次元形状を検出する３次元形状検出手段とを備えた３次元形状検出装置において、
前記複数の半導体発光素子と前記空間変調素子との間に配置され、前記複数の半導体発光素子の各々と対応する複数のレンズ面を一体に形成され、前記半導体発光素子から出射される光を集光して、前記空間変調素子にその集光した光を出射する集光光学系を備え、
前記複数の半導体発光素子は、その複数の半導体発光素子を支持する基板上に少なくとも２つ以上の半導体素子を第１の方向において第１ピッチで一直線状に並べてなる半導体発光素子列を、少なくとも１列以上並列に並べ、且つ、前記半導体発光素子列と交わる第２の方向において第２ピッチで少なくとも２列以上並列に並べて配置されており、
前記第１ピッチは、半導体発光素子の１つから出射された光によって空間変調素子において形成される照度分布の半値全幅以下となるように配設され、
前記撮像手段は、前記パターン光として前記被写体に向けて明暗を交互に並べてなる縞状のパターン光が投影されている状態を撮像し、
前記３次元形状検出手段は、前記撮像手段によって撮像された撮像画像から各画素の輝度を算出した輝度画像を生成し、その輝度画像に基づいて各画素にコードが割当てられたコード画像を生成し、そのコード画像に基づいて前記パターン光の明暗の境界を示すコードの境界座標をサブピクセル精度で検出し、その検出したコードの境界座標に基づいて前記被写体の３次元形状を算出することを特徴とする３次元形状検出装置。
【請求項２】
前記第２ピッチは、前記第１ピッチと略同一に設定されていることを特徴とする請求項１に記載の３次元形状検出装置。
【請求項３】
前記半導体発光素子列は複数列からなり、互いに隣り合う２列の半導体発光素子列の各々の半導体発光素子は、千鳥状に配置されていることを特徴とする請求項１に記載の３次元形状検出装置。
【請求項４】
前記複数の半導体発光素子は、１の前記半導体発光素子列と、その１の半導体発光素子列の延びる方向に前記第１ピッチの略半分の距離だけずらした他の半導体発光素子列とを交互に、前記第１ピッチの略√３／２倍のピッチで並列に並べて配置されていることを特徴とする請求項１に記載の３次元形状検出装置。
【請求項５】
前記集光光学系の外周面と接触する弾性体を備えていることを特徴とする請求項１から４のいずれかに記載の３次元形状検出装置。
【請求項６】
前記複数の半導体発光素子の各々は、同一色を発光することを特徴とする請求項１から５のいずれかに記載の３次元形状検出装置。
【請求項７】
前記半導体発光素子は発光ダイオードであり、その各々から発光される発光色は、アンバー色であることを特徴とする請求項６に記載の３次元形状検出装置。
【請求項８】
前記投影手段は、樹脂製のレンズを含んで構成されていることを特徴とする請求項１から７のいずれかに記載の３次元形状検出装置。
【請求項９】
前記投影手段は、テレセントリックレンズで構成されていることを特徴とする請求項１から８のいずれかに記載の３次元形状検出装置。
【請求項１０】
前記空間変調素子は、板状のディスプレイによって構成され、そのディスプレイを構成する複数の画素は千鳥状に配置されていることを特徴とする請求項１から９のいずれかに記載の３次元形状検出装置。
【請求項１１】
前記撮像手段の幅広面と前記ディスプレイの幅広面とは略同一な方向に向いて配置されていることを特徴とする請求項１０に記載の３次元形状検出装置。
【請求項１２】
前記ディスプレイを構成する複数の画素は、そのディスプレイの長手方向に沿って一直線状に並べられた１の画素列と、その１の画素列とはディスプレイの長手方向に所定間隔ずれた他の画素列とを交互に並列に並べて配置されており、
前記撮像手段は、そのディスプレイとは所定間隔を開けて、その長手方向側に配置されていることを特徴とする請求項１０または１１に記載の３次元形状検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体発光素子から空間変調素子に照射される光の照度ムラを抑制し、投影面に高品質の画像を投影することができる３次元形状検出装置に関する。
【背景技術】
【０００２】
従来より、光源から出射される光を集光光学系によって集光し、その集光された光に空間変調素子によって画像信号に応じた空間変調が施して、その空間変調を施した光を画像信号光として投影手段を介して投影面に投影することで、任意の画像を投影面に投影する投影装置が知られている。
【０００３】
しかし、この投影装置の光源としては、従来、キセノンランプ、ハロゲンランプ、メタルハライドランプ等が使用されていたため、光源としての寿命が短い上オンオフ変調ができないので連続点灯することを余儀なくされ、消費電力が大きいという問題点があった。
【０００４】
そこで、この問題を解決すべく、次の特許文献１や特許文献２には投影装置の光源として半導体発光素子、具体的には、発光ダイオード（以下「ＬＥＤ」と称す）を用いる技術が開示されている。
【０００５】
投影装置の光源としてＬＥＤを用いることにより、光源の長寿命化、低消費電力化を図ることができることに加え、ＬＥＤの出力光は、指向性が強く、発光面積も小さいため、集光効率が高まり、結果的に光利用効率を向上させることができる。
【特許文献１】特開１１−３２２７８号公報
【特許文献２】特開１１−２３１３１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した投影装置の光源としてＬＥＤを用いた場合であっても、そのＬＥＤの配列、配置の仕方によっては、空間変調素子に対して略均一に光を発光することができず、照度ムラが生じ、結果的に投影面に投影される画像の品質が低下するという問題点があった。
【０００７】
本発明は、上述した問題点を解決するためになされたものであり、半導体発光素子から空間変調素子に照射される光の照度ムラを抑制し、投影面に高品質の画像を投影することができる３次元形状検出装置を提供することを目的としている。
【課題を解決するための手段】
【０００８】
この目的を達成するために請求項１記載の３次元形状検出装置は、光を出射する複数の半導体発光素子と、その半導体発光素子により出射された光に対して空間変調を施して画像信号光を出力する空間変調素子と、その空間変調素子から出力される画像信号光を投影面に向けて投影する投影手段とその投影手段から出力される画像信号光が投影される投影方向に配置される被写体に対して、前記投影手段から画像信号光としてのパターン光が投影されている状態を撮像する撮像手段と、その撮像手段によって撮像された撮像画像に基づき、前記被写体の３次元形状を検出する３次元形状検出手段とを備え、前記複数の半導体発光素子と前記空間変調素子との間に配置され、前記複数の半導体発光素子の各々と対応する複数のレンズ面を一体に形成され、前記半導体発光素子から出射される光を集光して、前記空間変調素子にその集光した光を出射する集光光学系を備え、前記複数の半導体発光素子は、その複数の半導体発光素子を支持する基板上に少なくとも２つ以上の半導体素子を第１の方向において第１ピッチで一直線状に並べてなる半導体発光素子列を、少なくとも１列以上並列に並べ、且つ、前記半導体発光素子列と交わる第２の方向において第２ピッチで少なくとも２列以上並列に並べて配置されており、前記第１ピッチは、半導体発光素子の１つから出射された光によって空間変調素子において形成される照度分布の半値全幅以下となるように配設され、前記撮像手段は、前記パターン光として前記被写体に向けて明暗を交互に並べてなる縞状のパターン光が投影されている状態を撮像し、前記３次元形状検出手段は、前記撮像手段によって撮像された撮像画像から各画素の輝度を算出した輝度画像を生成し、その輝度画像に基づいて各画素にコードが割当てられたコード画像を生成し、そのコード画像に基づいて前記パターン光の明暗の境界を示すコードの境界座標をサブピクセル精度で検出し、その検出したコードの境界座標に基づいて前記被写体の３次元形状を算出する。
【０００９】
請求項２記載の３次元形状検出装置は、請求項１記載の３次元形状検出装置において、前記第２ピッチは、前記第１ピッチと略同一に設定されている。
【００１０】
請求項３記載の３次元形状検出装置は、請求項１記載の３次元形状検出装置において、前記半導体発光素子列は複数列からなり、互いに隣り合う２列の半導体発光素子列の各々の半導体発光素子は、千鳥状に配置されている。
【００１１】
請求項４記載の３次元形状検出装置は、請求項１に記載の３次元形状検出装置において、前記複数の半導体発光素子は、１の前記半導体発光素子列と、その１の半導体発光素子列の延びる方向に前記第１ピッチの略半分の距離だけずらした他の半導体発光素子列とを交互に、前記第１ピッチの略√３／２倍のピッチで並列に並べて配置されている。
【００１２】
【００１３】
【００１４】
【００１５】
【００１６】
【００１７】
【００１８】
【００１９】
【００２０】
請求項５記載の３次元形状検出装置は、請求項１から４のいずれかに記載の３次元形状検出装置において、前記集光光学系の外周面と接触する弾性体を備えている。
【００２１】
請求項６記載の３次元形状検出装置は、請求項１から５のいずれかに記載の３次元形状検出装置において、前記複数の半導体発光素子の各々は、同一色を発光する。
【００２２】
請求項７記載の３次元形状検出装置は、請求項６に記載の３次元形状検出において、前記複数の半導体発光素子は発光ダイオードであり、その各々から発光される発光色は、アンバー色である。
【００２３】
請求項８記載の３次元形状検出装置は、請求項１から７のいずれかに記載の３次元形状検出装置において、前記投影手段は、樹脂製のレンズを含んで構成されている。
【００２４】
請求項９記載の３次元形状検出装置は、請求項１から８のいずれかに記載の３次元形状検出装置において、前記投影手段は、テレセントリックレンズで構成されている。
【００２５】
請求項１０記載の３次元形状検出装置は、請求項１から９のいずれかに記載の３次元形状検出装置において、前記空間変調素子は、板状のディスプレイによって構成され、そのディスプレイを構成する複数の画素は千鳥状に配置されている。
【００２６】
請求項１１記載の３次元形状検出装置は、請求項１０に記載の３次元形状検出装置において、前記撮像手段の幅広面と前記ディスプレイの幅広面とは略同一な方向に向いて配置されている。
【００２７】
【００２８】
【００２９】
【００３０】
請求項１２記載の３次元形状検出装置は、請求項１０または１１に記載の３次元形状検出装置において、前記ディスプレイを構成する複数の画素は、そのディスプレイの長手方向に沿って一直線状に並べられた１の画素列と、その１の画素列とはディスプレイの長手方向に所定間隔ずれた他の画素列とを交互に並列に並べて配置されており、
前記撮像手段は、そのディスプレイとは所定間隔を開けて、その長手方向側に配置されている。
【発明の効果】
【００３１】
請求項１記載の３次元形状検出装置によれば、複数の半導体発光素子の各々と対応する複数のレンズ面を一体に形成され、半導体発光素子から出射される光を集光して、空間変調素子にその集光した光を出射する集光光学系を備えているので、半導体発光素子から出射される光を効率良く空間変調素子に照射することができる。よって、省電力で駆動させることができ、節電化、ランニングコストの減少化を図り、更に、部品の点数を削減することができ、結果的に装置の製造コストを低減することができるという効果がある。また、複数の半導体発光素子は、その複数の半導体発光素子を支持する基板上に少なくとも２つ以上の半導体素子を第１の方向において第１ピッチで一直線状に並べてなる半導体発光素子列を、少なくとも１列以上並列に並べ、且つ、前記半導体発光素子列と交わる第２の方向において第２ピッチで少なくとも２列以上並列に並べて配置されており、前記第１ピッチは、半導体発光素子の１つから出射された光によって空間変調素子において形成される照度分布の半値全幅以下となるように配設されているので、隣接する半導体発光素子間における照度の低下を抑制することができる。よって、空間変調素子における照度ムラは抑制され、略均一な光を空間変調素子に照射することができる。従って、結果的に高品質な画像を投影面に投影することができるという効果がある。
【００３２】
請求項２記載の３次元形状検出装置によれば、請求項１に記載の３次元形状検出装置の奏する効果に加え、半導体発光素子列は、第１ピッチと略同一の第２ピッチで少なくとも２列以上並列に並べて配置されているので、並列に並ぶ方向における半導体発光素子間における照度の低下をも抑制することができる。よって、隣接する半導体素子間における照度の低下を、交互に交わる２方向つまりこれらを含む平面内において全面的に抑制することができるという効果がある。
【００３３】
請求項３に記載の３次元形状検出装置によれば、請求項１に記載の３次元形状検出装置の奏する効果に加え、前記半導体発光素子列は複数列からなり、互いに隣り合う２列の半導体発光素子列の各々の半導体発光素子は、千鳥状に配置されているので、１の半導体発光素子とその周りの半導体発光素子との間における照度の低下をも抑制することができるという効果がある。
【００３４】
請求項４記載の３次元形状検出装置によれば、請求項１に記載の３次元形状検出装置の奏する効果に加え、複数の半導体発光素子は、１の前記半導体発光素子列と、その１の半導体発光素子列の延びる方向に前記第１ピッチの略半分の距離だけずらした他の半導体発光素子列とを交互に、前記第１ピッチの略√３／２倍のピッチで並列に並べて配置されているので、１の半導体発光素子とその周りの半導体発光素子との間における照度の低下をも抑制することができるという効果がある。
【００３５】
【００３６】
【００３７】
【００３８】
【００３９】
【００４０】
【００４１】
【００４２】
【００４３】
請求項５記載の３次元形状検出装置によれば、請求項１から４のいずれかに記載の３次元形状検出装置の奏する効果に加え、集光光学系の外周面と接触する弾性体を備えているので、組立時や運搬時における衝撃等を弾性体によって吸収することができる。また、半導体発光素子を正しい位置に配設されるように付勢することができる。よって、組立時や運搬時の衝撃の影響で集光光学系の位置が正規の位置からズレて、空間変調手段に対して垂直な方向に光が出射されない為に、投影光学系へ高い効率でカップリングできなくなるという不具合が生ずるのを防止することができるという効果がある。
【００４４】
請求項６記載の３次元形状検出装置によれば、請求項１から５のいずれかに記載の３次元形状検出装置の奏する効果に加え、複数の半導体発光素子の各々は、同一色を発光するので、投影手段において複数色の発光色を発光させる場合に生ずる色収差の補正を考慮する必要はなく、色収差を補正するために複雑な色消しレンズを採用する必要がない。よって、簡単な面構成および安価な材料の投影手段を提供することができるという効果がある。
【００４５】
請求項７記載の３次元形状検出装置によれば、請求項６に記載の３次元形状検出装置の奏する効果に加え、複数の発光ダイオードの各々から発光される発光色は、アンバー色であり、他の色を発光させる場合に比べて、電気を光に変換する効率（電気光変換効率）を高めることができる。よって、省電力で駆動でき、節電化、長寿命化を図ることができるという効果がある。
【００４６】
請求項８記載の３次元形状検出装置によれば、請求項１から７のいずれかに記載の３次元形状検出装置の奏する効果に加え、投影手段は、樹脂製のレンズを含んで構成されているので、半導体発光素子からの光を、全てガラスからなる投影手段で構成した場合と比較して、軽量で、安価な光学系を構成することができるという効果がある。
【００４７】
請求項９記載の３次元形状検出装置によれば、請求項１から８のいずれかに記載の３次元形状検出装置の奏する効果に加え、投影手段はテレセントリックレンズで構成されているので、その瞳の位置は無限にあり、空間変調素子を略垂直に透過した光のみをカップリングして投影することができる。よって、空間変調素子を照度ムラなく投影することができるという効果がある。
【００４８】
【００４９】
請求項１０記載の３次元形状検出装置によれば、請求項１から９のいずれかに記載の３次元形状検出装置の奏する効果に加え、空間変調素子であるディスプレイを構成する複数の画素は、千鳥状に配置されているので、例えば、被写体の３次元形状を検出すべく、被写体に向けて明暗を交互に並べてなる縞状のパターン光を投光する場合に、その縞方向を投影ＬＣＤ１９の短手方向に一致させることで、明暗の境界を１／２ピッチで制御することができるので、高精度に３次元の形状を検出することができるという効果がある。
【００５０】
請求項１１記載の３次元形状検出装置によれば、請求項１０に記載の３次元形状検出装置の奏する効果に加え、撮像手段の幅広面とディスプレイの幅広面とは略同一の方向に向いて配置されているので、ディスプレイから投影面に投影されている画像を撮像手段に結像させる場合に、その投影画像の全容を効率良く、そして高解像度で撮像手段に結像させることができるという効果がある。
【００５１】
【００５２】
【００５３】
【００５４】
請求項１２記載の３次元形状検出装置によれば、請求項１０または１１に記載の３次元形状検出装置の奏する効果に加え、ディスプレイを構成する複数の画素は、そのディスプレイの長手方向に沿って一直線状に並べられた１の画素列と、その１の画素列とはディスプレイの長手方向に所定間隔ずれた他の画素列とを交互に並列に並べて配置されており、撮像手段は、そのディスプレイとは所定間隔を開けて、その長手方向側に配置されているので、例えば、三角測量の原理を利用して被写体の３次元形状を検出する場合には、投影手段から被写体へ投影するパターン光の軌跡の傾きをディスプレイの画素の１／２ピッチで制御することができる。よって、高精度に３次元の形状を検出することができるという効果がある。
【発明を実施するための最良の形態】
【００５５】
以下、本発明の好ましい実施例について、添付図面を参照して説明する。図１は、画像入出力装置１の外観斜視図である。尚、本発明の３次元形状検出装置は、この画像入出力装置１に含まれる装置である。
【００５６】
画像入出力装置１は、デジタルカメラとして機能するデジカメモード、ウェブカメラとして機能するｗｅｂｃａｍモード、３次元形状を検出して立体画像を取得するための立体画像モード、湾曲した原稿等を平面化した平面化画像を取得するための平面化画像モード等の種々のモードを備えた装置である。
【００５７】
図１では、特に、立体画像モードや平面化画像モードにおいて、被写体としての原稿Ｐの３次元形状を検出するために、後述する画像投影部１３から明暗を交互に並べてなる縞状のパターン光を投影している様子を図示している。
【００５８】
画像入出力装置１は、略箱状に形成された撮像ヘッド２と、その撮像ヘッド２と一端が連結されたパイプ状のアーム部材３と、そのアーム部材３の他端と連結され、平面視略Ｌ型に形成されたベース４とを備えている。
【００５９】
撮像ヘッド２は、その内部に後述する画像投影部１３や画像撮像部１４を内包するケースである。撮像ヘッド２の正面には、その中央部に筒状の鏡筒５と、鏡筒５の斜め上方にファインダ６と、そのファインダ６の反対側にフラッシュ７とが配置されている。また、ファインダ６とフラッシュ７との間に、後述する画像撮像部１４の一部である撮像光学系２１のレンズの一部が外面に露出しており、この露出部分から被写体の画像が入力される。
【００６０】
鏡筒５は、撮像ヘッド２の正面から突出し、その内部に画像投影部１３の一部である投影光学系２０を内包するカバーである。この鏡筒５によって、投影光学系２０が保持され、全体を焦点調節のため移動可能とされ、且つ、傷つくのが防止されている。また、鏡筒５端面からは、画像投影部１３の一部である投影光学系２０のレンズの一部が外面に露出しており、この露出部分から投影面に向かって画像信号光が投影される。
【００６１】
ファインダ６は、撮像ヘッド２の背面から正面を通して配設される光学レンズで構成されている。撮像装置１の背面から使用者がのぞき込んだ時に、撮像光学系２１がＣＣＤ２２上に結像する範囲とほぼ一致する範囲が見えるようになっている。
【００６２】
フラッシュ７は、例えば、デジカメモードにおいて、必要な光量を補足するための光源であり、キセノンガスが充填された放電管で構成されている。よって、撮像ヘッド２に内蔵されているコンデンサ（図示せず）からの放電により繰り返し使用することができる。
【００６３】
また、撮像ヘッド２の上面には、手前側にレリーズボタン８と、そのレリーズボタン８の奥方にモード切替スイッチ９と、モード切替スイッチ９の反対側にモニタＬＣＤ１０とが配置されている。
【００６４】
レリーズボタン８は、「半押し状態」と「全押し状態」との２種類の状態に設定可能な２段階の押しボタン式のスイッチで構成されている。レリーズボタン８の状態は後述するプロセッサ１５に管理されており、「半押し状態」で周知のオートフォーカス（ＡＦ）および自動露出（ＡＦ）機能が起動し、ピント、絞り、シャッタスピードが調節され、「全押し状態」で撮像等が行われる。
【００６５】
モード切替スイッチ９は、デジカメモード、ｗｅｂｃａｍモード、立体画像モード、平面化画像モード、オフモード等の種々のモードに設定可能なスイッチである。モード切替スイッチ９の状態はプロセッサ１５に管理されており、モード切替スイッチ９の状態がプロセッサ１５によって検出されることで各モードの処理が実行される。
【００６６】
モニタＬＣＤ１０は、液晶ディスプレイ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）で構成されており、プロセッサ１５からの画像信号を受けて画像を使用者に表示する。例えば、モニタＬＣＤ１０には、デジカメモードやｗｅｂｃａｍモードにおける撮像画像や、立体画像モードにおける３次元形状検出結果画像、平面化画像モードにおける平面化画像等が表示される。
【００６７】
更に、撮像ヘッド２の側面には、その上方にＲＦ（無線）インターフェイスとしてのアンテナ１１と、撮像ヘッド２とアーム部材３とを連結する連結部材１２とが配置されている。
【００６８】
アンテナ１１は、後述するＲＦドライバ２４を介してデジカメモードで取得した撮像画像データや立体画像モードで取得した立体画像データ等を外部インターフェイスに無線通信によって送信するものである。
【００６９】
連結部材１２は、内周面に雌ねじが形成されたリング状に形成され、撮像ヘッド２の側面に回動可能に固定されている。また、アーム部材３の一端側には雄ねじが形成されている。この雌ねじと雄ねじとを嵌合させることで、撮像ヘッド２とアーム部材３とを着脱自在に連結することができると共に、撮像ヘッド２を任意の角度で固定することができるようになっている。従って、撮像ヘッド２を取り外し、通常のデジカメ（デジタルカメラ）として使用できる。
【００７０】
アーム部材３は、撮像ヘッド２を所定の撮像位置に変化可能に保持するためのものであり、任意の形状に屈曲可能な蛇腹状のパイプで構成されている。よって撮像ヘッド２を任意の位置に向けることができる。
【００７１】
ベース４は、机上等の載置台に載置され、撮像ヘッド２とアーム部材３とを支持するものである。平面視略Ｌ字型に形成されているので、安定して撮像ヘッド２等を支持することができる。また、ベース４とアーム部材３とは着脱自在に連結されているので、持ち運びに便利であり、省スペースで収納することもできる。
【００７２】
図２は、撮像ヘッド２の内部構成を模式的に示す図である。撮像ヘッド２の内部には、主に、画像投影部１３と、画像撮像部１４と、プロセッサ１５とが内蔵されている。
【００７３】
画像投影部１３は、投影面に任意の投影画像を投影するためのユニットであり、投影方向に沿って、基板１６と、複数個のＬＥＤ１７（その総称として以下「ＬＥＤアレイ１７Ａ」という）と、光源レンズ１８と、投影ＬＣＤ１９と、投影光学系２０とを備えている。尚、この画像投影部１３については、図３において詳細に説明する。
【００７４】
画像撮像部１４は、被写体としての原稿Ｐを撮像するためのユニットであり、光の入力方向に沿って、撮像光学系２１と、ＣＣＤ２２とを備えている。
【００７５】
撮像光学系２１は、複数枚のレンズで構成され、周知のオートフォーカス機能を有し、自動で焦点距離及び絞りを調整して外部からの光をＣＣＤ２２上に結像する。
【００７６】
ＣＣＤ２２は、ＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）素子などの光電変換素子をマトリクス状に配列して構成され、撮像光学系２１を介して表面に結像される画像の光の色及び強さに応じた信号を生成し、これをデジタルデータに変換してプロセッサ１５に出力する。
【００７７】
プロセッサ１５には、フラッシュ７、レリーズボタン８、モード切替スイッチ９、モニタＬＣＤドライバ２３を介してモニタＬＣＤ１０、ＲＦドライバ２４を介してアンテナ１１、電源インターフェイス２５を介してバッテリ２６、外部メモリ２７、キャッシュメモリ２８、光源ドライバ２９を介してＬＥＤアレイ１７Ａ、投影ＬＣＤドライバ３０を介して投影ＬＣＤ１９、ＣＣＤインターフェイス３１を介してＣＣＤ２２の各々が電気的に接続され、プロセッサ１５によって管理されている。
【００７８】
外部メモリ２７は、着脱自在なフラッシュＲＯＭであり、デジカメモードやｗｅｂｃａｍモード、そして立体画像モードにおいて撮像した撮像画像や３次元情報を記憶する。具体的には、ＳＤカード、コンパクトフラッシュ（登録商標）カード等を使用することができる。
【００７９】
キャッシュメモリ２８は、高速な記憶装置である。例えば、デジカメモードにおいて撮像した撮像画像を高速でキャッシュメモリ２８に転送し、プロセッサ１５で画像処理を行ってから外部メモリ２７に格納されるように使われる。具体的には、ＳＤＲＡＭ、ＤＤＲＲＡＭ等を使用することができる。
【００８０】
尚、電源インターフェイス２５はバッテリ２６を、光源ドライバ２９はＬＥＤアレイ１７Ａを、投影ＬＣＤドライバ３０は投影ＬＣＤ１９を、ＣＣＤインターフェイス３１はＣＣＤ２２を各々制御する各種のＩＣ（Integrated Circuit：集積回路）によって構成されている。
【００８１】
図３（ａ）は画像投影部１３の拡大図であり、（ｂ）は光源レンズ１８の平面図であり、（ｃ）は投影ＬＣＤ１９とＣＣＤ２２との配置関係を示す図である。  上述した通り、画像投影部１３は、投影方向に沿って、基板１６と、ＬＥＤアレイ１７Ａと、光源レンズ１８と、投影ＬＣＤ１９と、投影光学系２０とを備えている。
【００８２】
基板１６は、ＬＥＤアレイ１７Ａを実装すると共に、ＬＥＤアレイ１７Ａとの電気的な配線をするためのものである。具体的には、アルミ製基板に絶縁樹脂を塗布してから無電解メッキにてパターンを形成したものやカラエポ基材をコアとする単層または多層構造の基板を使用することができる。
【００８３】
ＬＥＤアレイ１７Ａは、投影ＬＣＤ１９に向けて放射状の光を発光する光源であり、基板１６上に、複数個のＬＥＤ１７（発光ダイオード）が千鳥状に配列され、銀ペーストを介して接着されている。また、ボンディングワイヤを介して電気的に結線されている。
【００８４】
このように光源として複数個のＬＥＤ１７を使用することで、光源として白熱電球、ハロゲンランプ等を使用する場合に比べて、電気を光に変換する効率（電気光変換効率）を高め、同時に赤外線や紫外線の発生を抑えることができる。よって、省電力で駆動でき、節電化、長寿命化を図ることができる。また、装置の温度上昇を低減させることができる。
【００８５】
この様に、ＬＥＤ１７はハロゲンランプ等に比べて熱線の発生が極めて低いので、後述する光源レンズ１８や投影光学系２０として、樹脂製のレンズを採用することができる。よって、ガラス製のレンズを採用する場合に比べて、光源レンズ１８、投影光学系２０を安価で軽量に構成することができる。
【００８６】
また、ＬＥＤアレイ１７Ａを構成する各ＬＥＤ１７は、各々同じ発光色を発光するもので、材料にＡｌ、Ｉｎ、Ｇａ、Ｐの４元素を用いたアンバー色を発光するもので構成されている。よって、複数色の発光色を発光させる場合に生ずる色収差の補正を考慮する必要はなく、色収差を補正するために投影光学系２０として色消しレンズを採用する必要はないので、投影光学系２０の設計の自由度を向上させることができる。
【００８７】
また、他の発光色に比べて電気光変換率が約８０ｌｕｍｅｎ／Ｗと高い４元素材料のアンバー色ＬＥＤを採用することで、一層、高輝度、節電、長寿命化を図ることができる。尚、各ＬＥＤ１７を千鳥状に配置する事に関する効果については、図４を参照して説明する。
【００８８】
具体的には、ＬＥＤアレイ１７Ａは５９個のＬＥＤ１７からなり、各ＬＥＤ１７は５０ｍＷ（２０ｍＡ，２．５Ｖ）で駆動され、結局、全５９個のＬＥＤ１７は略３Ｗの消費電力で駆動される。また、各ＬＥＤ１７から発光される光が、光源レンズ１８、投影ＬＣＤ１９を通過して投影光学系２０から照射される場合の光束値としての明るさは、全面照射の場合であっても２５ＡＮＳＩルーメン程度に設定されている。
【００８９】
この明るさを採用することで、例えば、立体画像モードにおいて、人や動物の顔面等の被写体の３次元形状を検出する場合に、人や動物に眩しさを与えず、人や動物が目をつぶっていない状態の３次元形状を検出することができる。
【００９０】
光源レンズ１８は、ＬＥＤアレイ１７Ａから放射状に発光される光を集光する集光光学系としてのレンズであり、その材質はアクリルに代表される光学樹脂で構成されている。
【００９１】
具体的には、光源レンズ１８は、ＬＥＤアレイ１７Ａの各ＬＥＤ１７に対向する位置に投影ＬＣＤ１９側に向けて凸設された凸状のレンズ部１８ａと、そのレンズ部１８ａを支持するベース部１８ｂと、そのベース部１８ｂの内部空間であってＬＥＤアレイ１７Ａを内包する開口に充填されるＬＥＤ１７の封止および基板１６と光源レンズ１８との接着を目的としたエポキシ封止材１８ｃと、ベース部１８ｂから基板１６側に突設され、光源レンズ１８と基板１６とを接続する位置決めピン１８ｄとを備えている。
【００９２】
光源レンズ１８は、開口の内部にＬＥＤアレイ１７Ａを内包させつつ、基板１６に穿設されている長孔１６に位置決めピン１８ｄを差込み、基板１６上に固定される。
【００９３】
よって、省スペースで光源レンズ１８を配置することができる。また、基板１６にＬＥＤアレイ１７Ａを実装するという機能の他に、光源レンズ１８を支持するという機能を兼任させることで、光源レンズ１８を支持する部品を別途必要とせず、部品の点数を削減することができる。
【００９４】
また、各レンズ部１８ａは、ＬＥＤアレイ１７Ａの各ＬＥＤ１７と１対１の関係で対向する位置に配置されている。
【００９５】
よって、各ＬＥＤ１７から発光される放射状の光は、各ＬＥＤ１７に対向する各レンズ部１８ａによって効率良く集光され、図に示すような指向性の高い放射光として投影ＬＣＤ１９に照射される。この様に指向性を高めたのは、投影ＬＣＤ１９に略垂直に光を入射することによって、面内の透過率ムラが抑制され得るためである。また同時に、投影光学系２０は、テレセントリック特性を持ち、その入射ＮＡが０．１程度であるため、垂直ア５ー以内の光のみが内部の絞りを通過できるように規制されているためである。従って、ＬＥＤ１７からの光を出射角度を垂直に揃え、且つ、±５°にほとんどの光束を入れることが画質向上の要点となる。
【００９６】
投影ＬＣＤ１９は、光源レンズ１８を通過して集光された光に空間変調を施して、投影光学系２０に向けて画像信号光を出力する空間変調素子であって、具体的には、縦横の比率の異なる板状の液晶ディスプレイ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）で構成されている。
【００９７】
また、（Ｃ）に示すように、この投影ＬＣＤ１９を構成する各画素は、その液晶ディスプレイの長手方向に沿って一直線状に並べられた１の画素列と、その１の画素列とは液晶ディスプレイの長手方向に所定間隔ずれた他の画素列とを交互に並列に並べて配置されている。
【００９８】
尚、（Ｃ）は紙面手前側に撮像ヘッド２の正面を向け、紙面裏側から光が投影ＬＣＤ１９に向けて照射され、紙面手間側からＣＣＤ２２に被写体像が結像される状態であるとする。
【００９９】
このように、投影ＬＣＤ１９を構成する画素を長手方向に千鳥状に配置することで、長手方向と直交する方向（短手方向）において、投影ＬＣＤ１９によって空間変調が施される光を１／２ピッチで制御することができる。従って、細いピッチで投影パターンを制御でき、分解能を上げて高精度に３次元の形状を検出することができる。
【０１００】
特に、後述する立体画像モードや平面化画像モードにおいて、被写体の３次元形状を検出すべく、被写体に向けて明暗を交互に並べてなる縞状のパターン光を投光する場合に、その縞方向を投影ＬＣＤ１９の短手方向に一致させることで、明暗の境界を１／２ピッチで制御することができるので、同様に高精度に３次元の形状を検出することができる。
【０１０１】
また、撮像ヘッド２の内部において、投影ＬＣＤ１９とＣＣＤ２２とは、（Ｃ）に示すような関係で配置される。具体的には、投影ＬＣＤ１９の幅広面とＣＣＤ２２の幅広面とは略同一の方向に向いて配置されているので、投影ＬＣＤ１９から投影面に投影されている画像をＣＣＤ２２に結像させる場合に、投影画像をハーフミラー等で屈曲させることなく、そのままの状態で投影画像を結像させることができる。
【０１０２】
また、ＣＣＤ２２は、投影ＬＣＤ１９の長手方向側（画素列が延びる方向側）に配置されている。よって、特に、立体画像モードや平面化画像モードにおいて、三角測量の原理を利用して被写体の３次元形状を検出する場合には、ＣＣＤ２２と被写体とのなす傾きを１／２ピッチで制御することができるので、同様に高精度に３次元の形状を検出することができる。
【０１０３】
投影光学系２０は、投影ＬＣＤ１９を通過した画像信号光を投影面に向けて投影する複数のレンズであり、ガラス及び樹脂の組み合わせからなるテレセントリックレンズで構成されている。テレセントリックとは、投影光学系２０を通過する主光線は、入射側の空間では光軸に平行になり、射出瞳の位置は無限になる構成をいう。このようにテレセントリックにすることで、前述のように投影ＬＣＤ１９を垂直±５°で通過する光のみを投影し得るので、画質を向上させることができる。
【０１０４】
図４は、ＬＥＤアレイ１７Ａの配列に関する説明をするための図である。（ａ）は光源レンズ１８を通過した光の照度分布を示す図であり、（ｂ）はＬＥＤアレイ１７Ａの配列状態を示す平面図であり、（ｃ）は投影ＬＣＤ１９面における合成照度分布を示す図である。
【０１０５】
（ａ）に示すように、光源レンズ１８を通過した光は、半値拡がり半角θ（＝略５゜）で、（ａ）左側に図示するような照度分布を有する光として投影ＬＣＤ１９の表面に到達するように設計されている。
【０１０６】
また、（ｂ）に示すように、複数のＬＥＤ１７は基板上１６に千鳥状に配列されている。具体的には、複数個のＬＥＤ１７をｄピッチで直列に並べたＬＥＤ列を、√３／２ｄピッチで並列に並べ、更に、そのＬＥＤ列を１列おきに同じ方向に１／２ｄ移動させた状態になるように配置されている。
【０１０７】
換言すれば、１のＬＥＤ１７と、その１のＬＥＤ１７の周辺のＬＥＤ１７との間隔はｄになるように設定されている（三角格子配列）。
【０１０８】
そして、このｄの長さは、ＬＥＤ１７の１つから出射された光によって投影ＬＣＤ１９において形成される照度分布の半値全幅（ＦＷＨＭ（Full  Width  Half  Maximum））以下となる様に決定されている。
【０１０９】
よって、光源レンズ１８を通過して投影ＬＣＤ１９の表面に到達する光の合成照度分布は、（ｃ）に示すように小さなリップルを含んだ略直線状になり、投影ＬＣＤ１９の面に略均一に光を照射することができる。従って、投影ＬＣＤ１９における照度ムラを抑制することができ、結果的に、高品質な画像を投影することができる。
【０１１０】
図５は、画像入出力装置１の電気的なブロック図である。尚、既に上述した構成ついては、その説明を省略する。プロセッサ１５は、ＣＰＵ３５と、ＲＯＭ３６と、ＲＡＭ３７とを備えている。
【０１１１】
ＣＰＵ３５は、ＲＯＭ３６に記憶されたプログラムによる処理に応じて、ＲＡＭ３７を利用して、レリーズボタン８の押下げ操作の検知、ＣＣＤ２２から画像データの取り込み、その画像データの転送、格納、モード切替スイッチ９の状態の検出等の各種処理を行う。
【０１１２】
ＲＯＭ３６には、カメラ制御プログラム３６ａと、パターン光撮影プログラム３６ｂと、輝度画像生成プログラム３６ｃと、コード画像生成プログラム３６ｄと、コード境界抽出プログラム３６ｅと、レンズ収差補正プログラム３６ｆと、三角測量演算プログラム３６ｇと、原稿姿勢演算プログラム３６ｈと、平面変換プログラム３６ｉとが格納されている。
【０１１３】
カメラ制御プログラム３６ａは、図６に示すメイン処理を含む撮像装置１全体の制御に関するプログラムである。
【０１１４】
パターン光撮影プログラム３６ｂは、原稿Ｐの３次元形状を検出するために被写体にパターン光を投影した状態と、投影していない状態とを撮像するプログラムである。
【０１１５】
輝度画像生成プログラム３６ｃは、パターン光撮影プログラム３６ｂによってパターン光を投影した状態を撮像したパターン光有画像と、パターン光を投影していない状態を撮像したパターン光無画像との差分をとり、投影されたパターン光の輝度画像を生成するプログラムである。
【０１１６】
また、パターン光は複数種類のものが時系列に投影され各パターン光毎に撮像され、撮像された複数枚のパターン光有画像の各々とパターン光無画像との差分がとられ、複数種類の輝度画像が生成される。
【０１１７】
コード画像生成プログラム３６ｄは、輝度画像生成プログラム３６ｃによって生成される複数枚の輝度画像を重ね合わせ、各画素毎に所定のコードを割り当てたコード画像を生成するプログラムである。
【０１１８】
コード境界抽出プログラム３６ｅは、コード画像生成プログラム３６ｄによって生成されるコード画像と、輝度画像生成プログラム３６ｃによって生成される輝度画像とを利用して、コードの境界座標をサブピクセル精度で求めるプログラムである。
【０１１９】
レンズ収差補正プログラム３６ｆは、コード境界抽出プログラム３６ｅによってサブピクセル精度で求められているコードの境界座標に対して、撮像光学系２０の収差補正を行うプログラムである。
【０１２０】
三角測量演算プログラム３６ｇは、レンズ収差補正プログラム３６ｆによって収差補正がなされたコードの境界座標から、その境界座標に関する実空間の３次元座標を演算するプログラムである。
【０１２１】
原稿姿勢演算プログラム３６ｈは、三角測量演算プログラム３６ｇで演算された３次元座標から原稿Ｐの３次元形状を推定して求めるプログラムである。
【０１２２】
平面変換プログラム３６ｉは、原稿姿勢演算プログラム３６ｈで演算される原稿Ｐの３次元形状に基づき、原稿Ｐの正面から撮像したような平面化画像を生成するプログラムである。
【０１２３】
ＲＡＭ３７には、パターン光有画像格納部３７ａと、パターン光無画像格納部３７ｂと、輝度画像格納部３７ｃと、コード画像格納部３７ｄと、コード境界座標格納部３７ｅと、ＩＤ格納部３７ｆと、収差補正座標格納部３７ｇと、３次元座標格納部３７ｈと、原稿姿勢演算結果格納部３７ｉと、平面変換結果格納部３７ｊと、投影画像格納部３７ｋと、ワーキングエリア３７ｌとが記憶領域として割り当てられている。
【０１２４】
パターン光有画像格納部３７ａは、パターン光撮影プログラム３６ｂによって原稿Ｐにパターン光を投影した状態を撮像したパターン光有画像を格納する。パターン光無画像格納部３７ｂは、パターン光撮影プログラム３６ｂによって原稿Ｐにパターン光を投影していない状態を撮像したパターン光無画像を格納する。
【０１２５】
輝度画像格納部３７ｃは、輝度画像生成プログラム３６ｃによって生成される輝度画像を格納する。コード画像格納部３７ｄは、コード画像生成プログラム３６ｄによって生成されるコード画像を格納する。コード境界座標格納部３７ｅは、コード境界抽出プログラム３６ｅによって、抽出されるサブピクセル精度で求められた各コードの境界座標を格納する。ＩＤ格納部３７ｆは、境界を有する画素位置において明暗の変化を有する輝度画像に割り当てられるＩＤ等を格納する。収差補正座標格納部３７ｇは、レンズ収差補正プログラム３６ｆによって収差補正がなされたコードの境界座標を格納する。３次元形状座標格納部３７ｈは、三角測量演算プログラム３６ｇによって演算される実空間の３次元座標を格納する。
【０１２６】
原稿姿勢演算結果格納部３７ｉは、原稿姿勢演算プログラム３６ｈによって演算される原稿Ｐの３次元形状に関するパラメータを格納する。平面変換結果格納部３７ｊは、平面変換プログラム３６ｉよって生成される平面変換結果を格納する。投影画像格納部３７ｋは、画像投影部１３から投影する画像情報を格納する。ワーキングエリア３７ｌは、ＣＰＵ１５での演算のために一時的に使用するデータを格納する。
【０１２７】
図６は、メイン処理のフローチャートである。尚、このメイン処理におけるデジカメ処理（Ｓ６０５）、ｗｅｂｃａｍ処理（Ｓ６０７）、立体画像処理（Ｓ６０７）、平面化画像処理（Ｓ６１１）の各処理についての詳細は後述する。
【０１２８】
メイン処理では、まず、電源が起動されると（Ｓ６０１）、プロセッサ１５やその他のインターフェイス等が初期化される（Ｓ６０２）。
【０１２９】
そして、モード切替スイッチ９の状態を判別するキースキャンが行われ（Ｓ６０３）、モード切替スイッチ９の設定がデジカメモードか否かが判断され（Ｓ６０４）、デジカメモードであれば（Ｓ６０４：Ｙｅｓ）、後述するデジカメ処理に移行する（Ｓ６０５）。
【０１３０】
一方、デジカメモードでなければ（Ｓ６０４：Ｎｏ）、モード切替スイッチ９の設定がｗｅｂｃａｍモードか否かが判断され（Ｓ６０６）、ｗｅｂｃａｍモードであれば（Ｓ６０６：Ｙｅｓ）、後述するｗｅｂｃａｍ処理に移行する（Ｓ６０７）。
【０１３１】
一方、ｗｅｂｃａｍモードでなければ（Ｓ６０５：Ｎｏ）、モード切替スイッチ９の設定が立体画像モードか否かが判断され（Ｓ６０８）、立体画像モードであれば（Ｓ６０８：Ｙｅｓ）、後述する立体画像処理に移行する（Ｓ６０９）。
【０１３２】
一方、立体画像モードでなければ（Ｓ６０８：Ｎｏ）、モード切替スイッチ９の設定が平面化画像モードか否かが判断され（Ｓ６１０）、平面化画像モードであれば（Ｓ６１０：Ｙｅｓ）、後述する平面化画像処理に移行する（Ｓ６１１）。
【０１３３】
一方、平面化画像モードでなければ（Ｓ６１０：Ｎｏ）、モード切替スイッチ９がオフモードか否かが判断され（Ｓ６１２）、オフモードでなければ（Ｓ６１２：Ｎｏ）、Ｓ６０３からの処理を繰り返し、オフモードであれば（Ｓ６１２：Ｙｅｓ）、当該処理を終了する。
【０１３４】
図７は、デジカメ処理（図６のＳ６０５）のフローチャートである。デジカメ処理は、画像撮像部１４によって撮像した画像を取得する処理である。
【０１３５】
この処理では、まず、ＣＣＤ２２に高解像度設定信号を送信する（Ｓ７０１）。これにより高品質の撮像画像を使用者に提供することができる。
【０１３６】
次に、モニタＬＣＤ１０にファインダ画像（ファインダ６を介して見える範囲の画像）を表示する（Ｓ７０２）。よって、使用者は、ファインダ６を覗き込むことなく、モニタＬＣＤ１０に表示された画像によって実際の撮像の前に、撮像画像（撮像範囲）を確認することができる。
【０１３７】
次に、レリーズボタン８をスキャンし（Ｓ７０３ａ）、レリーズボタン８が半押しされたか否かを判断する（Ｓ７０３ｂ）。半押しされていれば（Ｓ７０３ｂ：Ｙｅｓ）、オートフォーカス（ＡＦ）および自動露出（ＡＥ）機能を起動し、ピント、絞り、シャッタスピードを調節する（Ｓ７０３ｃ）。尚、半押しされていなければ（Ｓ７０３ｂ：Ｎｏ）、Ｓ７０３ａからの処理を繰り返す。
【０１３８】
次に、再び、レリーズボタン８をスキャンし（Ｓ７０３ｄ）、レリーズボタン８が全押しされたか否かを判断する（Ｓ７０３ｅ）。全押しされていれば（Ｓ７０３ｅ：Ｙｅｓ）、フラッシュモードか否かを判断する（Ｓ７０４）。
【０１３９】
その結果、フラッシュモードであれば（Ｓ７０４：Ｙｅｓ）、フラッシュ７を投光して（Ｓ７０５）、撮影し（Ｓ７０６）、フラッシュモードでなければ（Ｓ７０４：Ｎｏ）、フラッシュ７を投光することなく撮影する（Ｓ７０６）。尚、Ｓ７０３ｅの判断において、全押しされていなければ（Ｓ７０３ｅ：Ｎｏ）、Ｓ７０３ａからの処理を繰り返す。
【０１４０】
次に、撮影した撮像画像をＣＣＤ２２からキャッシュメモリ２８に転送し（Ｓ７０７）、キャッシュメモリ２８に記憶された撮像画像をモニタＬＣＤ１０に表示する（Ｓ７０８）。このように、撮像画像をキャッシュメモリ２８に転送することでメインメモリに転送する場合に比較して、撮像画像を高速にモニタＬＣＤ１０に表示させることができる。そして、その撮像画像を外部メモリ２７に格納する（Ｓ７０９）。
【０１４１】
最後に、モード切替スイッチ９に変化が無いか否かを判断し（Ｓ７１０）、そ変化が無ければ（Ｓ７１０：Ｙｅｓ）、Ｓ７０２からの処理を繰り返し、変化があれば（Ｓ７１０：Ｎｏ）、当該処理を終了する。
【０１４２】
図８は、ｗｅｂｃａｍ処理（図６のＳ６０７）のフローチャートである。ｗｅｂｃａｍ処理は、画像撮像部１４で撮像した撮像画像（静止画および動画を含む）を外部ネットワークに送信する処理である。尚、本実施例では、撮像画像として動画を外部ネットワークに送信する場合を想定している。
【０１４３】
この処理では、ます、ＣＣＤ２２に低解像度設定信号を送信し（Ｓ８０１）、周知のオートフォーカス及び自動露出機能を起動して、ピント、絞り、シャッター速度を調節した後に（Ｓ８０２）、撮影を開始する（Ｓ８０３）。
【０１４４】
そして、撮影された撮像画像をモニタＬＣＤ１０に表示し（Ｓ８０４）、ファインダ画像を投影画像格納部３７ｋに格納し（Ｓ８０５）、後述する投影処理を行い（Ｓ８０６）、投影画像格納部３７ｋに格納されている画像を投影面に投影する。
【０１４５】
また、撮像画像をＣＣＤ２２からキャッシュメモリ２８に転送し（Ｓ８０７）、キャッシュメモリ２８に転送された撮像画像をＲＦインターフェイスを介して外部ネットワークに送信する（Ｓ８０８）。
【０１４６】
そして、最後に、モード切替スイッチ９に変化が無いか否かを判断し（Ｓ８０９）、変化が無ければ（Ｓ８０９：Ｙｅｓ）、Ｓ８０２からの処理を繰り返し、変化があれば（Ｓ８０９：Ｎｏ）、当該処理を終了する。
【０１４７】
図９は投影処理（図８のＳ８０６）のフローチャートである。この処理は、投画像投影部１３から影画像格納部３７ｋに格納されている画像を投影面に投影する処理である。この処理では、まず、投影画像格納部３７ｋに画像が格納されているか否かを確認する（Ｓ９０１）。格納されていれば（Ｓ９０１：Ｙｅｓ）、投影画像格納部３７ｋに格納されている画像を投影ＬＣＤドライバ３０に転送し（Ｓ９０２）、投影ＬＣＤドライバ３０から、その画像に応じた画像信号を投影ＬＣＤ１９に送り、投影ＬＣＤに画像を表示する（Ｓ９０３）。
【０１４８】
次に、光源ドライバ２９を駆動し（Ｓ９０４）、その光源ドライバ２９からの電気信号によってＬＥＤアレイ１７Ａを点灯し（Ｓ９０５）、当該処理を終了する。
【０１４９】
こうして、ＬＥＤアレイ１７Ａが点灯すると、ＬＥＤアレイ１７Ａから発光する光は、光源レンズ１８を介して投影ＬＣＤ１９に到達し、投影ＬＣＤ１９において、投影ＬＣＤドライバ３０から送信される画像信号に応じた空間変調が施され、画像信号光として出力される。そして、その投影ＬＣＤ１９から出力される画像信号光は、投影光学系２０を介して投影面に投影画像として投影される。
【０１５０】
図１０は立体画像処理（図６のＳ６０９）のフローチャートである。立体画像処理は、被写体の３次元形状を検出し、その立体画像としての３次元形状検出結果画像を取得、表示、投影する処理である。
【０１５１】
この処理では、まず、ＣＣＤ２２に高解像度設定信号を送信し（Ｓ１００１）、モニタＬＣＤ１０にファインダ画像を表示する（Ｓ１００２）。
【０１５２】
次に、レリーズボタン８をスキャンし（Ｓ１００３ａ）、レリーズボタン８が半押しされたか否かを判断する（Ｓ１００３ｂ）。半押しされていれば（Ｓ１００３ｂ：Ｙｅｓ）、オートフォーカス（ＡＦ）および自動露出（ＡＥ）機能を起動し、ピント、絞り、シャッタスピードを調節する（Ｓ１００３ｃ）。尚、半押しされていなければ（Ｓ１００３ｂ：Ｎｏ）、Ｓ１００３ａからの処理を繰り返す。
【０１５３】
次に、再び、レリーズボタン８をスキャンし（Ｓ１００３ｄ）、レリーズボタン８が全押しされたか否かを判断する（Ｓ１００３ｅ）。全押しされていれば（Ｓ１００３ｅ：Ｙｅｓ）、フラッシュモードか否かを判断する（Ｓ１００３ｆ）。
【０１５４】
その結果、フラッシュモードであれば（Ｓ１００３ｆ：Ｙｅｓ）、フラッシュ７を投光して（Ｓ１００３ｇ）、撮影し（Ｓ１００３ｈ）、フラッシュモードでなければ（Ｓ１００３ｆ：Ｎｏ）、フラッシュ７を投光することなく撮影する（Ｓ１００３ｈ）。尚、Ｓ１００３ｅの判断において、全押しされていなければ（Ｓ１００３ｅ：Ｎｏ）、Ｓ１００３ａからの処理を繰り返す。
【０１５５】
次に、後述する３次元形状検出処理を行い、被写体の３次元形状を検出する（Ｓ１００６）。
【０１５６】
次に、３次元形状検出処理（Ｓ１００６）における３次元形状検出結果を外部メモリ２７に格納し（Ｓ１００７）、３次元形状検出結果をモニタＬＣＤ１０に表示する（Ｓ１００８）。尚、この３次元形状検出結果とは、各計測頂点の実空間における３次元座標（ＸＹＺ）の集合体として表示する。
【０１５７】
次に、３次元形状検出結果としての計測頂点をポリゴンで結んでそのサーフェスを表示した立体画像（３ＤのＣＧ画像）としての３次元形状検出結果画像を投影画像格納部３７ｋに格納し（Ｓ１００９）、図８のＳ８０６の投影処理と同様な投影処理を行う（Ｓ１０１０）。尚、この場合には、図１８において説明する投影ＬＣＤ１９上の座標を３次元空間座標に変換する式の逆関数を利用して、求められた３次元座標に対する投影ＬＣＤ１９上の座標を求めることで、３次元形状結果座標を投影面に投影させることができる。
【０１５８】
そして、モード切替スイッチ９に変化が無いか否かを判断し（Ｓ１０１１）、変化が無ければ（Ｓ１０１１：Ｙｅｓ）、Ｓ７０２からの処理を繰り返し、変化があれば（Ｓ１０１１：Ｎｏ）、当該処理を終了する。
【０１５９】
図１１（ａ）は、上述した３次元形状検出処理（図１０のＳ１００６）において、３次元形状を検出するために利用する空間コード法の原理を説明するための図であり、（ｂ）は（ａ）とは異なるパターン光を示す図である。パターン光にはこれら（ａ）または（ｂ）のいずれを用いても良く、更には、多階調コードであるグレイレベルコードを用いても良い。
【０１６０】
尚、この空間コード法につての詳細は、佐藤宏介、他１名、「空間コード化による距離画像入力」、電子通信学会論文誌、８５／３Ｖｏｌ．Ｊ  ６８−Ｄ  Ｎｏ３  ｐ３６９〜３７５に詳細に開示されている。
【０１６１】
空間コード法は、投影光と観測画像間の三角測量に基づいて被写体の３次元形状を検出する方法の１種であり、（ａ）に示すように、投影光源Ｌと観測器Ｏとを距離Ｄだけ離して設置し、空間を細長い扇状領域に分割しコード化することを特徴とする。
【０１６２】
図中の３枚のマスクパターンＡ，Ｂ，ＣをＭＳＢから順番に投影すると、各扇状領域はマスクによって明「１」と暗「０」とにコード化される。例えば、点Ｐを含む領域は、マスクＡ，Ｂでは光が当たらず、マスクＣでは明になるので、００１（Ａ＝０、Ｂ＝０、Ｃ＝１）とコード化される。
【０１６３】
各扇状の領域には、その方向φに相当するコードが割り当てられ、それぞれを１本のスリット光線とみなすことができる。そこで各マスクごとに情景を観測機器としてのカメラで撮影し、明暗パターンを２値化してメモリの各ビットプレーンを構成していく。
【０１６４】
こうして、得られた多重ビットプレーン画像の横方向の位置（アドレス）は、観測方向θに相当し、このアドレスのメモリの内容は投影光コード、即ち、φを与える。このθとφとから注目点の座標を決定する。
【０１６５】
また、この方法で使用するマスクパターンとしては、（ａ）ではマスクパターンＡ，Ｂ，Ｃのような純２進コードを用いる場合を図示しているが、マスクの位置ズレが起こると領域の境界で大きな誤差が生ずる危険性がある。
【０１６６】
例えば、（ａ）の点Ｑは領域３（０１１）と領域４（１００）の境界を示しているが、もしマスクＡの１がずれ込むと領域７（１１１）のコードが生ずる可能性がある。換言すれば、隣接する領域間でハミング距離が２以上のところで、大きな誤差が発生する可能性がある。
【０１６７】
そこで、この方法で使用するマスクパターンとしては、（ｂ）に示すように、隣接する領域間でハミング距離が常に１であるコードを使うことで、上述したようなコード化誤差を避けることができるとされている。
【０１６８】
図１２（ａ）は、３次元形状検出処理（図１０のＳ１００６）のフローチャートである。この処理では、まず、撮像処理を行う（Ｓ１２１０）。この撮像処理は、図１１（ａ）に示す複数枚の純２進コードのマスクパターンを利用して画像投影部１３から、明暗を交互に並べてなる縞状のパターン光（図１参照）を時系列的に被写体に投影し、各パターン光が投影されている状態を撮像したパターン光有画像と、パターン光が投影されていな状態を撮像したパターン光無画像とを取得する処理である。
【０１６９】
撮像処理を終了すると（Ｓ１２１０）、３次元計測処理を行う（Ｓ１２２０）。３次元計測処理は、撮像処理によって取得したパターン光有画像とパターン光無画像とを利用して、実際に被写体の３次元形状を計測する処理である。こうして、３次元計測処理を終了すると（Ｓ１２２０）、当該処理を終了する。
【０１７０】
図１２（ｂ）は、撮像処理（図１２（ａ）のＳ１２１０）のフローチャートである。この処理は、パターン光撮影プログラム３６ａに基づき実行され、まず、画像投影部１３からパターン光を投影することなく、画像撮像部１４によって被写体を撮像することで、パターン光無画像を取得する（Ｓ１２１１）。尚、取得したパターン光無画像はパターン光無画像格納部３７ｂに格納される。
【０１７１】
次に、カウンタｉを初期化し（Ｓ１２１２）、そのカウンタｉの値が最大値ｉｍａｘか否かを判断する（Ｓ１２１３）。尚、最大値ｉｍａｘは使用するマスクパターンの数によって決定される。例えば、８種類のマスクパターンを使用する場合には、最大ｉｍａｘ（＝８）となる。
【０１７２】
そして、判断の結果、カウンタｉの値が最大値ｉｍａｘより小さい場合には（Ｓ１２１３：Ｙｅｓ）、使用するマスクパターンの内、ｉ番のマスクパターンを投影ＬＣＤ１９に表示し、そのｉ番のマスクパターンによって投影されるｉ番のパターン光を投影面に投影し（Ｓ１２１４）、そのパターン光が投影されている状態を画像撮像部１４によって撮影する（Ｓ１２１５）。
【０１７３】
こうして、被写体にｉ番のパターン光が投影された状態を撮像したパターン光有画像を取得する。尚、取得したパターン光有画像は、パターン光有画像格納部３７ａに格納される。
【０１７４】
撮影を終了すると、ｉ番のパターン光の投影を終了し（Ｓ１２１６）、次のパターン光を投影すべく、カウンタｉに「１」を加算して（Ｓ１２１７）、Ｓ１２１３からの処理を繰り返す。
【０１７５】
そして、カウンタｉの値が最大値ｉｍａｘより大きいと判断すると（Ｓ１２１３：Ｎｏ）、当該処理を終了する。即ち、この撮像処理においては、１枚のパターン光無画像と、最大値ｉｍａｘ枚のパターン光有画像とを取得することになる。
【０１７６】
図１２（ｃ）は、３次元計測処理（図１２（ａ）のＳ１２２０）のフローチャートである。この処理は、輝度画像生成プログラム３６ｃに基づき実行され、まず、輝度画像を生成する（Ｓ１２２１）。ここで、輝度は、ＹＣｂＣｒ空間におけるＹ値であり、各画素のＲＧＢ値よりＹ＝０．２９８９・Ｒ＋０．５８６６・Ｇ＋０．１１４５・Ｂから計算される値である。各画素についてＹ値を求めることにより、各パターン光有及び無し画像に関する輝度画像を生成する。生成した輝度画像は、輝度画像格納部３７ｃに格納される。また、パターン光の番号に対応した番号を各輝度画像に割り付けておく。
【０１７７】
次に、コード画像生成プログラム３６ｄにより、上述した空間コード法を利用して、生成した輝度画像を組み合わせることで、各画素毎にコード化されたコード画像を生成する（Ｓ１２２２）。
【０１７８】
このコード画像は、輝度画像格納部３７ｃに格納したパターン光有り画像に関する輝度画像の各画素について、あらかじめ設定した輝度閾値と比較し、その結果を結合させることで生成することができる。生成されたコード画像はコード画像格納部３７ｄに格納される。
【０１７９】
次に、コード境界抽出プログラム３６ｅにより、後述するコード境界座標検出処理を行い（Ｓ１２２３）、各画素毎に割り当てられたコードの境界座標をサブピクセル精度で検出する。
【０１８０】
次に、レンズ収差補正プログラム３６ｆにより、レンズ収差補正処理を行う（Ｓ１２２４）。この処理によって、撮像光学系２１の歪みなどの影響で誤差を含んでいるＳ１２２３で検出されるコード境界座標の誤差を補正することができる。
【０１８１】
次に、三角測量演算プログラム３６ｇにより、三角測量原理による実空間変換処理を行う（Ｓ１２２５）。この処理によって収差補正が施された後のＣＣＤ空間上のコード境界座標は、実空間における３次元座標に変換され、３次元形状検出結果としての３次元座標が求められる。
【０１８２】
図１３は、コード境界座標検出処理（図１２のＳ１２２３）の概略を説明するための図である。上側の図は、ＣＣＤ空間において実際のパターン光の明暗の境界を境界線Ｋで示し、そのパターン光を上述した空間コード法でコード化し、１のコードと他のコードとの境界を図中太線で示した図である。
【０１８３】
即ち、上述した空間コード法におけるコード化は、各画素単位で行われるため、実際のパターン光の境界線Ｋと、コード化された境界（図中太線）とではサブピクセル精度の誤差が生ずる。そこで、このコード境界座標検出処理は、コードの境界座標をサブピクセル精度で検出することを目的とする。
【０１８４】
この処理では、まず、ある検出位置（以下「ｃｕｒＣＣＤＸ」と称す）において、ある着目コード（以下「ｃｕｒＣｏｄｅ」という）から他のコードに変化する第１画素Ｇを検出する（第１画素検出工程）。
【０１８５】
例えば、ｃｕｒＣＣＤＸにおいて、上から順番に各画素を検出すると、境界（太線）まではｃｕｒＣｏｄｅを有する画素であるが、境界の次の画素、即ち、第１画素Ｇにおいて、ｃｕｒＣｏｄｅは変化しているので、これを第１画素Ｇとして検出する。
【０１８６】
次に、その第１画素Ｇの画素位置において、図１２のＳ１２２１において輝度画像格納部３７ｃに格納された輝度画像の内から、明暗の変化を持つ輝度画像の全部を抽出する（輝度画像抽出工程）。
【０１８７】
次に、近似に利用するための画素領域を特定するために検出位置を「２」左側に移動させ、検出位置ｃｕｒＣＣＤＸ−２の位置において、コード画像を参照して、着目コード（ｃｕｒＣｏｄｅ）から他のコードに変化する画素（境界画素（ｃｕｒＣＣＤＸ−２の検出位置では画素Ｈ））を探し、その画素を中心に予め定めた範囲（本実施例の場合Ｙ軸方向に−３画素と＋２画素の範囲）の画素範囲を特定する（画素領域特定手段の一部）。
【０１８８】
次に、その予め定めた範囲内において、図中の下側の左側のグラフに示すように、Ｙ方向の画素位置と輝度とに関する近似式（図中実線で示す）を求め、その近似式における輝度閾値ｂＴｈとの交点におけるＹ座標Ｙ１を求める（境界座標検出工程の一部）。
【０１８９】
尚、輝度閾値ｂＴｈは、予め定められた範囲内から算出（例えば、各画素の輝度の平均の２分の１）しても良く、予め与えられた固定値であっても良い。これにより、明と暗との境界をサブピクセル精度で検出することができる。
【０１９０】
次に、検出位置をｃｕｒＣＣＤＸ−２から「１」右側に移動させ、ｃｕｒＣＣＤＸ−１において上述したのと同様な処理を行い、ｃｕｒＣＣＤＸ−１における代表値を求める（境界座標検出工程の一部）。
【０１９１】
このように、境界画素を中心にＹ軸方向に予め定めた範囲と、Ｘ軸方向におけるｃｕｒＣＣＤＸ−２からｃｕｒＣＣＤＸ＋２の範囲とで構成される画素領域（図中右下がり斜線部参照）において、各検出位置における代表値を求める。
【０１９２】
これまでの処理をｃｕｒＣｏｄｅから他のコードへ変化する画素を持つ輝度画像の全てに行い、各輝度画像についての代表値の加重平均値を最終的にｃｕｒＣｏｄｅにおける境界座標として採用する（境界座標検出工程の一部）。
【０１９３】
これにより、コードの境界座標を高精度にサブピクセル精度で検出することができ、この境界座標を利用して上述した三角測量原理による実空間変換処理（図１２のＳ１２２５）を行うことで、高精度に被写体の３次元形状を検出することができる。
【０１９４】
また、このように輝度画像に基づき算出される近似式を利用して境界座標をサブピクセル精度で検出することができるため、従来のように撮像枚数を増加させることもなく、また、純２進コードで明暗付けられたパターン光であっても良く、特殊なパターン光であるグレイコードを用いる必要はない。
【０１９５】
尚、本実施例では、各検出位置において境界画素を中心にＹ軸方向に「−３」から「＋２」の範囲と、Ｘ軸方向における検出位置としてのｃｕｒＣＣＤＸ−２からｃｕｒＣＣＤＸ＋２の範囲とで構成される領域を、近似を求めるための画素領域として説明したが、この画素領域のＹ軸、Ｘ軸の範囲はこれらに限定されるものではない。例えば、ｃｕｒＣＣＤＸの検出位置における境界画素を中心としたＹ軸方向への所定範囲だけを画素領域としても良い。
【０１９６】
図１４は、コード境界座標検出処理（図１２のＳ１２２３）のフローチャートである。この処理は、コード境界抽出プログラム３６ｅに基づき実行され、まず、ＣＣＤ空間におけるコード境界座標列の各要素を初期化し（Ｓ１４０１）、ｃｕｒＣＣＤＸを開始座標に設定する（Ｓ１４０２）。
【０１９７】
次に、ｃｕｒＣＣＤＸが終了座標以下か否かを判断し（Ｓ１４０３）、終了座標以下であれば（Ｓ１４０３：Ｙｅｓ）、ｃｕｒＣｏｄｅを「０」に設定する（Ｓ１４０４）。即ち、ｃｕｒＣｏｄｅは当初、最小値に設定される。
【０１９８】
次に、ｃｕｒＣｏｄｅが最大コードより小さいか否かを判断する（Ｓ１４０５）。ｃｕｒＣｏｄｅが最大コードより小さければ（Ｓ１４０５：Ｙｅｓ）、ｃｕｒＣＣＤＸにおいてコード画像を参照して、ｃｕｒＣｏｄｅの画素を探し（Ｓ１４０６）、ｃｕｒＣｏｄｅの画素が存在するか否かを判断する（Ｓ１４０７）。
【０１９９】
その結果、ｃｕｒＣｏｄｅの画素が存在していれば（Ｓ１４０７：Ｙｅｓ）、ｃｕｒＣＣＤＸにおいて、そのｃｕｒＣｏｄｅよりも大きなＣｏｄｅの画素をコード画像を参照して探し（Ｓ１４０８）、そのｃｕｒＣｏｄｅよりも大きなｃｕｒＣｏｄｅの画素が存在するか否かを判断する（Ｓ１４０９）。
【０２００】
その結果、ｃｕｒＣｏｄｅよりも大きなＣｏｄｅの画素が存在していれば（Ｓ１４０９：Ｙｅｓ）、後述する境界をサブピクセル精度で求める処理を行う（Ｓ１４１０）。そして、次のｃｕｒＣｏｄｅについて境界座標を求めるべく、ｃｕｒＣｏｄｅに「１」を加算して（Ｓ１４１１）、Ｓ１４０５からの処理を繰り返す。
【０２０１】
即ち、境界は、ｃｕｒＣｏｄｅを有する画素の画素位置またはｃｕｒＣｏｄｅよりも大きなＣｏｄｅの画素の画素位置に存在しているため、本実施例では、暫定的に境界は、ｃｕｒＣｏｄｅより大きなｃｕｒＣｏｄｅの画素の画素位置にあると仮定して処理を進めるものである。
【０２０２】
また、ｃｕｒＣｏｄｅが存在していない場合や（Ｓ１４０７：Ｎｏ）、ｃｕｒＣｏｄｅよりも大きなＣｏｄｅの画素が存在していない場合には（Ｓ１４０９：Ｎｏ）、次のｃｕｒＣｏｄｅについて境界座標を求めるべく、ｃｕｒＣｏｄｅに「１」を加算して（Ｓ１４１１）、Ｓ１４０５からの処理を繰り返す。
【０２０３】
こうして、０から最大コードまでのｃｕｒＣｏｄｅについて、Ｓ１４０５からＳ１４１１までの処理を繰り返し、ｃｕｒＣｏｄｅが最大コードより大きくなると（Ｓ１４０５：Ｎｏ）、検出位置を変更すべく、ｃｕｒＣＣＤＸに「ｄＣＣＤＸ」を加算し（Ｓ１４１２）、新たな検出位置において、上述したのと同様にＳ１４０３からの処理を繰り返す。
【０２０４】
そして、ｃｕｒＣＣＤＸを変更してゆき、最終的にｃｕｒＣＣＤＸが終了座標より大きくなると（Ｓ１４０３）、即ち、開始座標から終了座標までの検出が終了すると、当該処理を終了する。
【０２０５】
図１５は、コード境界座標をサブピクセル精度で求める処理（図１４のＳ１４１０）のフローチャートである。
【０２０６】
この処理では、まず、図１２のＳ１２２１において輝度画像格納部３７ｃに格納された輝度画像の内から、図１４のＳ１４０９において検出されたｃｕｒＣｏｄｅよりも大きなＣｏｄｅを有する画素の画素位置において、明暗の変化を持つ輝度画像の全部を抽出する（Ｓ１５０１）。
【０２０７】
そして、その抽出した輝度画像のマスクパターン番号を配列ＰａｔＩＤ［］へ格納し、その抽出した輝度画像の画像数をｎｏＰａｔＩＤへ格納する（Ｓ１５０２）。尚、配列ＰａｔＩＤ［］とｎｏＰａｔＩＤとはＩＤ格納部３７ｆに格納される。
【０２０８】
次に、カウンタｉを初期化し（Ｓ１５０３）、カウンタｉの値がｎｏＰａｔＩＤより小さいか否かを判断する（Ｓ１５０４）。その結果、小さいと判断されれば（Ｓ１５０４：Ｙｅｓ）、カウンタｉに対応するＰａｔＩＤ［ｉ］のマスクパターン番号を持つ輝度画像について、境界のＣＣＤＹ値を求め、その値をｆＣＣＤＹ［ｉ］へ格納する（Ｓ１５０５）。
【０２０９】
このＳ１５０５の処理を終了すると、カウンタｉに「１」を加算し（Ｓ１５０６）、Ｓ１５０４からの処理を繰り返す。そして、Ｓ１５０４において、カウンタｉの値がｎｏＰａｔＩＤより大きいと判断されると（Ｓ１５０４：Ｎｏ）、即ち、Ｓ１５０１で抽出された全部の輝度画像についてＳ１５０５の処理が終了すると、Ｓ１５０５の処理で求めたｆＣＣＤＹ［ｉ］の加重平均値を計算し、その結果を境界値とする（Ｓ１５０７）。
【０２１０】
尚、加重平均値に代えて、Ｓ１５０５の処理で求めたｆＣＣＤＹ［ｉ］の中央値を計算し、その結果を境界値としたり、統計的な計算により境界値を計算したりすることもできる。
【０２１１】
即ち、境界座標は、ｃｕｒＣＣＤＸの座標と、Ｓ１５０７で求められる加重平均値とで表現され、この境界座標をコード境界座標格納部３７ｅに格納して、当該処理を終了する。
【０２１２】
図１６は、ＰａｔＩＤ［ｉ］のマスクパターン番号を持つ輝度画像について、境界のＣＣＤＹ値を求める処理（図１５のＳ１５０５）のフローチャートである。
【０２１３】
この処理では、まず、「ｃｕｒＣＣＤＸ−ｄｘ」と「０」との内、大きい値をｃｃｄｘとして設定する「ｃｃｄｘ＝ＭＡＸ（ｃｕｒＣＣＤＸ−ｄｘ，０）」で表される処理を行うと共に、カウンタｊを初期化する（Ｓ１６０１）。
【０２１４】
具体的には、Ｓ１６０１でいう「０」はＣＣＤＸ値の最小値を意味し、例えば、今、検出位置としてのｃｕｒＣＣＤＸ値が「１」で、予め設定されているｄｘ値が「２」であったとすると、「ｃｕｒＣＣＤＸ−ｄｘ」は「−１」となり、ＣＣＤＸ値の最小値である「０」よりも小さくなるため、「−１」における以降の処理は、「ｃｃｄｘ＝０」として設定する処理を行う。
【０２１５】
即ち、ＣＣＤＸ値の最小値よりも小さい位置については、以降の処理を除外する処理を行う。
【０２１６】
尚、この「ｄｘ」の値は、予め「０」を含む適当な整数に設定することができ、図１３で説明した例では、この「ｄｘ」は「２」に設定されており、図１３の例に従えば、このｃｃｄｘは「ｃｕｒＣＣＤＸ−２」に設定されることになる。
【０２１７】
次に、ｃｃｄｘ＜＝ＭＩＮ（ｃｕｒＣＣＤＸ＋ｄｘ，ｃｃｄＷ−１）であるか否かを判断する（Ｓ１６０２）。つまり、左辺の「ＭＩＮ（ｃｕｒＣＣＤＸ＋ｄｘ，ｃｃｄＷ−１）」は、「ｃｕｒＣＣＤＸ＋ｄｘ」と、ＣＣＤＸ値の最大値「ｃｃｄＷ」から「１」を減算した「ｃｃｄＷ−１」との内、小さい値であることを意味しているので、その値と「ｃｃｄｘ」値との大小を比較する。
【０２１８】
即ち、ＣＣＤＸ値の最大値よりも大きい位置については、以降の処理を除外する処理を行う。
【０２１９】
そして、判断の結果、ｃｃｄｘがＭＩＮ（ｃｕｒＣＣＤＸ＋ｄｘ，ｃｃｄＷ−１）よりも小さければ（Ｓ１６０２：Ｙｅｓ）、コード画像とＰａｔＩＤ［ｉ］が割り当てられた輝度画像とを参照して、境界の存在する画素の画素位置のｅＣＣＤＹ値を求める（Ｓ１６０３）。
【０２２０】
例えば、検出位置を図１３に示すｃｕｒＣＣＤＸ−１であるとすると、画素Ｉを境界が存在する画素候補として検出し、画素Ｉの位置においてｅＣＣＤＹ値を求める。
【０２２１】
次に、ＰａｔＩＤ［ｉ］のマスクパターン番号を持つ輝度画像から、ＭＡＸ（ｅＣＣＤＹ−ｄｙ，０）＜＝ｃｃｄｙ＜＝ＭＩＮ（ｅＣＣＤＹ＋ｄｙ−１，ｃｃｄＨ−１）の範囲で、ｃｃｄｙ方向における輝度に関する近似多項式Ｂｔ＝ｆｂ（ｃｃｄｙ）を求める（Ｓ１６０４）。
【０２２２】
次に、その近似多項式Ｂｔと輝度閾値ｂＴｈとの交差するｃｃｄｙ値を求め、その値をｅｆＣＣＤＹ［ｊ］へ格納する（Ｓ１６０５）。このＳ１６０４とＳ１６０５とによって、サブピクセル精度の境界座標の検出をすることができる。
【０２２３】
次に、ｃｃｄｘとカウンタｊとに各々「１」を加算し（Ｓ１６０５）、Ｓ１６０２からの処理を繰り返す。即ち、ｃｕｒＣＣＤＸを中心とした左右の所定範囲内における各検出位置において、サブピクセル精度の境界を検出するのである。
【０２２４】
そして、Ｓ１６０２において、「ｃｃｄｘ」が「ＭＩＮ（ｃｕｒＣＣＤＸ＋ｄｘ，ｃｃｄＷ−１）」より大きいと判断されると（Ｓ１６０２：Ｎｏ）、ｃｕｒＣＣＤＸ−ｄｘからｃｕｒＣＣＤＸ＋ｄｘの範囲で計算されたｅｆＣＣＤＹ［ｊ］について、ｃｃｄｙ＝ｆｙ（ｃｃｄｘ）の近似多項式を求める（Ｓ１６０６）。この処理によってＳ１６０５において検出された各値を用いるので、１つの検出位置において境界座標を検出しようとする場合に比べて、境界座標の検出精度を向上させることができる。
【０２２５】
こうして得られた近似多項式とｃｕｒＣＣＤＸとの交点を、ＰａｔＩＤ［ｉ］のマスクパターン番号を持つ輝度画像についての境界のＣＣＤＹ値として（Ｓ１６０７）、当該処理を終了する。ここまでの処理を図１５のフローチャートに示すように、抽出した全部の輝度画像の１枚、１枚に実行し、求められた境界座標について加重平均値を計算して、その結果を最終的な境界座標としているので（Ｓ１５０７）、更に、境界座標の検出精度を向上させることができる。
【０２２６】
図１７は、レンズ収差補正処理（図１２のＳ１２２４）を説明するための図である。レンズ収差補正処理は、図１７（ａ）に示すように、撮像光学系２１の収差により、入射した光束が理想レンズにより結像すべき位置からずれてしまうことに対して、撮像された画素の位置を本来結像すべき位置へ補正する処理である。
【０２２７】
この収差補正は、例えば、図１７（ｂ）に示すように、撮像光学系２１の撮像範囲において、入射光の角度である半画角ｈｆａをパラメータとして光学系の収差を計算して求めたデータを基に補正する。
【０２２８】
この収差補正処理では、レンズ収差補正プログラム３６ｆに基づき実行され、コード境界座標格納部３７ｅに格納されているコード境界座標について行なわれ、収差補正処理がなされたデータは、収差補正座標格納部３７ｇに格納される。
【０２２９】
具体的には、実画像における任意点座標（ｃｃｄｘ、ｃｃｄｙ）を理想カメラ画像での座標（ｃｃｄｃｘ、ｃｃｄｃｙ）に変換する次の（１）から（３）のカメラキャリブレーション（近似式）を用いて補正する。
【０２３０】
本実施例では、収差量ｄｉｓｔ（％）は、半画角ｈｆａ（ｄｅｇ）を用いてｄｉｓｔ＝ｆ（ｈｆａ）と記述する。また、撮像光学系２１の焦点距離をｆｏｃａｌｌｅｎｇｔｈ（ｍｍ）、ｃｃｄ画素長ｐｉｘｅｌｌｅｎｇｔｈ（ｍｍ）、ＣＣＤ２２におけるレンズの中心座標を（Ｃｅｎｔｘ、Ｃｅｎｔｙ）とする。
【０２３１】
（１）ｃｃｄｃｘ＝（ｃｃｄｘ−Ｃｅｎｔｘ）／（１＋ｄｉｓｔ／１００）＋Ｃｅｎｔｘ  （２）ｃｃｄｃｙ＝（ｃｃｄｙ−Ｃｅｎｔｙ）／（１＋ｄｉｓｔ／１００）＋Ｃｅｎｔｙ  （３）ｈｆａ＝ａｒｃｔａｎ［（（（ｃｃｄｘ−Ｃｅｎｔｘ）２    ＋（ｃｃｄｙ−Ｃｅｎｔｙ）２）０．５）×ｐｉｘｅｌｌｅｎｇｔｈ／ｆｏｃａｌｌｅｎｇｔｈ］  図１８は、三角測量原理による実空間変換処理（図１２のＳ１２２５）において、ＣＣＤ空間における座標から、３次元空間における３次元座標を算出する方法を説明するための図である。
【０２３２】
三角測量原理による実空間変換処理では、三角測量演算プログラム３６ｇによって、収差補正座標格納部３７ｇに格納されている収差補正がなされたコード境界座標についての３次元空間における３次元座標が算出される。こうして算出される３次元座標は、３次元座標格納部３７ｈに格納される。
【０２３３】
本実施例では、撮像される横方向に湾曲した原稿Ｐに対する画像入力出力装置１の座標系として、撮像光学系２１の光軸方向をＺ軸、そのＺ軸に沿って撮像光学系２１の主点位置からＶＰＺ離れた地点を原点、画像入出力装置１に対して水平方向をＸ軸、垂直方向をＹ軸とする。
【０２３４】
また、３次元空間（Ｘ，Ｙ，Ｚ）への画像投影部１３からの投影角度θｐ、撮像レンズ光学系２０の光軸と画像投影部１３の光軸との距離をＤ、撮像光学系２１のＹ方向の視野をＹｆｔｏｐからＹｆｂｏｔｔｏｍ、Ｘ方向の視野をＸｆｓｔａｒｔからＸｆｅｎｄ、ＣＣＤ２２のＹ軸方向の長さ（高さ）をＨｃ、Ｘ軸方向の長さ（幅）をＷｃとする。尚、投影角度θｐは、各画素毎に割り当てられたコードに基づき与えられる。
【０２３５】
この場合、ＣＣＤ２２の任意座標（ｃｃｄｘ，ｃｃｄｙ）に対応する３次元空間位置（Ｘ，Ｙ，Ｚ）は、ＣＣＤ２２の結像面上の点と、パターン光の投影点と、Ｘ−Ｙ平面に交差する点とで形成される三角形について５つの式を解くことで得ることができる。（１）Ｙ＝−（ｔａｎθｐ）Ｚ＋ＰＰＺ＋ｔａｎθｐ−Ｄ＋ｃｍｐ（Ｘｔａｒｇｅｔ）（２）Ｙ＝−（Ｙｔａｒｇｅｔ／ＶＰＺ）Ｚ＋Ｙｔａｒｇｅｔ（３）Ｘ＝−（Ｘｔａｒｇｅｔ／ＶＰ）Ｚ＋Ｘｔａｒｇｅｔ（４）Ｙｔａｒｇｅｔ＝Ｙｆｔｏｐ−（ｃｃｄｃｙ／Ｈｃ）×（Ｙｆｔｏｐ−Ｙｆｂｏｔｔｏｍ）（５）Ｘｔａｒｇｅｔ＝Ｘｆｓｔａｒｔ＋（ｃｃｄｃｘ／Ｗｃ）×（Ｘｆｅｎｄ−Ｘｆｓｔａｒｔ）  尚、（１）におけるｃｍｐ（Ｘｔａｒｇｅｔ）は、撮像光学系２０と画像投影部１３とのズレを補正する関数であり、ズレが無い理想的な場合にはｃｍｐ（Ｘｔａｒｇｅｔ）＝０とみなすことができる。
【０２３６】
一方、上述したのと同様に、画像投影部１３に含まれる投影ＬＣＤ１９上の任意座標（ｌｃｄｃｘ、ｌｃｄｃｙ）と３次元空間中の３次元座標（Ｘ，Ｙ，Ｚ）との関係は次の（１）から（４）の式で表せる。
【０２３７】
尚、本実施例では、画像投影部１３の主点位置（０，０，ＰＰＺ）、画像投影部１３のＹ方向の視野をＹｐｆｔｏｐからＹｐｆｂｏｔｔｏｍ、Ｘ方向の視野をＸｐｆｓｔａｒｔからＸｐｆｅｎｄ、投影ＬＣＤ１９のＹ軸方向の長さ（高さ）をＨｐ、Ｘ軸方向の長さ（幅）Ｗｐとする。（１）Ｙ＝−（Ｙｐｔａｒｇｅｔ／ＰＰＺ）Ｚ＋Ｙｐｔａｒｇｅｔ（２）Ｘ＝−（Ｘｐｔａｒｇｅｔ／ＰＰＺ）Ｚ＋Ｘｐｔａｒｇｅｔ（３）Ｙｐｔａｒｇｅｔ＝Ｙｐｆｔｏｐ−（ｌｃｄｃｙ／Ｈｐ）×（Ｘｐｆｔｏｐ−Ｘｐｆｂｏｔｔｏｍ）（４）Ｘｐｔａｒｇｅｔ＝Ｘｐｆｓｔａｒｔ＋（ｌｃｄｃｘ／Ｗｐ）×（Ｘｐｆｅｎｄ−Ｘｐｆｓｔａｒｔ）  この関係式を利用することで、３次元空間座標（Ｘ，Ｙ，Ｚ）を上記（１）から（４）の式に与えることで、ＬＣＤ空間座標を（ｌｃｄｃｘ，ｌｃｄｃｙ）を算出することができる。よって、例えば、３次元空間に任意の形状、文字を投影するためのＬＣＤ素子パターンを算出することができる。
【０２３８】
図１９は、平面化画像処理（図６のＳ６１１）のフローチャートである。平面化画像処理は、例えば、図１に示すような湾曲した状態の原稿Ｐを撮像した場合や矩形状の原稿を斜め方向から撮像した場合（撮像された画像は台形状になる）であっても、その原稿が湾曲していない状態や鉛直方向から撮像したような状態に平面化された平面化画像を取得、表示する処理である。
【０２３９】
この処理では、まず、ＣＣＤ２２に高解像度設定信号を送信し（Ｓ１９０１）、モニタＬＣＤ１０にファインダ画像を表示する（Ｓ１９０２）。
【０２４０】
次に、レリーズボタン８をスキャンし（Ｓ１９０３ａ）、レリーズボタン８が半押しされたか否かを判断する（Ｓ１９０３ｂ）。半押しされていれば（Ｓ１９０３ｂ：Ｙｅｓ）、オートフォーカス（ＡＦ）および自動露出（ＡＥ）機能を起動し、ピント、絞り、シャッタスピードを調節する（Ｓ１９０３ｃ）。尚、半押しされていなければ（Ｓ１９０３ｂ：Ｎｏ）、Ｓ１９０３ａからの処理を繰り返す。
【０２４１】
次に、再び、レリーズボタン８をスキャンし（Ｓ１９０３ｄ）、レリーズボタン８が全押しされたか否かを判断する（Ｓ１９０３ｅ）。全押しされていれば（Ｓ１９０３ｅ：Ｙｅｓ）、フラッシュモードか否かを判断する（Ｓ１９０３ｆ）。
【０２４２】
その結果、フラッシュモードであれば（Ｓ１９０３ｆ：Ｙｅｓ）、フラッシュ７を投光して（Ｓ１９０３ｇ）、撮影し（Ｓ１９０３ｈ）、フラッシュモードでなければ（Ｓ１９０３ｆ：Ｎｏ）、フラッシュ７を投光することなく撮影する（Ｓ１９０３ｈ）。尚、Ｓ１９０３ｅの判断において、全押しされていなければ（Ｓ１９０３ｅ：Ｎｏ）、Ｓ１９０３ａからの処理を繰り返す。
【０２４３】
次に、上述した３次元形状検出処理（図１０のＳ１００６）と同一の処理である３次元形状検出処理を行い、被写体の３次元形状を検出する（Ｓ１９０６）。
【０２４４】
次に、３次元形状検出処理（Ｓ１９０６）によって得られた３次元形状検出結果に基づき、原稿Ｐの姿勢を演算する原稿姿勢演算処理を行う（Ｓ１９０７）。この処理によって原稿Ｐの姿勢パラメータとして、原稿Ｐの画像入力装置１に対する位置Ｌや角度θ、湾曲φ（ｘ）が演算される。
【０２４５】
次に、その演算結果に基づき、後述する平面変換処理を行い（Ｓ１９０８）、たとえ、原稿Ｐが湾曲していたとしても湾曲していない状態に平面化された平面化画像を生成する。
【０２４６】
次に、平面変化処理（Ｓ１９０８）によって得られた平面化画像を外部メモリ２７に格納し（Ｓ１９０９）、平面化画像をモニタＬＣＤ１０に表示する（Ｓ１９１０）。
【０２４７】
そして、モード切替スイッチ９に変化が無いか否かを判断し（Ｓ１９１１）、その結果、変化が無ければ（Ｓ１９１１：Ｙｅｓ）、再び、Ｓ７０２からの処理を繰り返し、変化があれば（Ｓ１９１１：Ｎｏ）、当該処理を終了する。
【０２４８】
図２０は、原稿姿勢演算処理（図１９のＳ１９０７）を説明するための図である。尚、本等の原稿の仮定条件として、原稿Ｐの湾曲はｙ方向に一様であるとする。この原稿姿勢演算処理では、まず、図２０（ａ）に示すように、３次元座標格納部３７ｈに格納されているコード境界に関する座標データから３次元空間位置において２列に並ぶ点を回帰曲線近似した２本の曲線を求める。
【０２４９】
例えば、パターン光を投影した範囲の上下それぞれ４分の１の位置情報（コード６３とコード６４の境界と、コード１９１とコード１９２との境界とに関する境界）から求めることができる。
【０２５０】
その２本の曲線のＸ軸方向の位置が「０」における点を結ぶ直線を想定し、この直線がＺ軸と交わる点、つまり、光軸が原稿Ｐと交差する点を、原稿Ｐの３次元空間位置（０，０，Ｌ）とし、この直線がＸ−Ｙ平面となす角を原稿ＰのＸ軸まわりの傾きθとする。
【０２５１】
次に、図２０（ｂ）に示すように、原稿Ｐを、先に求めたＸ軸まわりの傾きθ分だけ逆方向に回転変換し、つまり、原稿ＰをＸ−Ｙ平面に対して平行にした状態を想定する。
【０２５２】
そして、図２０（ｃ）に示すように、Ｘ−Ｚ平面における原稿Ｐの断面について、Ｚ軸方向の変位をＸの関数として湾曲φ（Ｘ）で表すことができる。こうして、原稿姿勢パラメータとして、原稿Ｐの位置Ｌや角度θ、湾曲φ（ｘ）が演算され、当該処理を終了する。
【０２５３】
図２１は、平面変換処理（図１９のＳ１９０８）のフローチャートである。この処理は、まず、ＲＡＭ３７のワーキングエリア３７ｌに当該処理の処理領域を割り当て、当該処理に用いるカウンタｂの変数を初期値（ｂ＝０）に設定する（Ｓ２１０１）。
【０２５４】
次に、原稿姿勢演算プログラム３６ｈでの演算結果による原稿Ｐの位置Ｌと、傾きθと、湾曲φ（ｘ）とに基づき、パターン光無画像格納部３７ｂに格納されたパターン光無画像の４隅の点を、それぞれ、Ｚ方向に−Ｌ移動し、Ｘ軸方向に−θ回転し、更にφ（ｘ）にする湾曲の逆変換（後述する「湾曲処理」と同等な処理）により求められる点で取成される矩形領域（つまり、原稿Ｐの文字等が書かれた面が略直交方向から観察されたような画像となる矩形領域）を設定すると共に、この矩形領域内に含まれる画素数ａを求める（Ｓ２１０２）。
【０２５５】
次に、設定された矩形領域を構成する各画素に対応するパターン光無画像上の座標を求めて、この座標周辺の画素情報から、平面化画像の各画素の画素情報を設定する。
【０２５６】
つまり、まず、カウンタｂが画素数ａに到達したか否かを判断する（Ｓ２１０３）。カウンタｂが画素数ａに到達していなけば（Ｓ２１０３：Ｎｏ）、矩形領域を構成する１つの画素について、Ｙ軸を中心に湾曲φ（ｘ）回転移動させる湾曲計算処理を行い（Ｓ２１０４）、Ｘ軸を中心に傾きθ回転移動させ（Ｓ２１０５）、Ｚ軸方向に距離Ｌだけシフトさせる（Ｓ２１０６）。
【０２５７】
次に、求められた３次元空間位置を、先の３角測量の逆関数により理想カメラで写されたＣＣＤ画像上の座標（ｃｃｄｃｘ，ｃｃｄｃｙ）を求め（Ｓ２１０７）、使用している撮像光学系２０の収差特性に従って、先のカメラキャリブレーションの逆関数により、実際のカメラで写されたＣＣＤ画像上の座標（ｃｃｄｘ，ｃｃｄｙ）を求め（Ｓ２１０８）、この位置に対応するパターン光無画像の画素の状態を求めて、ＲＡＭ３７のワーキングエリア３７ｌに格納する（Ｓ２１０９）。
【０２５８】
そして、次の画素について上述したＳ２１０３からＳ２１０９までの処理を実行すべく、カウンタｂに「１」を加算する（Ｓ２１１０）。
【０２５９】
こうして、Ｓ２１０４からＳ２１１０までの処理をカウンタｂが画素数ａになるまで繰り返すと（Ｓ２１０３：Ｙｅｓ）、Ｓ２１０１において、当該処理を実行するためにワーキングエリア３７ｌに割り当てた処理領域を開放して（Ｓ２１１１）、当該処理を終了する。
【０２６０】
図２２（ａ）は、湾曲処理（図２１のＳ２１０４）についての概略を説明するための図であり、（ｂ）は平面変換処理（図１９のＳ１９０８）によって平面化された原稿Ｐを示している。尚、この湾曲処理についての詳細については、電子情報通信学会論文誌ＤＩＩＶｏｌ.Ｊ８６−Ｄ２  Ｎｏ.３  ｐ４０９「アイスキャナによる湾曲ドキュメント撮影」に詳細に開示されている。
【０２６１】
湾曲Ｚ＝φ（ｘ）は、求められたコード境界座標列（実空間）で構成される３次元形状を、任意のＹ値におけるＸＺ平面に平行な平面切断された断面形状を、最小２乗法により多項式で近似した式で表現される。
【０２６２】
湾曲する曲面を平面化する場合、（ａ）に示すように、Ｚ＝φ（ｘ）上の点に対応する平面化された点は、Ｚ＝φ（０）からＺ＝φ（ｘ）までの曲線の長さによって対応付けられることになる。
【０２６３】
こうした湾曲処理を含む平面変換処理によって、例えば、図１のように湾曲している状態の原稿Ｐを撮像した場合であっても、図２２（ｂ）に示すように、平面化された平面画像を取得することができ、このように平面化された画像を用いればＯＣＲ処理の精度を高めることができるため、その画像によって、原稿に記載された文字や図形等を明確に認識することができる。
【０２６４】
図２３は、上述した第１実施例の光源レンズ１８に関する第２実施例の光源レンズ５０を説明するための図であり、（ａ）は第２実施例の光源レンズ５０を示す側面図であり、（ｂ）は第２実施例の光源レンズ５０を示す平面図である。尚、上述したのと同一な部材には、同一の符号を付し、その説明は省略する。
【０２６５】
第１実施例における光源レンズ１８は、各ＬＥＤ１７に対応する凸状の非球面形状からレンズ部１８ａをベース１８ｂ上に一体的に並べて配置して構成されているのに対し、この第２実施例の光源レンズ５０は、ＬＥＤ１７の各々を内包する砲弾型に形成された樹脂製レンズを各々別体に構成したものである。
【０２６６】
このように、各ＬＥＤ１７を内包する光源レンズ５０を各々別体に構成することで、各々のＬＥＤ１７とそれに対応する各々の光学レンズ５０との位置が１対１で決められるので、相対的な位置精度を高めることができ、光の出射方向が揃うという効果がある。
【０２６７】
これに対し、基板１６上にレンズアレイをまとめて位置合わせをすると、各々のＬＥＤ１７がダイボンディングされる際の位置決め誤差やレンズアレイと基板の線膨張係数の違いから、光の出射方向がバラバラになってしまう恐れがある。
【０２６８】
従って、投影ＬＣＤ１９の面には、ＬＥＤ１７からの光の入射方向が投影ＬＣＤ１９の面に垂直にそろった光が照射され、投影光学系２０の絞りを均一に通過できる様になるため、投影画像の照度ムラを抑えることができ、結果的に高品質な画像を投影することができる。尚、光源レンズ５０に内包されているＬＥＤ１７はリードおよびリフレクタからなる電極５１を介して基板１６に実装されている。
【０２６９】
また、この第２実施例における１群の光源レンズ５０の外周面には、各光源レンズ５０を束ねて所定の方向に規制する枠状の弾性を有する固定部材５２が配置されている。この固定部材５２は、ゴム、プラスチック等の樹脂製材料で構成されている。
【０２７０】
第２実施例の光源レンズ５０は各ＬＥＤ１７に対して各々別体に構成されているので、各光源レンズ５０の凸状の先端部が形成する光軸の角度を正しく揃えて投影ＬＣＤ１９と対向するように設置することが困難である。
【０２７１】
そこで、この固定部材５２によって１群の光源レンズ５０を取り囲み、各光源レンズ５０の外周面同士を接触させ、各光源レンズ５０の光軸が投影ＬＣＤ１９と正しい角度で対向するように各光源レンズ５０の位置を規制することで、各光源レンズ５０から投影ＬＣＤ１９に向けて光を略垂直に照射させることができる。よって、投影ＬＣＤ１９の面に垂直にそろった光が照射され、投影レンズの絞りを均一に通過できる様になるため、投影画像の照度ムラを抑えることができる。従って、一層、高品質な画像を投影することができる。
【０２７２】
尚、この固定部材５２は、予め所定の大きさに規定された剛性を有するものであっても良く、弾性力を有する材料で構成してその弾性力によって各光源レンズ５０の位置を所定の位置に規制するようにしても良い。
【０２７３】
図２４は、図２３で説明した光源レンズ５０を所定位置に規制する固定部材５２に関する第２実施例を説明するための図であり、（ａ）は光源レンズ５０を固定した状態を示す斜視図であり、（ｂ）はその部分的な断面図である。尚、上述したのと同一の部材には、同一の符号を付し、その説明は省略する。
【０２７４】
この第２実施例の固定部材６０は、各光源レンズ５０の外周面に沿った断面を有する断面視円錐形状の貫通孔６０ａが穿設された板状に形成されている。各光源レンズ５０は、この各貫通孔６０ａに差し込まれて固定される。
【０２７５】
また、この固定部材６０と基板１６との間には弾性を有する付勢プレート６１が介装されており、更に、この付勢プレート６１と各光源レンズ５０の下面との間には、電極５１を囲むように弾性を有する環状のＯリング６２が配置されている。
【０２７６】
尚、光源レンズ５０に内包されるＬＥＤ１７は、付勢プレート６１、基板１６に穿設されたスルーホールを貫通する電極５１を介して基板１６に実装されている。
【０２７７】
上述した固定部材６０によれば、各光源レンズ５０を、その光源レンズの外周面に沿った断面を有する各貫通孔６０ａに各々貫通させて固定するので、上述した固定部材５０よりも、一層確実に光源レンズ５０の光軸を正しい角度で投影ＬＣＤ１９に向くように固定することができる。
【０２７８】
また、組立時に、Ｏリング６２の付勢力によってＬＥＤ１７を正しい位置に付勢して固定することができる。
【０２７９】
また、本装置１を運搬する場合等に生ずる可能性のある衝撃力を、Ｏリング６２の弾性力によって吸収することができ、その衝撃の影響で光源レンズ５０の位置がずれてしまい、光源レンズ５０から垂直に投影ＬＣＤ１９に向けて光を照射できないという不都合を防止することができる。
【０２８０】
上記実施例において、請求項１６記載や請求項１９記載の撮像手段としては、図１２（ｂ）のＳ１２１１、Ｓ１２１５の処理が該当し、３次元形状検出手段としては、図１０のＳ１００６の処理が該当する。
【０２８１】
以上実施例に基づき本発明を説明したが、本発明は上記実施例に何ら限定されるものでなく、本発明の主旨を逸脱しない範囲内で種々の改良変形が可能であることは容易に推察できるものである。
【０２８２】
例えば、上記実施例では、平面化画像モードとして、平面化された画像を取得、表示する処理を説明したが、周知のＯＣＲ機能を搭載させ、平面化された平面画像をこのＯＣＲ機能によって読み取らせるように構成しても良い。かかる場合には、ＯＣＲ機能によって湾曲した状態の原稿を読み取る場合に比べて高精度に原稿に記載された文章を読み取ることができる。
【０２８３】
また、上記実施例における図１５のＳ１５０１においては、明暗の変化を持つ輝度画像の全部を抽出し、その全部について暫定的なＣＣＤＹ値を求める場合について説明したが、抽出する輝度画像としては、全部である必要はなく、１枚以上であれば、その枚数に限定されることはない。抽出する枚数を減らすことで境界座標を高速に求めることができる。
【０２８４】
また、上記実施例における図１５のＳ１５０７では、ｆＣＣＤＹ［ｉ］を加重平均し、図１６のＳ１６０７ではｅｆＣＣＤＹ［ｊ］を近似多項式として、各値を平均化する場合について説明したが、各値を平均化する方法としては、これらに限定されるものではなく、例えば、各値の単純平均値を採る方法、各値の中央値を採用する方法、各値の近似式を算出し、その近似式における検出位置を境界座標とする方法、統計的な演算により求める方法等であっても良い。
【０２８５】
また、例えば、上記実施例における平面化画像モードにおける３次元形状検出処理においては、原稿Ｐの３次元形状を検出するために、複数種類の明暗を交互に並べてなる縞状のパターン光を投影する場合について説明したが、３次元形状を検出するための光は、かかるパターン光に限定されるものではない。
【０２８６】
例えば、図２５に示すように、湾曲原稿の３次元形状の検出を簡便に行う場合には、画像投影部１３から２本の帯状のスリット光７０，７１を投影するようにしても良い。この場合には、８枚のパターン光を投影する場合にくらべ、僅か２枚の撮像画像から高速に３次元形状の検出をすることができる。
【図面の簡単な説明】
【０２８７】
【図１】画像入出力装置の外観斜視図である。
【図２】撮像ヘッドの内部構成を示す図である。
【図３】（ａ）は画像投影部の拡大図であり、（ｂ）は光源レンズの平面図であり、（ｃ）は投影ＬＣＤ１９の正面図である。
【図４】ＬＥＤアレイの配列に関する説明をするための図である。
【図５】画像入出力装置の電気的なブロック図である。
【図６】メイン処理のフローチャートである。
【図７】デジカメ処理のフローチャートである。
【図８】ｗｅｂｃａｍ処理のフローチャートである。
【図９】投影処理のフローチャートである。
【図１０】立体画像処理のフローチャートである。
【図１１】（ａ）は、空間コード法の原理を説明するための図であり、（ｂ）は（ａ）とは異なるマスクパターン（グレイコード）を示す図である。
【図１２】（ａ）は３次元形状検出処理のフローチャートである。（ｂ）は撮像処理のフローチャートである。（ｃ）は３次元計測処理のフローチャートである。
【図１３】コード境界座標検出処理の概略を説明するための図である。
【図１４】コード境界座標検出処理のフローチャートである。
【図１５】コード境界座標をサブピクセル精度で求める処理のフローチャートである。
【図１６】ＰａｔＩＤ［ｉ］のマスクパターン番号を持つ輝度画像について、境界のＣＣＤＹ値を求める処理のフローチャートである。
【図１７】レンズ収差補正処理を説明するための図である。
【図１８】ＣＣＤ空間における座標から３次元空間における３次元座標を算出する方法を説明するための図である。
【図１９】平面化画像処理のフローチャートである。
【図２０】原稿姿勢演算処理を説明するための図である。
【図２１】平面変換処理のフローチャートである。
【図２２】（ａ）は、湾曲計算処理についての大略を説明するための図であり、（ｂ）は平面変換処理によって平面化された平面化画像を示す図である。
【図２３】（ａ）は第２実施例の光源レンズ５０を示す側面図であり、（ｂ）は第２実施例の光源レンズ５０を示す平面図である。
【図２４】（ａ）は、光源レンズ５０を固定した状態を示す斜視図であり、（ｂ）はその部分的な断面図である。
【図２５】被写体に投影するパターン光としての他の例を示す図である。
【符号の説明】
【０２８８】
１          画像入出力装置（３次元形状検出装置）
１３        画像投影部（投影手段）
１４        画像撮像部（撮像手段の一部）
１７        ＬＥＤ（半導体発光素子）
１８，５０  光源レンズ（集光光学系）
１９        投影ＬＣＤ（空間変調素子）
２０        投影光学系（投影手段）
２１        撮像光学系（撮像手段の一部）
２２        ＣＣＤ（撮像手段の一部）
５２，６０  固定部材
６０ａ      貫通孔
６１        付勢プレート（弾性体）
６２        Ｏリング（弾性体）
【図１】
0004734843.tif 000002
【図２】
0004734843.tif 000003
【図３】
0004734843.tif 000004
【図４】
0004734843.tif 000005
【図５】
0004734843.tif 000006
【図６】
0004734843.tif 000007
【図７】
0004734843.tif 000008
【図８】
0004734843.tif 000009
【図９】
0004734843.tif 000010
【図１０】
0004734843.tif 000011
【図１１】
0004734843.tif 000012
【図１２】
0004734843.tif 000013
【図１３】
0004734843.tif 000014
【図１４】
0004734843.tif 000015
【図１５】
0004734843.tif 000016
【図１６】
0004734843.tif 000017
【図１７】
0004734843.tif 000018
【図１８】
0004734843.tif 000019
【図１９】
0004734843.tif 000020
【図２０】
0004734843.tif 000021
【図２１】
0004734843.tif 000022
【図２２】
0004734843.tif 000023
【図２３】
0004734843.tif 000024
【図２４】
0004734843.tif 000025
【図２５】
0004734843.tif 000026