(57)【要約】【課題】撮像画像内の参照点の位置を適切に示す位置情報を含む位置データを生成する。【解決手段】画像処理装置は、参照点を示す被写体を示す撮像画像を示す撮像画像データを用いて、参照点の位置を示す位置情報を取得し、位置情報を用いて参照点の相対的な位置関係を第１の方法に従って解析して、参照点の相対的な位置関係を示す相対情報を参照点に対応付け、複数個の位置情報を用いて参照点の相対的な位置関係を第２の方法に従って解析して、相対情報を参照点に対応付け、第１の方法に従う対応関係と第２の方法に従う対応関係とが異なる場合に、除外参照点を決定する。出力対象の参照点は、除外参照点を除いた２以上の参照点である。【選択図】  図８
2019012424.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータプログラムであって、
規則的に配列される複数個の参照点を示す被写体を、撮像装置を用いて撮像して生成される撮像画像データであって、前記被写体を示す撮像画像を示す前記撮像画像データを取得する画像取得機能と、
前記撮像画像データを用いて、前記撮像画像内の前記複数個の参照点の位置を示す複数個の位置情報を取得する位置情報取得機能と、
前記複数個の位置情報を用いて、前記複数個の参照点の相対的な位置関係を第１の方法に従って解析することによって、前記複数個の参照点の相対的な位置関係を示す相対情報を、前記複数個の参照点のそれぞれに対応付ける第１の解析機能と、
前記複数個の位置情報を用いて、前記複数個の参照点の相対的な位置関係を第２の方法に従って解析することによって、前記相対情報を、前記複数個の参照点のそれぞれに対応付ける第２の解析機能と、
前記第１の方法に従って対応付けられた特定の前記参照点と前記相対情報との第１の対応関係と、前記第２の方法に従って対応付けられた前記特定の参照点と前記相対情報との第２の対応関係と、が異なる場合に、前記特定の参照点を除外参照点として決定する決定機能と、
前記複数個の参照点のうち、出力対象の参照点のそれぞれの前記位置情報を含む位置データを、前記出力対象の参照点と前記相対情報との対応関係に基づいて生成する位置データ生成機能であって、前記出力対象の参照点は、前記相対情報が対応付けられた２以上の参照点であり、かつ、前記除外参照点を除いた前記２以上の参照点である、前記位置データ生成機能と、
をコンピュータに実現させる、コンピュータプログラム。
【請求項２】
請求項１に記載のコンピュータプログラムであって、
前記決定機能は、前記第１の対応関係として、前記特定の参照点に第１の前記相対情報が対応付けられ、前記第２の対応関係として、前記特定の参照点に前記第１の相対情報とは異なる第２の前記相対情報が対応付けられる場合に、前記特定の参照点を前記除外参照点として決定する、コンピュータプログラム。
【請求項３】
請求項１または２に記載のコンピュータプログラムであって、
前記特定の参照点は、第１の参照点と、前記第１の参照点とは異なる第２の参照点と、を含み、
前記決定機能は、前記第１の対応関係として、前記第１の参照点に特定の前記相対情報が対応付けられ、前記第２の対応関係として、前記第２の参照点に前記特定の相対情報が対応付けられる場合に、前記第１の参照点と前記第２の参照点とをそれぞれ前記除外参照点として決定する、コンピュータプログラム。
【請求項４】
請求項１〜３のいずれかに記載のコンピュータプログラムであって、
前記第１の解析機能は、前記複数個の参照点から選択される第１の基準参照点から、第１の方向に沿って前記参照点を探索し、探索される前記参照点に前記相対情報を対応付け、
前記第２の解析機能は、前記複数個の参照点から選択される第２の基準参照点から、前記第１の方向とは異なる第２の方向に沿って前記参照点を探索し、探索される前記参照点に前記相対情報を対応付ける、コンピュータプログラム。
【請求項５】
請求項４に記載のコンピュータプログラムであって、さらに、
前記複数個の参照点が配置された領域の中央部に位置する中央参照点と、第１の近傍参照点と、前記中央参照点に対して前記第１の近傍参照点とは異なる方向に位置する第２の近傍参照点と、を含む複数個の近傍参照点を特定する点特定機能であって、前記複数個の近傍参照点は、前記中央参照点を除く前記複数個の参照点のうちの他の参照点よりも前記中央参照点との距離が近い２個以上の参照点である、前記点特定機能と、
前記中央参照点から前記第１の近傍参照点に向かう方向を前記第１の方向として特定し、前記中央参照点から前記第２の近傍参照点に向かう方向を前記第２の方向として特定する、方向特定機能と、
をコンピュータに実現させる、コンピュータプログラム。
【請求項６】
請求項５に記載のコンピュータプログラムであって、
前記点特定機能は、さらに、前記複数個の近傍参照点のうちの第３の近傍参照点であって前記中央参照点に対して前記第１の近傍参照点および前記第２の近傍参照点とは異なる方向に位置する前記第３の近傍参照点と、前記複数個の近傍参照点のうちの第４の近傍参照点であって前記中央参照点に対して前記第１の近傍参照点、前記第２の近傍参照点および前記第３の近傍参照点とは異なる方向に位置する前記第４の近傍参照点と、を特定し、
前記方向特定機能は、さらに、前記中央参照点から前記第３の近傍参照点に向かう方向を第３の方向として特定し、前記中央参照点から前記第４の近傍参照点に向かう方向を第４の方向として特定し、
前記第１の解析機能と前記第２の解析機能とのそれぞれは、前記第１の方向と前記第２の方向と前記第３の方向と前記第４の方向とに沿って前記参照点を探索することによって、前記相対情報を、前記複数個の参照点のそれぞれに対応付ける、コンピュータプログラム。
【請求項７】
請求項１〜６のいずれかに記載のコンピュータプログラムであって、さらに、
前記相対情報が対応付けられた２以上の参照点であり、かつ、前記特定の参照点を除いた前記２以上の参照点のうち、特定方向の端に配列される第１の端部参照点の個数と、前記特定方向と交差する方向の端に配置される第２の端部参照点の個数と、を特定する個数特定機能と、
前記第１の端部参照点の個数が第１の個数以下である場合には、前記第１の端部参照点を前記出力対象の参照点から除外し、前記第２の端部参照点の個数が第２の個数以下である場合には、前記第２の端部参照点を前記出力対象の参照点から除外する除外機能と、
をコンピュータに実現させる、コンピュータプログラム。
【請求項８】
請求項１〜７のいずれかに記載のコンピュータプログラムであって、
前記撮像画像は、Ｋ個（Ｋは２以上の整数）の前記参照点を示すオブジェクトを含み、
前記コンピュータプログラムは、さらに、
参照範囲のサイズを決定するサイズ決定機能であって、前記参照範囲のサイズは、１個の前記参照点を示すオブジェクトの重心と前記参照範囲の重心とが一致する場合に、前記参照範囲に１個以上Ｌ個（Ｌは、Ｋ未満の整数）以下の前記参照点を示すオブジェクトが含まれるように決定される、前記サイズ決定機能と、
前記参照範囲内の複数個の画素の値を用いて決定される閾値に基づいて前記参照範囲内の注目画素を二値化することによって、前記撮像画像データの二値化データを生成する二値化機能と、
をコンピュータに実現させ、
前記位置情報取得機能は、前記二値化データを用いて、前記撮像画像内の前記複数個の参照点の位置を示す複数個の位置情報を取得する、コンピュータプログラム。
【請求項９】
請求項８に記載のコンピュータプログラムであって、
前記サイズ決定機能は、前記撮像画像の一辺に沿う方向の画素数に基づく値を、前記撮像画像の前記一辺に沿う方向に並ぶ前記参照点を示すオブジェクトの個数に基づく値で除して得られる値を用いて、前記参照範囲のサイズを決定する、コンピュータプログラム。
【請求項１０】
請求項１〜９のいずれかに記載のコンピュータプログラムであって、さらに、
前記撮像画像データを用いて、前記撮像画像内の複数個のオブジェクトを特定するオブジェクト特定機能と、
前記複数個のオブジェクトのうちの少なくとも一部のオブジェクトの画素数に基づいて、画素数の基準範囲を決定する基準決定機能と、
前記基準範囲内の画素数を有するか否かに基づいて、前記複数個のオブジェクトは、前記参照点を示すオブジェクトであるか否かを、オブジェクトごとに判断する第１の判断機能と、
をコンピュータに実現させ、
前記位置情報取得機能は、前記参照点を示すオブジェクトに基づいて、前記撮像画像内の前記複数個の参照点の位置を示す複数個の位置情報を取得する、コンピュータプログラム。
【請求項１１】
請求項１〜１０のいずれかに記載のコンピュータプログラムであって、さらに、
前記撮像画像データを用いて、前記撮像画像内の複数個のオブジェクトを特定するオブジェクト特定機能と、
前記複数個のオブジェクトのそれぞれについて、特定方向のサイズと、前記特定方向と交差する方向のサイズと、の比率であるサイズ比を特定するサイズ比特定機能と、
特定範囲内のサイズ比を有するか否かに基づいて、前記複数個のオブジェクトは、前記参照点を示すオブジェクトであるか否かを、オブジェクトごとに判断する第２の判断機能と、
をコンピュータに実現させ、
前記位置情報取得機能は、前記参照点を示すオブジェクトに基づいて、前記撮像画像内の前記複数個の参照点の位置を示す複数個の位置情報を取得する、コンピュータプログラム。
【請求項１２】
請求項１〜１１のいずれかに記載のコンピュータプログラムであって、さらに、
前記撮像画像データを用いて、前記撮像画像内の複数個のオブジェクトを特定するオブジェクト特定機能と、
前記複数個のオブジェクトのうち、前記撮像画像の端と接するオブジェクトを、出力対象とすべき前記参照点を示すオブジェクトでないと判断する第３の判断機能と、
をコンピュータに実現させ、
前記位置情報取得機能は、前記参照点を示すオブジェクトに基づいて、前記撮像画像内の前記複数個の参照点の位置を示す複数個の位置情報を取得する、コンピュータプログラム。
【請求項１３】
請求項１〜１２のいずれかに記載のコンピュータプログラムであって、さらに、
前記位置データに基づく特性データを用いて、前記撮像装置を用いて生成される画像データであって前記撮像画像データとは異なる画像データに対して、画像の歪みを補正する補正処理を実行して、補正済画像データを生成する補正機能と、
前記補正済画像データを用いて、印刷データを生成する印刷データ生成機能と、
をコンピュータに実現させる、コンピュータプログラム。
【請求項１４】
画像処理装置であって、
規則的に配列される複数個の参照点を示す被写体を、撮像装置を用いて撮像して生成される撮像画像データであって、前記被写体を示す撮像画像を示す前記撮像画像データを取得する画像取得部と、
前記撮像画像データを用いて、前記撮像画像内の前記複数個の参照点の位置を示す複数個の位置情報を取得する位置情報取得部と、
前記複数個の位置情報を用いて、前記複数個の参照点の相対的な位置関係を第１の方法に従って解析することによって、前記複数個の参照点の相対的な位置関係を示す相対情報を、前記複数個の参照点のそれぞれに対応付ける第１の解析部と、
前記複数個の位置情報を用いて、前記複数個の参照点の相対的な位置関係を第２の方法に従って解析することによって、前記相対情報を、前記複数個の参照点のそれぞれに対応付ける第２の解析部と、
前記第１の方法に従って対応付けられた特定の前記参照点と前記相対情報との第１の対応関係と、前記第２の方法に従って対応付けられた前記特定の参照点と前記相対情報との第２の対応関係と、が異なる場合に、前記特定の参照点を除外参照点として決定する決定部と、
前記複数個の参照点のうち、出力対象の参照点のそれぞれの前記位置情報を含む位置データを、前記出力対象の参照点と前記相対情報との対応関係に基づいて生成する位置データ生成部であって、前記出力対象の参照点は、前記相対情報が対応付けられた２以上の参照点であり、かつ、前記除外参照点を除いた前記２以上の参照点である、前記位置データ生成部と、
を備える、画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、撮像画像内の参照点の位置を示す位置情報を含む位置データの生成に関する。
【背景技術】
【０００２】
カメラなどの撮像装置を用いて生成される撮像画像には、撮像装置のレンズに起因する歪みが発生することが知られている。例えば、特許文献１には、このような歪みを補正する技術が開示されている。この技術では、ドットマークをマトリクス上に設けた歪み補正治具を撮像して得られる撮像画像において、画像処理によってドットマークの位置を認識する。そして、画像処理によって認識されたドットマークの位置と、歪み補正治具におけるドットマークの実測位置と、を比較して、撮像画像における歪み量が算出される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１８００８４号公報
【特許文献２】特開２０００−２４１１２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記技術では、例えば、画像処理によって認識されたドットマークの位置情報の生成については、何ら工夫がなされていない。このために、例えば、当該位置情報が、適切にドットマークの位置を示していない可能性があった。
【０００５】
本明細書は、撮像画像内の参照点の位置を適切に示す位置情報を含む位置データを生成できる技術を開示する。
【課題を解決するための手段】
【０００６】
本明細書に開示された技術は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の適用例として実現することが可能である。
【０００７】
［適用例１］コンピュータプログラムであって、規則的に配列される複数個の参照点を示す被写体を、撮像装置を用いて撮像して生成される撮像画像データであって、前記被写体を示す撮像画像を示す前記撮像画像データを取得する画像取得機能と、前記撮像画像データを用いて、前記撮像画像内の前記複数個の参照点の位置を示す複数個の位置情報を取得する位置情報取得機能と、前記複数個の位置情報を用いて、前記複数個の参照点の相対的な位置関係を第１の方法に従って解析することによって、前記複数個の参照点の相対的な位置関係を示す相対情報を、前記複数個の参照点のそれぞれに対応付ける第１の解析機能と、前記複数個の位置情報を用いて、前記複数個の参照点の相対的な位置関係を第２の方法に従って解析することによって、前記相対情報を、前記複数個の参照点のそれぞれに対応付ける第２の解析機能と、前記第１の方法に従って対応付けられた特定の前記参照点と前記相対情報との第１の対応関係と、前記第２の方法に従って対応付けられた前記特定の参照点と前記相対情報との第２の対応関係と、が異なる場合に、前記特定の参照点を除外参照点として決定する決定機能と、前記複数個の参照点のうち、出力対象の参照点のそれぞれの前記位置情報を含む位置データを、前記出力対象の参照点と前記相対情報との対応関係に基づいて生成する位置データ生成機能であって、前記出力対象の参照点は、前記相対情報が対応付けられた２以上の参照点であり、かつ、前記除外参照点を除いた前記２以上の参照点である、前記位置データ生成機能と、をコンピュータに実現させる、コンピュータプログラム。
【０００８】
上記構成によれば、第１の対応関係と、第２の対応関係と、が異なる場合に、除外参照点が決定される。そして、除外参照点を除いた出力対象の２以上の参照点のそれぞれの位置情報を含む位置データが生成される。したがって、撮像画像内の参照点の位置を適切に示す位置情報を含む位置データを生成できる。
【０００９】
なお、本明細書に開示される技術は、種々の形態で実現することが可能であり、例えば、コンピュータプログラムを記録した記録媒体、複合機、スキャナ、プリンタ、画像処理方法等の形態で実現することができる。
【図面の簡単な説明】
【００１０】
【図１】画像処理装置の一例である端末装置１００の構成を示すブロック図である。
【図２】画像処理のフローチャートである。
【図３】画像処理で用いられるシート、画像、データの一例を示す図である。
【図４】オブジェクト特定処理のフローチャートである。
【図５】生成されるオブジェクト情報ＯＤの一例である。
【図６】中央部解析処理のフローチャートである。
【図７】シート撮像画像ＯＩ上に特定された複数個の参照点Ｐを示す図である。
【図８】整列情報のフローチャートである。
【図９】整列処理の第１の説明図である。
【図１０】探索結果の一例を示すマトリクスである。
【図１１】整列処理の第２の説明図である。
【図１２】探索結果調整処理の第１のフローチャートである。
【図１３】探索結果調整処理の第２のフローチャートである。
【図１４】合成探索結果の別の例を示す図である。
【発明を実施するための形態】
【００１１】
Ａ．実施例：
Ａ−１：端末装置１００の構成
次に、実施の形態を実施例に基づき説明する。図１は、画像処理装置の一例である端末装置１００の構成を示すブロック図である。端末装置１００は、例えば、スマートフォンなどのカメラ付きの携帯型の計算機である。端末装置１００は、画像処理装置を制御するプロセッサであるＣＰＵ１１０と、ＤＲＡＭなどの揮発性記憶装置１２０と、フラッシュメモリやハードディスクドライブなどの不揮発性記憶装置１３０と、液晶ディスプレイなどの表示部１４０と、液晶ディスプレイと重畳されたタッチパネルやボタンを含む操作部１５０と、カメラ１６０と、印刷装置２００などの外部装置と通信を行うためのインタフェース（通信ＩＦ）１７０と、を備えている。
【００１２】
カメラ１６０は、図示しないＣＣＤやＣＭＯＳなどの二次元イメージセンサとレンズとを備え、光学的に被写体を撮像することによって被写体を含む撮像画像を示す撮像画像データを生成するデジタルカメラである。撮像画像データは、複数個の画素のＲＧＢ値を含むＲＧＢ画像データ、あるいは、複数個の画素の輝度値を含むモノクロ画像データである。１個の画素のＲＧＢ値は、その画素の色を示し、例えば、赤（Ｒ）と緑（Ｇ）と青（Ｂ）との３個の成分値（以下、Ｒ値、Ｇ値、Ｂ値とも呼ぶ）を含んでいる。本実施例では、各成分値の階調数は、２５６階調である。輝度値は、その画素の輝度を、例えば、２５６階調の値で示す値である。
【００１３】
揮発性記憶装置１２０は、ＣＰＵ１１０が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域を提供する。不揮発性記憶装置１３０には、コンピュータプログラムＰＧが格納されている。コンピュータプログラムＰＧは、ＣＰＵ１１０に端末装置１００の制御を実現させる制御プログラムである。本実施例では、コンピュータプログラムＰＧは、端末装置１００の製造時に、不揮発性記憶装置１３０に予め格納される形態で提供される。これに代えて、コンピュータプログラムＰＧは、サーバからダウンロードされる形態で提供されても良く、ＤＶＤ−ＲＯＭなどに格納される形態で提供されてもよい。ＣＰＵ１１０は、コンピュータプログラムＰＧを実行することにより、後述する画像処理を実行することができる。
【００１４】
印刷装置２００は、所定の方式（例えば、レーザ方式や、インクジェット方式）で、用紙上に色材を用いて画像を印刷する装置である。
【００１５】
Ａ−２：画像処理
図２は、画像処理のフローチャートである。図３は、画像処理で用いられるシート、画像、データの一例を示す図である。本実施例の画像処理は、図２（Ａ）の特性データ生成処理と、図２（Ｂ）の印刷処理と、を含む。
【００１６】
Ａ−２−１：特性データ生成処理
特性データ生成処理は、後述するシートＳＨをカメラ１６０で撮像して得られるシート撮像画像データを用いて、カメラ１６０に関する特性、例えば、カメラ１６０のレンズ等の特性を示す特性データＣＤを生成する処理である。
【００１７】
図２（Ａ）のＳ１０では、ＣＰＵ１１０は、シート撮像画像データを取得する。具体的には、ＣＰＵ１１０は、ユーザの操作に応じて、カメラ１６０を制御して、シートＳＨを被写体としてカメラ１６０に撮像させることによって、シート撮像画像データを生成する。ＣＰＵ１１０は、生成したシート撮像画像データを、揮発性記憶装置１２０に格納する。
【００１８】
図３（Ａ）には、シートＳＨの一例が示されている。シートＳＨは、特性データを生成するために、印刷された画像を含む。具体的には、シートＳＨには、Ｎ行×Ｍ列の行列を形成するように規則的に並んだ合計（Ｎ×Ｍ）個の小さな円Ｃが印刷されている。Ｎ、Ｍは、それぞれ、２以上の整数である。Ｎ、Ｍは、例えば、それぞれ、３０〜１００個である。図３（Ａ）では、図の煩雑を避けるために、５行×５列の２５個の円Ｃを含むシートＳＨが示されている。
【００１９】
円Ｃの重心は、参照点ＲＰである。すなわち、円Ｃは、参照点ＲＰ（シートＳＨ上の参照点）を示すマークである。複数個の円は、それぞれ、例えば、所定の色（例えば、黒）で塗りつぶされ、互いに同一の形状、サイズ、色を有している。Ｎ個の行およびＭ個の列のそれぞれは、直線状である。Ｍ個の列ＣＣの間隔ΔＫＣは、互いに等しく、Ｎ個の行ＣＲの間隔ΔＫＲは、互いに等しい。また、列ＣＣの間隔ΔＫＣと行ＣＲの間隔ΔＫＲとは等しい（ΔＫＣ＝ΔＫＲ）。シートＳＨには、バーコードＢＣが印刷されている。バーコードＢＣは、例えば、シートＳＨの品番、円Ｃの個数などの情報を示す。
【００２０】
図３（Ｂ）には、シート撮像画像データによって示されるシート撮像画像ＯＩが示されている。このシート撮像画像ＯＩは、シートＳＨを示すシート画像ＳＩを含んでいる。シート画像ＳＩは、例えば、カメラ１６０のレンズの特性に起因して、歪んでいる（例えば、樽型や糸巻型の歪み）。このために、シート画像ＳＩにおいて、上記の円Ｃを示す円オブジェクトＣＯの位置も、シートＳＨ上における円Ｃの位置と比較して、上述した規則性が崩れている。また、シートＳＨが傾いた状態で撮像されることによって、シート撮像画像ＯＩに対して、シート画像ＳＩが傾き得る。シート撮像画像ＯＩは、円オブジェクトＣＯとは別に、円オブジェクトＣＯとは無関係なノイズＮＺ１〜ＮＺ７を含んでいる。これらのノイズＮＺ１〜ＮＺ７は、例えば、シートＳＨ上のバーコードＢＣ、埃、ゴミ、レンズの傷や汚れ、影などに起因する。また、撮像時のシートＳＨへの光の当たり方などに起因して、図３（Ｂ）に符号ＭＰ１、ＭＰ２に示すように、シートＳＨ上の特定の円Ｃを示す円オブジェクトＣＯが、シート撮像画像ＯＩ内に現れない場合もある。円オブジェクトＣＯは、シートＳＨ上の参照点ＲＰに対応するシート撮像画像ＯＩ上の参照点Ｐを示すオブジェクトである。換言すれば、シート画像ＳＩ内には、円オブジェクトＣＯの個数分の参照点Ｐを特定できる。参照点Ｐは、例えば、円オブジェクトＣＯの重心である。
【００２１】
Ｓ２０では、ＣＰＵ１１０は、シート撮像画像データを用いて、シート撮像画像ＯＩ内の複数個の参照点Ｐの位置情報を含む位置データＰＤを生成する位置データ生成処理を実行する。参照点Ｐの位置情報は、例えば、シート撮像画像ＯＩの左上の頂点を基準位置（０、０）とするＸＹ座標系の座標情報（単位は、画素）である。
【００２２】
図３（Ｃ）には、位置データＰＤの一例が示されている。位置データＰＤは、シートＳＨのＮ行×Ｍ列の２５個の円Ｃに対応する（Ｎ×Ｍ）個の位置情報を含む。各位置情報は、対応するシートＳＨ上の円Ｃが特定できるように、予め定められた順序で並べられている。例えば、位置データＰＤにおいて、１行目かつ１列目の円Ｃ（１、１）に対応する参照点Ｐの位置情報（Ｘ１１、Ｙ１１）は、１番目に配置され、２行目かつ１列目の円Ｃ（２、１）に対応する位置情報（Ｘ２１、Ｙ２１）は、（Ｍ＋１）番目に配置され、Ｎ行目かつＭ列目の円Ｃ（Ｎ、Ｍ）に対応する位置情報（ＸＮＭ、ＹＮＭ）は、（Ｎ×Ｍ）番目に配置される。Ｓ２０の位置データ生成処理の詳細は、後述する。
【００２３】
Ｓ３０では、ＣＰＵ１１０は、生成された位置データＰＤに基づいて、特性データＣＤを生成する。特性データＣＤの生成は、公知の方法を用いて実行される。本実施例では、特性データＣＤは、ＯｐｅｎＣＶ（Intel Open Source Computer Vision Library）にて公開されている関数「cvCalibrateCamera2」を用いて生成される。
【００２４】
図３（Ｄ）には、特性データＣＤの一例が示されている。特性データＣＤは、例えば、３行×３列のパラメータ行列ＣＭ（cameraMatrix）と、１行×４列の歪係数ＤＣ（distCoeffs）と、を含んでいる。パラメータ行列ＣＭ、および、歪係数ＤＣは、いずれも、上述の関数「CalibrateCamera2」を用いて生成されるパラメータ群であり、カメラの特性を示す。生成された特性データＣＤは、不揮発性記憶装置１３０に保存される。
【００２５】
Ａ−２−１：印刷処理
印刷処理は、該特性データを用いて、カメラ１６０を用いて生成される対象撮像画像データによって示される対象撮像画像の歪みを補正し、補正済画像を印刷する処理である。
【００２６】
図２（Ｂ）のＳ４０では、ＣＰＵ１１０は、印刷すべき画像を示す対象撮像画像データを取得する。対象撮像画像データは、カメラ１６０を用いて、シート撮像画像データの生成時と同一の撮像条件で、任意の被写体を撮像することによって生成される撮像画像データである。対象撮像画像データによって示される対象撮像画像（図示省略）には、シート撮像画像ＯＩと同様の歪みが生じていると推定できる。
【００２７】
Ｓ５０では、ＣＰＵ１１０は、不揮発性記憶装置１３０から、図２（Ａ）の特性データ生成処理にて生成済の特性データＣＤを取得する。Ｓ６０では、ＣＰＵ１１０は、特性データＣＤを用いて、対象撮像画像データに対して、画像の歪みを補正する歪補正処理を実行して、補正済画像データを生成する。補正済画像データの生成は、例えば、ＯｐｅｎＣＶにて公開されている関数「cvUndistort2」を用いて実行される。
【００２８】
Ｓ７０では、ＣＰＵ１１０は、補正済画像データを用いて、印刷画像データを生成する。具体的には、ＲＧＢ画像データである補正済画像データに対して色変換処理が実行されて、印刷に用いられる色材に対応する色成分（Ｃ、Ｍ、Ｙ、Ｋの成分）を有する色値であるＣＭＹＫ値で画素ごとの色を示すＣＭＹＫ画像データが生成される。色変換処理は、例えば、公知のルックアップテーブルを参照して実行される。ＣＭＹＫ値画像データに対して、ハーフトーン処理が実行されて、印刷に用いられる色材ごと、かつ、画素ごとに、ドットの形成状態を示すドットデータが生成される。ハーフトーン処理は、例えば、ディザ法や、誤差拡散法に従って実行される。該ドットデータは、印刷時に用いられる順に並べ替えられ、該ドットデータに、印刷コマンドが付加されることによって、印刷データが生成される。
【００２９】
Ｓ８０では、ＣＰＵ１１０は、印刷データを、印刷実行部としての印刷装置２００に供給して、印刷装置２００に、補正済画像を印刷させる。以上説明した印刷処理によれば、カメラ１６０の特性に応じて発生する画像内の歪みが適切に補正された補正済画像を印刷することができる。
【００３０】
Ａ−３．位置データ生成処理
図２（Ａ）のＳ２０の位置データ生成処理について説明する。図２（Ａ）のＳ２２では、ＣＰＵ１１０は、シート撮像画像データを用いて、シート撮像画像ＯＩ内の円オブジェクトＣＯを特定するオブジェクト特定処理を実行する。図４は、オブジェクト特定処理のフローチャートである。
【００３１】
Ｓ１０５では、ＣＰＵ１１０は、参照範囲ＲＡのサイズを決定する。具体的には、ＣＰＵ１１０は、以下の式（１）を用いて、正方形の参照範囲ＲＡの一辺の長さＷ１（図３（Ｂ））を算出する。
Ｗ１＝（Ｗｏ／Ｍ）×Ｖａ    …（１）
【００３２】
ここで、Ｗｏは、シート撮像画像ＯＩの長辺の長さ（本実施形態では、Ｘ方向の幅）を示し、具体的には、該長辺に沿う方向の画素数である。Ｍは、シートＳＨにおいて、長辺方向に沿って並ぶ円Ｃの列ＣＣの個数（上述）である。シート撮像画像ＯＩには、ほぼシートＳＨの全体を含むシート画像ＳＩが含まれるので、Ｍは、シート撮像画像ＯＩの長辺に沿う方向に並ぶ円オブジェクトＣＯの個数と、ほぼ等しいと考えられる。Ｖａは、調整のための係数であり、例えば、「１．５」である。この結果、参照範囲ＲＡのサイズは、１個の円オブジェクトＣＯ、例えば、図３（Ｂ）の円オブジェクトＣＯｃの重心と、参照範囲ＲＡの重心と、が一致する場合に、参照範囲ＲＡに、１個の円オブジェクトＣＯｃの全体が含まれ、かつ、他の円オブジェクトＣＯが含まれないように、決定される。例えば、参照範囲ＲＡの一辺の長さＷ１は、上述した列の間隔ΔＫＣおよび行の間隔ΔＫＣの５０％〜１５０％程度の値に決定される。
【００３３】
このように本実施例では、シート撮像画像ＯＩの一辺に沿う方向の画素数に基づく値（長さＷｏ）を、シート撮像画像ＯＩの一辺に沿う方向に並ぶ円オブジェクトＣＯの個数に基づく値（列ＣＣの列数Ｍ）で除して得られる値（Ｗｏ／Ｍ）を用いて、参照範囲ＲＡのサイズが決定される。したがって、適切な参照範囲ＲＡをシート撮像画像ＯＩごとに適切に決定できる。
【００３４】
Ｓ１１０では、ＣＰＵ１１０は、決定済の参照範囲ＲＡを用いて、シート撮像画像データを二値化して、二値化データを生成する。これによって、シート撮像画像ＯＩ内の複数個の画素が、複数個のオブジェクト画素と複数個の背景画素とに分類される。具体的には、ＣＰＵ１１０は、注目画素を中心とする参照範囲ＲＡ内の複数個の画素の値の平均輝度Ｙａｖを算出し、（Ｙａｖ−ΔＹ）の値を、二値化閾値Ｙｔｈとして算出する。ΔＹは、予め定められた固定値である。平均輝度Ｙａｖは、ガウスフィルタを用いて算出される重み付き平均であっても良いし、単純平均であっても良い。ＣＰＵ１１０は、注目画素の輝度Ｙが二値化閾値Ｙｔｈ以上である場合には、注目画素を背景画素として分類し、注目画素の輝度Ｙが二値化閾値Ｙｔｈ未満である場合には、該注目画素をオブジェクト画素として分類する。ＣＰＵ１１０は、シート撮像画像ＯＩ内の全ての画素を注目画素として、二値化閾値Ｙｔｈの決定と、該二値化閾値Ｙｔｈを用いた二値化と、を実行する。この結果、例えば、シート撮像画像ＯＩの明るさにムラがあり、シート撮像画像ＯＩが局所的に暗い部分や明るい部分を含んでいる場合であっても、複数個のオブジェクト画素を適切に特定できる。したがって、円オブジェクトＣＯを適切に特定することができる。
【００３５】
Ｓ１１５では、二値化データに対して、ノイズ除去処理を実行する。これによって、例えば、孤立したオブジェクト画素は、背景画素に変更される。ノイズ除去処理には、公知の処理が採用され、例えば、所定回数の収縮処理を行った後に、同じ回数だけ膨張処理を実行するオープニング処理が採用される。本処理では、微少なノイズ（図示省略）は除去されるが、図３（Ｂ）に示す比較的大きなノイズＮＺ１〜ＮＺ７は、除去されないものとする。
【００３６】
Ｓ１２０では、ＣＰＵ１１０は、ラベリング処理を実行することによって、オブジェクト画素によって構成される複数個のオブジェクトを特定する。具体的には、ＣＰＵ１１０は、連続する複数個のオブジェクト画素で構成される一塊のオブジェクトに、１個のラベル（識別子）を割り当て、互いに分離したオブジェクトに、互いに異なるラベルを割り当てる。例えば、図３（Ｂ）の複数個の円オブジェクトＣＯと、複数個のノイズＮＺ１〜ＮＺ７とには、それぞれ異なるラベルが割り当てられる。これらの円オブジェクトやノイズは、それぞれ、異なるオブジェクトとして特定される。本ステップにて特定される複数個のオブジェクトは、円オブジェクトＣＯの候補である。
【００３７】
Ｓ１２５では、ＣＰＵ１１０は、特定された複数個のオブジェクトに関する情報であるオブジェクト情報ＯＤを生成する。図５は、生成されるオブジェクト情報ＯＤの一例である。
【００３８】
図５の例では、１〜ｊのラベルに対応するｊ個のオブジェクトのオブジェクト情報ＯＤが図示されている。Ｓ１２５で生成されるオブジェクト情報ＯＤは、ｊ個のオブジェクトごとに、幅Ｗ、高さＨ、面積Ｓ、重心位置（Ｘｃ、Ｙｃ）、端位置（Ｘｌ、Ｘｒ、Ｙｕ、Ｙｂ）と、を含んでいる。なお、図５の行列番号（ｎ、ｍ）は、この段階では、生成されない。
【００３９】
幅Ｗは、対応するオブジェクトのＸ方向の画素数である。高さＨは、対応するオブジェクトのＹ方向の画素数である。面積Ｓは、対応するオブジェクトを構成するオブジェクト画素の画素数である。重心位置（Ｘｃ、Ｙｃ）は、対応するオブジェクトの重心の位置を示す。Ｘｃは、例えば、該オブジェクトを構成する複数個のオブジェクト画素のＸ座標の平均値であり、Ｙｃは、該複数個のオブジェクト画素のＹ座標の平均値である。端位置（Ｘｌ、Ｘｒ、Ｙｕ、Ｙｂ）におけるＸｌ、Ｘｒは、対応するオブジェクトの左端の位置および右端の位置をそれぞれ示すＸ座標である。Ｙｕ、Ｙｂは、対応するオブジェクトの上端の位置および下端の位置をそれぞれ示すＹ座標である。
【００４０】
Ｓ１３０では、ＣＰＵ１１０は、特定された複数個のオブジェクトのうち、シート撮像画像ＯＩの上下左右の端に接するオブジェクトを、円オブジェクトＣＯの候補から除外する。具体的には、ＣＰＵ１１０は、図５のオブジェクト情報ＯＤに記述された複数個のオブジェクトのそれぞれの端位置（Ｘｌ、Ｘｒ、Ｙｕ、Ｙｂ）に基づいて、各オブジェクトは、シート撮像画像ＯＩのいずれかの端に接するか否かを判断する。ＣＰＵ１１０は、シート撮像画像ＯＩのいずれかの端に接するオブジェクトの情報を、オブジェクト情報ＯＤから削除する。例えば、図３（Ｂ）のノイズＮＺ７の情報は、オブジェクト情報ＯＤから削除される。ノイズに限らず、例えば、円オブジェクトＣＯであっても、端に接している場合には、該円オブジェクトＣＯの情報は、オブジェクト情報ＯＤから削除される。
【００４１】
Ｓ１３５では、ＣＰＵ１１０は、ＣＰＵ１１０は、特定された複数個のオブジェクトのうち、サイズ比が特定範囲ＳＲ外のオブジェクトは、円オブジェクトＣＯではないと判断して、当該オブジェクトＣＯを、円オブジェクトＣＯの候補から除外する。サイズ比は、Ｘ方向のサイズと、Ｘ方向と交差するＹ方向のサイズと、の比率である。具体的には、ＣＰＵ１１０は、図５のオブジェクト情報ＯＤに記述された幅Ｗと高さＨとに基づいて、サイズ比（Ｗ／Ｈ）をオブジェクトごとに算出し、サイズ比（Ｗ／Ｈ）が、０．５〜２の範囲内であるか否かをオブジェクトごとに判断する。ＣＰＵ１１０は、サイズ比（Ｗ／Ｈ）が０．５〜２の範囲外であるオブジェクトを、オブジェクト情報ＯＤから削除する。例えば、図３（Ｂ）の例では、バーコードＢＣに対応するノイズＮＺ２を示すオブジェクトは、円オブジェクトＣＯの候補から除外される。
【００４２】
Ｓ１４０では、ＣＰＵ１１０は、特定された複数個のオブジェクトのうち、シート撮像画像ＯＩの中央領域ＣＡ１（図３（Ｂ））内に位置する１個以上のオブジェクトの面積Ｓに基づいて、面積の判定範囲ＪＲを決定する。オブジェクトの面積Ｓは、例えば、該オブジェクトを構成する複数個のオブジェクト画素の個数で表される。中央領域ＣＡ１の幅Ｗｈおよび高さＨｈは、例えば、シート撮像画像ＯＩの幅Ｗｏおよび高さＨｏの半分である。中央領域ＣＡ１の中心とシート撮像画像ＯＩの中心とは一致する。ＣＰＵ１１０は、中央領域ＣＡ１内に全体が含まれる１個以上のオブジェクト（図３（Ｂ）の例では８個）の面積の中央値Ｓｃｖを算出する。判定範囲ＪＲは、例えば、｛（１／４）×Ｓｃｖ｝≦Ｓ≦｛（７／４）×Ｓｃｖ｝の範囲である。
【００４３】
Ｓ１４５では、ＣＰＵ１１０は、面積Ｓが判定範囲ＪＲ外であるオブジェクトは、円オブジェクトＣＯではないと判断して、当該オブジェクトを、円オブジェクトＣＯの候補から除外する。具体的には、ＣＰＵ１１０、特定された複数個のオブジェクトのそれぞれの面積Ｓを算出し、面積Ｓが判定範囲ＪＲ外であるオブジェクトの情報を、オブジェクト情報ＯＤから削除する。例えば、図３（Ｂ）の例では、微少なノイズＮＺ３、ＮＺ５を示すオブジェクトは、円オブジェクトＣＯの候補から除外される。
【００４４】
以上説明した図４のオブジェクト特定処理が終了した時点で、オブジェクト情報ＯＤ上に記述されている複数個のオブジェクト情報ＯＤは、現時点での円オブジェクトＣＯの候補である。ここで、図４の複数個のオブジェクト情報ＯＤに記述された円オブジェクトＣＯの重心位置（Ｘｃ、Ｙｃ）は、参照点Ｐの位置を示す位置情報と言うことができる。したがって、図４のオブジェクト特定処理が終了した時点で、シート撮像画像ＯＩ上の複数個の参照点Ｐが特定され、複数個の参照点の位置を示す位置情報が生成されている、と言うことができる。
【００４５】
上記オブジェクト特定処理によれば、中央領域ＣＡ１内のオブジェクトの画素数に基づいて、画素数の基準範囲である判定範囲ＪＲが決定され（Ｓ１４０）、該判定範囲ＪＲ内の画素数を有するか否かに基づいて、複数個のオブジェクトが、円オブジェクトＣＯであるか否かが、オブジェクトごとに判断される（Ｓ１４５）。この結果、シート撮像画像ＯＩ内のオブジェクトが、円オブジェクトＣＯであるか否かを適切に判断できる。
【００４６】
例えば、シートＳＨから比較的離れた位置で、シートＳＨの撮像が行われた場合のように、シート撮像画像ＯＩ内に示すシート画像ＳＩの割合が小さい場合であっても、中央領域ＣＡ１は、シート画像ＳＩで占められている可能性が高いので、適切な判定範囲ＪＲが決定できる。また、シートＳＨ上の円Ｃは、全て同じ面積を有するので、シート撮像画像ＯＩにおいても、円オブジェクトＣＯの面積Ｓは、判定範囲ＪＲ内に収まると考えられる。したがって、判定範囲ＪＲ外の面積Ｓを有するオブジェクトは、円オブジェクトＣＯとは異なるオブジェクト（例えば、ノイズ）であると考えられる。
【００４７】
さらに、オブジェクト特定処理では、特定範囲ＳＲ内のサイズ比を有するか否かに基づいて、複数個のオブジェクトは、円オブジェクトＣＯであるか否かが、オブジェクトごとに判断される（Ｓ１３５）。この結果、シート撮像画像ＯＩ内のオブジェクトが、円オブジェクトＣＯであるか否かを適切に判断できる。したがって、適切な位置データＰＤが生成できる。例えば、シートＳＨ上の円Ｃは、真円であり、サイズ比は、１であるので、シート撮像画像ＯＩにおいても、円オブジェクトＣＯのサイズ比は、特定範囲ＳＲ内に収まると考えられる。したがって、特定範囲ＳＲ外のサイズ比を有するオブジェクトは、円オブジェクトＣＯとは異なるオブジェクト（例えば、ノイズ）であると考えられる。
【００４８】
さらに、オブジェクト特定処理では、シート撮像画像ＯＩの端と接するオブジェクトは、出力対象とすべき参照点Ｐを示す円オブジェクトＣＯでないと判断される（Ｓ１３０）。この結果、シート撮像画像ＯＩ内のオブジェクトが、出力対象とすべき参照点Ｐを示す円オブジェクトＣＯであるか否かを適切に判断できる。例えば、シート撮像画像ＯＩの端に位置するオブジェクトは、例えば、シートＳＨの外側に位置する異物を示す場合が比較的多い。仮に、シート撮像画像ＯＩの端に、シートＳＨ上の円Ｃを示す円オブジェクトＣＯが存在したとしても、その円オブジェクトＣＯは、円Ｃの全体を示していない可能性が高い。このため、その円オブジェクトＣＯに基づく参照点Ｐを精度良く特定できない可能性が高い。したがって、その円オブジェクトＣＯに基づく参照点Ｐは、出力対象とすべきではないと考えられる。
【００４９】
図２のＳ２４では、ＣＰＵ１１０は、シート撮像画像ＯＩの中央部を解析する中央部解析処理を実行する。図６は、中央部解析処理のフローチャートである。図７は、シート撮像画像ＯＩ上に特定された複数個の参照点Ｐを示す図である。図７にて黒丸で示す各参照点の近傍には、各点を区別するための１〜２６までの番号が付されている。５番の参照点Ｐは、例えば、参照点Ｐ（５）とも記述する。
【００５０】
Ｓ２０５では、ＣＰＵ１１０は、複数個の参照点Ｐの中から、１個の中央参照点Ｐｇを特定する。ＣＰＵ１１０は、特定された全ての参照点Ｐから成る点群に外接する外接矩形ＲＡ１を特定する（図７）。ＣＰＵ１１０は、外接矩形ＲＡ１の中心ＧＣを中心とし、外接矩形ＲＡ１よりも小さな中央矩形ＲＡ２を特定する。中央矩形ＲＡ２の幅Ｗ２および高さＨ２は、外接矩形ＲＡ１の幅Ｗ１およびＨ２の２５％の値である（Ｗ２＝０．２５×Ｗ１、Ｈ２＝０．２５×Ｈ１）。ＣＰＵ１１０は、中央矩形ＲＡ２内に含まれる１個以上の参照点Ｐの中から、中央矩形ＲＡ２および外接矩形ＲＡ１の中心ＧＣに最も近い参照点Ｐを中央参照点Ｐｇとして、特定する。図７の例では、中央参照点Ｐｇは、参照点Ｐ（１４）である。
【００５１】
Ｓ２１０では、ＣＰＵ１１０は、中央参照点Ｐｇの近傍に位置する４個の近傍参照点Ｐ１〜Ｐ４を特定する。４個の近傍参照点Ｐ１〜Ｐ４は、複数個の参照点Ｐのうち、中央参照点Ｐｇとの距離が、１〜４番目に短い４個の参照点Ｐである。換言すれば、４個の近傍参照点Ｐ１〜Ｐ４は、中央参照点Ｐｇを除いた複数個の参照点Ｐのうち、中央参照点Ｐｇとの距離が、残りの参照点よりも短い参照点である。
【００５２】
Ｓ２１５では、ＣＰＵ１１０は、４個の中央参照点Ｐｇと、４個の近傍参照点Ｐ１〜Ｐｄのそれぞれと、の間の距離を、それぞれ算出する。ここで、４個の近傍参照点Ｐ１〜Ｐ４を、中央参照点Ｐｇとの距離が短い順に、近傍参照点Ｐ１〜Ｐ４とする。また、中央参照点Ｐｇと、近傍参照点Ｐ１〜Ｐ４のそれぞれと、の距離を、短い順に、距離Ｄ１〜Ｄ４とする。図７の例では、例えば、近傍参照点Ｐ１は、中央参照点Ｐｇの右方に位置する参照点Ｐである。また、近傍参照点Ｐ２、近傍参照点Ｐ３、近傍参照点Ｐ４は、中央参照点Ｐｇの下方、上方、左方に、それぞれ位置する参照点Ｐである。
【００５３】
Ｓ２２０では、ＣＰＵ１１０は、中央参照点Ｐｇと近傍参照点Ｐ２との距離Ｄ２と、中央参照点Ｐｇと近傍参照点Ｐ１との距離Ｄ１と、の差分（Ｄ２−Ｄ１）は、閾値ＴＨ１以下であるか否かを判断する。差分（Ｄ２−Ｄ１）が、閾値ＴＨ１以下である場合には（Ｓ２２０：ＹＥＳ）、ＣＰＵ１１０は、処理をＳ２２５に進める。差分（Ｄ２−Ｄ１）が、閾値ＴＨ１より大きい場合には（Ｓ２２０：ＮＯ）、ＣＰＵ１１０は、処理をＳ２６０に進める。
【００５４】
Ｓ２２５では、ＣＰＵ１１０は、差分（Ｄ２−Ｄ１）を用いて、更新閾値ＴＨ２を算出する。具体的には、更新閾値ＴＨ２は、閾値ＴＨ１と差分（Ｄ２−Ｄ１）との和である（ＴＨ２＝ＴＨ１＋（Ｄ２−Ｄ１））。
【００５５】
Ｓ２３０では、ＣＰＵ１１０は、中央参照点Ｐｇと近傍参照点Ｐ３との距離Ｄ３と、中央参照点Ｐｇと近傍参照点Ｐ２との距離Ｄ２と、の差分（Ｄ３−Ｄ２）は、閾値ＴＨ２以下であるか否かを判断する。差分（Ｄ３−Ｄ２）が、更新閾値ＴＨ２以下である場合には（Ｓ２３０：ＹＥＳ）、ＣＰＵ１１０は、処理をＳ２３５に進める。差分（Ｄ３−Ｄ２）が、更新閾値ＴＨ２より大きい場合には（Ｓ２３０：ＮＯ）、ＣＰＵ１１０は、処理をＳ２６０に進める。
【００５６】
Ｓ２３５では、ＣＰＵ１１０は、差分（Ｄ３−Ｄ２）を用いて、更新閾値ＴＨ３を算出する。具体的には、更新閾値ＴＨ３は、更新閾値ＴＨ２と差分（Ｄ３−Ｄ２）との和である（ＴＨ３＝ＴＨ２＋（Ｄ３−Ｄ２））。
【００５７】
Ｓ２４０では、ＣＰＵ１１０は、中央参照点Ｐｇと近傍参照点Ｐ４との距離Ｄ４と、中央参照点Ｐｇと近傍参照点Ｐ３との距離Ｄ３と、の差分（Ｄ４−Ｄ３）は、閾値ＴＨ３以下であるか否かを判断する。差分（Ｄ４−Ｄ３）が、閾値ＴＨ３以下である場合には（Ｓ２４０：ＹＥＳ）、ＣＰＵ１１０は、処理をＳ２４５に進める。差分（Ｄ４−Ｄ３）が、閾値ＴＨ３より大きい場合には（Ｓ２４０：ＮＯ）、ＣＰＵ１１０は、処理をＳ２６０に進める。
【００５８】
Ｓ２４５では、ＣＰＵ１１０は、近傍参照点Ｐ１〜Ｐ４の位置情報（図５）に基づき、近傍参照点Ｐ１〜Ｐ４は、上下左右のいずれの近傍参照点であるか否かを判断する。具体的には、近傍参照点Ｐ１〜Ｐ４のうち、Ｙ座標が最も上方の位置を示す参照点、すなわち、Ｙ座標が最小である参照点は、上方の参照点であると判断される。近傍参照点Ｐ１〜Ｐ４のうち、Ｙ座標が最も下方の位置を示す参照点、すなわち、Ｙ座標が最大である参照点は、下方の参照点であると判断される。近傍参照点Ｐ１〜Ｐ４のうち、Ｘ座標が最も左方の位置を示す参照点、すなわち、Ｘ座標が最小である参照点は、左方の参照点であると判断される。近傍参照点Ｐ１〜Ｐ４のうち、Ｘ座標が最も右方の位置を示す参照点、すなわち、Ｘ座標が最大である参照点は、右方の参照点であると判断される。
【００５９】
Ｓ２５０では、ＣＰＵ１１０は、近傍参照点Ｐ１〜Ｐ４についてのＳ２４５での判断について、上下左右の参照点が重複する矛盾があるか否かを判断する。近傍参照点Ｐ１〜Ｐ４が、重複することなく、１個ずつ、上下左右の４種の参照点のいずれかであると判断された場合には、矛盾がないと判断される。近傍参照点Ｐ１〜Ｐ４のうちの１個の特定の参照点が、上下左右の４種の参照点のうちの２以上の参照点であると判断された場合には、矛盾があると判断される。例えば、１個の特定の参照点が、上方の参照点であり、かつ、左方の参照点であると、判断される場合には、矛盾があると判断される。
【００６０】
矛盾がない場合には（Ｓ２５０：ＮＯ）、ＣＰＵ１１０は、Ｓ２５５に処理を進める。矛盾がある場合には（Ｓ２５０：ＹＥＳ）、ＣＰＵ１１０は、Ｓ２６０に処理を進める。
【００６１】
Ｓ２５５では、ＣＰＵ１１０は、中央参照点Ｐｇから近傍参照点Ｐ１〜Ｐ４のそれぞれに向かう４個の方向ＤＲ１〜ＤＲ４（図７）の角度θ１〜θ４を算出する。例えば、角度θ１〜θ４は、例えば、Ｘ方向に対する角度である。角度θ１〜θ４が算出されると、中央部解析処理は、終了される。
【００６２】
Ｓ２６０に処理が進められた場合には、シート撮像画像データが不適切であると考えられる。例えば、差分（Ｄ２−Ｄ１）、（Ｄ３−Ｄ２）、（Ｄ４−Ｄ３）のいずれかが、過度に大きい場合には、近傍参照点Ｐ１〜Ｐ４の特定が誤っている可能性が高い。同様に、近傍参照点Ｐ１〜Ｐ４についてのＳ２４０での判断に矛盾がある場合には、近傍参照点Ｐ１〜Ｐ４の特定が誤っている可能性が高い。歪みの程度が端部と比較して小さい中央部において、近傍参照点Ｐ１〜Ｐ４の特定に誤りが生じる場合には、シート撮像画像ＯＩに過度に多数のノイズが含まれている、シート撮像画像ＯＩが過度に暗い、シート撮像画像ＯＩが過度に明るい、などの不都合が生じている可能性が高い。
【００６３】
また、差分（Ｄ２−Ｄ１）、（Ｄ３−Ｄ２）が大きいほど、画像に生じている歪みが大きいと考えられる。また、これらの差分は、中央参照点Ｐｇから離れるほど大きくなると考えられる。このために、差分（Ｄ２−Ｄ１）が大きいほど、差分（Ｄ３−Ｄ２）と比較すべき閾値ＴＨ２は、大きくすることが適切であり、差分（Ｄ３−Ｄ２）が大きいほど、差分（Ｄ４−Ｄ３）と比較すべき閾値ＴＨ３は、大きくすることが適切であると考えられる。このために、Ｓ２２５、Ｓ２３５、に示すように、差分（Ｄ３−Ｄ２）、（Ｄ４−Ｄ３）と比較される閾値は、差分（Ｄ２−Ｄ１）、（Ｄ３−Ｄ２）に応じて、段階的に大きくされている。
【００６４】
Ｓ２６０では、ＣＰＵ１１０は、エラー処理を実行して、画像処理を異常終了する。エラー処理は、例えば、シート撮像画像データが不適切であることを示す通知と、シートＳＨを再度撮像して新たな特性データＣＤをすることをユーザに促す通知と、を含む。例えば、これらの通知内容を示すメッセージが表示部１４０に表示される。
【００６５】
図２のＳ２６では、ＣＰＵ１１０は、整列処理を実行する。整列処理は、複数個の参照点Ｐの位置情報を用いて、複数個の参照点Ｐの相対的な位置関係を解析することによって、複数個の参照点Ｐのそれぞれに、図５の行列情報（ｎ、ｍ）を対応付ける処理である。行列情報（ｎ、ｍ）は、特定の参照点Ｐ（例えば、中央参照点Ｐｇ）を基準として、対応する参照点Ｐが位置する行と列を示す情報である。例えば、シートＳＨがＮ行×Ｍ列の参照点ＲＰを示している（図３（Ａ）の例では５行×５列）ので、シート撮像画像ＯＩに現れる参照点Ｐも、Ｎ行×Ｍ列の行列情報（ｎ、ｍ）を対応付けることができる。例えば、中央参照点Ｐｇに対応付ける行列情報が、（ｎ１、ｍ１）であるとすると、中央参照点Ｐｇが位置する行と同じ行に位置し、かつ、中央参照点Ｐｇが位置する列の下方の列に位置する参照点の行列情報は、（ｎ１＋１、ｍ１）である。このように、行列情報は、複数個の参照点の相対的な位置関係を示す情報である、とも言うことができる。
【００６６】
図８は、整列情報のフローチャートである。図９は、整列処理の第１の説明図である。Ｓ３０５では、ＣＰＵ１１０は、シート撮像画像ＯＩの４端、すなわち、上端ＵＥ、下端ＢＥ、左端ＬＥ、右端ＲＥの中から、１個の注目端を選択する。
【００６７】
Ｓ３１０では、ＣＰＵ１１０は、中央参照点Ｐｇから注目端に向かって、参照点Ｐを探索する。探索方向への参照点Ｐの探索は、上述した距離Ｄ１〜Ｄ４のうち、中央参照点Ｐｇから探索方向に位置する近傍参照点までの距離（探索距離Ｄｔとする）と、上述した角度θ１〜θ４のうち、中央参照点Ｐｇから探索方向に位置する近傍参照点に向かう方向の角度（探索角度θｔとする）と、を用いて実行される。例えば、図７の左端ＬＥに向かう方向（具体的には、図７の方向ＤＲ４）を探索方向とする探索は、中央参照点Ｐｇから近傍参照点Ｐ４までの距離Ｄ４と、中央参照点Ｐｇから近傍参照点Ｐ４に向かう方向ＤＲ４の角度θ４と、を用いて実行される。
【００６８】
具体的には、ＣＰＵ１１０は、以下の条件（１）、（２）を満たす参照点Ｐを探索する。
条件（１）起点と参照点Ｐとの間の距離Ｄと、探索距離Ｄｔと、の差分（Ｄ−Ｄｔ）の絶対値が、閾値Ｄｔｈ以下である（｜Ｄ−Ｄｔ｜≦Ｄｔｈ）
条件（２）起点から参照点へ向かう方向の角度θと、探索角度θと、の差分（θ−θｔ）との絶対値が、閾値θｔｈ以下である（｜θ−θｔ｜≦θｔｈ）
ここで、閾値Ｄｔｈは、例えば、探索距離Ｄｔの（１／４）である（Ｄｔｈ＝（Ｄｔ／４））。閾値θｔｈは、例えば、１０度である。
【００６９】
ＣＰＵ１１０は、中央参照点Ｐｇを起点として、探索を行い、条件（１）、（２）を満たす参照点Ｐが探索された場合には、探索された参照点Ｐを起点として、次の参照点を探索する。そして、ＣＰＵ１１０は、条件（１）、（２）を満たす参照点Ｐが探索されなくなるまで、起点を更新しながら探索を繰り返す。
【００７０】
例えば、図９（Ａ）に示すように、参照点Ｐ（１４）が中央参照点Ｐｇであり、注目端が左端ＬＥである場合には、参照点Ｐ（１４）の左側にある参照点Ｐ（１５）、Ｐ（１６）が探索される。最後に探索される参照点Ｐ（１６）は、注目端（図９（Ａ）の例では左端ＬＥ）の近傍に位置する参照点になる。
【００７１】
Ｓ３１５では、ＣＰＵ１１０は、Ｓ３１０にて探索された注目端の近傍の参照点Ｐから注目端に沿って、参照点Ｐを探索する。注目端が左端ＬＥである場合には、上方向（具体的には、図７の方向ＤＲ３）および下方向（具体的には、図７の方向ＤＲ２）を探索方向として、参照点Ｐの探索が実行される。図９（Ａ）の例では、参照点Ｐ（１６）を起点として、上方向に探索が行われて、参照点Ｐ（１２）、Ｐ（３）が探索される。また、参照点Ｐ（１６）を起点として、下方向に探索が行われて、参照点Ｐ（２１）、Ｐ（２６）が探索される。
【００７２】
Ｓ３２０では、ＣＰＵ１１０は、注目端に沿って探索された参照点Ｐに、行列情報（ｎ、ｍ）を対応付ける。例えば、図９（Ａ）の例にて、注目端が左端ＬＥである場合には、注目端に沿って探索された５個の参照点Ｐ（３）、Ｐ（１２）、Ｐ（１６）、Ｐ（２１）、Ｐ（２６）は、５行×５列の行列のうち、左端の列に対応すると考えられる。このため、
参照点Ｐ（３）、Ｐ（１２）、Ｐ（１６）、Ｐ（２１）には、左端の列であることを示す５個の行列情報（１、１）、（２、１）、（３、１）、（４、１）、（５、１）がそれぞれ対応付けられる。
【００７３】
Ｓ３２５では、ＣＰＵ１１０は、注目端に沿って探索された各参照点から、注目端の反対側の端に向かって、参照点Ｐを探索する。図９（Ｂ）の例では、左端ＬＥに沿う５個のＰ（３）、Ｐ（１２）、Ｐ（１６）、Ｐ（２１）のそれぞれから、右端ＲＥに向かって（具体的には、図７の方向ＤＲ１に）、参照点Ｐが探索される。この結果、図９（Ｂ）に示すように、例えば、参照点Ｐ（３）を起点とする探索では、４個の参照点Ｐ（６）、Ｐ（４）、Ｐ（５）、参照点Ｐ（２）が探索される。また、参照点Ｐ（２６）を起点とする探索では、１個の参照点Ｐ（２５）だけが探索され、Ｐ（２４）、Ｐ（２３）は、探索されない。これは、シート撮像画像ＯＩにおいて、参照点Ｐ（２５）と参照点Ｐ（２４）との間に存在すべき参照点Ｐが特定されていないからである。
【００７４】
Ｓ３３０では、ＣＰＵ１１０は、各参照点を起点に探索された参照点に行列情報を対応付ける。例えば、図９（Ｂ）の例では、左端ＬＥに沿う５個のＰ（３）、Ｐ（１２）、Ｐ（１６）、Ｐ（２１）を起点として探索された１６個の参照点に、行列情報が対応付けられる。例えば、左上の参照点Ｐ（３）を起点として、４個の参照点Ｐ（６）、Ｐ（４）、Ｐ（５）、参照点Ｐ（２）が探索されるので、これらの参照点には、行列情報（１、２）、（１、３）、（１、４）、（１、５）が対応付けられる。
【００７５】
図１０は、探索結果の一例を示すマトリクスである。図１０の各マトリクスでは、５行×５列の行列情報（ｎ、ｍ）に対応する各升目に、対応する参照点Ｐの番号が記述されている。これにより、図１０のマトリクスを見れば、整列処理において、参照点Ｐに対応付けられた行列情報が解る。図１０（Ａ）は、注目端が左端ＬＥである場合の探索結果ＭＬを示している。「Ｆ」が付された升目は、該升目に対応する行列情報に対応する参照点は、探索できなかったことを示す。
【００７６】
Ｓ３３５では、ＣＰＵ１１０は、全ての端ＵＥ、ＢＥ、ＬＥ、ＲＥを、注目端として処理したか否かを判断する。未処理の端がある場合には（Ｓ３３５：ＮＯ）、ＣＰＵ１１０は、Ｓ３０５に処理を戻す。全ての端が処理された場合には（Ｓ３３５：ＹＥＳ）、ＣＰＵ１１０は、整列処理を終了する。
【００７７】
図１１は、整列処理の第２の説明図である。図１１（Ａ）〜（Ｃ）には、注目端が右端ＲＥ、上端ＵＥ、下端ＢＥである場合におけるＳ３２５の探索について、それぞれ概念的に図示されている。注目端が右端ＲＥである場合には、図１１（Ａ）に示すように、右端ＲＥに沿う方向に並ぶ５個の参照点Ｐ（５）、Ｐ（１０）、Ｐ（１３）、Ｐ（１８）、Ｐ（２４）を起点にして、左方向（図７の方向ＤＲ４）に向かって探索が行われる。この結果、図１０（Ｂ）に示す探索結果ＭＲが得られる。注目端が上端ＵＥである場合には、図１１（Ｂ）に示すように、上端ＵＥに沿う方向に並ぶ５個の参照点Ｐ（３）、Ｐ（６）、Ｐ（４）、Ｐ（５）、Ｐ（２）を起点にして、下方向（図７の方向ＤＲ２）に向かって探索が行われる。この結果、図１０（Ｃ）に示す探索結果ＭＵが得られる。注目端が下端ＢＥである場合には、図１１（Ｃ）に示すように、下端ＢＥに沿う方向に並ぶ５個の参照点Ｐ（２１）、Ｐ（２０）、Ｐ（１９）、Ｐ（１８）、Ｐ（１７）を起点にして、上方向（図７の方向ＤＲ３）に向かって探索が行われる。この結果、図１０（Ｄ）に示す探索結果ＭＢが得られる。図１０（Ａ）〜図１０（Ｄ）の探索結果ＭＬ、ＭＲ、ＭＵ、ＭＢは、それぞれ、参照点Ｐと、行列情報と、の対応関係を示す情報である、と言うことができる。
【００７８】
図２のＳ２８では、ＣＰＵ１１０は、探索結果調整処理を実行する。探索結果調整処理は、整列処理における図１０（Ａ）〜図１０（Ｄ）の探索結果ＭＬ、ＭＲ、ＭＵ、ＭＢを調整して、最終的な参照点と行列情報との対応関係を確定し、該最終的な対応関係に基づいて、位置データＰＤ（図３（Ｃ））を生成する処理である。
【００７９】
図１２、図１３は、探索結果調整処理のフローチャートである。Ｓ４０５では、ＣＰＵ１１０は、ＭＬ、ＭＲ、ＭＵ、ＭＢのうち、中央参照点Ｐｇが探索された探索結果は、２個以上あるか否かを判断する。図１０の例では、図１０（Ａ）〜図１０（Ｄ）にて破線で囲んだ升目ＣＳに示されるように、４個の探索結果ＭＬ、ＭＲ、ＭＵ、ＭＢの全てで、中央参照点Ｐｇ（具体的には、参照点Ｐ（１４））が探索されている。
【００８０】
中央参照点Ｐｇが探索された探索結果が２個以上ある場合には（Ｓ４０５：ＹＥＳ）、ＣＰＵ１１０は、Ｓ４１５に処理を進める。中央参照点Ｐｇが探索された探索結果が２個未満である場合には（Ｓ４０５：ＮＯ）、Ｓ４１０にて、ＣＰＵ１１０は、図６のＳ１２０と同様のエラー処理を実行して、画像処理を異常終了する。この場合には、中央参照点Ｐｇを含む中央領域ＣＡ１にノイズが多いなどによって、探索が適切に行われなかったと考えられるからである。
【００８１】
Ｓ４１５では、ＣＰＵ１１０は、中央参照点Ｐｇを基準として、４個の探索結果ＭＬ、ＭＲ、ＭＵ、ＭＢを合成する。図１０（Ｅ）のマトリクスは、合成探索結果ＦＭＴの一例として、合成探索結果ＦＭＴａを示している。この合成探索結果ＦＭＴａは、シートＳＨに含まれる円Ｃの個数に対応するＮ行×Ｍ列（図３（Ａ）の例では、５行×５列）のサイズより大きくなる場合がある。図１０（Ｅ）の例では、合成探索結果ＦＭＴは、６行×６列のサイズである。
【００８２】
Ｓ４２０では、ＣＰＵ１１０は、合成探索結果ＦＭＴにおいて、複数個の参照点Ｐが対応する行列情報が存在するか否かを判断する。すなわち、参照点Ｐと行列情報とがＱ１対１（Ｑ１は２以上の整数）で対応する対応関係が、合成探索結果ＦＭＴに含まれる否かが判断される。図１０（Ｅ）の合成探索結果ＦＭＴａでは、全ての行列情報が、１対１、あるいは、０対１（「Ｆ」が付された部分）で参照点Ｐと対応しているので、当該合成探索結果ＦＭＴａは、Ｑ１対１で対応する対応関係を含まない。
【００８３】
図１４は、合成探索結果の別の例を示す図である。図１４（Ａ）には、５行×５列の別の合成探索結果ＦＭＴｂが示されている。この合成探索結果ＦＭＴｂでは、４行目かつ５列目の位置にある升目ＩＭ１に示めすように、２個の参照点Ｐ（１７）、Ｐ（１８）は、１個の行列情報（４、５）に対応している。参照点Ｐ（１７）、Ｐ（１８）の一方または両方が、ノイズに基づいて誤って特定されている場合などに、このような矛盾した対応関係が得られる可能性がある。
【００８４】
複数個の参照点Ｐが対応する行列情報が存在する場合には（Ｓ４２０：ＹＥＳ）、Ｓ４３０にて、ＣＰＵ１１０は、当該行列情報に対応する複数個の参照点を、出力対象の参照点から除外する。具体的には、図１４の例では、行列情報（４、５）に対応する２個の参照点Ｐ（１７）、Ｐ（１８）が、除外される。例えば、図１４（Ｂ）の除外後の合成探索結果ＦＭＴｃにおいて升目ＩＭ１に示すように、行列情報（４、５）には、対応する参照点が探索されなかったことを示す情報（図１４（Ｂ）では「Ｆ」）が対応付けられる。
【００８５】
複数個の参照点Ｐが対応する行列情報が存在しない場合には（Ｓ４２０：ＮＯ）、Ｓ４３０はスキップされる。
【００８６】
Ｓ４３５では、合成探索結果ＦＭＴにおいて、複数個の行列情報に対応する参照点が存在するか否かを判断する。すなわち、参照点Ｐと行列情報とが１対Ｑ２（Ｑ２は２以上の整数）で対応する対応関係が、合成探索結果ＦＭＴに含まれる否かが判断される。図１０（Ｅ）の合成探索結果ＦＭＴａでは、全ての行列情報が、１対１、あるいは、０対１で参照点Ｐと対応しているので、当該合成探索結果ＦＭＴａは、１対Ｑ２で対応する対応関係を含まない。
【００８７】
図１４（Ａ）の合成探索結果ＦＭＴｂでは、５行目かつ１列目および５行目かつ２列目の２個の升目ＩＭ２に示すように、１個の参照点Ｐ（２５）は、２個の行列情報（５、１）、（５、２）に対応している。参照点Ｐ（１５）が、ノイズに基づいて誤って特定されている場合などに、このような矛盾した対応関係が得られる可能性がある。
【００８８】
複数個の行列情報に対応する参照点が存在する場合には（Ｓ４３５：ＹＥＳ）、Ｓ４４０にて、ＣＰＵ１１０は、当該複数個の行列情報に対応する参照点を、出力対象の参照点から除外する。具体的には、図１４の例では、２個の行列情報（５、１）、（５、２）に対応する参照点Ｐ（１５）が、除外される。例えば、図１４（Ｂ）の除外後の合成探索結果ＦＭＴｃにおいて２個の升目ＩＭ２に示すように、２個の行列情報（５、１）、（５、２）には、それぞれ、対応する参照点が探索されなかったことを示す情報（図１４（Ｂ）では「Ｆ」）が対応付けられる。
【００８９】
複数個の行列情報に対応する参照点が存在しない場合には（Ｓ４３５：ＮＯ）、Ｓ４４０はスキップされる。
【００９０】
Ｓ４４５では、ＣＰＵ１１０は、合成探索結果ＦＭＴの行数は、上限よりも多いか否かを判断する。シートＳＨに含まれる円Ｃが、Ｎ行×Ｍ行に配列されている場合には、ＦＭＴの行数の上限は、Ｎであり、図３（Ａ）の例では、上限は５である（Ｎ＝５）。１０（Ｅ）の合成探索結果ＦＭＴａの行数は、６であるので、合成探索結果ＦＭＴｃの行数は、上限よりも多いと判断される。
【００９１】
合成探索結果ＦＭＴの行数が上限よりも多い場合には（Ｓ４４５：ＹＥＳ）、Ｓ４５０にて、ＣＰＵ１１０は、両端の行のうち、対応する参照点が少ない行を、削除して、Ｓ４４５に戻る。図１０（Ｅ）の合成探索結果ＦＭＴａでは、上端の行ＵＥＲの参照点Ｐの個数は、１であり、下端の行ＢＥＲの参照点Ｐの個数は、３である。したがって、上点の行ＵＥＲが、削除される。このように、合成探索結果ＦＭＴの行数が上限よりも多い場合には、合成探索結果ＦＭＴの行数が上限と同じになるまで、両端の行のうち、一方の行の削除が繰り返される。
【００９２】
シートＳＨに含まれる円Ｃの行数Ｎを超える行数の参照点Ｐが存在することはあり得ない。このため、合成探索結果ＦＭＴにおいて、行数Ｎを超える行数の参照点Ｐが含まれる場合には、両端の行のうち、少なくとも一方の行に位置する参照点Ｐは、誤って特定された点である可能性が高い。例えば、図１０（Ｅ）の上端の行ＵＥＲの１個の参照点Ｐ（１）は、ノイズＮＺ４（図３（Ｂ））に基づいて誤って特定された点である。
【００９３】
合成探索結果ＦＭＴの行数が上限以下である場合には（Ｓ４４５：ＮＯ）、ＣＰＵ１１０は、Ｓ４５０をスキップして、Ｓ４５５に処理を進める。
【００９４】
Ｓ４５５では、ＣＰＵ１１０は、合成探索結果ＦＭＴの列数は、上限よりも多いか否かを判断する。シートＳＨに含まれる円Ｃが、Ｎ行×Ｍ行に配列されている場合には、合成探索結果ＦＭＴの列数の上限は、Ｍであり、図３（Ａ）の例では、上限は５である（Ｍ＝５）。１０（Ｅ）の合成探索結果ＦＭＴａの列数は、６であるので、合成探索結果ＦＭＴａの行数は、上限よりも多いと判断される。
【００９５】
合成探索結果ＦＭＴの列数が上限よりも多い場合には（Ｓ４５５：ＹＥＳ）、Ｓ４６０にて、ＣＰＵ１１０は、両端の列のうち、対応する参照点が少ない列を、削除して、Ｓ４５５に戻る。図１０（Ｅ）の合成探索結果ＦＭＴａでは、左端の列ＬＥＣの参照点Ｐの個数は、１であり、右端の列ＲＥＣの参照点Ｐの個数は、３である。したがって、左端の列ＬＥＣが、削除される。このように、合成探索結果ＦＭＴの列数が上限よりも多い場合には、合成探索結果ＦＭＴの列数が上限と同じになるまで、両端の列のうち、一方の列の削除が繰り返される。
【００９６】
シートＳＨに含まれる円Ｃの列数Ｍを超える行数の参照点Ｐが存在することはあり得ない。このため、合成探索結果ＦＭＴにおいて、列数Ｍを超える列数の参照点Ｐが含まれる場合には、両端の列のうち、少なくとも一方の列に位置する参照点Ｐは、誤って特定された点である可能性が高い。例えば、図１０（Ｅ）の左端の列ＬＥＣの１個の参照点Ｐ（２２）は、ノイズＮＺ６（図３（Ｂ））に基づいて誤って特定された点である。
【００９７】
合成探索結果ＦＭＴの列数が上限以下である場合には（Ｓ４５５：ＮＯ）、ＣＰＵ１１０は、Ｓ４６０をスキップして、図１３のＳ４６５に処理を進める。Ｓ４６５に処理が進められた時点で、図１０（Ｅ）の例では、行ＵＥＲと列ＬＥＣが削除された合成探索結果ＦＭＴｓは、シートＳＨに含まれる５行×５列の円Ｃに対応する５行×５列の行列情報について、探索された参照点Ｐを示すデータになっている。なお、図１４（Ｂ）の合成探索結果ＦＭＴｃの例では、初めから、行数、列数ともに上限以下であるので、Ｓ４５０、Ｓ４６０における行や列の削除は行われない。
【００９８】
Ｓ４６５では、ＣＰＵ１１０は、合成探索結果ＦＭＴの上下左右の４端を処理対象に設定する。
【００９９】
Ｓ４７０では、ＣＰＵ１１０は、処理対象の端の行や列における参照点Ｐの個数を算出する。例えば、図１４（Ｂ）の合成探索結果ＦＭＴｃの例では、初回のＳ４７０では、４端の全てが処理対象であるので、上端の行ＵＥＲｃ、下端の行ＢＥＲｃ、左端の列ＬＥＣｃ、右端の列ＲＥＣｃのそれぞれにおける参照点Ｐの個数が算出される。
【０１００】
Ｓ４７５では、ＣＰＵ１１０は、処理対象の端の行や列のうち、参照点Ｐの個数が、基準となる個数Ｒｔｈ以下である行や列があるか否かを判断する。Ｒｔｈは、例えば、行や列に含まれ得る参照値の個数の最大値の半分である。すなわち、行についての基準となる個数Ｒｔｈは、（Ｍ／２）であり、列についての基準となる個数Ｒｔｈは、（Ｎ／２）である。また、図１４の例では、行、列ともに参照値の個数の最大値は、５であるので、処理対象の端の行や列のうち、参照点Ｐの個数が２以下である行や列があるか否かが判断される。図１４（Ｂ）の例では、下端の行ＢＥＲｃの参照点Ｐの個数が１であり、右端の列ＲＥＣｃの参照点Ｐの個数が２であるので、初回のＳ４７５にて、参照点Ｐの個数が２以下である行や列があると判断される。
【０１０１】
参照点Ｐの個数が、基準となる個数Ｒｔｈ以下である行や列がある場合には（Ｓ４７５：ＹＥＳ）、ＣＰＵ１１０は、Ｓ４８０に処理を進める。参照点Ｐの個数が、基準となる個数Ｒｔｈ以下である行や列がない場合には（Ｓ４７５：ＮＯ）、ＣＰＵ１１０は、Ｓ４９０に処理を進める。
【０１０２】
Ｓ４８０では、ＣＰＵ１１０は、処理対象の端の行や列のうち、参照点の個数が基準となる個数Ｒｔｈ以下である行や列を削除する。図１４（Ｂ）の例では、初回のＳ４８０にて、下端の行ＢＥＲｃと右端の列ＲＥＣｃとが削除される。
【０１０３】
Ｓ４８５では、ＣＰＵ１１０は、処理対象の端のうち、参照点の個数が基準となる個数Ｒｔｈ以下である行や列に対応する端を、処理対象から除外する。図１４（Ｂ）の例では、初回のＳ４８０にて、５個の参照点を有する行ＵＥＲｃに対応する上端と、４個の参照点を有する列ＲＥＣｃに対応する左端と、が処理対象から除外される。Ｓ４８０の後、ＣＰＵ１１０は、処理をＳ４７０に戻す。
【０１０４】
図１４（Ｂ）の例では、２回目のＳ４７０では、処理対象の端は、下端と右端であるので、この時点での下端の列ＢＥＲｅの参照点Ｐの個数と、この時点での右端の行ＲＥＣｅの参照点Ｐの個数と、が算出される。そして、２回目のＳ４７５では、列ＢＥＲｅの参照点Ｐの個数と、列ＢＥＲｅの参照点Ｐの個数と、はいずれも２個よりも多いので、処理は、Ｓ４９０に進められる。図１４（Ｃ）には、図１４（Ｂ）の合成探索結果ＦＭＴｃに対して、Ｓ４６５〜Ｓ４８０の処理が行われた後の処理済の合成探索結果ＦＭＴｄが示されている。
【０１０５】
Ｓ４９０では、ＣＰＵ１１０は、現時点での有効な参照点Ｐの個数は、基準数ＲＶｔｈ以上であるか否かを判断する。有効な参照点Ｐの個数は、例えば、処理済の合成探索結果ＦＭＴｄにおいて、行列情報に対応付けられている参照点Ｐの個数であり、図１４（Ｃ）の例では、１６個である。基準数ＲＶｔｈは、例えば、予め規定された固定値である。有効な参照点Ｐの個数が、基準数ＲＶｔｈ以上である場合には（Ｓ４９０：ＹＥＳ）、ＣＰＵ１１０は、Ｓ４９５に処理を進める。有効な参照点Ｐの個数が、基準数ＲＶｔｈ未満である場合には（Ｓ４９０：ＮＯ）、ＣＰＵ１１０は、Ｓ５０５に処理を進める。
【０１０６】
Ｓ４９５では、ＣＰＵ１１０は、有効な参照点Ｐが分布する分布面積は、基準割合ＲＲｔｈ以上であるか否かを判断する。基準割合ＲＲｔｈは、シート撮像画像ＯＩの面積に対する予め定められた割合である。基準数ＲＶｔｈや基準割合ＲＲｔｈは、例えば、特性データＣＤの生成（図２（Ａ）のＳ３０）に用いられる方法に応じて決められている。分布面積が基準割合ＲＲｔｈ以上である場合には（Ｓ４９５：ＹＥＳ）、ＣＰＵ１１０は、Ｓ５００に処理を進める。分布面積が基準割合ＲＲｔｈ未満である場合には（Ｓ４９５：ＮＯ）、ＣＰＵ１１０は、Ｓ５０５に処理を進める。
【０１０７】
Ｓ５００では、ＣＰＵ１１０は、処理済の合成探索結果ＦＭＴ（例えば、図１０（Ｅ）の合成探索結果ＦＭＴｓや図１４（Ｃ）の合成探索結果ＦＭＴｄ）に基づいて、位置データＰＤ（図３（Ｃ））を生成する。処理済の合成探索結果ＦＭＴは、複数個の参照点Ｐと、複数個の行列情報（ｎ、ｍ）と、の対応関係を示す情報である、と言うことができる。
【０１０８】
Ｓ５０５では、ＣＰＵ１１０は、図６のＳ２６０のエラー処理を実行して、画像処理を異常終了する。有効な参照点Ｐの個数が過度に少ない場合や、有効な参照点Ｐの分布面積が過度に小さい場合には、図２（Ａ）のＳ３０にて、精度の良い特性データＣＤを生成することが困難であるためである。
【０１０９】
以上説明した本実施例によれば、ＣＰＵ１１０は、シート撮像画像ＯＩ内の複数個の参照点Ｐの位置を示す複数個の位置情報（図５の重心位置（Ｘｃ、Ｙｃ））を取得する（図２のＳ２２のオブジェクト特定処理）。ＣＰＵ１１０は、図８の整列処理において、注目端を左端ＬＥとして（図８のＳ３０５）、複数個の参照点の相対的な位置関係を解析することによって、配列情報を複数個の参照点Ｐのそれぞれに対応付ける探索結果ＭＬを生成する（図８のＳ３１０〜Ｓ３３０）。ＣＰＵ１１０は、さらに、注目端を右端ＲＥとして（図８のＳ３０５）、複数個の参照点の相対的な位置関係を解析することによって、配列情報を、複数個の参照点Ｐのそれぞれに対応付ける探索結果ＭＵを生成する（図８のＳ３１０〜Ｓ３３０）。ＣＰＵ１１０は、探索結果ＭＬにおける特定の参照点と行列情報との第１の対応関係と、探索結果ＭＵにおける特定の行列情報との第２の対応関係と、が異なる場合に、当該特定の参照点を出力対象から除外する（図１２のＳ４２０〜Ｓ４４０）。ＣＰＵ１１０は、行列情報が対応付けられた２以上の参照点Ｐであり、かつ、除外された参照点Ｐを除いた２以上の参照点を、出力対象の参照点として、位置データＰＤを生成する（図１３のＳ５００）。この結果、第１の対応関係と、第２の対応関係と、が異なる場合に、特定の参照点が出力対象から除外される。そして、除外された参照点を除いた出力対象の２以上の参照点のそれぞれの位置情報を含む位置データＰＤ（図３（Ｃ））が生成される。したがって、シート撮像画像ＯＩ内の参照点の位置を適切に示す位置情報を含む位置データＰＤを生成できる。例えば、シート撮像画像ＯＩには、円オブジェクトＣＯとは異なるノイズが、含まれ得る。このために、シート撮像画像ＯＩ上において、ノイズに基づく参照点が特定される場合がある。このような場合であっても異なる２種類の方法に従って第１の対応関係と第２の対応関係とを生成し、これらの対応関係が互いに異なる場合には、互いに異なる対応関係に関する参照点を、出力対象から除くことで、ノイズに基づく参照点などの誤った参照点が、位置データＰＤに含まれることを抑制できる。
【０１１０】
より具体的には、例えば、図１４（Ａ）に示すように、第１の対応関係として、参照点Ｐ（２５）に行列情報（５、１）が対応付けられ、第２の対応関係として、参照点Ｐ（２５）に行列情報（５、１）とは異なる行列情報（５、２）が対応付けられる場合に（図１２のＳ４３５：ＹＥＳ）、参照点Ｐ（２５）が出力対象から除外される（Ｓ４４０）。したがって、対応関係の矛盾に基づいて、参照点Ｐ（２５）を適切に出力対象から除外することができる。
【０１１１】
また、例えば、図１４（Ａ）に示すように、第１の対応関係として、参照点Ｐ（１７）に行列情報（４、５）が対応付けられ、第２の対応関係として、参照点Ｐ（１８）に行列情報（４、５）が対応付けられる場合に（図１２のＳ４２０：ＹＥＳ）、参照点Ｐ（１７）と参照点Ｐ（１８）とが出力対象から除外される。したがって、対応関係の矛盾に基づいて、参照点Ｐ（１７）と参照点Ｐ（１８）とを適切に出力対象から除外することができる。
【０１１２】
さらに、上記実施例では、注目端が左端ＬＥであるときに、複数個の参照点Ｐから選択される基準参照点Ｐ（３）、Ｐ（１２）、Ｐ（１６）、Ｐ（２１）、Ｐ（２６）から、右方向（中央参照点Ｐｇから右方の近傍参照点Ｐ１に向かう方向ＤＲ１）に沿って参照点Ｐが探索される（図９（Ｂ）、図８のＳ３２５）。そして、探索される参照点Ｐ（例えば、図９（Ｂ）のＰ（１１）、Ｐ（９）、Ｐ（１０））に行列情報が対応付けられる（図８のＳ３３０）。そして、注目端が上端ＵＥであるときに、複数個の参照点Ｐから選択される基準参照点Ｐ（３）、Ｐ（６）、Ｐ（４）、Ｐ（５）、Ｐ（２）から、下方向（中央参照点Ｐｇから下方の近傍参照点Ｐ２に向かう方向ＤＲ２）に沿って参照点Ｐが探索される（図１１（Ｂ）、図８のＳ３２５）。そして、探索される参照点Ｐ（例えば、図１１（Ｂ）のＰ（１０）、Ｐ（１３）、Ｐ（１８））に行列情報が対応付けられる（図８のＳ３３０）。したがって、注目端が左端ＬＥであるときには、探索できない参照点（例えば、参照点Ｐ（２４））を、注目端が上端ＵＥであるときに、探索できる。したがって、より多数の参照点Ｐに行列情報を対応付けることができる。
【０１１３】
さらに、上記実施例では、中央参照点Ｐｇと、中央参照点Ｐｇの近傍の近傍参照点Ｐ１と、中央参照点Ｐｇに対して近傍参照点Ｐ１とは異なる方向に位置する近傍参照点Ｐ２と、が特定される（図６のＳ２１０）。そして、中央参照点Ｐｇから近傍参照点Ｐ１に向かう方向ＤＲ１と、中央参照点Ｐｇから近傍参照点に向かう方向ＤＲ２と、が特定される（図６のＳ２５５）。この結果、注目端が左端ＬＥであるときの探索方向ＤＲ１と、注目端が上端ＵＥであるときの探索方向ＤＲ２と、を適切に決定できる。したがって、整列処理において、注目端が左端ＬＥであるときと、注目端が上端ＵＥであるときと、において、参照点Ｐを適切に探索して、該参照点に適切な行列情報を対応付けることができる。
【０１１４】
さらに、上記実施例では、中央参照点Ｐｇに対して近傍参照点Ｐ１、Ｐ２とは異なる方向に位置する近傍参照点Ｐ３および近傍参照点Ｐ４とが特定される（図６のＳ２１０）。そして、中央参照点Ｐｇから近傍参照点Ｐ３に向かう方向ＤＲ３と、中央参照点Ｐｇから近傍参照点Ｐ４に向かう方向ＤＲ４と、が特定される（図６のＳ２５５）。そして、例えば、左端ＬＥが注目端であるときに、４個の方向ＤＲ１〜ＤＲ４に沿った参照点Ｐの探索が行われる。例えば、図９（Ａ）に示すように、図８のＳ３１０では、方向ＤＲ４に沿った探索が行われ、図８のＳ３１５では、方向ＤＲ２、ＤＲ４に沿った探索が行われ、図８のＳ３２５では、方向ＤＲ１に沿った探索が行われる。この結果、４個の方向ＤＲ１〜ＤＲ４に沿った探索を行うことで、より多数の参照点Ｐに行列情報を対応付けることができる。
【０１１５】
さらに、上記実施例では、図１２、図１３の探索結果調整処理において、例えば、図１４の合成探索結果ＦＭＴｃの右端の列ＲＥＣｃ（右方向の端の列）に配列される参照点Ｐの個数と、下端の行ＢＥＲｃ（右方向と交差する下方向の端の行）に配置される参照点Ｐの個数と、が特定される（図１３のＳ４７０）。そして、右端の列ＲＥＣｃに配列される参照点Ｐの個数が、基準となる個数Ｒｔｈ以下である場合には（図１３のＳ４７５：ＹＥＳ）、右端の列ＲＥＣｃに配列される参照点Ｐが、出力対象の参照点から除外される（図１３のＳ４８０）。同様に、下端の行ＢＥＲｃに配列される参照点Ｐの個数が、基準となる個数Ｒｔｈ以下である場合には（図１３のＳ４７５：ＹＥＳ）、下端の行ＢＥＲｃに配列される参照点Ｐが、出力対象の参照点から除外される（図１３のＳ４８０）。端部の近傍に位置する参照点Ｐの個数が比較的少ない場合には、該参照点は、特性データＣＤの生成のために用いるべきでない可能性が高い。例えば、これらの参照点は、孤立したノイズに基づいて誤って特定された参照点である可能性があるからである。本実施例によれば、このような参照点を出力対象の参照点から除外するので、より適切な位置データＰＤを生成できる。
【０１１６】
以上の説明から解るように、注目端を左端ＬＥとして実行される図８のＳ３１０〜Ｓ３３０の処理は、第１の方法に従う解析と呼ぶことができ、注目端を上端ＵＥとして実行される図８のＳ３１０〜Ｓ３３０の処理は、第２の方法に従う解析と呼ぶことができる。また、行列情報（ａ、ｂ）は、複数個の参照点Ｐの相対的な位置関係を示す相対情報と呼ぶことができる。
【０１１７】
Ｂ．変形例：
（１）上記実施例のシートＳＨに印刷された参照点ＲＰを示す画像は円Ｃである。すなわち、シート撮像画像ＯＩに含まれる参照点Ｐを示すオブジェクトは、円オブジェクトＣＯであるが、これに限られない。参照点Ｐを示すオブジェクトは、例えば、Ｘ方向と平行な複数個の第１直線と、Ｙ方向と平行な複数個の第２直線と、が互いに交差した格子状のオブジェクトであっても良い。この場合には、参照点Ｐは、例えば、第１直線と第２直線とが交差する位置であっても良い。また、参照点Ｐを示すオブジェクトは、例えば、市松模様であっても良い。
【０１１８】
（２）上記実施例の画像処理では、例えば、第１の方法に従った解析処理として、左端ＬＥを注目端として実行される図８のＳ３１０〜Ｓ３３０の処理が採用され、第２の方法に従った解析処理として、上端ＵＥを注目端として実行される図８のＳ３１０〜Ｓ３３０の処理が採用されているが、これに限られない。例えば、第１の方法や第２の方法に従った解析処理のいずれか一方として、例えば、以下の方法が採用され得る。ＣＰＵ１１０は、シート撮像画像ＯＩの中央参照点Ｐｇを決定する。次に、中央参照点Ｐｇを中心として所定の探索範囲にて、中央参照点Ｐｇを囲む８個の参照点Ｐ、例えば、図７の参照点Ｐ（１１）、Ｐ（９）、Ｐ（１０）、Ｐ（１３）、Ｐ（１８）、Ｐ（１９）、Ｐ（２０）、Ｐ（１５）を探索する。そして、ＣＰＵ１１０は、次に、さらに探索範囲を拡げて、これらの８個の参照点Ｐを囲む１６個の参照点Ｐを探索する。このように中央参照点Ｐｇを中心とした探索範囲を順次に拡大しながら、参照点Ｐを探索する方法が採用され得る。あるいは、ＣＰＵ１１０は、先ず、左端ＬＥに沿う帯状の探索領域を設定し、帯状の探索領域のＸ方向の幅を拡げながら、一列分（例えば、５個）の参照点Ｐを探索する。そして、ＣＰＵ１１０は、１列分（例えば、５個）の参照点Ｐが探索された後に、そのときの帯状の探索領域の右側に新たな帯状の探索領域を設定して、新たな探索領域にて１列分の参照点Ｐを探索する。このように、帯状の探索領域を用いて、１列ずつ、あるいは、１行ずつ、参照点Ｐを探索する方法が採用され得る。
【０１１９】
（３）上記実施例では、相対情報として、行列情報（ａ、ｂ）が用いられているが、これに限られない。例えば、相対情報として、対応する位置情報が位置データＰＤにおいて配置されるべき順番を示す通し番号が採用されても良い。例えば、図３の例に示すように、５行×５列の２５個の参照点Ｐが想定される場合には、相対情報として、シートＳＨにおける２５個の円の位置との対応関係が予め定められた１〜２５までの通し番号が採用されても良い。
【０１２０】
（４）上記実施例では、位置データＰＤを用いて、パラメータ行列ＣＭと、歪係数ＤＣと、を含む特性データＣＤが生成される。これに代えて、位置データＰＤを用いて、例えば、カメラの座標系と、被写体（例えば、シートＳＨ）の座標系と、の位置関係を示す情報（例えば、回転ベクトル）が生成されても良い。
【０１２１】
（５）上記実施例では、特性データＣＤを生成するために、ＯｐｅｎＣＶの関数「cvCalibrateCamera2」が用いられている。特性データＣＤの生成には、他のプログラム、例えば、カメラキャリブレーションのための公知のモデル、例えば、ＴｓａｉのモデルやＺｈａｎｇのモデルに従って特性データＣＤを算出する他のプログラムが用いられても良い。
【０１２２】
（６）上記実施例の画像処理は、適宜に変更可能である。例えば、図１２、図１３の探索結果調整処理において、Ｓ４２０とＳ４３０の処理と、Ｓ４３５とＳ４４０の処理と、のうちの一方は、省略されても良い。例えば、Ｓ４２０とＳ４３０の処理とが省略される場合において、特定の配列情報に対応する２個の参照点Ｐが存在する場合には、任意の１個の参照点Ｐが、特定の配列情報に対応する参照点として選択される。
【０１２３】
また、図１２のＳ４４５〜Ｓ４６０の処理に代えて、例えば、ＣＰＵ１１０は、中央参照点Ｐｇが、出力すべきｎ行×ｍ列のマトリクスの中心に位置するように、端の行や列を適宜に削除して良い。また、図１３のＳ４６５〜Ｓ４８５の処理、および、Ｓ４９０、Ｓ４９０の全部または一部は、適宜に省略されても良い。
【０１２４】
また、図４のオブジェクト特定処理のＳ１０５では、参照範囲ＲＡのサイズは、１個の円オブジェクトＣＯの重心と参照範囲ＲＡの重心とが一致する場合に、参照範囲ＲＡに１個の円オブジェクトＣＯの全体が含まれるように決定される。これに限らず、シート撮像画像ＯＩに、Ｋ個（Ｋは２以上の整数）の円オブジェクトＣＯが含まれる場合に、１個以上Ｌ個（Ｌは、Ｋ未満の整数）以下の円オブジェクトＣＯが含まれるように、参照範囲ＲＡのサイズが決定されても良い。Ｌの値が小さいほど、計算時間が短くなる利点がある。
【０１２５】
また、Ｓ１０５では、参照範囲ＲＡのサイズは、シート撮像画像ＯＩの長辺の長さ幅Ｗｏなどを用いてシート撮像画像ＯＩごとに決定されている。これに代えて、参照範囲ＲＡのサイズは、１個の円オブジェクトＣＯの重心と参照範囲ＲＡの重心とが一致する場合に、参照範囲ＲＡに所定個数の円オブジェクトＣＯが含まれるように、予め決定された固定値に決定されても良い。
【０１２６】
さらには、ＣＰＵ１１０は、参照範囲ＲＡを決定することなく、予め定められた固定値を二値化閾値として、Ｓ１１０の二値化処理を実行しても良い。
【０１２７】
図４のオブジェクト特定処理のＳ１３０〜Ｓ１４５の全部または一部は省略されても良い。例えば、Ｓ１３０とＳ１３５のみが実行され、Ｓ１４０とＳ１４５が省略されても良い。
【０１２８】
（７）図２（Ｂ）の印刷処理では、補正済画像データを用いて、印刷が行われている。これに限らず、補正済画像データを用いて、補正済画像データの表示部１４０への表示などの他の出力処理が行われても良い。また、補正済画像データは、ユーザによる利用のために、不揮発性記憶装置１３０に保存されても良い。
【０１２９】
（８）図２の画像処理を実現する画像処理装置は、端末装置１００に限らず、種々の装置であってよい。例えば、印刷装置２００のＣＰＵが、端末装置１００や他のデジタルカメラにて生成されたシート撮像画像データを用いて、図２の特性データ生成処理を実行して、特性データＣＤを生成しても良い。この場合には、印刷装置２００は、特性データＣＤを、対応する端末装置１００やデジタルカメラと関連付けて記憶する。そして、対応する端末装置１００やデジタルカメラにて生成される対象撮像画像データを用いて印刷を行う際に、印刷装置２００のＣＰＵは、対応する端末装置１００やデジタルカメラに関連付けられた特性データＣＤを用いて、図２（Ｂ）の印刷処理を実行する。また、例えば、端末装置１００や印刷装置２００と通信可能な接続されるサーバ（図示省略）が、端末装置１００や印刷装置２００から取得したシート撮像画像データを用いて、図２（Ａ）の特性データ生成処理を実行しても良い。この場合には、生成された特性データＣＤは、端末装置１００や印刷装置２００に送信されて、端末装置１００や印刷装置２００にて保存されても良い。また、サーバは、ネットワークを介して互いに通信可能な複数個のコンピュータ（例えば、クラウドサーバ）であっても良い。この場合には、例えば、複数個のコンピュータは、図２（Ａ）の特性データ生成処理を一部ずつ分担して、全体として、特性データ生成処理を実行してもよい。この場合、複数個のコンピュータの全体が、画像処理装置の例である。
【０１３０】
（９）上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。
【０１３１】
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【符号の説明】
【０１３２】
次の用語の符号が重複しています。
１００…端末装置、１１０…ＣＰＵ、１２０…揮発性記憶装置、１３０…不揮発性記憶装置、１４０…表示部、１５０…操作部、１６０…カメラ、２００…印刷装置、ＰＤ…位置データ、ＣＤ…特性データ、ＯＤ…オブジェクト情報、ＰＧ…コンピュータプログラム、ＳＨ…シート、ＯＩ…シート撮像画像、ＳＩ…シート画像、ＳＲ…特定範囲、ＪＲ…判定範囲
【図１】
2019012424.tif 000003
【図２】
2019012424.tif 000004
【図３】
2019012424.tif 000005
【図４】
2019012424.tif 000006
【図５】
2019012424.tif 000007
【図６】
2019012424.tif 000008
【図７】
2019012424.tif 000009
【図８】
2019012424.tif 000010
【図９】
2019012424.tif 000011
【図１０】
2019012424.tif 000012
【図１１】
2019012424.tif 000013
【図１２】
2019012424.tif 000014
【図１３】
2019012424.tif 000015
【図１４】
2019012424.tif 000016