(57)【要約】【課題】読取対象物の輪郭を正確に抽出することができる画像読取装置を提供する。【解決手段】カメラスキャナ１０１は、原稿９０２及び手９０１を含む原稿含有距離画像データを取得し、原稿含有距離画像データを二値化して二値化距離画像データを取得し、二値化距離画像データから手９０１の画像を除去して原稿９０２の概形を表す基準輪郭９０５を抽出し、手９０１の画像を除去する前の二値化距離画像データから基準輪郭９０５に基づいて原稿９０２の輪郭を抽出する。【選択図】図８Ａ
2018191258.tif 000002
【特許請求の範囲】
【請求項１】
読取対象物及び該読取対象物の保持手段を含む画像を取得する画像取得手段と、
前記取得された画像から前記保持手段の画像を除去して前記読取対象物の概形を表す基準輪郭を抽出する基準輪郭抽出手段と、
前記取得された画像から前記基準輪郭に基づいて前記読取対象物の輪郭を抽出する輪郭抽出手段と、を備えることを特徴とする画像読取装置。  
【請求項２】
前記輪郭抽出手段は、
前記取得された画像における前記読取対象物及び前記保持手段の輪郭における複数の第１の隅点を検出し、
前記基準輪郭における複数の第２の隅点を検出し、
前記複数の第２の隅点の各々に近接する前記第１の隅点を選択し、
各前記選択された第１の隅点を用いて前記読取対象物の輪郭を形成することを特徴とする請求項１記載の画像読取装置。
【請求項３】
画像の各画素の色を所定の色又は他の所定の色に変換することによって前記取得された画像を二値化する画像二値化手段をさらに備え、
前記画像取得手段は前記読取対象物及び前記保持手段を含む距離画像を取得し、
前記画像二値化手段は、前記距離画像において前記読取対象物及び前記保持手段を構成する各画素の色を前記所定の色に変換し、且つ他の画素の色を前記他の所定の色に変換することによって前記距離画像を二値化し、
前記基準輪郭抽出手段は、前記二値化された距離画像における水平方向及び垂直方向に関する各走査線について当該走査線における前記所定の色の画素の数をカウントし、前記所定の色の画素の数が所定値よりも小さければ、当該走査線の全ての画素の色を前記他の所定の色に変更することを特徴とする請求項１又は２記載の画像読取装置。
【請求項４】
前記基準輪郭抽出手段は、前記取得された画像から前記読取対象物の複数の特徴点を検出し、前記検出された複数の特徴点を囲む輪郭を前記基準輪郭として抽出することを特徴とする請求項１又は２記載の画像読取装置。  
【請求項５】
前記取得された画像に含まれる前記保持手段の画像が水平方向又は垂直方向に沿うように、前記取得された画像を修正する画像修正手段をさらに備えることを特徴とする請求項１乃至４のいずれか１項に記載の画像読取装置。
【請求項６】
前記画像修正手段は、前記保持手段の画像の方向を示す基準線を導出し、前記基準線を水平方向又は垂直方向に合致させることを特徴とする請求項５記載の画像読取装置。
【請求項７】
前記輪郭抽出手段が抽出した前記読取対象物の輪郭と、前記取得された画像とを比較して前記読取対象物の輪郭を検証する輪郭検証手段をさらに備えることを特徴とする請求項１乃至６のいずれか１項に記載の画像読取装置。  
【請求項８】
前記輪郭検証手段は、
前記輪郭抽出手段が抽出した前記読取対象物の輪郭における複数の第３の隅点を検出し、
前記複数の第３の隅点のうち前記保持手段に最も近い前記第３の隅点を抽出し、
前記抽出された前記第３の隅点と、前記読取対象物及び前記保持手段の輪郭における複数の第１の隅点の各々との関係に基づいて前記読取対象物の輪郭を検証することを特徴とする請求項７記載の画像読取装置。
【請求項９】
前記読取対象物は原稿であり、前記保持手段は前記原稿を保持するユーザの手であることを特徴とする請求項１乃至８のいずれか１項に記載の画像読取装置。
【請求項１０】
読取対象物及び該読取対象物の保持手段を含む画像を取得する画像取得工程と、
前記取得された画像から前記保持手段の画像を除去して前記読取対象物の概形を表す基準輪郭を抽出する基準輪郭抽出工程と、
前記取得された画像から前記基準輪郭に基づいて前記読取対象物の輪郭を抽出する輪郭抽出工程と、を有することを特徴とする画像読取方法。
【請求項１１】
画像読取方法をコンピュータに実行させるプログラムであって、
前記画像読取方法は、
読取対象物及び該読取対象物の保持手段を含む画像を取得する画像取得工程と、
前記取得された画像から前記保持手段の画像を除去して前記読取対象物の概形を表す基準輪郭を抽出する基準輪郭抽出工程と、
前記取得された画像から前記基準輪郭に基づいて前記読取対象物の輪郭を抽出する輪郭抽出工程と、を有することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、読取対象物の輪郭を抽出する画像読取装置、画像読取方法及びプログラムに関する。
【背景技術】
【０００２】
書画台に載置される原稿を上方からカメラで撮影するカメラスキャナが知られている。このようなカメラスキャナでは、カメラが原稿を含む書画台の画像を撮影することにより手軽に原稿の画像を読み取ることができる。また、一の原稿を他の原稿に重ねて載置する際には、一の原稿を載置する前の画像と一の原稿を載置した後の画像を比較して一の原稿の輪郭を抽出し、該輪郭を用いて原稿の画像を読み取る（例えば、特許文献１参照。）。ここで、一の原稿と他の原稿の色や材質が似ていると、一の原稿の画像が他の原稿に紛れて一の原稿の輪郭を的確に抽出できないおそれがある。そこで、他の原稿の画像に含まれる特徴点と、一の原稿の画像に含まれる特徴点との対応関係を用いて一の原稿の輪郭を抽出する技術も提案されている（例えば、特許文献２参照。）。
【０００３】
また、他の原稿の画像に含まれる特徴点と、一の原稿の画像に含まれる特徴点とが類似する場合等、特徴点の対応関係を用いても一の原稿の輪郭を抽出することが困難な場合であっても、一の原稿の輪郭を抽出するための技術も提案されている。この技術では、一の原稿を書画台に載置する前に一の原稿の画像を撮影し、該画像から載置される前の一の原稿の輪郭を抽出し、該輪郭に基づく相似関係を用いて書画台に載置された後の一の原稿の画像を抽出する。このとき、書画台に載置される前の一の原稿はユーザの手によって保持されるため、書画台に載置される前の一の原稿の画像（以下、「載置前原稿画像」という。）にはユーザの手や腕の画像も映り込む。したがって、一の原稿の輪郭を抽出するためには当該載置前原稿画像からユーザの手や腕の画像を除去する必要がある。載置前原稿画像からユーザの手や腕の画像を除去する技術としては、撮影された画像中の肌色領域を抽出し、該肌色領域の色を変更して肌色領域を実質的に除去する技術が提案されている（例えば、特許文献３参照。）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−２０１９４８号公報
【特許文献２】特開２０１５−１４６４８１号公報
【特許文献３】特開２０１３−２４７５３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献３の技術を用いても、一の原稿の色が赤みを帯びて肌色に近い場合には、ユーザの手や腕の画像が一の原稿の画像に紛れてしまい、肌色領域を的確に抽出することができないことがある。若しくは、原稿の領域も肌色領域と判定されて除去されることがある。その結果、原稿の輪郭を正確に抽出することができないという問題がある。
【０００６】
本発明の目的は、読取対象物の輪郭を正確に抽出することができる画像読取装置、画像読取方法及びプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明の画像読取装置は、読取対象物及び該読取対象物の保持手段を含む画像を取得する画像取得手段と、前記取得された画像から前記保持手段の画像を除去して前記読取対象物の概形を表す基準輪郭を抽出する基準輪郭抽出手段と、前記取得された画像から前記基準輪郭に基づいて前記読取対象物の輪郭を抽出する輪郭抽出手段と、を備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、読取対象物の輪郭を正確に抽出することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の第１の実施の形態に係る画像読取装置としてのカメラスキャナが含まれるネットワーク構成を示す図である。
【図２】図１におけるカメラスキャナの構成を概略的に示す図である。
【図３】図２のカメラスキャナにおける座標系を説明するための図である。
【図４】図３における直交座標系、カメラ座標系及びカメラ撮像平面の関係を示す図である。
【図５】図１のカメラスキャナのコントローラ部のハードウェア構成を示すブロック図である。
【図６】図５におけるＣＰＵが実行するカメラスキャナの制御用プログラムの機能モジュールの構成を示すブロック図である。
【図７】図２における距離画像センサ部のハードウェア構成を示す図である。
【図８Ａ】第１の実施の形態に係る画像読取方法としての原稿輪郭抽出処理のフローチャートである。
【図８Ｂ】ステップＳ８０３の距離画像データ二値化処理のフローチャートである。
【図８Ｃ】ステップＳ８０４の基準輪郭抽出処理のフローチャートである。
【図８Ｄ】ステップＳ８０５の原稿四隅抽出処理のフローチャートである。
【図９】図８Ａの原稿輪郭抽出処理を説明するための工程図である。
【図１０Ａ】本発明の第２の実施の形態に係る画像読取方法としての原稿輪郭抽出処理のフローチャートである。
【図１０Ｂ】ステップＳ１００１の基準輪郭抽出処理のフローチャートである。
【図１０Ｃ】ステップＳ１００２の原稿四隅抽出処理のフローチャートである。
【図１１】図１０Ａの原稿輪郭抽出処理を説明するための工程図である。
【図１２Ａ】本発明の第３の実施の形態に係る画像読取方法としての原稿輪郭抽出処理のフローチャートである。
【図１２Ｂ】ステップＳ１２０１の画像回転処理のフローチャートである。
【図１３】図１２Ａの原稿輪郭抽出処理を説明するための工程図である。
【図１４Ａ】本発明の第４の実施の形態に係る画像読取方法としての原稿輪郭抽出処理のフローチャートである。
【図１４Ｂ】ステップＳ１４０１の原稿四隅検証処理のフローチャートである。
【図１５】図１４Ａの原稿輪郭抽出処理を説明するための工程図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態について図面を参照しながら詳細に説明する。しかしながら、以下の実施の形態に記載されている構成はあくまで例示に過ぎず、本発明の範囲は実施の形態に記載されている構成によって限定されることはない。まず、本発明の第１の実施の形態について説明する。
【００１１】
図１は、本発明の第１の実施の形態に係る画像読取装置としてのカメラスキャナが含まれるネットワーク構成を示す図である。図１において、カメラスキャナ１０１はホストコンピュータ１０２及びプリンタ１０３とイーサネット（登録商標）等のネットワーク１０４を介して接続されている。本実施の形態では、ホストコンピュータ１０２からの指示に応じ、カメラスキャナ１０１によって画像を読み取るスキャン機能や、スキャン機能によって生成されたスキャンデータをプリンタ１０３によって出力するプリント機能が実行される。また、ホストコンピュータ１０２を介すること無くカメラスキャナ１０１へ直接に指示を行うことにより、スキャン機能やプリント機能を実行することもできる。
【００１２】
図２は、図１におけるカメラスキャナの構成を概略的に示す図である。図２において、カメラスキャナ１０１は、ハードウェアデバイスとしてのコントローラ部２０１、カメラ部２０２、腕部２０３、短焦点プロジェクタ２０７及び距離画像センサ部２０８を含む。カメラスキャナ１０１の本体を構成するコントローラ部２０１、撮像を行うためのカメラ部２０２、短焦点プロジェクタ２０７及び３次元距離センサからなる距離画像センサ部２０８は互いに腕部２０３によって連結されている。腕部２０３は複数の関節を有し、各関節において屈曲されることにより、伸長自在に構成される。
【００１３】
カメラスキャナ１０１は操作平面（操作面）を有する書画台２０４の脇に配置される。カメラ部２０２及び距離画像センサ部２０８は書画台２０４を指向し、カメラ部２０２は図中の破線で囲まれた操作平面上の読み取り領域２０５内の画像を読み取る。例えば、カメラ部２０２は読み取り領域２０５内に置かれた平面視矩形の原稿２０６の画像を読み取る。また、書画台２０４内にはターンテーブル２０９が設けられている。ターンテーブル２０９はコントローラ部２０１からの指示によって回転し、ターンテーブル２０９上に置かれた物体とカメラ部２０２の相対角度を変えることができる。カメラスキャナ１０１では、カメラ部２０２及び距離画像センサ部２０８が、書画台２０４の操作平面上に存在する物体を検知する検知部を構成する。カメラスキャナ１０１において、カメラ部２０２は単一解像度で画像を撮像するカメラからなるが、高解像度画像撮像と低解像度画像撮像の切り換えが可能なカメラであってもよい。なお、カメラスキャナ１０１は、書画台２０４に配置される後述のＬＣＤタッチパネル５１３及び後述のスピーカ５１４を備えてもよい。さらに、カメラスキャナ１０１は、距離画像センサ部２０８以外に、周囲の環境情報を収集するための人感センサ、照度センサ、加速度センサ等の各種センサデバイスを備えてもよい。
【００１４】
図３は、図２のカメラスキャナにおける座標系を説明するための図である。図３において、カメラスキャナ１０１では、カメラ座標系、距離センサ座標系及びプロジェクタ座標系が定義される。カメラ座標系は、カメラ部２０２が撮像する画像平面をＸＹ平面とし、且つ該画像平面に直交した方向をＺ方向として定義した座標系である。距離センサ座標系は、距離画像センサ部２０８が有する後述のＲＧＢカメラ７０１が撮像する画像平面をＸＹ平面とし、且つ該画像平面に直交した方向をＺ方向として定義した座標系である。プロジェクタ座標系は、短焦点プロジェクタ２０７が画像を投影する画像平面をＸＹ平面とし、且つ該画像平面に直交した方向をＺ方向として定義した座標系である。さらに、カメラスキャナ１０１では、これらの３つの独立した座標系の３次元データを統一的に扱えるようにするために、書画台２０４を含む平面をＸＹ平面とし、且つ該ＸＹ平面に直交した方向をＺ方向とする直交座標系が定義される。
【００１５】
図４は、図３における直交座標系、カメラ座標系及びカメラ撮像平面の関係を示す図である。カメラスキャナ１０１では、直交座標系における３次元点Ｐ［Ｘ，Ｙ，Ｚ］を下記式（１）によってカメラ座標系における３次元点Ｐｃ［Ｘｃ，Ｙｃ，Ｚｃ］へ変換することができる。
[Xc, Yc, Zc]T= [Rc|tc][X, Y, Z, 1]T  … （１）
ここで、Ｒｃは３×３の回転行列であり、ｔｃは並進ベクトルである。Ｒｃ及びｔｃは、直交座標系に対するカメラの姿勢（回転）と位置（並進）に基づいて定まる外部パラメータによって構成される。また、カメラ座標系で定義された３次元点Ｐｃ［Ｘｃ，Ｙｃ，Ｚｃ］を下記式（２）によって直交座標系における３次元点Ｐ［Ｘ，Ｙ，Ｚ］へ変換することができる。
[X, Y, Z]T = [Rc-1|-Rc-1tc][Xc, Yc, Zc, 1]T  …（２）
【００１６】
カメラ部２０２で撮影される２次元の画像平面（以下、「カメラ撮像平面」という。）は、カメラ部２０２によって３次元空間中の３次元点群の３次元情報を２次元情報に変換することによって構成される。すなわち、カメラ撮像平面は、カメラ座標系上での３次元点Ｐｃ［Ｘｃ，Ｙｃ，Ｚｃ］を下記式（３）によって２次元座標ｐｃ［ｘｐ，ｙｐ］に透視投影変換することによって構成することができる。
λ[xp, yp, 1]T = Aｃ[Xc, Yc, Zc, 1]T  …（３）
ここで、Ａｃは、焦点距離と画像中心等で表現される３×３の行列であるカメラの内部パラメータである。カメラスキャナ１０１で行われる射影変換では式（３）を用いるが、本来、カメラにはレンズ歪みに関するパラメータが存在し、レンズ歪みに関すパラメータを考慮して射影する必要がある。しかしながら、本実施の形態では説明の簡略化のために、特に断りがない場合にはレンズ歪みが存在しない、若しくはレンズ歪みについて補正された後であることを前提とする。以上のように、カメラスキャナ１０１では、上記式（１），（３）を用いることによって直交座標系で表された３次元点群をカメラ座標系での３次元点群やカメラ撮像平面上の点群に変換することができる。なお、カメラスキャナ１０１では、各ハードウェアデバイスの内部パラメータ及び直交座標系に対する位置姿勢（外部パラメータ）は、公知のキャリブレーション手法によってあらかじめキャリブレーションされている。
【００１７】
図５は、図１のカメラスキャナのコントローラ部のハードウェア構成を示すブロック図である。図５において、コントローラ部２０１は、システムバス５０１に接続されたＣＰＵ５０２、ＲＡＭ５０３、ＲＯＭ５０４、ＨＤＤ５０５、ネットワークＩ／Ｆ５０６、画像処理プロセッサ５０７を備える。さらに、コントローラ部２０１は、カメラＩ／Ｆ５０８、ディスプレイコントローラ５０９、シリアルＩ／Ｆ５１０、オーディオコントローラ５１１及びＵＳＢコントローラ５１２を備える。ＣＰＵ５０２はコントローラ部２０１全体の動作を制御する中央演算装置である。また、ＣＰＵ５０２は画像二値化手段，画像修正手段，輪郭検証手段、基準輪郭抽出手段及び輪郭抽出手段を構成する。ＲＡＭ５０３は揮発性メモリである。ＲＯＭ５０４は不揮発性メモリであり、ＣＰＵ５０２の起動用プログラムが格納される。ＨＤＤ５０５はＲＡＭ５０３よりも大容量のハードディスクドライブ（ＨＤＤ）である。ＨＤＤ５０５にはコントローラ部２０１が実行する、カメラスキャナ１０１の制御用プログラムが格納される。
【００１８】
ＣＰＵ５０２は、電源オン等のカメラスキャナ１０１の起動時、ＲＯＭ５０４に格納される起動用プログラムを実行する。この起動用プログラムは、ＨＤＤ５０５に格納される制御用プログラムを読み出してＲＡＭ５０３に展開する。ＣＰＵ５０２は、起動用プログラムを実行すると、続けてＲＡＭ５０３に展開された制御用プログラムを実行してコントローラ部２０１全体の動作を制御する。また、ＣＰＵ５０２は制御用プログラムの実行に用いるデータもＲＡＭ５０３に格納して読み書きを行う。ＨＤＤ５０５には制御用プログラムの実行に必要な各種設定やカメラ部２０２が撮像によって生成した画像データを格納することができ、格納されたデータ等はＣＰＵ５０２によって読み書きされる。また、ＣＰＵ５０２はネットワークＩ／Ｆ５０６を介してネットワーク１０４に接続された他の機器との通信を行う。画像処理プロセッサ５０７はＲＡＭ５０３に格納されたカメラ画像データ等を読み出して画像処理を施し、再度、ＲＡＭ５０３へ書き戻す。なお、画像処理プロセッサ５０７が実行する画像処理は、回転、変倍、色変換等である。カメラＩ／Ｆ５０８はカメラ部２０２及び距離画像センサ部２０８と接続され、ＣＰＵ５０２からの指示に応じてカメラ部２０２からカメラ画像データを取得するとともに距離画像センサ部２０８から距離画像データを取得してＲＡＭ５０３へ書き込む。また、カメラＩ／Ｆ５０８はＣＰＵ５０２からの制御コマンドをカメラ部２０２及び距離画像センサ部２０８へ送信し、カメラ部２０２及び距離画像センサ部２０８の設定を行う。
【００１９】
シリアルＩ／Ｆ５１０はシリアル信号の入出力を行う。コントローラ部２０１では、シリアルＩ／Ｆ５１０がターンテーブル２０９に接続され、ＣＰＵ５０２による回転開始・終了の指示及び回転角度の指示をターンテーブル２０９へ送信する。また、シリアルＩ／Ｆ５１０はＬＣＤタッチパネル５１３に接続され、ＣＰＵ５０２はＬＣＤタッチパネル５１３が押下されたときの座標をシリアルＩ／Ｆ５１０を介して取得する。なお、ディスプレイコントローラ５０９、シリアルＩ／Ｆ５１０、オーディオコントローラ５１１及びＵＳＢコントローラ５１２は、これらのうちの少なくとも１つがコントローラ部２０１に含まれていればよい。ディスプレイコントローラ５０９はＣＰＵ５０２の指示に応じてディスプレイ（図示しない）における画像データの表示を制御する。また、ディスプレイコントローラ５０９は短焦点プロジェクタ２０７及びＬＣＤタッチパネル５１３に接続される。オーディオコントローラ５１１はスピーカ５１４に接続され、ＣＰＵ５０２の指示に応じて音声データをアナログ音声信号に変換し、スピーカ５１４を通じて音声を出力する。ＵＳＢコントローラ５１２はＣＰＵ５０２の指示に応じて外付けのＵＳＢデバイスの制御を行う。ＵＳＢコントローラ５１２はＵＳＢメモリやＳＤカード等の外部メモリ５１５に接続され、外部メモリ５１５へのデータの読み書きを行う。
【００２０】
図６は、図５におけるＣＰＵが実行するカメラスキャナの制御用プログラムの機能モジュールの構成を示すブロック図である。カメラスキャナ１０１の制御用プログラムは前述のようにＨＤＤ５０５に格納され、ＣＰＵ５０２が起動時に制御用プログラムをＲＡＭ５０３に展開して実行する。制御用プログラムが実行される際には機能構成６０１が構成される。機能構成６０１は、モジュールとして、メイン制御部６０２、画像取得部６０３、認識処理部６０４、スキャン処理部６０５、表示部６０６、ユーザインターフェイス部６０７、ネットワーク通信部６０８及びデータ管理部６０９を備える。画像取得部６０３は、モジュールとして、カメラ画像取得部６１０及び距離画像取得部６１１（いずれも画像取得手段）を有する。認識処理部６０４は、モジュールとして、ジェスチャ認識部６１２、物体検知部６１３、原稿領域抽出部６１４、原稿領域変換部６１５及び特徴点抽出部６１６を有する。さらに、認識処理部６０４は、２次元画像原稿輪郭算出部６１７、距離算出部６１８及び原稿輪郭算出部６１９を有する。スキャン処理部６０５は、モジュールとして、平面原稿画像撮影部６２０、書籍画像撮影部６２１及び立体形状測定部６２２を有する。ユーザインターフェイス部６０７は、モジュールとして、ＧＵＩ部品生成表示部６２３及び投射領域検出部６２４を有する。
【００２１】
メイン制御部６０２は制御の中心モジュールであり、機能構成６０１が備える他の各モジュールを制御する。画像取得部６０３は画像入力処理を行うモジュールである。カメラ画像取得部６１０はカメラＩ／Ｆ５０８を介してカメラ部２０２が出力するカメラ画像データを取得し、ＲＡＭ５０３へ格納する。距離画像取得部６１１はカメラＩ／Ｆ５０８を介して距離画像センサ部２０８が出力する距離画像データを取得し、ＲＡＭ５０３へ格納する。距離画像取得部６１１の処理の詳細については後述する。
【００２２】
認識処理部６０４はカメラ画像取得部６１０が取得するカメラ画像データ及び距離画像取得部６１１が取得する距離画像データから書画台２０４上の物体の動きを検知して認識するモジュールである。ジェスチャ認識部６１２は画像取得部６０３から書画台２０４上の画像を取得し続け、タッチ等のユーザのジェスチャ操作を検知し、検知したジェスチャをメイン制御部６０２へ通知する。物体検知部６１３は、メイン制御部６０２から物体載置待ち処理あるいは物体除去待ち処理の通知を受けると、画像取得部６０３から書画台２０４を撮像した画像を取得して書画台２０４上に存在する物体を検知する。また、物体検知部６１３は、書画台２０４上に物体が置かれるタイミング、物体が置かれて静止するタイミング、又は物体が取り除かれるタイミング等も検知する。原稿領域抽出部６１４は、カメラ画像取得部６１０が取得するカメラ画像データ及び距離画像取得部６１１が取得する距離画像データから原稿領域を抽出する。原稿領域変換部６１５は、カメラ画像取得部６１０が取得するカメラ画像データ及び距離画像取得部６１１が取得する距離画像データから原稿領域抽出部６１４が抽出する原稿領域を切り出し、原稿領域が書画台２０４と平行な平面上に配置されるように変換する。特徴点抽出部６１６は、原稿領域変換部６１５が変換したカメラ画像データの原稿領域から特徴点を抽出する。２次元画像原稿輪郭算出部６１７は、原稿領域変換部６１５が変換した書画台２０４と平行な平面上におけるカメラ画像データの原稿領域から原稿の輪郭を抽出する。距離算出部６１８は、特徴点抽出部６１６が抽出する特徴点、及び２次元画像原稿輪郭算出部６１７が抽出するカメラ画像データにおける原稿の輪郭の距離、さらには、各特徴点間の距離を算出する。原稿輪郭算出部６１９は、物体検知部６１３による書画台２０４上への原稿の載置の検知に応じて、距離算出部６１８に再度、各特徴点間の距離を算出させて原稿の輪郭を算出する。
【００２３】
スキャン処理部６０５は実際に読取対象物のスキャンを行う。平面原稿画像撮影部６２０は平面原稿、書籍画像撮影部６２１は書籍、立体形状測定部６２２は立体物に、それぞれ適したスキャンを行い、それぞれに応じた形式のデータを出力する。ユーザインターフェイス部６０７において、ＧＵＩ部品生成表示部６２３は、メイン制御部６０２からの要求を受けてメッセージやボタン等のＧＵＩ部品を生成し、表示部６０６へ生成したＧＵＩ部品の表示を要求する。なお、書画台２０４におけるＧＵＩ部品の表示箇所は、投射領域検出部６２４によって検出される。表示部６０６は、ディスプレイコントローラ５０９を介して、短焦点プロジェクタ２０７又はＬＣＤタッチパネル５１３へ要求されたＧＵＩ部品を表示する。カメラスキャナ１０１では、短焦点プロジェクタ２０７が書画台２０４を指向するため、書画台２０４にＧＵＩ部品が投影される。ユーザインターフェイス部６０７は、ジェスチャ認識部６１２が認識したタッチ等のジェスチャ操作、又はシリアルＩ／Ｆ５１０を介したＬＣＤタッチパネル５１３からの入力操作、さらには、ジェスチャ操作や入力操作が行われた座標を受信する。また、ユーザインターフェイス部６０７は表示中の操作画面の内容と操作座標を対応させて操作の内容（ボタンの押下等）を判定する。判定された操作の内容はメイン制御部６０２へ通知される。ネットワーク通信部６０８は、ネットワークＩ／Ｆ５０６を介して、ネットワーク１０４上の他の機器とＴＣＰ／ＩＰによる通信を行う。データ管理部６０９は、制御用プログラムの実行において生成された作業データを含む各種データをＨＤＤ５０５の所定の領域へ保存して管理する。例えば、カメラ画像取得部６１０や距離画像取得部６１１が取得したカメラ画像データや距離画像データがデータ管理部６０９によってＨＤＤ５０５へ保存される。
【００２４】
図７は、図２における距離画像センサ部のハードウェア構成を示す図である。図７において、距離画像センサ部２０８は赤外線パターン投射方式の３次元距離画像センサからなり、ＲＧＢカメラ７０１、赤外線パターン投射部７０２及び赤外線カメラ７０３を有する。ＲＧＢカメラ７０１は可視光をＲＧＢ信号で撮影し、赤外線パターン投射部７０２は対象物７０４へ不可視光である赤外線によって３次元測定パターン７０６を投射する。赤外線カメラ７０３は対象物に投射した３次元測定パターン７０６を読み取る。距離画像センサ部２０８は３次元測定パターン７０６と赤外線カメラ７０３の撮影画像７０７を対応させる。さらに、距離画像センサ部２０８は、赤外線パターン投射部７０２と赤外線カメラ７０３を結ぶ直線７０５を基線として三角測量の原理を用いることにより、撮影画像７０７の各画素の赤外線カメラ７０３からの距離を算出する。これにより、距離画像センサ部２０８は、各画素に距離値が入った距離画像データを生成する。なお、本実施の形態では、距離画像センサ部２０８として赤外線パターン投射方式の３次元距離画像センサを用いるが、他の方式の距離画像センサを用いてもよい。例えば、２つのＲＧＢカメラでステレオ立体視を行うステレオ方式や、レーザ光の飛行時間を検出することによって距離を測定するＴＯＦ（Time of Flight）方式等を利用する距離画像センサを用いてもよい。
【００２５】
ところで、上述したように、カメラスキャナ１０１において、ユーザの手によって保持された原稿の画像を読み取って原稿の輪郭を抽出する際、ユーザの手の画像を除去するために、取得された画像データから肌色領域を抽出して除去することが行われている。しかしながら、原稿の色が赤みを帯びて肌色に近い場合には、ユーザの手の画像が原稿の画像に紛れてしまい、画像データから肌色領域を的確に抽出することができないことがある。本実施の形態では、これに対応して、画像データから肌色領域を抽出することなく、画像データからユーザの手の画像を除去する。
【００２６】
図８Ａは、第１の実施の形態に係る画像読取方法としての原稿輪郭抽出処理のフローチャートである。図９は、図８Ａの原稿輪郭抽出処理を説明するための工程図である。原稿輪郭抽出処理は主としてＣＰＵ５０２が実行する。
【００２７】
まず、書画台２０４上に何も存在しない状態で、カメラ画像取得部６１０がカメラ画像データを１フレームだけ取得し、距離画像取得部６１１が距離画像データをそれぞれ１フレームだけ取得する（ステップＳ８０１）。その後、取得したカメラ画像データを「背景カメラ画像データ」として記録し、取得した距離画像データを「背景距離画像データ」として記録する（ステップＳ８０２）。背景カメラ画像データ及び背景距離画像データは原稿やユーザの手の画像を含まない画像データであり、以下、総称を「背景画像データ」という。その後、ユーザが手９０１（保持手段）によって原稿９０２（読取対象物）を書画台２０４の上方へ進入させた後であって原稿９０２を書画台２０４に載置する前に、距離画像データ二値化処理を行う（ステップＳ８０３）。
【００２８】
図８Ｂは、図８ＡのステップＳ８０３の距離画像データ二値化処理のフローチャートである。まず、カメラ画像取得部６１０がカメラ画像データを１フレームだけ取得し、距離画像取得部６１１が距離画像データを１フレームだけ取得する（ステップＳ８１１）（画像取得工程）。このとき取得されたカメラ画像データ（図９（Ａ））及び距離画像データ（図９（Ｂ））は原稿９０２の画像だけでなく手９０１の画像も含む。それぞれを以下、「原稿含有カメラ画像データ」及び「原稿含有距離画像データ」と称する。また、原稿含有カメラ画像データ及び原稿含有距離画像データの総称を「原稿含有画像データ」とする。その後、背景距離画像データの各画素の色と原稿含有距離画像データの各画素の色の差分の絶対値を算出する（ステップＳ８１２）。さらに、算出された差分の絶対値が所定値以上か否かを判定し、所定値以上である場合には原稿含有距離画像データにおける当該画素の色を「白」（所定の色）に変換する。また、所定値未満である場合には原稿含有距離画像データにおける当該画素の色を「黒」（他の所定の色）に変換する（ステップＳ８１３）。このとき、手９０１や原稿９０２は書画台２０４から離れているため、原稿含有距離画像データにおける手９０１や原稿９０２の各画素の色は背景距離画像データの各画素の色と大きく異なる。したがって、原稿含有距離画像データにおいて手９０１及び原稿９０２の画像は白で表され、それ以外は黒で表される（図９（Ｃ））。これにより、原稿含有距離画像データを二値化する。以下、二値化された原稿含有距離画像データを「二値化距離画像データ」と称する。なお、距離画像データ二値化処理では、算出された差分の絶対値が所定値以上である場合に原稿含有距離画像データにおける当該画素の色を「黒」に変換し、所定値未満である場合には同画素の色を「白」に変換してもよい。
【００２９】
図８Ａに戻り、次いで、基準輪郭抽出処理を行う（ステップＳ８０４）（基準輪郭抽出工程）。図８Ｃは、図８ＡのステップＳ８０４の基準輪郭抽出処理のフローチャートである。本実施の形態における基準輪郭抽出処理では、通常は原稿９０２に比して手９０１が細いことを鑑みて二値化距離画像データから手９０１の画像を除去して原稿９０２の画像の概形を表す基準輪郭を抽出する。まず、ステップＳ８０３で得られた二値化距離画像データを画像の上方から下方まで水平に１ラインずつスキャンして複数の水平走査線９０３を得る（ステップＳ８２１）（図９（Ｄ））。このとき、各水平走査線９０３について当該水平走査線９０３が含む画素のうち色が白の画素（以下、「白画素」という。）の数をカウントし（ステップＳ８２２）、白画素の数が予め定められた所定値未満か否かを判定する（ステップＳ８２３）。上述したように、通常は原稿９０２に比して手９０１が細いため、書画台２０４の上方へ距離センサ座標系のＹ方向に沿って原稿９０２が進入した場合、手９０１の画像を含む水平走査線９０３の白画素の数は少ないと考えられる。その一方で、原稿９０２の画像を含む水平走査線９０３の白画素の数は多いと考えられる。そこで、本実施の形態では、含まれる白画素の数の少ない水平走査線９０３は手９０１の画像を含むと考え、当該水平走査線９０３が含む画素の色を「黒」に変換して二値化距離画像データから手９０１の画像を除去する。すなわち、水平走査線９０３の白画素の数が予め定められた所定値未満であれば、当該水平走査線９０３の全画素の色を「黒」に変換する（ステップＳ８２４）。水平走査線９０３の白画素の数が予め定められた所定値以上であれば、当該水平走査線９０３の全画素の色を「黒」に変換することなくそのまま維持する。これにより、二値化距離画像データにおいて手９０１の画像を含む各水平走査線９０３は黒色化される。以上のステップＳ８２２乃至ステップＳ８２４の処理を水平走査線９０３毎に繰り返して実行した後（ステップＳ８２５）、ステップＳ８２６へ進む。
【００３０】
ステップＳ８２１乃至ステップＳ８２５の処理により、書画台２０４の上方へ距離センサ座標系のＹ方向に沿って原稿９０２が進入した場合の二値化距離画像データからは手９０１の画像が除去される。しかしながら、書画台２０４の上方へ距離センサ座標系のＸ方向に沿って原稿９０２が進入した場合、手９０１の画像を含む水平走査線９０３の白画素の数は少ないとは限らず、寧ろ、当該水平走査線９０３の白画素の数は多くなると考えられる。すなわち、ステップＳ８２１乃至ステップＳ８２５の処理を実行しても、書画台２０４の上方へ距離センサ座標系のＸ方向に沿って原稿９０２が進入した場合には手９０１の画像を二値化距離画像データから除去することができない。そこで、ステップＳ８２１乃至ステップＳ８２５の処理と同様の処理を二値化距離画像データの垂直方向に関しても実行する。
【００３１】
まず、ステップＳ８０３で得られた二値化距離画像データを画像の上方から下方まで垂直に１ラインずつスキャンして複数の垂直走査線９０４を得る（ステップＳ８２６）（図９（Ｄ））。このとき、各垂直走査線９０４について当該垂直走査線９０４が含む白画素の数をカウントし（ステップＳ８２７）、白画素の数が予め定められた所定値未満か否かを判定する（ステップＳ８２８）。ここでは、含まれる白画素の数の少ない垂直走査線９０４が書画台２０４の上方へ距離センサ座標系のＸ方向に沿って進入した手９０１の画像を含むと考える。したがって、当該垂直走査線９０４が含む画素の色を「黒」に変換して二値化距離画像データから手９０１の画像を除去する。すなわち、垂直走査線９０４の白画素の数が予め定められた所定値未満であれば、当該垂直走査線９０４の全画素の色を「黒」に変換する（ステップＳ８２９）。垂直走査線９０４の白画素の数が予め定められた所定値以上であれば、当該垂直走査線９０４の全画素の色を「黒」に変換することなくそのまま維持する。これにより、二値化距離画像データにおいて手９０１の画像を含む各垂直走査線９０４は黒色化される。以上のステップＳ８２７乃至ステップＳ８２９の処理を垂直走査線９０４毎に繰り返して実行した後（ステップＳ８３０）、基準輪郭抽出処理を終了する。なお、基準輪郭抽出処理において、ステップＳ８２１乃至ステップＳ８２５の処理と、ステップＳ８２６乃至ステップＳ８３０の処理は実行順が入れ替わってもよい。
【００３２】
基準輪郭抽出処理の実行後、手９０１の画像が除去された二値化距離画像データが得られる（図９（Ｅ））。このとき、白で示される領域は原稿９０２に相当し、当該領域の輪郭を「基準輪郭９０５」と称する。すなわち、基準輪郭９０５は原稿９０２の概形を表す。ところで、基準輪郭抽出処理では水平走査線９０３や垂直走査線９０４の画素の色が変換されるため、得られる基準輪郭９０５は水平な辺と垂直な辺を基調とする。しかしながら、原稿９０２は書画台２０４の上方においてカメラ座標系や距離センサ座標系のＸＹ平面と水平に進入するとは限らない。すなわち、原稿含有カメラ画像データや原稿含有距離画像データにおいて原稿９０２は必ずしも水平な辺と垂直な辺を基調としない。例えば、カメラ座標系や距離センサ座標系のＸＹ平面に対して原稿９０２が書画台２０４の上方へ斜めに進入する場合、二値化距離画像データでは原稿９０２の幅が各水平走査線９０３又は各垂直走査線９０４において異なる。しかしながら、基準輪郭抽出処理を実行して基準輪郭９０５を抽出すると、原稿９０２（基準輪郭９０５）の幅が各水平走査線９０３又は各垂直走査線９０４において同じになる。すなわち、原稿９０２の本来の四隅のうち、幾つかは欠落してしまう。したがって、基準輪郭９０５は原稿９０２の輪郭を正確に再現していない。
【００３３】
そこで、本実施の形態では、基準輪郭９０５に基づいて、原稿９０２の輪郭を、基準輪郭抽出処理を施す前の二値化距離画像データ（以下、「除去前二値化距離画像データ」という。）から抽出する原稿四隅抽出処理を実行する（ステップＳ８０５）。図８Ｄは、図８ＡのステップＳ８０５の原稿四隅抽出処理のフローチャートである。まず、基準輪郭９０５の各隅点９０６（第２の隅点）を検出する（ステップＳ８３１）（図９（Ｆ））。さらに、除去前二値化距離画像データにおける色が白の画素の領域（以下「白画素領域」という）の各隅点９０７（第１の隅点）を検出する（ステップＳ８３２）（図９（Ｇ））。ここで、除去前二値化距離画像データでは手９０１の画像及び原稿９０２の画像が除去されていないため、白画素領域は手９０１及び原稿９０２の本来の輪郭を含む。したがって、各隅点９０７は手９０１及び原稿９０２の輪郭を構成する。次いで、隅点９０６の各々について、各隅点９０７との距離（例えば、ユークリッド距離）を算出し（ステップＳ８３３）、当該隅点９０６に最も近接する隅点９０７を選択する（ステップＳ８３４）（図９（Ｈ））。ここで、上述したように、基準輪郭９０５は原稿９０２の概形を表すため、隅点９０６に最も近い隅点９０７は原稿９０２に含まれると考えられる。すなわち、隅点９０６に最も近い隅点９０７は原稿９０２の輪郭を構成する。以上のステップＳ８３４の処理を隅点９０６毎に繰り返して実行した後（ステップＳ８３５）、ステップＳ８０６へ進む。
【００３４】
ステップＳ８０６では、原稿四隅抽出処理で選択された４つの隅点９０７が原稿含有カメラ画像データに含まれているか否かを判別する。具体的には、選択された４つの隅点９０７の座標をカメラ座標系の座標に変換し、変換後の座標がカメラ座標系における撮像可能範囲に含まれるか否かを判別する。変換後の座標がカメラ座標系における撮像可能範囲に含まれていない場合は、原稿９０２の全体が距離画像センサ部２０８によって撮像可能であっても、カメラ部２０２で撮影可能ではない場合に該当する。したがって、変換後の座標がカメラ座標系における撮像可能範囲に含まれていない場合には、ユーザに別の方向や角度から書画台２０４の上方へ手９０１で保持した原稿９０２を進入させ、ステップＳ８０３から処理をやり直す。一方、変換後の座標がカメラ座標系における撮像可能範囲に含まれている場合は、原稿９０２の全体がカメラ部２０２で撮影可能である場合に該当する。したがって、変換後の座標がカメラ座標系における撮像可能範囲に含まれている場合には、除去前二値化距離画像データにおいて、選択された４つの隅点９０７を繋いで原稿９０２の輪郭を形成する（ステップＳ８０７）（輪郭抽出工程）（図９（Ｉ））。また、原稿含有カメラ画像データにおいて、座標がカメラ座標系の座標に変換された４つの隅点９０７を繋いで原稿９０２の輪郭を抽出する。これにより、距離画像データ及びカメラ画像データのそれぞれにおいて原稿９０２の輪郭を抽出することができる。その後、原稿輪郭抽出処理を終了する。
【００３５】
図８Ａの原稿輪郭抽出処理によれば、原稿９０２の概形を表す基準輪郭９０５を用いて原稿９０２の輪郭を抽出する。また、基準輪郭９０５の抽出に原稿含有カメラ画像データを用いずに原稿含有距離画像データを用いる。これにより、原稿含有カメラ画像データにおける肌色領域の存在の判定を行う必要を無くすことができる。その結果、原稿９０２の輪郭を正確に抽出することができる。
【００３６】
また、基準輪郭９０５は原稿９０２の輪郭を正確に再現していないが、図８Ａの原稿輪郭抽出処理では、基準輪郭９０５に基づいて原稿９０２の本来の輪郭を含む除去前二値化距離画像データの白画素領域から原稿９０２の輪郭を抽出する。これにより、原稿９０２の輪郭を正確に再現することができる。
【００３７】
次に、本発明の第２の実施の形態について説明する。第２の実施の形態は、その構成、作用が上述した第１の実施の形態と基本的に同じであるので、重複した構成、作用については説明を省略し、以下に異なる構成、作用についての説明を行う。
【００３８】
第１の実施の形態では、原稿９０２に比して手９０１が細いことを前提とし、水平走査線９０３や垂直走査線９０４における白画素の数に基づいて各水平走査線９０３や各垂直走査線９０４が手９０１の画像を含むか否かを判定した。しかしながら、例えば、原稿９０２が小さく、原稿９０２の幅が手９０１の幅と同等である場合がある。この場合、手９０１の画像を含む水平走査線９０３や垂直走査線９０４における白画素の数が原稿９０２の画像を含む水平走査線９０３や垂直走査線９０４における白画素の数と変わらなくなる。したがって、第１の実施の形態の画像読取方法では、原稿９０２の輪郭を正確に抽出できない可能性がある。これに対応して、本実施の形態では、水平走査線９０３や垂直走査線９０４における白画素の数を用いることなく、原稿９０２の輪郭を抽出する。
【００３９】
図１０Ａは、第２の実施の形態に係る画像読取方法としての原稿輪郭抽出処理のフローチャートである。図１１は、図１０Ａの原稿輪郭抽出処理を説明するための工程図である。原稿輪郭抽出処理は主としてＣＰＵ５０２が実行する。
【００４０】
まず、ステップＳ８０１乃至ステップＳ８０３を実行する。これにより、原稿含有カメラ画像データ（図１１（Ａ））、原稿含有距離画像データ（図１１（Ｂ））及び二値化距離画像データ（図１１（Ｃ））を取得する。次いで、基準輪郭抽出処理を行う（ステップＳ１００１）。図１０Ｂは、図１０ＡのステップＳ１００１の基準輪郭抽出処理のフローチャートである。本実施の形態における基準輪郭抽出処理では、原稿９０２が特徴となるコンテンツを有することを鑑みて二値化距離画像データから原稿９０２の画像の概形を表す基準輪郭を抽出する。まず、原稿含有カメラ画像データをカメラ座標系に座標変換する（ステップＳ１０１１）。次いで、座標変換した原稿含有カメラ画像データにおける複数の特徴点１１０１を抽出する（ステップＳ１０１２）（図１１（Ｄ））。ここで、各特徴点は原稿９０２のコンテンツにしか含まれないため、各特徴点１１０１を抽出することにより、実質的に原稿９０２の存在領域を把握することができる。各特徴点１１０１の抽出方法としては、照明の変化や回転、拡大縮小に比較的強い耐性を持つ特徴量算出手法であるＳＩＦＴ等が用いられる。次いで、抽出された各特徴点１１０１からカメラ座標系のＸＹ平面における最大座標（Ｘｍａｘ，Ｙｍａｘ）の特徴点１１０１と最小座標（Ｘｍｉｎ，Ｙｍｉｎ）の特徴点１１０１を選択する（ステップＳ１０１３）。続けて、最大座標の特徴点１１０１と最小座標の特徴点１１０１を通過するカメラ座標系のＸＹ平面における水平線及び垂直線を規定する（ステップＳ１０１４）。さらに、水平線及び垂直線の４つの交点１１０２（第２の隅点）の座標を算出し、これらの交点を頂点とする矩形を基準輪郭１１０３として規定する（ステップＳ１０１５）（図１１（Ｅ）。基準輪郭１１０３は各特徴点１１０１を抱合する最小の矩形である。次いで、基準輪郭抽出処理を終了する。
【００４１】
基準輪郭１１０３は原稿９０２のコンテンツの各特徴点１１０１を含む最小の矩形であるため、原稿９０２の概形を表す。しかしながら、基準輪郭１１０３は最大座標の特徴点１１０１と最小座標の特徴点１１０１を基準とし、原稿９０２の輪郭を基準としていないため、基準輪郭１１０３は原稿９０２の輪郭を正確に再現していない。そこで、本実施の形態でも、第１の実施の形態と同様に、基準輪郭１１０３に基づいて、原稿９０２の輪郭を、ステップＳ８０３で得られた二値化距離画像データから抽出する原稿四隅抽出処理を実行する（ステップＳ１００２）。
【００４２】
図１０Ｃは、図１０ＡのステップＳ１００２の原稿四隅抽出処理のフローチャートである。まず、基準輪郭１１０３の各隅点である交点１１０２の座標を距離センサ座標系の座標に変換する（ステップＳ１０２１）（図１１（Ｆ））。さらに、二値化距離画像データの白画素領域の各隅点９０７（第１の隅点）を検出する（ステップＳ１０２２）（図１１（Ｇ））。次いで、交点１１０２の各々について、各隅点９０７との距離（例えば、ユークリッド距離）を算出し（ステップＳ１０２３）、当該交点１１０２に最も近接する隅点９０７を選択する（ステップＳ１０２４）（図１１（Ｈ））。ここで、上述したように、基準輪郭１１０３は原稿９０２の概形を表すため、交点１１０２に最も近い隅点９０７は原稿９０２に含まれると考えられる。すなわち、交点１１０２に最も近い隅点９０７は原稿９０２の輪郭を構成する。以上のステップＳ１０２４の処理を交点１１０２毎に繰り返して実行した後（ステップＳ１０２５）、ステップＳ８０６へ進む。その後、ステップＳ８０６及びステップＳ８０７を実行した後、原稿輪郭抽出処理を終了する。
【００４３】
図１０Ａの原稿輪郭抽出処理によれば、原稿９０２のコンテンツの各特徴点を囲む矩形を基準輪郭１１０３として抽出する。すなわち、基準輪郭１１０３の抽出において、水平走査線９０３や垂直走査線９０４における白画素の数に基づいた二値化距離画像データからの手９０１の画像の削除を行わない。これにより、例えば、原稿９０２が小さく、原稿９０２の幅が手９０１の幅と同等であっても、原稿９０２の輪郭を抽出することができる。
【００４４】
次に、本発明の第３の実施の形態について説明する。第３の実施の形態は、その構成、作用が上述した第１の実施の形態や第２の実施の形態と基本的に同じであるので、重複した構成、作用については説明を省略し、以下に異なる構成、作用についての説明を行う。
【００４５】
第１の実施の形態では、書画台２０４の上方へ距離センサ座標系のＹ方向又はＸ方向に沿って原稿９０２が進入することを前提とし、水平走査線９０３等における白画素の数に基づいて各水平走査線９０３等が手９０１の画像を含むか否かを判定した。また、第２の実施の形態でも、原稿９０２の縦方向や横方向がカメラ座標系のＹ方向やＸ方向にほぼ合致することを前提としてカメラ座標系のＸＹ平面における水平線及び垂直線から基準輪郭１１０３を抽出した。しかしながら、原稿９０２が距離センサ座標系のＹ方向又はＸ方向に対して斜めになったまま書画台２０４の上方へ進入する場合がある。また、原稿９０２の縦方向や横方向がカメラ座標系のＹ方向やＸ方向に合致しない場合もある。これらの場合、抽出した基準輪郭９０５や基準輪郭１１０３が原稿９０２の概形を表さず、基準輪郭９０５や基準輪郭１１０３を用いても、原稿９０２の輪郭を正確に抽出することができない。これに対応して、本実施の形態では、基準輪郭９０５を抽出する前に、二値化距離画像データを回転させて原稿９０２の縦方向や横方向を距離センサ座標系のＹ方向やＸ方向に合致させる。
【００４６】
図１２Ａは、第３の実施の形態に係る画像読取方法としての原稿輪郭抽出処理のフローチャートである。図１３は、図１２Ａの原稿輪郭抽出処理を説明するための工程図である。原稿輪郭抽出処理は主としてＣＰＵ５０２が実行する。本実施の形態では、原稿９０２が距離センサ座標系のＹ方向やＸ方向に対して斜めになったまま書画台２０４の上方へ進入することを前提とする。
【００４７】
まず、ステップＳ８０１乃至ステップＳ８０３を実行する。これにより、原稿含有カメラ画像データ（図１３（Ａ））、原稿含有距離画像データ（図１３（Ｂ））及び二値化距離画像データ（図１３（Ｃ））を取得する。次いで、画像回転処理を行う（ステップＳ１２０１）。図１２Ｂは、図１２ＡのステップＳ１２０１の画像回転処理のフローチャートである。まず、ステップＳ８０３で取得された二値化距離画像データの白画素領域の各隅点１３０１を検出する（図１３（Ｄ））。ここでの白画素領域は手９０１及び原稿９０２の本来の輪郭を含む。さらに、二値化距離画像データの各辺と白画素領域の交差点である各端点１３０２を検出し、各端点１３０２の中点１３０３を検出する（ステップＳ１２１１）。なお、中点１３０３が検出されない場合は、ユーザに別の方向や角度から書画台２０４の上方へ手９０１で保持した原稿９０２を進入させ、ステップＳ８０３から処理をやり直す。
【００４８】
次いで、二値化距離画像データの白画素領域の重心点１３０４を検出し（ステップＳ１２１２）、中点１３０３及び重心点１３０４を結ぶ基準線１３０５を導出する（ステップＳ１２１３）。ところで、ユーザが書画台２０４の上方へ手９０１で保持した原稿９０２を進入させる場合、手９０１の画像は二値化距離画像データの各辺と交差すると考えられるため、上述した各端点１３０２は手９０１の位置を表すと考えられる。また、手９０１で原稿９０２を保持する際、手９０１は原稿９０２の中心を指向すると考えられる。したがって、各端点１３０２の中点１３０３及び白画素領域の重心点１３０４を結ぶ基準線１３０５は手９０１が差し出される方向を示す。さらに、手９０１で原稿９０２を保持する際、原稿９０２の縦方向や横方向は手９０１が差し出される方向に平行又は垂直になると考えられる。そこで、本実施の形態では、基準線１３０５が手９０１が差し出される方向を示すことを前提として、基準線１３０５が距離センサ座標系のＹ方向又はＸ方向に合致するように二値化距離画像データを回転させる。すなわち、ユーザの手９０１が距離センサ座標系のＹ方向又はＸ方向に沿うように二値化距離画像データを回転させる。具体的には、基準線１３０５と距離センサ座標系のＹ方向及びＸ方向（二値化距離画像データの垂直方向及び水平方向）とがなす角度を算出し、該角度が０°又は９０°となる角度を回転角度として算出する（ステップＳ１２１４）。次いで、算出された回転角度に基づいて二値化距離画像データを回転させる（ステップＳ１２１５）。
【００４９】
その後、図１２Ａに戻り、ステップＳ１２０２において基準輪郭抽出処理を実行し、ステップＳ１２０３において原稿四隅抽出処理を実行する。ステップＳ１２０２では、基準輪郭９０５を用いる場合にはステップＳ８０４の基準輪郭抽出処理を実行し、基準輪郭１１０３を用いる場合にはステップＳ１００１の基準輪郭抽出処理を実行する。また、ステップＳ１２０３では、基準輪郭９０５を用いる場合にはステップＳ８０５の原稿四隅抽出処理を実行し、基準輪郭１１０３を用いる場合にはステップＳ１００２の基準輪郭抽出処理を実行する。次いで、原稿四隅抽出処理によって原稿９０２の輪郭を構成する各隅点９０７を選択した後、各隅点９０７の座標をステップＳ１２１４で算出された回転角度と逆の回転角度だけ回転移動させる。これにより、原稿９０２の４つの隅点９０７の座標を元の座標に戻す（ステップＳ１２０４）。その後、ステップＳ８０６及びステップＳ８０７を実行した後、原稿輪郭抽出処理を終了する。
【００５０】
図１２Ａの原稿輪郭抽出処理によれば、ユーザの手９０１が距離センサ座標系のＹ方向又はＸ方向に沿うように二値化距離画像データを回転させるため、距離センサ座標系のＹ方向又はＸ方向に沿って原稿９０２が進入する状態を再現することができる。若しくは、原稿９０２の縦方向や横方向がカメラ座標系のＹ方向やＸ方向にほぼ合致する状態を再現することができる。これにより、原稿９０２が距離センサ座標系のＹ方向又はＸ方向に対して斜めになったまま書画台２０４の上方へ進入した場合であっても、基準輪郭９０５や基準輪郭１１０３に原稿９０２の概形を表させることができる。その結果、原稿９０２の輪郭を抽出することができる。
【００５１】
次に、本発明の第４の実施の形態について説明する。第４の実施の形態は、その構成、作用が上述した第１の実施の形態乃至第３の実施の形態と基本的に同じであるので、重複した構成、作用については説明を省略し、以下に異なる構成、作用についての説明を行う。
【００５２】
第１の実施の形態乃至第３の実施の形態では、二値化距離画像データにおいて矩形の原稿９０２の４つの隅点が全て現れていることを前提とし、二値化距離画像データの白画素領域の各隅点９０７から原稿９０２の４つの隅点を選択した。しかしながら、ユーザが手９０１よって原稿９０２の隅部を保持する場合等、二値化距離画像データにおいて原稿９０２の４つの隅点が全て現れない場合がある。これに対応して、本実施の形態では、原稿四隅抽出処理によって４つの隅点９０７を選択した後、各隅点９０７が原稿９０２の輪郭を構成する隅点か否かを検証する。
【００５３】
図１４Ａは、第４の実施の形態に係る画像読取方法としての原稿輪郭抽出処理のフローチャートである。図１５は、図１４Ａの原稿輪郭抽出処理を説明するための工程図である。原稿輪郭抽出処理は主としてＣＰＵ５０２が実行する。なお、図１４Ａの原稿輪郭抽出処理は、図１２Ａの原稿輪郭抽出処理を前提とするが、本実施の形態は図８Ａや図１０Ａの原稿輪郭抽出処理を前提としてもよい。
【００５４】
まず、ステップＳ８０１乃至ステップＳ８０３、ステップＳ１２０１乃至ステップＳ１２０４、並びに、ステップＳ８０６を実行する。これにより、原稿含有カメラ画像データ（図１５（Ａ））、原稿含有距離画像データ（図１５（Ｂ））及び二値化距離画像データ（図１５（Ｃ））を取得し、さらに、原稿９０２の輪郭を構成する各隅点の候補として４つの隅点９０７を選択する。その後、選択された４つの隅点９０７が原稿９０２の輪郭を構成するか否かを検証する原稿四隅検証処理を実行する（ステップＳ１４０１）。図１４Ｂは、図１４ＡのステップＳ１４０１の原稿四隅検証処理のフローチャートである。まず、二値化距離画像データの各辺と白画素領域の交差点である各端点１３０２を検出し、各端点１３０２の中点１３０３を検出する（ステップＳ１４１１）。なお、ステップＳ１４１１はステップＳ１２０１におけるステップＳ１２１１と同じ処理であるため、ステップＳ１２１１を実行する場合にはステップＳ１４１１をスキップしてもよい。また、ステップＳ１４１１において中点１３０３が検出されない場合は、ユーザに別の方向や角度から書画台２０４の上方へ手９０１で保持した原稿９０２を進入させ、ステップＳ８０３から処理をやり直す。
【００５５】
ところで上述したように、各端点１３０２は手９０１の位置を表すと考えられるため、ユーザが手９０１よって保持される原稿９０２の隅部は、原稿９０２の４つの隅部の中で中点１３０３に最も近い隅部であると考えられる。そこで、本実施の形態では、選択された４つの隅点９０７のうち中点１３０３に最も近い隅点９０７を検証対象隅点１５０１（第３の隅点）として抽出する（ステップＳ１４１２）（図１５（Ｄ））。ここで、検証対象隅点１５０１が原稿９０２の輪郭から外れている場合、検証対象隅点１５０１と、原稿９０２の輪郭を構成する他の隅点９０７とを結ぶ線分（以下、「検証線」という）１５０２は、原稿９０２の輪郭の各辺と合致しない（図１５（Ｅ））。すなわち、当該線分上には原稿９０２が存在せず、距離画像センサ部２０８からは当該線分において書画台２０４が直視できるため、当該線分の各画素の距離情報は原稿９０２の距離情報と大きく異なる。そこで、検証線１５０の各画素の距離情報と原稿９０２の各画素の距離情報を比較し、各距離情報の差分が所定値以上か否かを判別する（ステップＳ１４１３）。各距離情報の差分が所定値以上であれば、検証対象隅点１５０１を消去する（ステップＳ１４１５）。一方、各距離情報の差分が所定値未満であれば、ステップＳ１４１４に進む。
【００５６】
また、矩形の原稿では、原稿の重心を基準とした場合、各隅点より外側に他の隅点が存在することがない。そこで、ステップＳ１４１４では、二値化距離画像データの白画素領域の重心点１３０４を検出し、重心点１３０４を基準とした場合、検証対象隅点１５０１よりも外側に二値化距離画像データの白画素領域の各隅点１３０１が存在するか否かを判別する。検証対象隅点１５０１よりも外側に隅点１３０１が存在する場合、検証対象隅点１５０１を消去する（ステップＳ１４１５）。一方、検証対象隅点１５０１よりも外側に各隅点１３０１のいずれも存在しない場合、原稿四隅検証処理を終了する。次いで、ステップＳ８０７を実行する。ステップＳ８０７では、検証対象隅点１５０１が消去されている場合、残りの３つの隅点９０７から矩形を導出し、該矩形を原稿９０２の輪郭として規定する。その後、原稿輪郭抽出処理を終了する。
【００５７】
図１４Ａの原稿輪郭抽出処理によれば、各隅点９０７が原稿９０２の輪郭を構成する隅点か否かを検証するので、不自然な原稿９０２の輪郭を修正することができる。
【００５８】
以上、本発明の各実施の形態について説明したが、本発明はこれらの実施の形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。例えば、各実施の形態では原稿９０２がユーザの手９０１によって保持されたが、原稿９０２がマジックハンド等の保持手段によって保持されていても、原稿９０２の輪郭を正確に抽出することができる。また、本発明は、各実施の形態の１以上の機能を実現するプログラムを、ネットワークや記憶媒体を介してシステムや装置に供給し、そのシステム又は装置のコンピュータの１つ以上のプロセッサがプログラムを読み出して実行する処理でも実現可能である。また、本発明は、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００５９】
１０１  カメラスキャナ
２０２  カメラ部
２０６，９０２  原稿
２０７  短焦点プロジェクタ
２０８  距離画像センサ部
５０２  ＣＰＵ
６０３  画像取得部
９０１  手
９０３  水平走査線
９０４  垂直走査線  
９０５，１１０３  基準輪郭
９０６，９０７  隅点
１１０１  特徴点
１１０２  交点
１３０５  基準線
１５０１  検証対象隅点
【図１】
2018191258.tif 000003
【図２】
2018191258.tif 000004
【図３】
2018191258.tif 000005
【図４】
2018191258.tif 000006
【図５】
2018191258.tif 000007
【図６】
2018191258.tif 000008
【図７】
2018191258.tif 000009
【図８Ａ】
2018191258.tif 000010
【図８Ｂ】
2018191258.tif 000011
【図８Ｃ】
2018191258.tif 000012
【図８Ｄ】
2018191258.tif 000013
【図９】
2018191258.tif 000014
【図１０Ａ】
2018191258.tif 000015
【図１０Ｂ】
2018191258.tif 000016
【図１０Ｃ】
2018191258.tif 000017
【図１１】
2018191258.tif 000018
【図１２Ａ】
2018191258.tif 000019
【図１２Ｂ】
2018191258.tif 000020
【図１３】
2018191258.tif 000021
【図１４Ａ】
2018191258.tif 000022
【図１４Ｂ】
2018191258.tif 000023
【図１５】
2018191258.tif 000024