(57)【要約】【課題】連結部（重複領域）の精度を維持し、簡便に選択位置と表示位置との位置合わせを可能とすることを目的とする。【解決手段】表示装置の画面に第１のポイントを表示する第１の表示手段と、第１の表示手段により表示された第１のポイントを選択されたことに基づき検出された座標データを座標検出領域が重複し重複領域を有するよう構成された複数の座標入力装置から取得する第１の取得手段と、第１の取得手段により取得された座標データに基づき、画面の、重複領域に対応する位置に第２のポイントを表示する第２の表示手段と、第２の表示手段により表示された第２のポイントを選択されたことに基づき検出された座標データを、複数の座標入力装置から取得する第２の取得手段と、第１の取得手段により取得された座標データと第２の取得手段により取得された座標データとに基づいて、選択位置と、表示位置との位置合わせを行う位置合わせ手段と、を有する。【選択図】図１９
2017040979.tif 000002
【特許請求の範囲】
【請求項１】
表示装置の画面に第１のポイントを表示する第１の表示手段と、
前記第１の表示手段により表示された第１のポイントを選択されたことに基づき検出された座標データを、座標検出領域が重複し、重複領域を有するよう構成された複数の座標入力装置から取得する第１の取得手段と、
前記第１の取得手段により取得された座標データに基づき、前記画面の、前記重複領域に対応する位置に第２のポイントを表示する第２の表示手段と、
前記第２の表示手段により表示された第２のポイントを選択されたことに基づき検出された座標データを、前記複数の座標入力装置から取得する第２の取得手段と、
前記第１の取得手段により取得された座標データと、前記第２の取得手段により取得された座標データと、に基づいて、選択位置と、表示位置との位置合わせを行う位置合わせ手段と、
を有する情報処理装置。
【請求項２】
前記第１の表示手段は、前記画面の、前記重複領域の外側の領域に対応する位置に前記第１のポイントを表示する請求項１記載の情報処理装置。
【請求項３】
前記第１の取得手段は、前記複数の座標入力装置に接続され、座標データを統合する統合装置より、前記第１のポイントを選択されたことに基づき検出された座標データを取得し、
前記第２の取得手段は、前記統合装置より、前記第２のポイントを選択されたことに基づき検出された座標データを取得する請求項１又は２記載の情報処理装置。
【請求項４】
前記第２の取得手段により取得された座標データの平均処理を行う制御手段を更に有し、
前記位置合わせ手段は、前記第１の取得手段により取得された座標データと、前記平均処理が行われた前記第２の取得手段により取得された座標データと、に基づいて、選択位置と、表示位置との位置合わせを行う請求項１乃至３何れか１項記載の情報処理装置。
【請求項５】
情報処理装置が実行する情報処理方法であって、
表示装置の画面に第１のポイントを表示する第１の表示ステップと、
前記第１の表示ステップにより表示された第１のポイントを選択されたことに基づき検出された座標データを、座標検出領域が重複し、重複領域を有するよう構成された複数の座標入力装置から取得する第１の取得ステップと、
前記第１の取得ステップにより取得された座標データに基づき、前記画面の、前記重複領域に対応する位置に第２のポイントを表示する第２の表示ステップと、
前記第２の表示ステップにより表示された第２のポイントを選択されたことに基づき検出された座標データを、前記複数の座標入力装置から取得する第２の取得ステップと、
前記第１の取得ステップにより取得された座標データと、前記第２の取得ステップにより取得された座標データと、に基づいて、選択位置と、表示位置との位置合わせを行う位置合わせステップと、
を含む情報処理方法。
【請求項６】
コンピュータを、請求項１乃至４何れか１項記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
座標入力面に、指示具（例えば、専用入力ペン、指等）によって指示して座標を入力することで、接続されたコンピュータの制御をしたり、文字や図形等を書き込んだりする座標入力装置が存在する。従来、この種の座標入力装置としては、一般に、タッチパネル等の入力部を用いて表示を行う電子機器又はシステムが知られている。そして、タッチパネル等からのタッチ入力によって、直感的な入力操作が可能なアプリケーションを用いたユーザーインターフェースが開発されている。座標入力方式としては、抵抗膜を用いたもの、光を用いたもの等、様々なものがあるが、遮光位置を検出して座標を算出する方式を、以下、遮光方式と称する。
【０００３】
遮光方式の座標入力装置においては、座標入力領域を制限無く大きくできるわけではなく、受光部では、座標入力領域内の遮蔽物の指示位置を算出できる程度の光量分布を得る必要がある。光量は、光を照明する部分の発光強度、再帰反射部材の再帰反射効率、受光部の受光感度等により決定される。したがって、１面のサイズは、座標入力装置の各構成要素の制限によって決まることになる。そのため、大画面化のための実用的なシステム構成として、１面の座標入力装置のシステムを横（又は縦）に並べるように組み合わせて、画面を横長（又は縦長）にして大型化する構成が考えられる。
特許文献１には、重なった領域を持つ複数のタッチ装置で構成された位置入力システムにおいて、複数のタッチ装置領域をまたがって移動するポインタの位置を追跡する構成が開示されている。特許文献１では、重なっている領域に対しては、定められたロジック（加重平均等）に従って処理されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４９１３３４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
タッチパネル等により、表示装置の表示画面をタッチすることで操作するユーザーインターフェースは、直観的であり誰もが使えるということで、携帯機器等で一般化されている。また、より大きな表示画面を有する装置であっても、そのような操作ができることが望まれている。この様なタッチパネル等によるタッチ入力を用いた電子機器等においては、座標ズレ等の要因によって、表示画面上の目標とする座標とこの目標とする座標にタッチ入力した際の検出座標とにズレ（座標ズレ）が生じる。そのため、この様なタッチパネルでは、通常、その操作前に、タッチパネル座標から、表示装置の表示座標へ変換するための校正（キャリブレーション）が行われる。この様な座標ズレを補正するため、電子機器等には、所謂キャリブレーションメニューが搭載されている。ユーザーは、このキャリブレーションメニューを用いて、座標ズレの補正を行うことができるようになっている。
光学遮光方式の座標入力装置では、少なくとも２つのセンサユニットが出力するタッチ位置の遮光方向（＝角度）とそのセンサユニット間の距離情報とに基づき幾何学的にタッチ位置を算出している。したがって、高精度でタッチ位置を検出するためには、高精度でセンサユニットを位置決めして取り付けなければならない。しかしながら、センサユニットの取り付けは、部品等の寸法ばらつき、又は使用環境等、正確な位置を出すことができない場合があり、その結果、検出誤差が生じるため、座標ズレが生じる原因となっていた。
【０００６】
また、入力面を大画面をとするために、複数の入力面を連結させる構成においては、各々の入力面の座標算出精度に依存して、特に連結領域（重複領域）で、各入力面に跨って入力された場合、少なからず段差や座標ズレが発生してしまう。上述した複数の入力面を連結させる構成において、キャリブレーションの操作は、例えば、入力面ごとのキャリブレーション操作を行うこととなる。したがって、複数面で大画面を構成する場合には、必然的に入力ポイント数が多くなるため、ユーザーの操作に係る煩わしさが生じてしまうこととなる。
また、キャリブレーション操作は、その装置を使用する前に行う以外にも、例えば、表示装置としてプロジェクタで投影する場合には、投影位置がずれた場合に、再度行う必要がある。上記キャリブレーションの操作は、従来通りの操作では再設定に時間がかかる構成であった。
本発明は、連結部（重複領域）の精度を維持し、簡便に選択位置と表示位置との位置合わせを可能とすることを目的とする。
【課題を解決するための手段】
【０００７】
そこで、本発明の情報処理装置は、表示装置の画面に第１のポイントを表示する第１の表示手段と、第１の表示手段により表示された第１のポイントを選択されたことに基づき検出された座標データを、座標検出領域が重複し、重複領域を有するよう構成された複数の座標入力装置から取得する第１の取得手段と、第１の取得手段により取得された座標データに基づき、画面の、重複領域に対応する位置に第２のポイントを表示する第２の表示手段と、第２の表示手段により表示された第２のポイントを選択されたことに基づき検出された座標データを、複数の座標入力装置から取得する第２の取得手段と、第１の取得手段により取得された座標データと、第２の取得手段により取得された座標データと、に基づいて、選択位置と、表示位置との位置合わせを行う位置合わせ手段と、を有する。
【発明の効果】
【０００８】
本発明によれば、連結部（重複領域）の精度を維持し、簡便に選択位置と表示位置との位置合わせを可能とすることができる。
【図面の簡単な説明】
【０００９】
【図１】システムの概略構成の一例を示す図である。
【図２】センサユニットの詳細構成を示す図である。
【図３】座標入力装置の断面の一例を示す図である。
【図４】制御・演算ユニットの一例を示す図である。
【図５】制御信号のタイミングチャートである。
【図６】センサユニットが検出する光量分布を説明するための図（その１）である。
【図７】センサユニットが検出する光量分布を説明するための図（その２）である。
【図８】センサユニットが検出する光量分布を説明するための図（その３）である。
【図９】座標検出範囲を示す図である。
【図１０】画面座標との位置関係を示す図である。
【図１１】座標入力装置の情報処理の一例を示すフローチャートである。
【図１２】各座標入力装置の座標系を模式的に示した図である。
【図１３】重複領域を形成するように並べて構成した場合を模式的に示した図である。
【図１４】表示装置に表示されている表示座標系を模式的に示した図である。
【図１５】ＰＣのハードウェア構成の一例を示す図である。
【図１６】キャリブレーション処理のステップ１とステップ２との処理を説明するための図（その１）である。
【図１７】キャリブレーション処理のステップ１とステップ２との処理を説明するための図（その２）である。
【図１８】キャリブレーションのポイント５〜８の算出について説明する図である。
【図１９】ＰＣの情報処理の一例を示すフローチャートである。
【図２０】実施形態２のシステムのシステム構成の一例を示した図である。
【図２１】実施形態３の平均処理を説明する図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について図面に基づいて説明する。
【００１１】
＜＜実施形態１＞＞
＜システムの構成の概略説明＞
システムの概略構成について図１を用いて説明する。図１に示されるように、本実施形態のシステムは、複数の座標入力装置と、情報処理装置であるＰＣ５と、が通信可能に接続されている。図１では、表示装置５０６（後述）としてのプロジェクタがＰＣ５に接続されている。
図１中、センサユニット１Ａ〜１Ｄ、１Ｅ〜１Ｈ、１Ｉ〜１Ｌは、投光部及び受光部を有するセンサユニットであり、それぞれ所定の距離離れて設置されている。制御・演算を行う制御・演算ユニット２Ａ〜２Ｆは、２つのセンサユニット１と接続される。センサユニット１は、制御信号を制御・演算ユニット２から受け取ると共に、検出した信号を制御・演算ユニット２に送信する。
再帰反射部３Ａ、３Ｂは、入射光を到来方向に反射する再帰反射面を有し、それぞれのセンサユニット１から投光された光を、センサユニット１に向けて再帰的に反射する。反射された光は、集光光学系とラインＣＣＤ等とによって構成されたセンサユニット１の検出部によって１次元的に検出され、その光量分布が制御・演算ユニット２に送られる。
座標入力領域４Ａ〜４Ｃは、ユーザーが座標を入力する座標入力領域である。座標入力領域４Ａは、センサユニット１Ａ〜１Ｄにより検出される領域であり、同様に、座標入力領域４Ｂは、センサユニット１Ｅ〜１Ｈ、座標入力領域４Ｃは、センサユニット１Ｉ〜１Ｌにより検出される領域である。
【００１２】
本実施形態において、再帰反射部３は、座標入力領域４の２辺に構成されている。センサユニット１Ａ、１Ｄ、１Ｅ、１Ｈ、１Ｉ、１Ｌは、２辺の再帰反射部３のうち一方の再帰反射部３Ｂに対して投光した光を受光する。同様に、センサユニット１Ｂ、１Ｃ、１Ｆ、１Ｇ、１Ｊ、１Ｋは、もう一方である再帰反射部３Ａに対して投光した光を受光する。
図１の座標入力装置の例では、座標入力領域４が３面で隙間無く隣接された状態で形成されており、各座標入力領域４の座標を算出するために用いるセンサユニット１は、座標入力領域４の外側に配置されている。
座標入力領域４Ａ〜４ＣをＰＤＰやリアプロジェクタ、ＬＣＤパネル等の表示装置の表示画面で構成したり、フロントプロジェクタで画像を投影したりすることで、インタラクティブな座標入力装置として、利用可能となっている。
この様な構成において、座標入力領域４に指等による入力指示がなされると、投光部から投光された光が遮られ、再帰反射による反射光が得られなくなるため、入力指示位置のみ光量が得られなくなる。
各制御・演算ユニット２は、双方に通信する通信部を有する。制御・演算ユニット２は、センサユニット１Ａ〜１Ｌの光量変化から、入力指示された部分の遮光範囲を検出し、同範囲内での検出点を特定してそれぞれの角度を算出する。制御・演算ユニット２は、算出した角度及び、センサユニット間の距離等から、入力エリア上の座標位置を算出し、表示装置に接続されているＰＣ５等に、ＵＳＢ等のインタフェースを経由して座標値を出力する。
このようにして、指等によって、画面上に線を描画したり、アイコンの操作をしたりする等、ＰＣ５の操作が可能になる。
以降、部分毎に詳細説明を行う。
【００１３】
＜センサユニットの詳細説明＞
次に、センサユニット１Ａ〜１Ｌの構成について、図２及び図３を用いて説明する。センサユニット１Ａ〜１Ｌは、大きく分けて投光部と受光部とから構成される。
図２及び図３は、センサユニット１の詳細構成を示す図である。
図２において、赤外ＬＥＤ１０１は、赤外光を発する赤外ＬＥＤであり、投光レンズ１０２によって、再帰反射部３に向けて所定範囲に光を投光する。ここで、センサユニット１Ａ〜１Ｌ中の投光部は、この赤外ＬＥＤ１０１と、投光レンズ１０２と、によって実現される。
そして、投光部より投光された赤外光は、再帰反射部３により到来方向に再帰的に反射され、センサユニット１Ａ〜１Ｌ中の受光部によって、その光が検出される。
受光部は、１次元のラインセンサであるラインＣＣＤ１０３、集光光学系としての受光用レンズ１０４、入射光の入射方向を概略制限する絞り１０５、及び可視光等の余分な光（外乱光）の入射を防止する赤外フィルター１０６からなる。
そして、再帰反射部３によって反射された光は、赤外フィルター１０６、絞り１０５を抜けて受光用レンズ１０４によって、ラインＣＣＤ１０３の検出素子面上に集光される。
【００１４】
図３のセンサユニットは、図１のセンサユニット１Ａ、１Ｂ側から見た断面図である。センサユニット１Ａの赤外ＬＥＤ１０１Ａからの光は、投光レンズ１０２Ａにより、座標入力面に略平行に制限された光束として、主に再帰反射部３Ｂに対して光が投光されるように構成されている。同様に、センサユニット１Ｂの赤外ＬＥＤ１０１Ｂからの光は、投光レンズ１０２Ｂにより、主に再帰反射部３Ａに対して光が投光されるように構成している。
ここで、本実施形態の場合、投光部と受光部とは、座標入力面である座標入力領域４の垂直方向に対し重ねた配置構成となっている。そして、正面方向（座標入力面に対し垂直方向）から見て、投光部の発光中心と受光部の基準位置（つまり、角度を計測するための基準点位置に相当し、本実施形態にあっては絞り１０５の位置）とが一致する構造となっている。
また、投光部により投光された座標入力面に略平行な光束であって、座標入力面内方向に所定角度方向に投光されている光は、再帰反射部３により光の到来方向に再帰反射される。そして、赤外フィルター１０６Ａ（１０６Ｂ）、絞り１０５Ａ（１０５Ｂ）、受光用レンズ１０４Ａ（１０４Ｂ）を経て、ラインＣＣＤ１０３Ａ（１０３Ｂ）の検出素子面上に集光、結像することになる。
したがって、ＣＣＤ出力信号は、反射光の入射角に応じた光量分布を出力することになるので、ラインＣＣＤ１０３を構成する各画素の画素番号が角度情報を示すことになる。
図３に示す投光部と受光部との距離Ｌは、投光部から再帰反射部３までの距離に比べて十分に小さな値であり、距離Ｌを有していても十分な再帰反射光を受光部で検出することが可能な構成となっている。
図３では、センサユニット１Ａ及び１Ｂについて説明した。しかし、同様の関係を有する、センサユニット１Ｅ及び１Ｆ、センサユニット１Ｄ及び１Ｃ、センサユニット１Ｈ及び１Ｇ、及びセンサユニット１Ｌ及び１Ｋも、センサユニット１Ａ及び１Ｂと同様の構成を有する。
以上説明したように、センサユニット１Ａ〜１Ｌは、投光部と、各々の投光部で投光された光を各々検出する受光部と、を有する。
【００１５】
＜制御・演算ユニットの説明＞
図１の制御・演算ユニット２Ａ〜２Ｆとセンサユニット１Ａ〜１Ｌとの間では、ＣＣＤ制御信号、ＣＣＤ用クロック信号、ＣＣＤ出力信号、及び、ＬＥＤの駆動信号がやり取りされている。制御・演算ユニット２Ａは、センサユニット１Ａ、１Ｄと接続されている。同様に制御・演算ユニット２Ｂは、センサユニット１Ｂ、１Ｃと接続されている。制御・演算ユニット２Ｃは、センサユニット１Ｅ、１Ｈと接続されている。制御・演算ユニット２Ｄは、センサユニット１Ｆ、１Ｇと接続されている。制御・演算ユニット２Ｅは、センサユニット１Ｉ、１Ｌと接続されている。制御・演算ユニット２Ｆは、センサユニット１Ｊ、１Ｋと接続されている。
図４は、制御・演算ユニット２の一例を示す図である。図４では、センサユニット１Ａと１Ｄとに接続される制御・演算ユニット２Ａの構成を例に挙げて説明するが、制御・演算ユニット２Ａ〜２Ｆも同様の回路構成となっている。
ＣＣＤ制御信号はワンチップマイコン等の構成部品で構成されているＣＰＵ４１から出力されている。ＣＰＵ４１は、ＣＣＤ制御信号によりラインＣＣＤ１０３のシャッタタイミングや、データの出力制御等を行っている。ＣＣＤ用クロック信号はクロック発生回路ＣＬＫ４２からセンサユニット１に送信されると共に、ＣＣＤとの同期をとって、各種制御を行うために、ＣＰＵ４１にも入力されている。ＬＥＤの駆動信号はＣＰＵ４１から、センサユニット１Ａと１Ｄとの赤外ＬＥＤに供給されている。
センサユニット１Ａと１Ｄとの検出部であるＣＣＤからの検出信号は、制御・演算ユニット２ＡのＡ／Ｄコンバータ４３に入力され、ＣＰＵ４１からの制御によって、デジタル値に変換される。変換されたデジタル値はメモリ４４に記憶され、角度計算に用いられる。そして、計算された角度から、座標値が求められ、ＰＣ５等にシリアルインタフェース４８等の通信インタフェースを介して出力される。制御・演算ユニット２Ａ〜２Ｆのうちの少なくとも何れか１つのシリアルインタフェース４８が、ＰＣ５と接続される。
【００１６】
ここで、図１に示したように、本実施形態においては、センサユニット１及び制御・演算ユニット２が、上部と下部とにそれぞれ分離して配置された構成となっている。更に、座標入力領域の上部と下部とのそれぞれにおいて、座標入力領域４Ａ〜４Ｃの各領域の座標を検出するセンサユニット１及び制御・演算ユニット２の組に接続された回路構成となっている。
まず、上部及び下部のそれぞれにおける制御演算ユニット間の通信に関しては、有線のシリアル通信部等からなるインタフェース４７を介して行われる。また、このインタフェース４７を介して、上部のセンサユニット１Ａ、１Ｄ、１Ｅ、１Ｈ及び１Ｌ、下部のセンサユニット１Ｂ、１Ｃ、１Ｆ、１Ｇ及び１Ｋの制御信号の同期が行われる。また、インタフェース４７を介して、メモリ４４に格納された各種のデータがやりとりされる。
また、上部と下部との間の制御・演算ユニット２の通信には、無線の通信部が用いられる。本実施形態では、赤外線通信インタフェース４６を介して、サブＣＰＵ４５で処理されたデータにより、制御・演算ユニット２間のやりとりが行われる。
各制御・演算ユニット２Ａ〜２Ｆは、マスター・スレーブ制御にて動作する。本実施形態の場合は、制御・演算ユニット２Ａ、２Ｃ、２Ｅがマスターで、その他の制御・演算ユニット２Ｂ、２Ｄ、２Ｆがスレーブである。各制御・演算ユニット２は、マスター・スレーブのどちらにもなりうるが、ディップスイッチ等で、ＣＰＵ４１のポートに切替え信号を入力することで切替えることが可能となっている。
マスターである制御・演算ユニット２Ａ、２Ｃ、２Ｅからは、各センサユニット１の制御信号を送信するタイミングを制御する制御信号がスレーブの各制御・演算ユニット２に各インタフェースを介して送信される。そして、上述の手順に従って座標値が算出され、ＰＣ５等の情報処理装置に送信される。
ＣＰＵ４１が、ＣＰＵのメモリ等に記憶されているプログラムに基づき処理を実行することによって、制御・演算ユニット２の機能及び後述する図１１のフローチャートの処理等が実現される。
【００１７】
＜光量分布検出の説明＞
図５は、制御信号のタイミングチャートである。
制御信号５１、５２、５３は、ラインＣＣＤ１０３の制御用の制御信号である。ＳＨ信号５１の間隔で、ラインＣＣＤ１０３のシャッタ開放時間が決定される。制御信号５２、５３は、それぞれ上部センサユニット１（センサユニット１Ａ、１Ｄ、１Ｅ、１Ｈ、１Ｉ、１Ｌ）と下部センサユニット１（センサユニット１Ｂ、１Ｃ、１Ｆ、１Ｇ、１Ｊ、１Ｋ）とへのゲート信号である。制御信号５２、５３は、ＣＣＤ内部の光電変換部の電荷を読み出し部へ転送する信号である。
駆動信号５４、５５は、ＬＥＤの駆動信号である。ＳＨ信号５１の最初の周期で上部センサユニット１のＬＥＤを点灯するために駆動信号５４がＬＥＤ駆動回路を経てＬＥＤに供給される。次の周期で駆動信号５５が下部センサユニット１のＬＥＤに供給され、このＬＥＤが駆動される。双方のＬＥＤの駆動が終了した後に、ＣＣＤの信号がセンサから読み出される。したがって、上部センサユニット１と下部センサユニット１とでは、異なるタイミングで投光されて、各ＣＣＤで受光した複数のデータ（光量分布）が読み出されることになる。
【００１８】
読み出される信号は、入力がない場合には、それぞれのセンサユニット１からの出力として、図６のような光量分布が得られる。もちろん、この様な分布がどのシステムでも必ず得られるわけではなく、再帰反射シートの特性やＬＥＤの特性、また、計時変化（反射面の汚れ等）によって、分布は変化する。
図６においては、Ａのレベルが最大光量であり、Ｂのレベルが最低のレベルとなる。つまり反射光のない状態では、得られるレベルがＢ付近になり、反射光量が増えるほどＡのレベルの方向になっている。この様にＣＣＤから出力されたデータは、逐次Ａ／Ｄ変換されＣＰＵ４１にデジタルデータとして取り込まれる。
【００１９】
図７は、指等で入力を行った、つまり、反射光を遮った場合の出力の一例を示す図である。Ｃの部分が指等で反射光が遮られたためその部分のみ、光量が低下している。ＣＰＵ４１は、この光量分布の変化から指等による入力の検出を行う。
より具体的には、ＣＰＵ４１は、図６のような入力の無い初期状態を予め記憶しておいて、それぞれのサンプル期間に図７のような変化があるか初期状態との差分によって検出し、変化があったらその部分を入力点として入力角度を決定する演算を行う。
【００２０】
＜角度計算の説明＞
角度計算にあたっては、まず、ＣＰＵ４１は、遮光範囲を検出する必要がある。
上述したように、光量分布は経時変化等で一定ではないため、システムの起動時等に記憶することが望ましい。そうすることで、例えば、再帰反射面がほこり等で汚れていても、まったく反射しないような場合を除いて使用可能になる。
以降一つのセンサのデータについて説明するが、他のセンサでも同様の処理を行っている。電源投入時、入力の無い状態で、ＣＰＵ４１は、まず投光部から照明されること無しにＣＣＤの出力をＡ／Ｄ変換して、これをＢａｓ＿Ｄａｔａ［Ｎ］として、メモリに記憶する。これは、ＣＣＤのバイアスのばらつき等を含んだデータとなり、図６のＢのレベル付近のデータとなる。ここで、Ｎは画素番号であり、有効な入力範囲に対応する画素番号が用いられる。
次に、ＣＰＵ４１は、投光部から照明された状態での光量分布を記憶する。図６の実線で表されたデータであり、Ｒｅｆ＿Ｄａｔａ［Ｎ］とする。
ＣＰＵ４１は、これらのデータを用いてまずは入力が成されたか、遮光範囲があるかどうかの判定を行う。ＣＰＵ４１は、あるサンプル期間のデータをＮｏｒｍ＿Ｄａｔａ［Ｎ］とする。
ＣＰＵ４１は、まず遮光範囲を特定するために、データの変化の量によって、有無を判定する。これは、ノイズ等による誤判定を防止し、所定量の確実な変化を検出するためである。
【００２１】
ＣＰＵ４１は、変化の量を各々の画素において以下の計算を行い、予め決定してある閾値Ｖｔｈａと比較する。
Ｎｏｒｍ＿Ｄａｔａ［Ｎ］  ＝  Ｎｏｒｍ＿Ｄａｔａ［Ｎ］  −  Ｒｅｆ＿Ｄａｔａ［Ｎ］    式（１）
ここで、Ｎｏｒｍ＿Ｄａｔａ［Ｎ］は各画素における変化量である。
この処理は、差を取り、比較するだけなので、処理時間をさほど使わないので、入力の有無の判定を高速に行うことが可能である。ＣＰＵ４１は、Ｖｔｈａを初めて超えた画素が所定数を超えて検出されたときに入力があったと判定する。
次に、ＣＰＵ４１は、より高精度に検出するために、変化の比を計算して入力点の決定を行う。
Ｎｏｒｍ＿Ｄａｔａ［Ｎ］  ＝  Ｎｏｒｍ＿Ｄａｔａ［Ｎ］  ／  （Ｂａｓ＿Ｄａｔａ［Ｎ］  −  Ｒｅｆ＿Ｄａｔａ［Ｎ］）    式（２）
ＣＰＵ４１は、このデータに対して、閾値Ｖｔｈｒを適用して、その立ち上がり部と立下り部との画素番号から、両者の中央を入力画素として、角度を求める。
【００２２】
図８は、比計算を終わったあとの検出の一例を示す図である。いま閾値Ｖｔｈｒで検出すると遮光領域の立ち上がり部分は、Ｎｒ番目の画素で閾値を超えたとする。更に、Ｎｆ番の画素でＶｔｈｒを下まわったとする。
ＣＰＵ４１は、このまま中心画素Ｎｐを
Ｎｐ  ＝  Ｎｒ  ＋  （Ｎｆ  −  Ｎｒ）  ／  ２    式（３）
のように計算してもよいが、そうすると、画素間隔が最小の分解能になってしまう。より細かく検出するために、ＣＰＵ４１は、それぞれの画素のレベルとその一つ前の画素のレベルを用い閾値を横切った仮想の画素番号を計算する。
いまＮｒのレベルをＬｒ、Ｎｒ−１番画素のレベルをＬｒ−１とする。また、ＮｆのレベルをＬｆ、Ｎｆ−１番のそのレベルをＬｆ−１とすれば、それぞれの仮想画素番号Ｎｒｖ、Ｎｆｖは、
Ｎｒｖ  ＝  Ｎｒ−１  ＋  （  Ｖｔｈｒ  −  Ｌｒ−１  ）  ／  （  Ｌｒ  −  Ｌｒ−１  ）    式（４）
Ｎｆｖ  ＝  Ｎｆ−１  ＋  （  Ｖｔｈｒ  −  Ｌｆ−１  ）  ／  （  Ｌｆ  −  Ｌｆ−１  ）    式（５）
と計算でき、仮想中心画素Ｎｐｖは、
Ｎｐｖ  ＝  Ｎｒｖ  ＋  （  Ｎｆｖ  −  Ｎｒｖ  ）  ／  ２    式（６）
で決定される。
【００２３】
このように、画素番号とそのレベルから仮想的な画素番号を計算することで、より分解能の高い検出ができる。
上記のように得られた中央画素番号から、実際の座標値を計算するためには、角度情報に変換する必要がある。
後述する実際の座標計算では、角度そのものよりもその角度における正接（ｔａｎｇｅｎｔ）の値を求めるほうが都合がよい。画素番号から、ｔａｎθへの変換には、ＣＰＵ４１は、テーブル参照や変換式を用いる。
ＣＰＵ４１は、変換式は例えば高次の多項式を用いることで精度を確保することができる。一方、ＣＰＵ４１は、次数等は計算能力及び精度スペック等を鑑みて決定すればよい。
ここで、５次多項式を用いる場合の例を示すと、５次多項式を用いる場合には係数が６個必要になるので、出荷時等にこのデータを不揮発性メモリ等に記憶しておけばよい。いま５次多項式の係数をＬ５、Ｌ４、Ｌ３、Ｌ２、Ｌ１、Ｌ０としたとき、ｔａｎθは
ｔａｎθ  ＝  （Ｌ５  ＊  Ｎｐｒ  ＋  Ｌ４）  ＊  Ｎｐｒ  ＋  Ｌ３）  ＊  Ｎｐｒ  ＋  Ｌ２）  ＊  Ｎｐｒ  ＋  Ｌ１）  ＊  Ｎｐｒ  ＋  Ｌ０    式（７）
で表すことができる。
同様なことを各々のセンサに対して行えば、それぞれの角度データを決定できる。もちろん、上記例ではｔａｎθを求めているが、ＣＰＵ４１は、角度そのものを求め、その後ｔａｎθを求めてもよい。
【００２４】
＜座標計算方法の説明＞
ＣＰＵ４１は、得られた角度データから座標を算出する。
図９は、各センサユニット１の組み合わせで座標計算可能な座標入力領域４Ａの座標検出範囲を示す図である。
図９に示すように、各センサユニット１の投光及び受光範囲が交わる領域が座標計算可能な領域となる。したがって、センサユニット１Ｃ、１Ｄで座標計算可能な範囲は、図９（ａ）の斜線の範囲９１である。同様にセンサユニット１Ｂ、１Ｃで座標計算可能な範囲は、図９（ｂ）の斜線の範囲９２、センサユニット１Ａ、１Ｂで座標計算可能な範囲は、図９（ｃ）の斜線の範囲９３、センサユニット１Ａ、１Ｄで座標計算可能な範囲は、図９（ｄ）の斜線の範囲９４となる。
【００２５】
図１０は、画面座標との位置関係を示す図である。いま、点Ｐの位置に入力があった場合、このときセンサユニット１Ｂ、１Ｃにて遮光データが検出される。
センサユニット間の距離はＤｈで表されている。また、画面中央が画面の原点位置である。Ｐ０（０、Ｐ０Ｙ）は１Ｂ、１Ｃのセンサユニット１の角度０の交点である。角度０とは、それぞれのセンサユニットの投光可能な範囲の中心からの投光方向を示している。ＣＰＵ４１は、それぞれの角度をθＬ、θＲとして、それぞれｔａｎθＬ、ｔａｎθＲを、上記多項式を用いて算出する。このとき点Ｐのｘ、ｙ座標は
ｘ  ＝  Ｄｈ  ＊  （ｔａｎθＬ  ＋  ｔａｎθＲ）  ／  （  １  ＋  （ｔａｎθＬ  ＊  ｔａｎθＲ）  ）    式（８）
ｙ  ＝  −  Ｄｈ  ＊  （ｔａｎθＲ  −  ｔａｎθＬ  −  （  ２  ＊  ｔａｎθＬ  ＊  ｔａｎθＲ）  ）  ／  （  １＋  （  ｔａｎθＬ  ＊  ｔａｎθＲ）  ）  ＋  Ｐ０Ｙ    式（９）
で計算される。
座標入力領域４によって、センサユニット１の組み合わせが変更になることは上述した通りであるが、センサユニット１の組み合わせで、座標算出式のパラメータが変更になる。
例えば、ＣＰＵ４１は、センサユニット１Ｃ、１Ｄで検出されたデータで計算する場合は、式（８）、（９）において、図１０に示した値を用いて、Ｄｈ→Ｄｖ、Ｐ０Ｙ→Ｐ１Ｘの変換を行う。更に、ＣＰＵ４１は、計算したｘ及びｙを、ｘ⇔ｙに変換する。
同様に、センサユニット１Ａ、１Ｂの組み合わせ、センサユニット１Ａ、１Ｄの組み合わせで遮光データが検出された場合も、ＣＰＵ４１は、パラメータを変更し、上記の式（８）、（９）にて計算することができる。
【００２６】
各センサユニット１の組み合わせによる座標検出可能な領域は、座標検出範囲が重なる領域があるため、複数の座標が検出されることがあるが、ＣＰＵ４１は、算出した座標値を平均する等して、座標を決定すればよい。
また、本実施形態では、３面の座標入力領域４を有しているが、センサユニット１Ｅ〜１Ｈ、１Ｉ〜１Ｌで検出されたデータで計算する場合も、ＣＰＵ４１は、上述と同様に座標値を計算することができる。
但し、ＰＣ５に出力される座標値は、ＰＣ５の表示モードによって異なる場合がある。例えば、３面のデスクトップ画面に同じ画像が表示されるいわゆるクローン表示の場合は、計算された座標値をそのままＰＣ５に送信すればよい。また、２面の画像を１つのデスクトップ画面として扱う、いわゆる拡張デスクトップモードの場合は、計算された座標値をオフセットしてＰＣ５に送信することが望ましい。
このように、算出された座標値をＰＣ５の表示モードによって、適宜オフセットさせる等して、ＰＣ５に出力してもよいが、座標値は、算出されたままＰＣ５に出力してもよい。この場合、後述するＰＣ５のＣＰＵ５０１が座標値を変更してもよい。
【００２７】
＜座標算出工程の説明＞
図１１は、データ取得から座標計算までの情報処理の一例を示すフローチャートである。図１１では、制御・演算ユニット２ＡのＣＰＵ４１が処理を行うものとして説明を行う。制御・演算ユニット２Ｃ、２ＥのＣＰＵ４１も制御・演算ユニット２ＡのＣＰＵ４１と同様、図１１の示す処理を実行する。
Ｓ１０１において、電源が投入されると、ＣＰＵ４１は、処理を開始する。
Ｓ１０２において、ＣＰＵ４１は、ポート設定、タイマ設定等様々な初期化を行う。
Ｓ１０３において、ＣＰＵ４１は、初期読み込み回数を設定する。この処理は、立ち上げ時のみに行う不要電荷除去のための準備である。ＣＣＤ等の光電変換素子において、動作させていないときに不要な電荷が蓄積している場合があり、そのデータをそのままリファレンスデータとして用いると、検出不能や、誤検出の原因となる。それを避けるために、最初に照明無しで、複数回データの読み出しを行う。Ｓ１０３ではその読み込み回数を設定している。
Ｓ１０４において、ＣＰＵ４１は、照明無しで、データを読み出す。この処理で、不要電荷の除去を行っている。
Ｓ１０５において、ＣＰＵ４１は、Ｓ１０３で設定された回数、読み込みを行ったか否かを判定する。ＣＰＵ４１は、Ｓ１０３で設定された回数、読み込みを行ったと判定した場合（Ｓ１０５においてＹＥＳ）、Ｓ１０６に進み、Ｓ１０３で設定された回数、読み込みを行っていないと判定した場合（Ｓ１０５においてＮＯ）、Ｓ１０４の処理を繰り返す。
【００２８】
Ｓ１０６において、ＣＰＵ４１は、リファレンスデータとしての照明無しでのデータの取り込みを行う。このデータは、上記Ｂａｓ＿Ｄａｔａに相当する。
Ｓ１０７において、ＣＰＵ４１は、取り込んだデータをメモリに記憶する。メモリに記憶されたデータは、以降の計算に用いられる。
Ｓ１０８において、ＣＰＵ４１は、もう一つのリファレンスデータである、照明したときの初期光量分布に相当するデータであるＲｅｆ＿Ｄａｔａを取り込む。
Ｓ１０９において、ＣＰＵ４１は、取り込んだデータをメモリに記憶する。
ここで、上部のセンサユニット１の組のＣＰＵ４１と下部のセンサユニット１の組のＣＰＵ４１は、とで異なるタイミングで照明されたデータを取り込む。これは、上部のセンサユニット１と下部のセンサユニット１とが対向する配置であるため、同時に照明してしまうと、互いの照明を互いの受光部にて検出してしまうことを避けるためである。
そして、Ｓ１１０において、ＣＰＵ４１は、全てのセンサユニット１、即ち、センサユニット１Ａ〜１Ｄ、において取り込みが終了したかどうかを判定する。ＣＰＵ４１は、全てのセンサユニット１において取り込みが終了した判定した場合（Ｓ１１０においてＹＥＳ）、Ｓ１１１に進み、全てのセンサユニット１において取り込みが終了していない場合（Ｓ１１０においてＮＯ）、Ｓ１０８、Ｓ１０９の処理を繰り返す。
このステップまでの処理が、電源投入時の初期設定動作になり、次から通常の取り込み動作になる。
【００２９】
Ｓ１１１において、ＣＰＵ４１は、上述したように光量分布を取り込む。
そして、Ｓ１１２において、ＣＰＵ４１は、全てのセンサユニット１において取り込みが終了したかどうかを判定する。ＣＰＵ４１は、全てのセンサユニット１において取り込みが終了したと判定した場合（Ｓ１１２においてＹＥＳ）、Ｓ１１３に進み、全てのセンサユニット１において取り込みが終了していないと判定した場合（Ｓ１１２においてＮＯ）、Ｓ１１１の処理を繰り返す。
Ｓ１１３において、ＣＰＵ４１は、全てのデータに対して、Ｒｅｆ＿Ｄａｔａとの差分値を計算する。
そして、Ｓ１１４において、ＣＰＵ４１は、遮光部分の有無を判定する。ＣＰＵ４１は、遮光部分がある、即ち入力がある、と判定した場合（Ｓ１１４においてＹＥＳ）、Ｓ１１５に進み、遮光部分がない、即ち入力がない、と判定した場合（Ｓ１１４においてＮＯ）、Ｓ１１１からの処理を繰り返す。このとき、この繰り返し周期を１０［ｍｓｅｃ］程度に設定すれば、１００回／秒のサンプリングになる。
Ｓ１１５において、ＣＰＵ４１は、式（２）を用いて比を計算する。
Ｓ１１６において、ＣＰＵ４１は、Ｓ１１５で得られた比に対して閾値で立ち上がり部、立下り部を決定し、式（４）、（５）、（６）を用いて中心画素を計算する。
そして、Ｓ１１７において、ＣＰＵ４１は、得られた中心画素から近似多項式よりＴａｎθを計算する。
Ｓ１１８において、ＣＰＵ４１は、遮光領域が有りと判定されたセンサユニット１の組み合わせから、式（８）、（９）においてセンサ間距離等のＴａｎΘ以外のパラメータを選択し、計算式を変更する。
そして、Ｓ１１９において、ＣＰＵ４１は、センサユニット１でのＴａｎθ値からｘ、ｙ座標を式（８）、（９）を用いて算出する。
【００３０】
次にＳ１２０において、ＣＰＵ４１は、Ｓ１１９で算出した座標について、タッチされたか否かの判定を行う。ここで、ＣＰＵ４１は、マウスのボタンを押下せずにカーソルを移動させている状態のような近接入力状態か、左ボタンを押した状態であるタッチダウン状態かの判定を行っている。より具体的に説明すると、ＣＰＵ４１は、先に得られた比の最大値が、ある所定値、例えば０．５等の値を超えていればタッチダウン状態と判定し、それ以下なら近接入力状態と判定する。ＣＰＵ４１は、タッチダウン状態と判定した場合（Ｓ１２０においてＹＥＳ）、Ｓ１２１に進み、近接入力状態と判定した場合（Ｓ１２０においてＮＯ）、Ｓ１２２に進む。
Ｓ１２１において、ＣＰＵ４１は、ダウンフラグをセットする。
一方、Ｓ１２２において、ＣＰＵ４１は、ダウンフラグを解除する。
Ｓ１２３において、ＣＰＵ４１は、座標値とダウン状態の情報とを、ＰＣ５へ送信する。ＣＰＵ４１は、ＵＳＢ、ＲＳ２３２等のシリアル通信でデータ等をＰＣ５に送ってもよいし、任意のインタフェースで送ってもよい。データが送られたＰＣ５側では、後述するＰＣ５のＣＰＵ５０１がデータを解釈し、カーソルの移動、マウスボタン状態の変更等を座標値、フラグ等を参照して行う。このことで、ＰＣ画面の操作が可能になる。
Ｓ１２３の処理が終了した場合、ＣＰＵ４１は、Ｓ１１１の処理に戻り、以降、電源ＯＦＦまで上述した処理を繰り返す。
【００３１】
＜キャリブレーションの説明＞
キャリブレーションとは、操作をして最終的にタッチした位置にカーソルがＰＣ５の制御によって表示されるように調整することである。そのため、座標入力装置の座標系をコンピュータのオペレーティングシステムの表示座標系に変換するためのパラメータを取得し、又はパラメータを取得できるように操作者に一連の操作を促す。そして、結果的にタッチした位置にカーソルが表示されるように変換した座標値を出力することができる状態にする。
座標入力装置の入力とＰＣ５の表示とは、それぞれ別々の座標系で構成されている。以下に座標入力装置の座標系とＰＣ座標系（表示）とについて説明する。各座標入力装置は、電源起動時にセンサの位置関係を測定して各々の座標入力装置で独立した座標系を構成する。そして、各座標入力装置は、各座標系におけるタッチ位置を検出して座標データを出力する。各座標入力装置のセンサ間距離は、厳密には等距離に設置されないので、各座標入力装置が出力する座標値の絶対値は同じにはなるとは限らない。
【００３２】
以下に本実施形態におけるキャリブレーションについて説明する。
図１２は、各座標入力装置の座標系を模式的に示した図である。各座標入力装置は、各々で座標系を形成し、座標入力装置ごとに独立して座標やイベント等のデータ出力を行う。したがって、各座標入力装置で形成する座標系は、必ずしも傾き等が同一であることはなく各々で異なるように構成されることとなる。即ち、座標入力装置のＩＤとしてＤｉｇｉＩＤ＝０の場合の座標系は、ＩＤ０Ｘ軸及びＩＤ０Ｙ軸の座標値として、座標値ＩＤ０（０、０）〜ＩＤ０（７ＦＦＦ、７ＦＦＦ）として出力される。ＤｉｇｉＩＤ＝１、ＤｉｇｉＩＤ＝２の場合も同様である。
【００３３】
図１３は、図１２で説明した独立した座標系を各座標入力領域４が重複領域を形成するように並べて構成した場合を模式的に示した図である。ここで、重複領域とは、各座標入力領域４が重なる領域のことを指す。図１３においては、二重の網掛け部分となる。
また、各座標入力領域４における座標変換は、キャリブレーションポイントとして獲得される４点の座標値で形成される新たな座標系に対して行われる。キャリブレーションポイントは、ＰＣ５の表示位置として既知のポイントである。後述するＰＣ５のＣＰＵ５０１がタッチされた位置を保存し、所定の座標変換関数に検出座標を入力して座標変換することによって、タッチ位置とＰＣ５の表示位置（カーソル）との位置が合うようになる。
ここで、上述したキャリブレーションポイントは、座標入力領域ごとで各４点となるように構成される。即ち、図１３に示すように、ＤｉｇｉＩＤ＝０のキャリブレーションポイント４点は、そのうち２点はＤｉｇｉＩＤ＝０、  ＤｉｇｉＩＤ＝１の重複領域となる。そして、ＤｉｇｉＩＤ＝１は、キャリブレーションポイント４点が重複領域となるように構成される。ＤｉｇｉＩＤ＝２は、ＤｉｇｉＩＤ＝０と同様にキャリブレーションポイント４点のうち、２点が重複領域に構成され、ＤｉｇｉＩＤ＝１、  ＤｉｇｉＩＤ＝２の重複領域となるように構成される。更に、この状態で、図１３に示すように全ての座標入力領域４の有効領域を包含する座標系の座標軸として、ＤｉｇｉＸ軸とＤｉｇｉＹ軸とが構成される。
【００３４】
図１４は、ＰＣ５のオペレーティングシステムのデスクトップ画面として表示装置に表示されている表示座標系を模式的に示した図である。表示装置がプロジェクタの場合は、投影領域画像として、表示されるものであって、キャリブレーションポイントは、図１３に示したポイントと同一の位置である。即ち、投影画像として示されたキャリブレーションポイントをユーザーがタッチして座標入力装置が検出する座標値は、図１３のキャリブレーションポイントということになる。
本実施形態のキャリブレーションの処理は、ステップ１とステップ２とから構成される。ステップ１では、投影画像の４隅がタッチされた場合、後述するＰＣ５のＣＰＵ５０１は、デジタイザ座標検出領域に投影されているプロジェクタからの投影領域を把握する。そして、後述するＰＣ５のＣＰＵ５０１は、前記タッチによって検出した座標データを用いて、重複領域にポイントが表示されるようにＰＣ表示座標系でキャリブレーションポイントを算出する。各デジタイザのセンサユニット１の位置関係は、ほぼ設計値通り設置されるものとする。ステップ２では、後述するＰＣ５のＣＰＵ５０１が、ステップ１で算出したキャリブレーションポイントを表示して、順次タッチされることによって、座標データを取得する。そして、後述するＰＣ５のＣＰＵ５０１は、キャリブレーション計算（座標系変換）用のパラメータを設定する。
【００３５】
図１５は、ＰＣ５のハードウェア構成の一例を示す図である。ＰＣ５は、ハードウェア構成として、ＣＰＵ５０１、ＲＯＭ５０２、ＲＡＭ５０３、２次記憶装置５０４、入力装置５０５、表示装置５０６、ネットワークＩ／Ｆ５０７、バス５０８を含む。
ＣＰＵ５０１は、ＲＯＭ５０２やＲＡＭ５０３に格納されたプログラムに従って命令を実行する。
ＲＯＭ５０２は、不揮発性メモリであり、プログラムやＣＰＵ５０１がプログラムに基づき処理を実行する際に必要なデータ等を格納する。
ＲＡＭ５０３は、揮発性メモリであり、フレーム画像データやパターン判別結果等の一時的なデータを記憶する。
２次記憶装置５０４は、ハードディスクドライブやフラッシュメモリー等の書き換え可能な２次記憶装置であり、画像情報や画像処理プログラムや、各種設定内容等を記憶する。これらの情報はＲＡＭ５０３に転送され、ＣＰＵ５０１がプログラムの基づき処理を実行する際に利用される。
入力装置５０５は、キーボードやマウス等であり、ユーザーからの入力をＣＰＵ５０１に通知する。
表示装置５０６は、プロジェクタ又は液晶ディスプレイ等であり、図１４に示す投影領域画像などのＣＰＵ５０１の処理結果等を表示する。表示装置５０６は、ＰＣ５の外部装置としてもよい。
ネットワークＩ／Ｆ５０７は、インターネットやイントラネット等のネットワークと接続を行うモデムやＬＡＮ等である。
バス５０８は、これらを接続して相互にデータの入出力を行う。
ＣＰＵ５０１が、ＲＯＭ５０２又は２次記憶装置５０４に記憶されたプログラムに基づき処理を実行することにより、情報処理装置としてのＰＣ５の機能及び後述する図１９のフローチャートにおけるＰＣ５のステップの処理が実現される。
【００３６】
図１６及び図１７は、上述したキャリブレーション処理のステップ１とステップ２との処理を説明するための図である。図１６及び図１７に示すようにユーザーは、画面に表示するカーソルポイント及びメッセージにしたがって、入力を行う。
図１６に示すように、キャリブレーション処理のステップ１では、ＣＰＵ５０１は、デスクトップの座標系の既知の所定位置として、ポイント１〜４のようにキャリブレーションポイントを表示する。そして、ユーザーは、点滅するキャリブレーションポイントを順次タッチしていく。このことによって、各座標入力装置のＣＰＵ４１によって座標値が検出されることとなる。
図１６で示したキャリブレーションポイントの位置は、予め決められた位置であったが、図１７で示すキャリブレーションポイントは、図１６で示したキャリブレーション処理のステップ１で得られた座標値によって、計算された位置である。
図１７に示すように、キャリブレーション処理のステップ２では、ＣＰＵ５０１は、ポイント５〜８を表示する。上述したように図１６のポイント１〜４が検出されることによって、ＣＰＵ５０１は、座標入力領域４の重複領域にポイントが表示されるようにする。そして、ポイント５〜８においても、ユーザーは、点滅するキャリブレーションポイントを順次タッチしていく。このことによって、各座標入力装置のＣＰＵ４１によって座標値が検出されることとなる。
【００３７】
図１８は、図１７に示すキャリブレーションのポイント５〜８の算出について説明する図である。
図１８において、図１６のポイント１を（ｃ０ｘ、ｃ０ｙ）、ポイント３を（ｃ２ｘ、ｃ２ｙ）とすると、ｃ０ｘとｃ２ｘとの間の距離Ｌは、
Ｌ  ＝  （０ｘ７ＦＦＦ  −  Ｃ０ｘ）  ＋  （０ｘ７ＦＦＦ  −  ＯＶ＿Ｘ  ＊  ２）  ＋  Ｃ２ｘ
となる。ここで、ＯＶ＿Ｘは重複領域の幅である。
図１７のポイント５を（ｃ４ｘ、ｃ４ｙ）、ポイント７を（ｃ６ｘ、ｃ６ｙ）とすると、ｃ４ｘの値は、図１８に示すｘ１であり、
ｘ１  ＝  （０ｘ７ＦＦＦ  −  Ｃ０ｘ）    −  ＯＶ＿Ｘ  ／  ２
となる。
また、ｃ６ｘの値は、図１８に示すｘ２であり、
ｘ２  ＝  （０ｘ７ＦＦＦ  −  Ｃ０ｘ）  ＋  （０ｘ７ＦＦＦ  −  ＯＶ＿Ｘ  ＊  ２）  ＋  ＯＶ＿Ｘ  ／  ２
となる。
本実施形態では、ｃ０ｙ、ｃ２ｙ、ｃ４ｙ、ｃ６ｙは所定値であって同一の値としている。また、同様に、ｃ１ｙ、ｃ３ｙ、ｃ５ｙ、ｃ７ｙも所定値であって同一の値としている。また、ｃ４ｘ  ＝  ｃ５ｘ、ｃ６ｘ  ＝  ｃ７ｘ  とする。
【００３８】
上述したキャリブレーションの処理は、キャリブレーションモードとして、ＰＣ５で処理されることになる。キャリブレーションモードは、ＣＰＵ５０１がプログラムに基づき処理を実行することにより実現されるアプリケーションとして実行され、ＧＵＩ等を用いて、ユーザーが起動することになる。図１９は、キャリブレーションに係る情報処理の一例を示すフローチャートである。
Ｓ２０１において、ＣＰＵ５０１は、キャリブレーションモードにおける処理をスタートする。
Ｓ２０２において、ＣＰＵ５０１は、表示装置のキャリブレーション画面に予め決められた既知の位置のポイント（Ｃ０ｘ、Ｃ０ｙ）（Ｃ１ｘ、Ｃ１ｙ）（Ｃ２ｘ、Ｃ２ｙ）（Ｃ３ｘ、Ｃ３ｙ）にカーソルを表示する。ユーザーは、メニューにしたがって順次ポイントをタッチする。
Ｓ２０３において、ＣＰＵ５０１は、座標データの取得を行う。
Ｓ２０４において、ＣＰＵ５０１は、ポイント４点分の必要な座標データが揃ったかどうかを判定する。ＣＰＵ５０１は、ポイント４点分の必要な座標データが揃った場合、Ｓ２０５に進み、ポイント４点分の必要な座標データが揃っていない場合、Ｓ２０３からの処理を繰り返す。
【００３９】
Ｓ２０５において、ＣＰＵ５０１は、獲得したデータから重複領域のキャリブレーションポイントの算出を行う。
Ｓ２０６において、ＣＰＵ５０１は、Ｓ２０５で算出した重複領域のポイントを表示装置のキャリブレーション画面にポイント（Ｃ４ｘ、Ｃ４ｙ）（Ｃ５ｘ、Ｃ５ｙ）（Ｃ６ｘ、Ｃ６ｙ）（Ｃ７ｘ、Ｃ７ｙ）としてカーソルを表示する。そして、ユーザーは、メニューにしたがって順次ポイントをタッチする。
Ｓ２０７において、ＣＰＵ５０１は、座標データの取得を行う。各ポイントでは、各座標入力領域４での座標検出が行われるので、１ポイントにつき２点の座標が検出され、ＣＰＵ５０１によって取得されることになる。
Ｓ２０８において、ＣＰＵ５０１は、ポイント８点分の必要な座標データが揃ったかどうかを判定する。ＣＰＵ５０１は、ポイント８点分の必要な座標データが揃った場合、Ｓ２０９に進み、ポイント８点分の必要な座標データが揃っていない場合、Ｓ２０７からの処理を繰り返す。
Ｓ２０９において、ＣＰＵ５０１は、獲得した合計１２点分のキャリブレーションポイントの座標データの保存を行う。
この保存の処理が終了した場合、Ｓ２１０において、ＣＰＵ５０１は、キャリブレーションモードにおける処理を終了する。
【００４０】
以上のようにして、各座標入力領域４に対して４点のキャリブレーションポイントに対する座標データが獲得でき、各座標入力領域４の座標変換に使用することができる。結果的に、複数の座標入力装置を連結・組み合わせて、大画面座標入力領域を備えるシステムにおいても、特に連結部（重複領域）にキャリブレーションポイントを表示することによって、キャリブレーションポイント数を削減することにより簡便に指示位置と表示画像との位置合わせが可能となる。
本実施形態においては、いわゆる遮光方式の座標入力装置であったが、遮光方式に限定されるものではない。例えば、カメラで画像処理する方式であっても、座標入力領域４が重複領域を有するような構成である場合も、本実施形態の処理は有効である。
【００４１】
＜＜実施形態２＞＞
実施形態１では、キャリブレーションポイントの表示及び各座標入力装置の座標データの統合処理は、ＣＰＵ５０１がプログラムを実行することによって実現されるアプリケーションが実行していた。
本実施形態では、座標データの統合処理等を行うモジュールを構成した場合について述べる。図２０は、実施形態２のシステムのシステム構成の一例を示した図である。座標入力装置１９１〜１９３は、座標データ統合モジュール１９４に接続される。更に、座標データ統合モジュール１９４は、図１５と同様のハードウェア構成を有するＰＣ１９５に接続される。
座標データ統合モジュール１９４は、ＵＳＢ等のシリアル通信機能を有するＣＰＵ及びメモリ等で構成されていて、各座標入力装置及びＰＣ１９５との通信を行うことができる。各座標入力装置との通信には、ＵＳＢのホスト機能、ＰＣ１９５との通信には、ＵＳＢのデバイス機能が使用される。このように構成することにより、座標データ統合モジュール１９４は、ＵＳＢのデバイスとして、ＰＣ１９５側から見れば、１台のデバイスが接続されているように見える。
座標データ統合モジュール１９４は、各座標入力装置から、座標入力装置のＩＤ、検出座標、検出座標ＩＤ、各種イベント情報を通信により受け取る。また、上述したキャリブレーションモードにより、座標データ統合モジュール１９４は、各キャリブレーションポイントの値、更には、重複領域の範囲情報等をメモリに保存する。そして、座標データ統合モジュール１９４は、各座標入力装置の検出座標を重複領域やその他の領域について全体の領域で１台のデバイスから出力されているように統合したＩＤを座標値に付与する等の処理をしてＰＣ１９５に送信する。
【００４２】
このように構成することで、システムの初期設定でキャリブレーションを行ってしまえば、通常の使用状態においては、ＰＣ１９５のアプリケーションにおける各座標入力装置の座標統合処理は、必要ないので、ＣＰＵ５０１の使用率を軽減する等の効果がある。
【００４３】
＜＜実施形態３＞＞
実施形態１では、座標入力領域４の重複領域において、各座標入力装置で複数検出される座標値は、ＣＰＵ５０１が各重複領域のキャリブレーションポイントを境界にして、適宜選択されるように処理していた。
本実施形態においては、ＣＰＵ５０１が座標入力領域４の重複領域の範囲で、各座標入力装置で検出される座標データの平均処理を行う場合について述べる。
図２１は、本実施形態の処理を説明する図である。座標入力領域２０１と座標入力領域２０２との一部分が拡大されて示されている。そして、座標入力領域２０１の検出範囲２０４と座標入力領域２０２の検出範囲２０３とが図２１に示すように所定範囲で重複するように配置されている。線２０５は、キャリブレーションポイントのＹ方向を示す線である。
ここで、図２１に示すようにＡからＢまでに入力されたとき、座標入力領域２０１では、ＡからＣまでのように検出領域端部に向けて曲がったように座標が検出される。これは、上述したセンサユニット１における受光レンズの歪等による誤差によって生じるものである。同様に座標入力領域２０２では、ＤからＢまでのように座標が検出される。
この場合は、第１実施形態のように、キャリブレーションポイントのＹ方向で、座標入力領域を切り替えると、少なからず描画の軌跡に段差が生じてしまう。
本実施形態においては、ＣＰＵ５０１が重複領域においては、各座標入力領域で検出される座標値に対して平均処理をすることにより、軌跡が図の太線のように描画されるようになる。
ＣＰＵ５０１は、平均処理として、検出範囲２０３では、座標入力領域２０２の座標値に１倍の加重となるように、また、検出範囲２０４では、検出範囲２０３の座標値に１倍の加重となるように処理を行う。また、ＣＰＵ５０１は、キャリブレーションポイントのＹ方向である線２０５では、両者の座標値の１／２の加重となるように処理を行う。
ＣＰＵ５０１は、重複領域の範囲における加重の係数値を、以下のように決定する。即ち、ＣＰＵ５０１は、検出範囲２０３と線２０５の間では、座標入力領域２０２の座標値の値を使用し、重複領域の範囲のＸ方向のどの位置にあるかを算出し、上述したように、検出範囲２０３で１、線２０５で０．５の比となるように係数を決定する。同様に、ＣＰＵ５０１は、線２０５と検出範囲２０４の間では、座標入力領域２０１の座標値の値を使用し、検出範囲２０４で１、線２０５で０．５の比となるように係数を決定する。このように処理することにより、ＡからＢまでの太線で示したようになめらかな軌跡の描画となる。
【００４４】
以上説明したように、本実施形態の処理によれば、各座標入力領域の端部で誤差が生じても、出力する座標値は誤差を軽減させて出力させることができるようになる。
【００４５】
＜＜その他の実施形態＞＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給する。そして、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００４６】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではない。上述した実施形態を任意に組み合わせて実施してもよい。
【００４７】
以上、上述した各実施形態によれば、連結部（重複領域）の精度を維持し、簡便に選択位置と表示位置との位置合わせを可能とすることができる。
【符号の説明】
【００４８】
１Ａ〜１Ｌ  センサユニット
２Ａ〜２Ｆ  制御・演算ユニット
４Ａ〜４Ｃ  入力領域
５          ＰＣ
５０１      ＣＰＵ
【図１】
2017040979.tif 000003
【図２】
2017040979.tif 000004
【図３】
2017040979.tif 000005
【図４】
2017040979.tif 000006
【図５】
2017040979.tif 000007
【図６】
2017040979.tif 000008
【図７】
2017040979.tif 000009
【図８】
2017040979.tif 000010
【図９】
2017040979.tif 000011
【図１０】
2017040979.tif 000012
【図１１】
2017040979.tif 000013
【図１２】
2017040979.tif 000014
【図１３】
2017040979.tif 000015
【図１４】
2017040979.tif 000016
【図１５】
2017040979.tif 000017
【図１６】
2017040979.tif 000018
【図１７】
2017040979.tif 000019
【図１８】
2017040979.tif 000020
【図１９】
2017040979.tif 000021
【図２０】
2017040979.tif 000022
【図２１】
2017040979.tif 000023