(57)【特許請求の範囲】
【請求項１】
原稿に記録された画像を読み取って元画像データを生成する読取装置に接続されたコンピュータによって読み取り可能なプログラムであって、
該プログラムは、
前記読取装置から前記元画像データを取得する取得処理と、
前記元画像データに含まれる各画素を、Ｎ（Ｎは２以上の整数）個のグループのいずれか１つに属させる組分処理と、
Ｎ個の前記グループそれぞれに属する画素の画素値を用いて、ｋ（ｋは２以上の整数）個の中心画素の画素値を決定する決定処理と、
前記元画像データに含まれる各画素を、前記決定処理で画素値が決定された複数の前記中心画素のうち、画素値が最も近い前記中心画素に関連づけるクラスタリング処理と、
最大中心画素に関連づけられた各画素に対応する前記元画像データの各画素の画素値を、当該最大中心画素に関連づけられた全画素の平均画素値に置換して補正画像データを生成する補正処理とを前記コンピュータに実行させ、前記最大中心画素は、ｋ個の前記中心画素のうちで最も多くの画素が関連づけられた前記中心画素であり、
該プログラムは、前記決定処理において、
前記グループに属する各画素を画素値が最も近い前記中心画素に関連づけ、且つ各中心画素に関連づけられた全画素の平均画素値で当該中心画素の画素値を更新する更新処理を繰り返し前記コンピュータに実行させ、
ｎ（ｎは１以上の整数）回目の前記更新処理で更新された前記中心画素の画素値と、ｎ回目の前記更新処理と異なる前記グループに属する画素の画素値とを用いて、（ｎ＋１）回目の前記更新処理を前記コンピュータに実行させるプログラム。
【請求項２】
該プログラムは、前記決定処理において、前記更新処理の前後の前記中心画素の画素値の変化量が閾値未満になるまで、或いは前記更新処理の実行回数が閾値回数に達するまで、前記更新処理を繰り返し前記コンピュータに実行させる請求項１に記載のプログラム。
【請求項３】
該プログラムは、前記組分処理において、前記元画像データに含まれる画素のうち、第１方向に隣接する画素を異なる前記グループに属させ、前記第１方向に直交する第２方向に隣接する画素を異なる前記グループに属させる請求項１又は２に記載のプログラム。
【請求項４】
該プログラムは、前記組分処理において、前記元画像データに含まれる画素のうち、第１方向に隣接する画素を同一の前記グループに属させ、前記第１方向に直交する第２方向に隣接する画素を異なる前記グループに属させる請求項１又は２に記載のプログラム。
【請求項５】
前記読取装置は、
原稿を前記第２方向に搬送する搬送部と、
前記搬送部によって搬送された原稿が通過する読取位置に配置されており、当該原稿に記録された画像を読み取って前記元画像データを生成する読取部とを備える請求項４に記載のプログラム。
【請求項６】
前記コンピュータは、表示装置と、操作装置と接続されており、
該プログラムは
前記元画像データで示される画像を前記表示装置に表示させる表示処理と、
前記補正処理の実行を指示する指示操作を前記操作装置を通じて受け付ける受付処理とを前記コンピュータに実行させ、
前記受付処理で前記指示操作を受け付けたことに応じて、前記クラスタリング処理及び前記補正処理を前記コンピュータに実行させる請求項１から５のいずれかに記載のプログラム。
【請求項７】
前記コンピュータは、複数の処理を並行して実行することが可能であり、
該プログラムは、
前記元画像データの画素数が閾値以上である場合に、前記決定処理及び前記表示処理を並行して前記コンピュータに実行させ、
前記受付処理で前記指示操作を受け付け、且つ前記決定処理が終了したことに応じて、前記クラスタリング処理を前記コンピュータに開始させる請求項６に記載のプログラム。
【請求項８】
前記コンピュータは、複数の処理を並行して実行することが可能であり、
該プログラムは、並行して実行される処理の数が閾値以上である場合に、前記受付処理で前記指示操作を受け付けたことに応じて、前記決定処理を前記コンピュータに開始させる請求項６に記載のプログラム。
【請求項９】
該プログラムは、前記元画像データの画素数が多いほど、グループ数Ｎを増加させる請求項１から８のいずれかに記載のプログラム。
【請求項１０】
前記画素値は、複数の色値の組み合わせで表現される請求項１から９のいずれかに記載のプログラム。
【請求項１１】
原稿に記録された画像を読み取って元画像データを生成する読取装置と、
制御部とを備える画像読取装置であって、
前記制御部は、
前記読取装置から前記元画像データを取得する取得処理と、
前記元画像データに含まれる各画素を、Ｎ（Ｎは２以上の整数）個のグループのいずれか１つに属させる組分処理と、
Ｎ個の前記グループそれぞれに属する画素の画素値を用いて、ｋ（ｋは２以上の整数）個の中心画素の画素値を決定する決定処理と、
前記元画像データに含まれる各画素を、前記決定処理で画素値が決定された複数の前記中心画素のうち、画素値が最も近い前記中心画素に関連づけるクラスタリング処理と、
最大中心画素に関連づけられた各画素に対応する前記元画像データの各画素の画素値を、当該最大中心画素に関連づけられた全画素の平均画素値に置換して補正画像データを生成する補正処理とを実行し、前記最大中心画素は、ｋ個の前記中心画素のうちで最も多くの画素が関連づけられた前記中心画素であり、
前記制御部は、前記決定処理において、
前記グループに属する各画素を画素値が最も近い前記中心画素に関連づけ、且つ各中心画素に関連づけられた全画素の平均画素値で当該中心画素の画素値を更新する更新処理を繰り返し実行し、
ｎ（ｎは１以上の整数）回目の前記更新処理で更新された前記中心画素の画素値と、ｎ回目の前記更新処理と異なる前記グループに属する画素の画素値とを用いて、（ｎ＋１）回目の前記更新処理を実行する画像読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、読取装置によって生成された画像データを補正するプログラムに関する。
【背景技術】
【０００２】
従来より、原稿の表面に記録された画像を読み取って画像データを生成する画像読取装置が知られている。このような画像読取装置は、原稿の表面に記録された画像に加えて、原稿の表面の汚れ、原稿の裏面に記録された画像（以下、「裏写り」と表記する。）、或いは読取面の汚れ等（以下、「不要画像」と表記する。）をさらに読み取って、画像データを生成してしまう場合がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−２２４３３９号公報
【特許文献２】特開２００５−１１３７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
そこで、画像読取装置によって読み取られた画像データから不要画像を取り除く技術が求められている。画像データに含まれる不要画像の位置を特定する技術としては、例えば特許文献１、２に記載されているように、Ｋ平均アルゴリズムが知られている。しかしながら、Ｋ平均アルゴリズムは処理量が多いので、近年の画像データの高解像度化に伴って、処理時間が長くなるという課題を生じる。
【０００５】
本発明は、上記の事情に鑑みてなされたものであり、その目的は、読取装置によって読み取られた画像データから不要画像を取り除くプログラムであって、処理精度の低下を抑制しつつ処理時間を短縮したプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
(1)  本明細書に記載のプログラムは、原稿に記録された画像を読み取って元画像データを生成する読取装置に接続されたコンピュータによって読み取り可能である。該プログラムは、前記読取装置から前記元画像データを取得する取得処理と、前記元画像データに含まれる各画素を、Ｎ（Ｎは２以上の整数）個のグループのいずれか１つに属させる組分処理と、Ｎ個の前記グループそれぞれに属する画素の画素値を用いて、ｋ（ｋは２以上の整数）個の中心画素の画素値を決定する決定処理と、前記元画像データに含まれる各画素を、前記決定処理で画素値が決定された複数の前記中心画素のうち、画素値が最も近い前記中心画素に関連づけるクラスタリング処理と、最大中心画素に関連づけられた各画素に対応する前記元画像データの各画素の画素値を、当該最大中心画素に関連づけられた全画素の平均画素値に置換して補正画像データを生成する補正処理とを前記コンピュータに実行させる。前記最大中心画素は、ｋ個の前記中心画素のうちで最も多くの画素が関連づけられた前記中心画素である。該プログラムは、前記決定処理において、前記グループに属する各画素を画素値が最も近い前記中心画素に関連づけ、且つ各中心画素に関連づけられた全画素の平均画素値で当該中心画素の画素値を更新する更新処理を繰り返し前記コンピュータに実行させ、ｎ（ｎは１以上の整数）回目の前記更新処理で更新された前記中心画素の画素値と、ｎ回目の前記更新処理と異なる前記グループに属する画素の画素値とを用いて、（ｎ＋１）回目の前記更新処理を前記コンピュータに実行させる。
【０００７】
上記の処理によれば、背景画像及び不要画像を構成する画素が最大中心画素に関連づけられるとの前提のもとで、これらの画素を平均画素値で置換することによって、不要画像を目立たなくすることができる。そして上記構成によれば、１回の更新処理で処理すべき画素数が削減されるので、処理時間を短縮することができる。一方、サンプル画像を用いて行ったシミュレーションの結果では、処理精度の目立った低下は確認されていない。すなわち、上記構成のプログラムによれば、元画像データから不要画像を取り除く処理において、処理精度の低下を抑制しつつ処理時間を短縮することができる。
【０００８】
(2)  好ましくは、該プログラムは、前記決定処理において、前記更新処理の前後の前記中心画素の画素値の変化量が閾値未満になるまで、或いは前記更新処理の実行回数が閾値回数に達するまで、前記更新処理を繰り返し前記コンピュータに実行させる。
【０００９】
上記構成によれば、処理精度の低下の抑制及び処理時間の短縮を、バランス良く両立させることができる。
【００１０】
(3)  好ましくは、該プログラムは、前記組分処理において、前記元画像データに含まれる画素のうち、第１方向に隣接する画素を異なる前記グループに属させ、前記第１方向に直交する第２方向に隣接する画素を異なる前記グループに属させる。
【００１１】
上記構成によれば、背景画像、前景画像、及び不要画像を構成する画素がバランス良く各グループに分配される。これにより、中心画素の画素値を精度良く決定することができる。また、更新処理の回数が削減されるので、処理時間を短縮することができる。
【００１２】
(4)  好ましくは、該プログラムは、前記組分処理において、前記元画像データに含まれる画素のうち、第１方向に隣接する画素を同一の前記グループに属させ、前記第１方向に直交する第２方向に隣接する画素を異なる前記グループに属させる。
【００１３】
(5)  さらに好ましくは、前記読取装置は、原稿を前記第２方向に搬送する搬送部と、前記搬送部によって搬送された原稿が通過する読取位置に配置されており、当該原稿に記録された画像を読み取って前記元画像データを生成する読取部とを備える。
【００１４】
上記構成の読取装置において、読取位置が汚れているとすると、第２方向に直線的に延びる不要画像が元画像データに含められる。そこで、上記構成のように、第２方向に隣接する画素を異なるグループに属させることにより、不要画像を構成する画素がバランス良く各グループに分配される。
【００１５】
(6)  好ましくは、前記コンピュータは、表示装置と、操作装置と接続されている。該プログラムは前記元画像データで示される画像を前記表示装置に表示させる表示処理と、前記補正処理の実行を指示する指示操作を前記操作装置を通じて受け付ける受付処理とを前記コンピュータに実行させる。該プログラムは、前記受付処理で前記指示操作を受け付けたことに応じて、前記クラスタリング処理及び前記補正処理を前記コンピュータに実行させる。
【００１６】
上記構成によれば、表示画像を見て不要画像の存在を認識したユーザの指示によって、補正処理を実行することができる。
【００１７】
(7)  好ましくは、前記コンピュータは、複数の処理を並行して実行することが可能である。該プログラムは、前記元画像データの画素数が閾値以上である場合に、前記決定処理及び前記表示処理を並行して前記コンピュータに実行させ、前記受付処理で前記指示操作を受け付け、且つ前記決定処理が終了したことに応じて、前記クラスタリング処理を前記コンピュータに開始させる。
【００１８】
上記構成によれば、ユーザが表示画像を確認している間に決定処理の少なくとも一部が実行されるので、処理速度をさらに短縮することができる。
【００１９】
(8)  好ましくは、前記コンピュータは、複数の処理を並行して実行することが可能である。該プログラムは、並行して実行される処理の数が閾値以上である場合に、前記受付処理で前記指示操作を受け付けたことに応じて、前記決定処理を前記コンピュータに開始させる。
【００２０】
上記構成によれば、コンピュータが並列して実行すべきスレッドが多い場合に、不要になるかもしれない決定処理が事前に実行されないので、コンピュータの負荷を削減することができる。
【００２１】
(9)  例えば、該プログラムは、前記元画像データの画素数が多いほど、グループ数Ｎを増加させる。
【００２２】
(10)  例えば、前記画素値は、複数の色値｛ＲＧＢ｝の組み合わせで表現される。
【００２３】
(11)  本明細書に記載の画像読取装置は、原稿に記録された画像を読み取って元画像データを生成する読取装置と、制御部とを備える。前記制御部は、前記読取装置から前記元画像データを取得する取得処理と、前記元画像データに含まれる各画素を、Ｎ（Ｎは２以上の整数）個のグループのいずれか１つに属させる組分処理と、Ｎ個の前記グループそれぞれに属する画素の画素値を用いて、ｋ（ｋは２以上の整数）個の中心画素の画素値を決定する決定処理と、前記元画像データに含まれる各画素を、前記決定処理で画素値が決定された複数の前記中心画素のうち、画素値が最も近い前記中心画素に関連づけるクラスタリング処理と、最大中心画素に関連づけられた各画素に対応する前記元画像データの各画素の画素値を、当該最大中心画素に関連づけられた全画素の平均画素値に置換して補正画像データを生成する補正処理とを実行する。前記最大中心画素は、ｋ個の前記中心画素のうちで最も多くの画素が関連づけられた前記中心画素である。前記制御部は、前記決定処理において、前記グループに属する各画素を画素値が最も近い前記中心画素に関連づけ、且つ各中心画素に関連づけられた全画素の平均画素値で当該中心画素の画素値を更新する更新処理を繰り返し実行し、ｎ（ｎは１以上の整数）回目の前記更新処理で更新された前記中心画素の画素値と、ｎ回目の前記更新処理と異なる前記グループに属する画素の画素値とを用いて、（ｎ＋１）回目の前記更新処理を実行する。
【図面の簡単な説明】
【００２４】
【図１】図１は、実施形態に係るシステム１００の概略構成図である。
【図２】図２は、スキャンデータ補正処理のフローチャートである。
【図３】図３は、表示部５３の表示例であって、（Ａ）はスキャン指示画面を、（Ｂ）はプレビュー画面を示す。
【図４】図４は、（Ａ）がスキャナ部１２が読み取る原稿８０の例を、（Ｂ）がスキャンデータに含まれる画素のグループ分けの一例を、（Ｃ）がスキャンデータに含まれる画素のグループ分けの他の例を示す。
【図５】図５は、第１グループに属する画素“○”と、中心画素Ｃ１、Ｃ２、Ｃ３とをＲＧ平面にプロットした図である。
【図６】図６は、第２グループに属する画素“□”と、中心画素Ｃ１’、Ｃ２’、Ｃ３’とをＲＧ平面にプロットした図である。
【図７】図７は、スキャンデータに含まれる画素“○”、“□”と、中心画素Ｃ１”、Ｃ２”、Ｃ３”とをＲＧ平面にプロットした図である。
【図８】図８は、補正処理を実行した後に表示されるプレビュー画面の一例である。
【発明を実施するための形態】
【００２５】
以下、適宜図面を参照して本発明の実施形態について説明する。なお、以下に説明される実施形態は本発明の一例にすぎず、本発明の要旨を変更しない範囲で、本発明の実施形態を適宜変更できることは言うまでもない。
【００２６】
図１は、実施形態１におけるシステム１００の概略図である。図１に示されるシステム１００は、複合機１０と、携帯端末５０とで構成されている。複合機１０及び携帯端末５０は、通信ネットワーク１０１を通じて通信可能に構成されている。通信ネットワーク１０１は、例えば、有線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋの略）、無線ＬＡＮ、或いはこれらの組み合わせであってもよい。
【００２７】
［複合機１０］
複合機１０は、図１に示されるように、プリンタ部１１と、スキャナ部１２と、表示部２３と、操作部２４と、通信部２５と、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略）３１と、記憶部３２と、通信バス３３とを主に備える。複合機１０を構成する各構成要素は、通信バス３３を通じて相互に接続されている。複合機１０は、画像読取装置の一例である。
【００２８】
［プリンタ部１１、スキャナ部１２］
プリンタ部１１は、画像データで示される画像を記録用紙に記録するプリント動作を実行する。記録用紙は、シート或いは被記録媒体の一例である。プリンタ部１１の記録方式として、インクジェット方式や電子写真方式などの公知の方式を採用することができる。スキャナ部１２は、原稿に記録されている画像を読み取って画像データを生成するスキャン動作を実行する。スキャナ部１２は、読取装置の一例である。
【００２９】
なお、複合機１０は、ＦＡＸプロトコルに準拠した方式で画像データを送受信するＦＡＸ動作、スキャナ部１２に生成させた画像データで示される画像を記録用紙に対してプリンタ部１１に記録させるコピー動作等をさらに実行可能であってもよい。一方、画像読取装置は、複数の動作を実行可能な複合機１０に限定されず、スキャン動作のみを実行可能な所謂スキャナ単能機であってもよい。
【００３０】
［表示部２３］
表示部２３は、各種情報を表示する表示画面を備える。表示部２３としては、液晶ディスプレイ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙの略）、有機ＥＬディスプレイ（Ｏｒｇａｎｉｃ  Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ  Ｄｉｓｐｌａｙの略）等を採用することができる。表示部２３は、表示装置の一例である。
【００３１】
［操作部２４］
操作部２４は、表示部２３の表示画面に表示されたオブジェクトを指定するユーザの操作を受け付ける。具体的には、操作部２４はボタンを有しており、押下されたボタンに対応づけられた各種の操作信号をＣＰＵ３１へ出力する。さらに、操作部２４は、表示部２３の表示画面に重畳された膜状のタッチセンサを有していてもよい。すなわち、表示部２３がタッチパネルディスプレイとして構成されてもよい。操作部２４は、操作装置の一例である。
【００３２】
なお、「オブジェクト」とは、ユーザが操作部２４を操作することによって指定可能な画像を指す。一例として、オブジェクトは表示部２３に表示された文字列であって、操作部２４の方向キーを押下することによってオブジェクトの１つがハイライト表示され、操作部２４の決定ボタンを押下することによってハイライト表示されたオブジェクトが指定されてもよい。他の例として、操作部２４がタッチパネルである場合のオブジェクトは表示部２３に表示されたアイコン、ラジオボタン、チェックボックス、プルダウンメニュー、リンク等であって、タッチ位置に表示されたオブジェクトが指定されてもよい。
【００３３】
タッチパネルとして実現される操作部２４は、表示部２３の表示画面をタッチするユーザ操作を受け付ける。また、操作部２４は、ユーザがタッチした表示画面上の位置を示す位置情報を出力する。位置情報は、例えば、表示画面の左上端を原点とし、右向きをｘ軸の正の向き、下向きをｙ軸の正の向きとしたｘ−ｙ平面上の座標（ｘ，ｙ）として表現できる。タッチセンサには、静電容量方式、抵抗膜方式等の周知の方式を採用することができる。
【００３４】
なお、本明細書中における「タッチ」とは、入力媒体を表示画面に接触させる操作全般を含む。すなわち、タッチした入力媒体を所定時間内に表示画面から離間させるタップ操作、タッチした入力媒体を表示画面上で静止させるロングタッチ操作、タッチした入力媒体を表示画面上でスライドさせるスライド操作、表示画面上をスライドする入力媒体の加速度が閾値以上であるフリック操作、表示画面上の異なる位置にタッチした２つの入力媒体を互いに近づける向きにスライドさせるピンチイン操作、表示画面上の異なる位置にタッチした２つの入力媒体を互いに離れる向きにスライドさせるピンチアウト操作等は、タッチの一例である。
【００３５】
また、入力媒体が表示画面に触れていなくても、表示画面との間の距離がごく僅かな位置まで入力媒体を近接させることを、前述の「タッチ」の概念に含めてもよい。さらに入力媒体とは、ユーザの指であってもよいし、タッチペン等であってもよい。以下、表示部５３に表示されたアイコンの位置のタップを、当該アイコンを指定するユーザ操作の一例として説明する。
【００３６】
［通信部２５］
通信部２５は、通信ネットワーク１０１を通じて外部装置と通信を行うためのインタフェースである。すなわち、複合機１０は、通信部２５を通じて携帯端末５０に各種データ又は各種情報を出力し、通信部２５を通じて携帯端末５０から各種データ又は各種情報を受信する。通信部２５の具体的な通信手順は特に限定されないが、例えば、Ｗｉ−Ｆｉ（Ｗｉ−Ｆｉ  Ａｌｌｉａｎｃｅの登録商標）を採用することができる。但し、画像読取装置と情報処理端末とを接続する方法はこれに限定されず、例えばＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ略）ケーブル等で接続してもよい。すなわち、通信部２５は、ＵＳＢケーブルを着脱可能なＵＳＢインタフェースであってもよい。
【００３７】
［ＣＰＵ３１］
ＣＰＵ３１は、複合機１０の全体動作を制御するものである。ＣＰＵ３１は、操作部２４から出力される各種情報、及び通信部２５を通じて外部装置から取得した各種情報等に基づいて、後述する各種プログラムを記憶部３２から取得して実行する。すなわち、ＣＰＵ３１及び記憶部３２は、制御部の一例を構成する。
【００３８】
［記憶部３２］
記憶部３２は、プログラム記憶領域３２Ａと、データ記憶領域３２Ｂとを有する。プログラム記憶領域３２Ａには、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍの略）３４と、装置プログラム３５とが格納される。なお、装置プログラム３５は、単一のプログラムであってもよいし、複数のプログラムの集合体であってもよい。データ記憶領域３２Ｂには、装置プログラム３５の実行に必要なデータ或いは情報が記憶される。
【００３９】
なお、本明細書中の「データ」と「情報」とは、コンピュータによって取り扱い可能なビット或いはビット列である点において共通する。「データ」とは、各ビットが示す意味内容をコンピュータが考慮することなく取り扱えるものを指す。これに対して、「情報」とは、各ビットが示す意味内容によってコンピュータの動作が分岐するものを指す。さらに、「指示」は、送信先の装置に対して次の動作を促すための制御信号であって、情報を含んでいることもあるし、それ自体が情報としての性質を有していることもある。
【００４０】
また、「データ」及び「情報」は、形式（例えば、テキスト形式、バイナリ形式、フラグ形式等）がコンピュータ毎に変更されたとしても、同一の意味内容と認識される限り、同一のデータ及び情報として取り扱われる。例えば、「２つ」であることを示す情報が、あるコンピュータではＡＳＣＩＩコードで”０ｘ３２“というテキスト形式の情報として保持され、別のコンピュータでは二進数表記で”１０“というバイナリ形式の情報として保持されてもよい。
【００４１】
但し、上記の「データ」及び「情報」の区別は厳密なものではなく、例外的な取り扱いも許容される。例えば、データが一時的に情報として扱われてもよいし、情報が一時的にデータとして扱われてもよい。また、ある装置ではデータとして扱われるものが、他の装置では情報として扱われてもよい。さらには、データの中から情報が取り出されてもよいし、情報の中からデータが取り出されてもよい。
【００４２】
記憶部３２は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙの略）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙの略）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙの略）、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅの略）、ＣＰＵ３１が備えるバッファ等、或いはそれらの組み合わせによって構成される。
【００４３】
なお、記憶部３２は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体である。ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体には、上記の例の他に、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等の記録媒体も含まれる。また、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体は、ｔａｎｇｉｂｌｅな媒体でもある。一方、インターネット上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙなコンピュータが読み取り可能なストレージ媒体には含まれない。
【００４４】
プログラム記憶領域３２Ａに記憶されているプログラムは、ＣＰＵ３１によって実行される。しかしながら、本明細書では、ＣＰＵ３１を省略して各プログラムの動作を説明することがある。すなわち、以下の説明において、「プログラムＡが処理Ａを実行する」という趣旨の記述は、「ＣＰＵ３１がプログラムＡに記述された処理Ａを実行する」ことを指してもよい。後述する携帯端末５０についても同様である。
【００４５】
また、プログラム記憶領域３２Ａに記憶されているプログラムは、事象を判断し、判断結果に応じて動作する。しかしながら、本明細書では、判断することを省略して各プログラムの動作を説明することがある。すなわち、以下の説明において、「プログラムが条件Ａに応じて、処理Ａを実行する」という趣旨の記述は、「プログラムは条件Ａであるか否かを判断する。プログラムは、肯定判断であることに応じて、処理Ａを実行する」ことを指してもよい。後述する携帯端末５０についても同様である。
【００４６】
また、プログラム記憶領域３２Ａに記憶されているプログラムは、データ等を特定し、取得し、抽出し、或いは選択する。プログラムがデータ等を特定するとは、例えば、複数のデータ等のうちから条件に合致するデータを特定し、当該データ等そのもの或いは当該データ等を識別するための情報を、予め定められた記憶領域に記憶させる処理を指す。データ等を識別するための情報とは、例えば、当該データ等を識別するための識別情報、当該データ等が記憶された配列のインデックス、当該データ等が記憶された記憶領域のポインタ等である。プログラムがデータ等を取得し、抽出し、或いは選択する処理も同様である。後述する携帯端末５０についても同様である。
【００４７】
ＯＳ３４は、複合機１０を構成するハードウェアであるプリンタ部１１、スキャナ部１２、表示部２３、操作部２４、及び通信部２５等を制御するためのＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅの略）を提供する基本プログラムである。すなわち、上記の各プログラムは、ＯＳ３４が提供するＡＰＩを呼び出すことによって、各ハードウェアを制御する。しかしながら、本明細書では、ＯＳ３４を省略して各プログラムの動作を説明することがある。すなわち、以下の説明において、「プログラムＢがハードウェアＣを制御する」という趣旨の記述は、「プログラムＢがＯＳ３４のＡＰＩを通じてハードウェアＣを制御する」ことを指してもよい。後述する携帯端末５０についても同様である。
【００４８】
ＯＳ３４は、複数のプログラム或いは複数の処理を並行して実行することができる。複数のプログラム或いは複数の処理は、例えば、時分割多重方式によって仮想的に並行して実行される。すなわち、ＯＳ３４は、所謂マルチスレッド或いは所謂マルチタスクに対応したものである。後述する携帯端末５０についても同様である。
【００４９】
［携帯端末５０］
携帯端末５０は、図１に示されるように、表示部５３と、操作部５４と、通信部５５と、ＣＰＵ６１と、記憶部６２と、通信バス６３とを主に備える。携帯端末５０に含まれる表示部５３、操作部５４、通信部５５、ＣＰＵ６１、記憶部６２、及び通信バス６３は、複合機１０に含まれる表示部２３、操作部２４、通信部２５、ＣＰＵ３１、記憶部３２、及び通信バス３３と基本的な構成が共通するので、説明は省略する。ＣＰＵ６１及び記憶部６２は、制御部の一例である。携帯端末５０は、情報処理端末の一例である。但し、情報処理端末は、例えば、携帯電話、スマートフォン、タブレット端末、或いはＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒの略）等であってもよい。
【００５０】
［システム１００の動作］
次に、図２を参照して、本実施形態に係るシステム１００の動作を説明する。本実施形態に係るシステム１００は、複合機１０にスキャン動作を実行させ、当該スキャン動作で生成された画像データを携帯端末５０で補正する処理を実行する。携帯端末５０の端末プログラム６５は、ＯＳ６４によって起動されたことに応じて、図２に示されるスキャンデータ補正処理を実行する。
【００５１】
まず、端末プログラム６５は、スキャン指示画面を表示部５３に表示させる（Ｓ１１）。図３（Ａ）は、スキャン指示画面の一例である。図３（Ａ）に示されるスキャン指示画面は、複合機１０のスキャナ部１２に実行させるスキャン動作の実行条件（例えば、読取色、読取解像度）をユーザに指定させる画面である。より詳細には、スキャン指示画面は、読取色“カラー”、“グレースケール”それぞれに対応するラジオボタンと、読取解像度“１００×１００ｄｐｉ”、“３００×３００ｄｐｉ”、“６００×６００ｄｐｉ”それぞれに対応するラジオボタンと、［スキャン］アイコン１１１とを含む。
【００５２】
次に、端末プログラム６５は、ラジオボタンの位置をタップするユーザ操作と、［スキャン］アイコン１１１の位置をタップするユーザ操作とを、操作部５４を通じて受け付ける（Ｓ１２）。そして、端末プログラム６５は、［スキャン］アイコン１１１の位置をタップするユーザ操作を操作部５４を通じて受け付けたことに応じて（Ｓ１２：Ｙｅｓ）、通信部５５を通じて複合機１０にスキャン指示情報を送信する（Ｓ１３）。
【００５３】
スキャン指示情報は、スキャン動作の実行を複合機１０に指示するための情報である。スキャン指示情報は、例えば、スキャン指示画面を通じてユーザに指定させたスキャン動作の実行条件を示す条件情報を含む。本実施形態に係るスキャン指示情報は、読取色“カラー”及び読取解像度“３００×３００ｄｐｉ”を示す条件情報を含むものとする。また、端末プログラム６５は、スキャン指示情報に含めた条件情報を、データ記憶領域６２Ｂに一時記憶させる。
【００５４】
一方、図示は省略するが、複合機１０の装置プログラム３５は、通信部２５を通じて携帯端末５０からスキャン指示情報を受信する。そして、装置プログラム３５は、スキャン指示情報に含まれる条件情報に従って、スキャナ部１２にスキャン動作を実行させる。すなわち、スキャナ部１２は、不図示のコンタクトガラス或いはＡＤＦ（Ａｕｔｏ  Ｄｏｃｕｍｅｎｔ  Ｆｅｅｄｅｒの略）にセットされた原稿に記録された画像を読み取って、当該画像を示す画像データ（以下、「スキャンデータ」と表記する。）を形成する。スキャンデータは、元画像データの一例である。
【００５５】
本実施形態では、図４（Ａ）に示される原稿８０がスキャナ部１２によって読み取られたものとする。原稿８０には、白色の用紙８１に黒色の文字“Ａ”が記録されており、且つ文字“Ａ”と異なる位置に文字色より薄い色の汚れ８２が付加されている。そして、装置プログラム３５は、スキャン動作によって生成したスキャンデータを、通信部２５を通じて携帯端末５０に送信する。以下、スキャンデータで示される画像を「スキャン画像」と表記し、スキャン画像のうちの文字“Ａ”の部分を「前景画像」と表記し、汚れ８２の部分を「不要画像」と表記し、前景画像及び不要画像以外の部分を「背景画像」と表記することがある。
【００５６】
次に、携帯端末５０の端末プログラム６５は、スキャン動作によって生成されたスキャンデータを、通信部５５を通じて複合機１０から受信する（Ｓ１４：Ｙｅｓ）。そして、端末プログラム６５は、受信したスキャンデータをデータ記憶領域６２Ｂに一時記憶させる。次に、本実施形態に係る端末プログラム６５は、ステップＳ１５、Ｓ１６の処理と、ステップＳ１７〜Ｓ２４の処理とを並行して実行する。より詳細には、端末プログラム６５は、ステップＳ１５を実行する前、或いはステップＳ１５を実行した後で且つステップＳ１６でユーザ操作を受け付ける前に、ステップＳ１７〜Ｓ２４の処理を開始する。
【００５７】
ステップＳ１５、Ｓ１６の処理は、スキャン動作の結果をユーザに確認させると共に、後述するステップＳ２５〜Ｓ２８の処理を携帯端末５０に実行させるか否かを、携帯端末５０のユーザに選択させる処理である。まず、端末プログラム６５は、プレビュー画面を表示部５３に表示させる（Ｓ１５）。そして、端末プログラム６５は、プレビュー画面に含まれるアイコンをタップするユーザ操作を、操作部５４を通じて受け付ける。ステップＳ１４の処理は取得処理の一例であり、ステップＳ１５の処理は表示処理の一例であり、ステップＳ１６の処理は受付処理の一例である。
【００５８】
図３（Ｂ）は、プレビュー画面の一例である。図３（Ｂ）に示されるプレビュー画面は、プレビュー画像１１５と、［補正］アイコン１１６と、［保存］アイコン１１７とを含む。プレビュー画像１１５は、ステップＳ１４で受信したスキャンデータで示されるスキャン画像である。［補正］アイコン１１６は、後述するステップＳ２５〜Ｓ２８の処理を実行する指示に対応する。［保存］アイコン１１７は、後述するステップＳ２５〜Ｓ２７の処理を実行せずに、ステップＳ２８の処理を実行する指示に対応する。
【００５９】
一方、ステップＳ２５〜Ｓ２７の処理は、ステップＳ１４で取得したスキャンデータで示される画像から汚れ８２に相当する画像を除去する処理である。まず、端末プログラム６５は、クラスタ数Ｋと、クラスタ中心値Ｃｋと、ステップ上限値Ｓｍａｘと、グループ数Ｎとを決定する（Ｓ１７）。クラスタ数Ｋは、後述する中心画素の数を指す。クラスタ中心値Ｃｋは、中心画素の画素値を指す。ステップ上限値Ｓｍａｘは、後述するステップＳ２０の最大実行回数を指す。グループ数Ｎは、スキャンデータに含まれる画素が属するグループの数を指す。クラスタ数Ｋ、ステップ上限値Ｓｍａｘ、グループ数Ｎは、全て２以上の整数である。また、クラスタ中心値Ｃｋの数は、クラスタ数Ｋに一致する。
【００６０】
なお、ステップＳ１７で決定される値は、予め定められた固定値であってもよいし、スキャン指示情報に含めた条件情報、或いはステップＳ１４で受信したスキャンデータに応じて変化する値であってもよい。例えば、クラスタ数Ｋは、読取色が多いほど、大きな値となってもよい。また、グループ数Ｎは、読取解像度が高いほど、換言すれば、スキャンデータに含まれる画素数が多いほど、大きな値となってもよい。さらに、ステップ上限値Ｓｍａｘは、グループ数Ｎ以上の値となってもよい。
【００６１】
本実施形態では、Ｋ＝３、Ｃ１＝（Ｒ１，Ｇ１）、Ｃ２＝（Ｒ２，Ｇ２）、Ｃ３＝（Ｒ３，Ｇ３）、Ｓｍａｘ＝１０、Ｎ＝２とする。なお、画像を構成する画素の画素値は、複数の色値（例えば、赤色“Ｒ”、緑色“Ｇ”、青色“Ｂ”）の組み合わせで表現される。本実施形態では単純化のために、赤色の色値Ｒと、緑色の色値Ｇとで画素値が表現されているものとする。但し、画素値の表現方法はこれに限定されず、例えば、輝度値Ｙと、複数の色差値Ｃｂ、Ｃｒとで画素値が表現されてもよい。
【００６２】
次に、端末プログラム６５は、スキャンデータに含まれる複数の画素を、Ｎ個のグループにグループ分けする（Ｓ１８）。本実施形態では、スキャンデータに含まれる複数の画素それぞれを、２つのグループのいずれか１つに属させる。ステップＳ１８は、組分処理の一例である。スキャンデータに含まれる画素をグループ分けする具体的な方法は特に限定されないが、例えば以下の方法が考えられる。
【００６３】
端末プログラム６５は、例えば図４（Ｂ）或いは図４（Ｃ）に示されるように、スキャンデータに含まれる複数の画素のうち、ハッチングされた画素を第１グループに属させ、ハッチングされていない画素を第２グループに属させてもよい。図４（Ｂ）の例において、端末プログラム６５は、スキャンデータに含まれる画素のうち、第１方向５に隣接する画素を異なるグループに属させ、且つ第１方向５に直交する第２方向６に隣接する画素を異なるグループに属させる。図４（Ｃ）の例において、端末プログラム６５は、スキャンデータに含まれる画素のうち、第１方向５に隣接する画素を同一のグループに属させ、第２方向６に隣接する画素を異なるグループに属させる。
【００６４】
次に、端末プログラム６５は、変数ｎに１を設定する（Ｓ１９）。また、端末プログラム６５は、スキャンデータ補正処理で最初に実行されるステップＳ１９において、変数ｓに１を設定する。変数ｎは、後述するステップＳ２０の処理の対象となるグループを特定する変数である。変数ｓは、後述するステップＳ２０の実行回数を示す変数である。そして、端末プログラム６５は、第ｎグループに属する複数の画素を、中心画素Ｃ１、Ｃ２、Ｃ３のいずれか１つに関連づけ、且つ関連づけられた画素の画素値を用いて中心画素Ｃ１、Ｃ２、Ｃ３の画素値を更新する（Ｓ２０）。ステップＳ２０の処理は、更新処理の一例である。図５を参照して、第１グループに属する画素を用いて中心画素Ｃ１、Ｃ２、Ｃ３の画素値を更新する方法を説明する。
【００６５】
図５は、赤色の色値Ｒを縦軸とし且つ緑色の色値Ｇを横軸とするＲＧ平面に、第１グループに属する画素“○”と、中心画素Ｃ１、Ｃ２、Ｃ３とをプロットした図である。まず、端末プログラム６５は、第１グループに属する各画素の画素値と、中心画素Ｃ１、Ｃ２、Ｃ３の画素値とを比較する。そして、端末プログラム６５は、第１グループに属する各画素を、画素値が最も近い中心画素Ｃ１、Ｃ２、Ｃ３の１つに関連づける。図５において、中心画素Ｃ１、Ｃ２、Ｃ３と、中心画素Ｃ１、Ｃ２、Ｃ３に関連づけられた画素“○”とは、破線で結ばれている。
【００６６】
次に、端末プログラム６５は、中心画素Ｃ１に関連づけられた全画素の画素値の平均値（以下、「平均画素値」と表記する。）を算出し、算出した平均画素値で中心画素Ｃ１の画素値を更新する。換言すれば、端末プログラム６５は、中心画素Ｃ１に関連づけられた全画素の画素値の平均画素値を、新たな中心画素Ｃ１’の画素値とする。中心画素Ｃ２、Ｃ３についても同様の演算を行うことによって、新たな中心画素Ｃ２’、Ｃ３’の画素値を算出する。
【００６７】
次に、端末プログラム６５は、ステップＳ２０の前後でクラスタが更新されたか否かを判断する（Ｓ２１）。より詳細には、端末プログラム６５は、ステップＳ２０の前後において、中心画素の画素値の変化量が閾値未満か否かを判断する。本実施形態に係る端末プログラム６５は、中心画素Ｃ１、Ｃ１’の画素値の変化量、中心画素Ｃ２、Ｃ２’の画素値の変化量、及び中心画素Ｃ３、Ｃ３’の画素値の変化量の少なくとも１つが閾値以上であることに応じて、クラスタが更新されたと判断する（Ｓ２１：Ｙｅｓ）。一方、端末プログラム６５は、３つの変化量の全てが閾値未満であることに応じて、クラスタが更新されていないと判断する（Ｓ２１：Ｎｏ）。
【００６８】
次に、端末プログラム６５は、クラスタが更新されたと判断したことに応じて（Ｓ２１：Ｙｅｓ）、変数ｓとステップ上限値Ｓｍａｘとを比較する（Ｓ２２）。次に、端末プログラム６５は、変数ｓがステップ上限値Ｓｍａｘ未満と判断したことに応じて（Ｓ２２：Ｎｏ）、変数ｎ、ｓを１だけインクリメントして（Ｓ２３）、変数ｎとグループ数Ｎとを比較する（Ｓ２４）。そして、端末プログラム６５は、変数ｎがグループ数Ｎを超えたと判断したことに応じて（Ｓ２４：Ｙｅｓ）、ステップＳ１９以降の処理を再び実行する。但し、スキャンデータ補正処理で２回目以降に実行されるステップＳ１９において、変数ｓは初期化されない。一方、端末プログラム６５は、変数ｎがグループ数Ｎ以下だと判断したことに応じて（Ｓ２４：Ｎｏ）、ステップＳ２０以降の処理を再び実行する。図６を参照して、第２グループに属する画素を用いて中心画素Ｃ１’、Ｃ２’、Ｃ３’の画素値を更新する方法を説明する。
【００６９】
図６は、第２グループに属する画素“□”と、中心画素Ｃ１’、Ｃ２’、Ｃ３’とを、ＲＧ平面にプロットした図である。まず、端末プログラム６５は、第２グループに属する各画素の画素値と、中心画素Ｃ１’、Ｃ２’、Ｃ３’の画素値とを比較する。そして、端末プログラム６５は、第２グループに属する各画素を、画素値が最も近い中心画素Ｃ１’、Ｃ２’、Ｃ３’に関連づける。図６において、中心画素Ｃ１’、Ｃ２’、Ｃ３’と、中心画素Ｃ１’、Ｃ２’、Ｃ３’に関連づけられた画素“□”とは、破線で結ばれている。そして、端末プログラム６５は、中心画素Ｃ１’に関連づけられた全画素の平均画素値を、新たな中心画素Ｃ１”の画素値とする。中心画素Ｃ２’、Ｃ３’についても同様の演算を行うことによって、新たな中心画素Ｃ２”、Ｃ３”の画素値を算出する。
【００７０】
このように、繰り返し実行されるステップＳ１９〜Ｓ２４の処理は、Ｎ個のグループそれぞれに属する画素の画素値を用いて、ｋ個の中心画素の画素値を決定する決定処理の一例である。そして、一方、端末プログラム６５は、クラスタが更新されていないと判断したことに応じて（Ｓ２１：Ｎｏ）、或いは変数ｓがステップ上限値Ｓｍａｘに達したと判断したことに応じて（Ｓ２２：Ｙｅｓ）、決定処理を終了してステップＳ２５以降の処理を実行する。
【００７１】
すなわち、端末プログラム６５は、クラスタが更新されなくなるまで、或いは変数ｓがステップ上限値Ｓｍａｘに達するまで、更新処理（Ｓ２０）の処理を繰り返し実行する。また、端末プログラム６５は、ｎ回目の更新処理で更新された中心画素の画素値と、ｎ回目の更新処理と異なるグループに属する画素の画素値とを用いて、（ｎ＋１）回目の更新処理を実行する。すなわち、グループ数Ｎ＝２で実行される決定処理では、中心画素Ｃ１、Ｃ２、Ｃ３と第１グループの画素とを用いて１回目の更新処理が実行され、１回目の更新処理で更新された中心画素Ｃ１’、Ｃ２’、Ｃ３’と第２グループの画素とを用いて２回目の更新処理が実行され、２回目の更新処理で更新された中心画素Ｃ１”、Ｃ２”、Ｃ３”と第１グループの画素とを用いて３回目の更新処理が実行される。本実施形態に係る決定処理では、２回目の更新処理で中心画素Ｃ１”、Ｃ２”、Ｃ３”に決定されたものとして、後述の処理を説明する。
【００７２】
次に、端末プログラム６５は、［補正］アイコン１１６の位置をタップするユーザ操作を操作部５４を通じて受け付け（Ｓ１６：補正アイコン）、且つ決定処理が終了したことに応じて、中心画素Ｃ１”、Ｃ２”、Ｃ３”の画素値を用いて、スキャンデータをクラスタリングする（Ｓ２５）。［補正］アイコン１１６のタップは、後述する補正処理（Ｓ２６、Ｓ２７）の実行を指示する指示操作の一例である。ステップＳ２５の処理は、クラスタリング処理の一例である。
【００７３】
図７は、スキャンデータに含まれる画素“○”、“□”と、中心画素Ｃ１”、Ｃ２”、Ｃ３”とを、ＲＧ平面にプロットした図である。まず、端末プログラム６５は、スキャンデータに含まれる各画素の画素値と、中心画素Ｃ１”、Ｃ２”、Ｃ３”の画素値とを比較する。そして、端末プログラム６５は、スキャンデータに含まれる各画素を、画素値が最も近い中心画素Ｃ１”、Ｃ２”、Ｃ３”に関連づける。図７において、中心画素Ｃ１”、Ｃ２”、Ｃ３”と、中心画素Ｃ１”、Ｃ２”、Ｃ３”に関連づけられた画素“○”、“□”とは、破線で結ばれている。
【００７４】
次に、端末プログラム６５は、図７に示される中心画素Ｃ１”、Ｃ２”、Ｃ３”のうち、最も多くの画素が関連づけられた中心画素Ｃ３”（以下、「最大中心画素」と表記する。）を特定する。次に、端末プログラム６５は、最大中心画素Ｃ３”に関連づけられた全ての画素（以下、「最大クラスタ」と表記する。）の平均画素値を算出する（Ｓ２６）。そして、端末プログラム６５は、最大クラスタの画素に対応するスキャナデータの画素の画素値を、ステップＳ２６で算出した平均画素値に置換することによって、補正画像データを生成する（Ｓ２７）。ステップＳ２６、Ｓ２７の処理は、補正処理の一例である。
【００７５】
そして、端末プログラム６５は、ステップＳ１４で受信したスキャンデータに代えて、ステップＳ２７で生成した補正画像データをデータ記憶領域６２Ｂに記憶させる（Ｓ２８）。一方、端末プログラム６５は、［保存］アイコン１１７の位置をタップするユーザ操作を操作部５４を通じて受け付けたことに応じて（Ｓ１６：保存アイコン）、ステップＳ２５〜Ｓ２７の処理を実行せずに、ステップＳ１４で受信したスキャンデータをデータ記憶領域６２Ｂに記憶させる（Ｓ２８）。
【００７６】
［本実施形態の作用効果］
繰り返し実行されるステップＳ２０の処理は、所謂Ｋ−ｍｅａｎｓ法を用いて、中心画素の画素値の更新する処理である。そして、上記の実施形態によれば、背景画像及び不要画像を構成する画素が最大クラスタを構成するとの前提のもとで、これらの画素を平均画素値で置換することによって、不要画像を目立たなくすることができる。なお、上記の実施形態に係るステップＳ２０の処理は、スキャンデータに含まれる画素の一部を用いて実行される点において、一般的なＫ−ｍｅａｎｓ法と異なる。
【００７７】
これにより、１回の更新処理で処理すべき画素数が削減されるので、処理時間を短縮することができる。一方、サンプル画像を用いて行ったシミュレーションの結果では、処理精度の目立った低下は確認されていない。すなわち、上記の実施形態に係る端末プログラム６５によれば、スキャンデータから不要画像を取り除く処理において、処理精度の低下を抑制しつつ処理時間を短縮することができる。
【００７８】
また、上記の実施形態によれば、中心画素の画素値の変化量が閾値未満になるか（Ｓ２１：Ｎｏ）、ステップＳ２０の実行回数ｓがステップ上限値Ｓｍａｘに達したことに応じて（Ｓ２２：Ｙｅｓ）、決定処理が終了される。これにより、ステップＳ２０の実行回数が多くなり過ぎることが抑制される。その結果、処理精度の低下の抑制及び処理時間の短縮を、バランス良く両立させることができる。但し、ステップＳ２１、Ｓ２２の処理の一方が省略されてもよい。
【００７９】
また、上記構成によれば、スキャンデータに含まれる画素を、図４（Ｂ）に示される格子状、或いは図４（Ｃ）に示されるライン状にグループ分けするので、背景画像、前景画像、及び不要画像を構成する画素がバランス良く各グループに分配される。これにより、中心画素の画素値を精度良く決定することができる。また、更新処理の回数が削減されるので、処理時間を短縮することができる。但し、グループ分けの方法はこれに限定されず、例えば、スキャン画像を長手方向の中央で分割し、分割された画像の一方に含まれる画素を第１グループに、他方に含まれる画素を第２グループに属させてもよい。
【００８０】
なお、スキャナ部１２は、原稿８０を第２方向６に搬送する搬送部と、搬送部によって搬送された原稿８０が通過する読取位置に配置された読取部とを備えてもよい。そして、読取部は、搬送部によって搬送された原稿８０を読取位置で読み取ってスキャンデータを生成してもよい。読取部は、例えば、ＣＩＳ（Ｃｏｎｔａｃｔ  Ｉｍａｇｅ  Ｓｅｎｓｏｒの略）であってもよい。搬送部は、例えば、ＡＤＦであってもよい。このような構成のスキャナ部１２において、例えば読取部を保護するガラスが汚れているとすると、第２方向６に直線的に延びる不要画像がスキャンデータに含められる。そこで、上記の実施形態のように、第２方向６に隣接する画素を少なくとも異なるグループに属させることにより、不要画像を構成する画素がバランス良く各グループに分配される。
【００８１】
また、上記の実施形態によれば、プレビュー画像１１５を見たユーザに補正処理の要否を判断させるので、不要画像が含まれていないスキャンデータに対して補正処理が実行されることが抑制される。なお、端末プログラム６５は、例えばステップＳ２７、Ｓ２８の間において、図８に示されるプレビュー画面を表示部５３に表示させてもよい。図８に示されるプレビュー画面は、プレビュー画像１２１と、［保存］アイコン１２２と、［キャンセル］アイコン１２３とを含む。プレビュー画像１２１は、ステップＳ２７で生成された補正画像データで示される画像である。［保存］アイコン１２２は、補正画像データを保存する指示に対応する。［キャンセル］アイコン１２３は、補正処理をキャンセルする指示に対応する。
【００８２】
そして、端末プログラム６５は、［保存］アイコン１２２の位置をタップするユーザ操作を操作部５４を通じて受け付けたことに応じて、補正画像データをデータ記憶領域６２Ｂに記憶させてもよい（Ｓ２８）。一方、端末プログラム６５は、［キャンセル］アイコン１２３の位置をタップするユーザ操作を操作部５４を通じて受け付けたことに応じて、ステップＳ１５の処理に戻ってもよい。または、端末プログラム６５は、［キャンセル］アイコン１２３の位置をタップするユーザ操作を操作部５４を通じて受け付けたことに応じて、ステップＳ１４で取得したスキャンデータをデータ記憶領域６２Ｂに記憶させてもよい（Ｓ２８）。
【００８３】
また、上記の実施形態によれば、ステップＳ１５、Ｓ１６の処理と、ステップＳ１７〜Ｓ２４の処理とが並行して実行されるので、ユーザがプレビュー画像１１５を確認している間に決定処理の少なくとも一部が実行される。その結果、スキャンデータ補正処理の処理速度をさらに短縮することができる。但し、端末プログラム６５は、ステップＳ１５、Ｓ１６の処理と、ステップＳ１７〜Ｓ２４の処理とを並行して実行するか否かを、スキャンデータ補正処理を実行する度に判断してもよい。
【００８４】
一例として、端末プログラム６５は、スキャンデータに含まれる画素の数が閾値以上である場合に、ステップＳ１５、Ｓ１６の処理と、ステップＳ１７〜Ｓ２４の処理とを並行して実行してもよい。一方、端末プログラム６５は、スキャンデータに含まれる画素の数が閾値未満である場合に、［補正］アイコンの位置をタップするユーザ操作を操作部５４を通じて受け付けたことに応じて、ステップＳ１７以降の処理を開始してもよい。
【００８５】
他の例として、端末プログラム６５は、ＯＳ６４が並行して実行している処理或いはプログラムの数をＯＳ６４から取得し、並行して実行される処理或いはプログラムの数が閾値未満である場合に、ステップＳ１５、Ｓ１６の処理と、ステップＳ１７〜Ｓ２４の処理とを並行して実行してもよい。一方、端末プログラム６５は、並行して実行される処理或いはプログラムの数が閾値以上である場合に、［補正］アイコンの位置をタップするユーザ操作を操作部５４を通じて受け付けたことに応じて、ステップＳ１７以降の処理を開始してもよい。上記構成によれば、携帯端末５０が並列して実行すべきスレッドが多い場合に、不要になるかもしれない決定処理が事前に実行されないので、携帯端末５０の負荷を削減することができる。
【００８６】
なお、スキャンデータ補正処理を実行するコンピュータは、携帯端末５０のＣＰＵ６１に限定されず、複合機１０のＣＰＵ３１であってもよい。すなわち、装置プログラム３５によってスキャンデータ補正処理が実行されてもよい。すなわち、スキャナ部１２に接続されたコンピュータとは、複合機１０のスキャナ部１２と通信ネットワーク１０１を通じて接続された携帯端末５０のＣＰＵ６１に限定されず、スキャナ部１２と通信バス３３を通じて接続された複合機１０のＣＰＵ３１をも含むものとする。
【００８７】
また、上記の実施形態の複合機１０及び携帯端末５０において、記憶部３２、６２のプログラム記憶領域３２Ａ、６２Ａに記憶された各種プログラムがＣＰＵ３１、６１によって実行されることによって、本発明の制御部が実行する各処理が実現される例を説明した。しかしながら、制御部の構成はこれに限定されず、その一部又は全部を集積回路（ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略）とも言う。）等のハードウェアで実現してもよい。
【００８８】
さらに、本発明は、複合機１０及び携帯端末５０として実現できるだけでなく、複合機１０及び携帯端末５０に処理を実行させるプログラムとして実現してもよい。そして、当該プログラムは、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな記録媒体に記録されて提供されてもよい。ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな記録媒体は、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等の他、通信ネットワーク１０１を通じて複合機１０及び携帯端末５０に接続可能なサーバに搭載された記憶部を含んでもよい。そして、サーバの記憶部に記憶されたプログラムは、当該プログラムを示す情報或いは信号として、インターネット等の通信ネットワーク１０１を通じて配信されてもよい。
【符号の説明】
【００８９】
１０・・・複合機
１１・・・プリンタ部
１２・・・スキャナ部
２５，５５・・・通信部
３１，６１・・・ＣＰＵ
３５・・・装置プログラム
６５・・・端末プログラム
５０・・・携帯端末
５３・・・表示部
５４・・・操作部
６２・・・記憶部
【図１】
0006578854.tif 000002
【図２】
0006578854.tif 000003
【図３】
0006578854.tif 000004
【図４】
0006578854.tif 000005
【図５】
0006578854.tif 000006
【図６】
0006578854.tif 000007
【図７】
0006578854.tif 000008
【図８】
0006578854.tif 000009