IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ セイコーエプソン株式会社の特許一覧

特開2024-51931画像読取装置およびキャリアシートの検出方法
<>
  • 特開-画像読取装置およびキャリアシートの検出方法 図1
  • 特開-画像読取装置およびキャリアシートの検出方法 図2
  • 特開-画像読取装置およびキャリアシートの検出方法 図3
  • 特開-画像読取装置およびキャリアシートの検出方法 図4
  • 特開-画像読取装置およびキャリアシートの検出方法 図5
  • 特開-画像読取装置およびキャリアシートの検出方法 図6
  • 特開-画像読取装置およびキャリアシートの検出方法 図7
  • 特開-画像読取装置およびキャリアシートの検出方法 図8
  • 特開-画像読取装置およびキャリアシートの検出方法 図9
  • 特開-画像読取装置およびキャリアシートの検出方法 図10
  • 特開-画像読取装置およびキャリアシートの検出方法 図11
  • 特開-画像読取装置およびキャリアシートの検出方法 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024051931
(43)【公開日】2024-04-11
(54)【発明の名称】画像読取装置およびキャリアシートの検出方法
(51)【国際特許分類】
   H04N 1/04 20060101AFI20240404BHJP
   H04N 1/00 20060101ALI20240404BHJP
   G03B 27/62 20060101ALI20240404BHJP
【FI】
H04N1/04 106Z
H04N1/12 Z
H04N1/00 567M
H04N1/00 L
G03B27/62
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2022158328
(22)【出願日】2022-09-30
(71)【出願人】
【識別番号】000002369
【氏名又は名称】セイコーエプソン株式会社
(74)【代理人】
【識別番号】100096703
【弁理士】
【氏名又は名称】横井 俊之
(72)【発明者】
【氏名】平山 裕子
(72)【発明者】
【氏名】村橋 賢一
【テーマコード(参考)】
2H012
5C062
5C072
【Fターム(参考)】
2H012CC11
2H012CD01
5C062AA05
5C062AA13
5C062AA25
5C062AA35
5C062AB02
5C062AB20
5C062AB25
5C062AB36
5C062AB38
5C062AB41
5C062AB42
5C062AB43
5C062AB44
5C062AC02
5C062AC65
5C072AA01
5C072BA04
5C072BA20
5C072CA02
5C072DA25
5C072EA07
5C072FA07
5C072NA01
5C072NA02
5C072NA04
5C072RA01
5C072RA06
5C072RA07
5C072WA02
5C072XA01
(57)【要約】
【課題】キャリアシートの検出精度を向上させる。
【解決手段】画像読取装置であって、画像データに対して、キャリアシートの接合部の窓部の読取結果である所定色を第1色に変換し所定色以外の色を第2色に変換する2値化処理を施した2値画像データに基づき、搬送方向における窓高さを検出する窓高さ検出処理と、幅方向における窓幅を検出する窓幅検出処理とを実行可能であり、窓高さ検出処理では、搬送方向に第2色の画素が連続する範囲と、当該範囲を搬送方向において挟む第1色の画素が連続する範囲と、を合わせた合計高さが、上限値以下かつ下限値以上である場合に窓高さ検出成功と判定し、窓幅検出処理では、幅方向に第1色の画素が連続する範囲の長さである第1色幅が、上限値以下かつ下限値以上である場合に窓幅検出成功したと判定し、窓高さ検出成功かつ窓幅検出成功の場合に、対象物がキャリアシートであると判定する。
【選択図】図5
【特許請求の範囲】
【請求項1】
原稿を挟むための範囲が透明な2枚のシートが周縁部の一部で接合された接合部を有するキャリアシートを所定の搬送方向に沿って搬送可能な搬送部と、
前記搬送部が搬送する対象物を読み取り可能な読取部と、
前記読取部による前記対象物の読取結果である画像データを取得する制御部と、を備える画像読取装置であって、
前記接合部は、光を透過させる窓部を有し、
前記制御部は、
前記画像データに対して、前記窓部の読取結果である所定色を第1色に変換し、前記所定色以外の色を第2色に変換する2値化処理を施した2値画像データに基づいて、前記搬送方向における前記窓部の長さである窓高さを検出する窓高さ検出処理と、前記搬送方向に交差する幅方向における前記窓部の長さである窓幅を検出する窓幅検出処理と、を実行可能であり、
前記窓高さ検出処理では、前記搬送方向において前記第2色の画素が連続する範囲と、当該範囲を前記搬送方向において挟む前記第1色の画素が連続する範囲と、を合わせた合計高さが、所定の窓高さ上限値以下かつ所定の窓高さ下限値以上である場合に、前記窓高さの検出に成功したと判定し、
前記窓幅検出処理では、前記幅方向において前記第1色の画素が連続する範囲の長さである第1色幅が、所定の窓幅上限値以下かつ所定の窓幅下限値以上である場合に、前記窓幅の検出に成功したと判定し、
前記窓高さの検出に成功し、かつ、前記窓幅の検出に成功した場合に、前記対象物が前記キャリアシートであると判定し、
前記窓高さの検出または前記窓幅の検出の少なくとも一方に成功しなかった場合に、前記対象物が前記キャリアシートではないと判定する、ことを特徴とする画像読取装置。
【請求項2】
前記制御部は、前記窓高さ検出処理では、前記搬送方向において前記第1色の画素が連続する範囲の長さである第1色高さが、前記窓高さ上限値以下かつ前記窓高さ下限値以上である場合も前記窓高さの検出に成功したと判定する、ことを特徴とする請求項1に記載の画像読取装置。
【請求項3】
前記制御部は、
前記幅方向における前記窓部の中央位置を予め定義する位置情報に基づいて、前記2値画像データ内で前記幅方向における検出基準位置を決定し、
前記窓高さ検出処理では、前記2値画像データの前記検出基準位置の画素を前記搬送方向に沿って走査することにより、同一色の画素が連続する範囲を認識する、ことを特徴とする請求項1に記載の画像読取装置。
【請求項4】
前記制御部は、前記窓幅検出処理では、前記検出基準位置から前記幅方向の一端側に向かって前記第1色の画素が連続する範囲と、前記検出基準位置から前記幅方向の他端側に向かって前記第1色の画素が連続する範囲とを合わせた長さを、前記第1色幅とする、ことを特徴とする請求項3に記載の画像読取装置。
【請求項5】
前記制御部は、前記窓幅検出処理では、前記2値画像データにおける、前記窓高さの検出に成功したときの前記合計高さの前記搬送方向の下流端から、前記搬送方向の上流に向けて所定距離以上を空けた位置で、前記第1色幅を取得する、ことを特徴とする請求項1に記載の画像読取装置。
【請求項6】
前記制御部は、前記窓幅検出処理では、前記窓幅上限値以下かつ前記窓幅下限値以上の前記第1色幅を検出する処理を、所定の上限回数以下で、前記2値画像データ内で前記搬送方向における位置を変えて繰り返し実行し、前記窓幅上限値以下かつ前記窓幅下限値以上の前記第1色幅を検出できた場合に、前記窓幅の検出に成功したと判定する、ことを特徴とする請求項1に記載の画像読取装置。
【請求項7】
前記接合部は、前記窓部として、位置が異なる第1窓部および第2窓部を有し、
前記制御部は、前記第1窓部に対する前記窓高さ検出処理および前記窓幅検出処理により前記窓高さおよび前記窓幅の検出に成功し、かつ、前記第2窓部に対する前記窓高さ検出処理および前記窓幅検出処理により前記窓高さおよび前記窓幅の検出に成功した場合に、前記対象物が前記キャリアシートであると判定する、ことを特徴とする請求項1に記載の画像読取装置。
【請求項8】
前記原稿の重送を検出する重送検出部を備え、
前記制御部は、
前記対象物が前記キャリアシートであると判定した場合は、前記重送検出部に前記重送の検出をさせず、
前記対象物が前記キャリアシートではないと判定した場合は、前記重送検出部に前記重送の検出をさせる、ことを特徴とする請求項1に記載の画像読取装置。
【請求項9】
前記制御部は、前記対象物が前記キャリアシートであると判定した場合、前記画像データのうち前記接合部の読取結果に該当する領域を削除し、削除後に残った画像データを出力する、ことを特徴とする請求項1に記載の画像読取装置。
【請求項10】
前記制御部は、
前記2値画像データに基づいて、前記搬送方向に沿って前記第2色の画素が連続する縦筋の有無を判定する縦筋判定処理を実行し、
前記幅方向における、前記縦筋が有ると判定された位置を避けて前記窓高さ検出処理を行う、ことを特徴とする請求項1に記載の画像読取装置。
【請求項11】
原稿を挟むための範囲が透明な2枚のシートが周縁部の一部で接合された接合部を有するキャリアシートを所定の搬送方向に沿って搬送可能な搬送部と、
前記搬送部が搬送する対象物を読み取り可能な読取部と、を備える画像読取装置が実行するキャリアシートの検出方法であって、
前記接合部は、光を透過させる窓部を有し、
前記読取部による前記対象物の読取結果である画像データに対して、前記窓部の読取結果である所定色を第1色に変換し、前記所定色以外の色を第2色に変換して2値画像データを生成する2値化工程と、
前記2値画像データに基づいて、前記搬送方向における前記窓部の長さである窓高さを検出する窓高さ検出工程と、
前記2値画像データに基づいて、前記搬送方向に交差する幅方向における前記窓部の長さである窓幅を検出する窓幅検出工程と、を備え、
前記窓高さ検出工程では、前記搬送方向において前記第2色の画素が連続する範囲と、当該範囲を前記搬送方向において挟む前記第1色の画素が連続する範囲と、を合わせた合計高さが、所定の窓高さ上限値以下かつ所定の窓高さ下限値以上である場合に、前記窓高さの検出に成功したと判定し、
前記窓幅検出工程では、前記幅方向において前記第1色の画素が連続する範囲の長さである第1色幅が、所定の窓幅上限値以下かつ所定の窓幅下限値以上である場合に、前記窓幅の検出に成功したと判定し、
さらに、前記窓高さの検出に成功し、かつ、前記窓幅の検出に成功した場合に、前記対象物が前記キャリアシートであると判定し、前記窓高さの検出または前記窓幅の検出の少なくとも一方に成功しなかった場合に、前記対象物が前記キャリアシートではないと判定するキャリアシート検出工程を備える、ことを特徴とするキャリアシートの検出方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像読取装置およびキャリアシートの検出方法に関する。
【背景技術】
【0002】
画像読取装置の分野では、読み取るべき原稿を、透明なキャリアシートで挟み、原稿をキャリアシートごと搬送して読み取ることが行われている。
キャリアシートに複数の孔が設けられ、孔の個数と寸法に基づいてキャリアシートを検出する画像読取装置が開示されている(特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2018‐6853号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
原稿を挟んだ状態のキャリアシートが搬送される過程で、光源によりキャリアシートが照射され、イメージセンサーがキャリアシートからの反射光を受光して原稿を読み取る。ここで、搬送中のキャリアシートの姿勢が理想的でない場合、キャリアシートの孔の中に影が生じ、イメージセンサーによる孔の読取結果の中に、影の読取結果が含まれることがあった。孔を読み取って得られる本来の色と、影を読み取って得られる色とは異なる。そのため、影の影響で孔を正確に把握できず、キャリアシートをキャリアシートと判定できなくなる虞があった。従って、キャリアシートであることを検出する精度を向上させるための改善が求められている。
【課題を解決するための手段】
【0005】
原稿を挟むための範囲が透明な2枚のシートが周縁部の一部で接合された接合部を有するキャリアシートを所定の搬送方向に沿って搬送可能な搬送部と、前記搬送部が搬送する対象物を読み取り可能な読取部と、前記読取部による前記対象物の読取結果である画像データを取得する制御部と、を備える画像読取装置であって、前記接合部は、光を透過させる窓部を有し、前記制御部は、前記画像データに対して、前記窓部の読取結果である所定色を第1色に変換し、前記所定色以外の色を第2色に変換する2値化処理を施した2値画像データに基づいて、前記搬送方向における前記窓部の長さである窓高さを検出する窓高さ検出処理と、前記搬送方向に交差する幅方向における前記窓部の長さである窓幅を検出する窓幅検出処理と、を実行可能であり、前記窓高さ検出処理では、前記搬送方向において前記第2色の画素が連続する範囲と、当該範囲を前記搬送方向において挟む前記第1色の画素が連続する範囲と、を合わせた合計高さが、所定の窓高さ上限値以下かつ所定の窓高さ下限値以上である場合に、前記窓高さの検出に成功したと判定し、前記窓幅検出処理では、前記幅方向において前記第1色の画素が連続する範囲の長さである第1色幅が、所定の窓幅上限値以下かつ所定の窓幅下限値以上である場合に、前記窓幅の検出に成功したと判定し、前記窓高さの検出に成功し、かつ、前記窓幅の検出に成功した場合に、前記対象物が前記キャリアシートであると判定し、前記窓高さの検出または前記窓幅の検出の少なくとも一方に成功しなかった場合に、前記対象物が前記キャリアシートではないと判定する。
【0006】
原稿を挟むための範囲が透明な2枚のシートが周縁部の一部で接合された接合部を有するキャリアシートを所定の搬送方向に沿って搬送可能な搬送部と、前記搬送部が搬送する対象物を読み取り可能な読取部と、を備える画像読取装置が実行するキャリアシートの検出方法であって、前記接合部は、光を透過させる窓部を有し、前記読取部による前記対象物の読取結果である画像データに対して、前記窓部の読取結果である所定色を第1色に変換し、前記所定色以外の色を第2色に変換して2値画像データを生成する2値化工程と、前記2値画像データに基づいて、前記搬送方向における前記窓部の長さである窓高さを検出する窓高さ検出工程と、前記2値画像データに基づいて、前記搬送方向に交差する幅方向における前記窓部の長さである窓幅を検出する窓幅検出工程と、を備え、前記窓高さ検出工程では、前記搬送方向において前記第2色の画素が連続する範囲と、当該範囲を前記搬送方向において挟む前記第1色の画素が連続する範囲と、を合わせた合計高さが、所定の窓高さ上限値以下かつ所定の窓高さ下限値以上である場合に、前記窓高さの検出に成功したと判定し、前記窓幅検出工程では、前記幅方向において前記第1色の画素が連続する範囲の長さである第1色幅が、所定の窓幅上限値以下かつ所定の窓幅下限値以上である場合に、前記窓幅の検出に成功したと判定し、さらに、前記窓高さの検出に成功し、かつ、前記窓幅の検出に成功した場合に、前記対象物が前記キャリアシートであると判定し、前記窓高さの検出または前記窓幅の検出の少なくとも一方に成功しなかった場合に、前記対象物が前記キャリアシートではないと判定するキャリアシート検出工程を備える。
【図面の簡単な説明】
【0007】
図1】装置構成を簡易的に示す図。
図2】キャリアシートを簡易的に示す図。
図3図3A図3Bはそれぞれ、キャリアシートの下流側の一部と読取部とを側方からの視点により簡易的に示す図。
図4】キャリアシート検出方法を示すフローチャート。
図5】ステップS140,S160の窓部検出処理を示すフローチャート。
図6】ステップS330の窓高さ検出処理を示すフローチャート。
図7図7A図7B図7Cはそれぞれ、2値画像データの一部をXY座標系において例示する図。
図8】ステップS520の影検出処理を示すフローチャート。
図9】ステップS350の窓幅検出処理を示すフローチャート。
図10】ステップS820の左側窓幅検出処理を示すフローチャート。
図11】ステップS840の右側窓幅検出処理を示すフローチャート。
図12図12A図12Bはそれぞれ、2値画像データの一部をXY座標系において例示する図。
【発明を実施するための形態】
【0008】
以下、各図を参照しながら本発明の実施形態を説明する。なお各図は、本実施形態を説明するための例示に過ぎない。各図は例示であるため、比率や形状や濃淡が正確でなかったり、互いに整合していなかったり、一部が省略されていたりする場合がある。
【0009】
1.装置の概略説明:
図1は、本実施形態にかかる画像読取装置10を、側方からの視点により簡易的に示している。画像読取装置10は、原稿Gを載置する載置部11と、載置部11に載置される原稿Gを所定の搬送経路で搬送する搬送部12と、搬送部12が搬送する対象物を読み取り可能な読取部13と、搬送経路で原稿Gの重送を検出する重送検出部14と、制御部15と、視覚情報の表示やユーザーからの入力を受け付け可能なタッチパネル16とを含んでいる。むろん、ユーザーからの入力受付は、タッチパネル以外の物理的なボタン等であってもよい。
【0010】
本実施形態では、搬送部12は、原稿Gそのものを搬送するだけでなく、原稿Gを挟んだ状態のキャリアシートを搬送することもある。そのため、搬送部12が搬送する原稿Gや、原稿Gを挟んだ状態のキャリアシートといった物を、便宜的に「対象物」と呼ぶ。キャリアシートは、原稿ホルダー等とも称される。また、キャリアシートを、CSと略す。
【0011】
制御部15は、プロセッサーや、プロセッサーが処理に必要とするプログラムやデータを記憶したりワークリアとして使用されたりするメモリーを含んでいる。制御部15は、装置内の各部を制御する。制御部15が時系列的に処理をしていく過程を、それぞれの工程と見なせば、これらの工程の時系列的なつながりを方法の発明と把握することができる。制御部15を有する画像読取装置10は、CSの検出方法を実行する。
【0012】
搬送部12は、搬送経路を挟み込むように対向配置されたローラー12b1,12b2からなる給紙ローラー対12bや、同じく対向配置されたローラー12a1,12a2からなる排紙ローラー対12aを備える。例えば、搬送経路の下側に配置されるローラー12b1とローラー12a1とが、不図示のモーターに連結されており、モーターから与えられる動力で回転する。搬送経路に沿う方向を搬送方向D1と言う。搬送方向D1の上流、下流を、単に上流、下流と言う。
【0013】
給紙ローラー対12bは、読取部13よりも上流に配置されており、対象物を下流へ搬送する。排紙ローラー対12aは、読取部13よりも下流に配置されており、読取部13に読み取られた対象物を下流へ搬送して排出する。給紙ローラー対12bの近傍位置には、対象物の端部を検知するPEセンサー18が備えられている。給紙ローラー対12bよりも上流の載置部11に近い位置には、搬送部12の一部としてのロードローラー12cが備えられている。ロードローラー12cは、載置部11から対象物を一つ単位で搬送経路へ導入する。
【0014】
ロードローラー12cと給紙ローラー対12bとの間には、重送検出部14が設けられている。本来一枚単位で搬送されるべき原稿Gが2枚以上重なった状態で搬送されることを重送と言う。重送検出部14は、超音波が原稿Gを通過するときの減衰度合いに基づいて重送であるか否かの検出を行う。超音波を用いた重送検出は公知であるため、詳しい説明は省略する。制御部15は、重送検出部14による検出結果に応じて重送であると判定すれば、エラーを報知したり、搬送部12による搬送を止めたりするなど所定の処理を行うことができる。
【0015】
2.CSの説明:
図2は、CS20を上からの視点により簡易的に示している。搬送方向D1に交差する方向D2を、幅方向D2と呼ぶ。搬送方向D1と幅方向D2との交差は、直交と解してよい。CS20は、原稿を挟むための透明な2枚のシート21,22が、それらの周縁部の一部で接合されて形成されている。シート21,22同士が接合されている部分を接合部23と呼ぶ。CS20は、載置部11にセットするとき、接合部23を下流に向けて載置される。そのため、CS20のうち接合部23が最初に読取部13により読み取られる。
【0016】
接合部23には、ユーザーにCS20の使用方法を伝えるための図柄や文字が印刷されていてもよい。また、接合部23には「窓部」としての第1窓部24および第2窓部25が形成されている。接合部23は、第1窓部24および第2窓部25を除いて非透光性の部位であり、何らかの色、例えば白色である。第1窓部24および第2窓部25は、接合部23を貫通する孔である。あるいは、第1窓部24および第2窓部25は、原稿を挟むシート21,22と同様に透明な素材であっても良い。いずれにしても、窓部は光を透過させる。
【0017】
図2によれば、第1窓部24および第2窓部25は、それぞれが矩形あるいはほぼ矩形の窓であり、第1窓部24の方が下流に形成されている。また、第1窓部24および第2窓部25は、幅方向D2における位置は同じあるいはほぼ同じである。制御部15は、後述するように、読取部13による対象物の読取結果である画像データを解析して、第1窓部24および第2窓部25を検出することにより、搬送部12が搬送する対象物がCS20であると判定する。
【0018】
このようなCS20は、これを通過する超音波の減衰度合いが大きいため、重送検出部14が重送と検出する可能性が高い対象物である。
接合部23における窓部が図2のように2つであることは必須ではない。窓部は、例えば、第1窓部24のみであってもよい。以下では、搬送方向D1における窓部の長さを「窓高さ」と呼ぶ。また、幅方向D2における窓部の長さを「窓幅」と呼ぶ。
【0019】
3.影の説明:
図3Aは、搬送されるCS20の下流側の一部と、読取部13とを、側方からの視点により簡易的に示している。図1では、搬送方向D1は斜め下方を向いているが、図3Aでは見易さを優先して、搬送方向D1は水平方向としている。また、図3Aでは、CS20が有する窓部として第1窓部24のみを示している。むろん、図3Aに示す第1窓部24を、第2窓部25と見なしてもよい。
【0020】
図3Aによれば、読取部13は、対象物が搬送される搬送経路19を挟んで対向する第1読取部13aと、第2読取部13bとを有する。第1読取部13aは、搬送経路19の下方に配置され、対象物の両面のうち下を向く面を読み取る。第2読取部13bは、搬送経路19の上方に配置され、対象物の両面のうち上を向く面を読み取る。つまり、図3Aの例では、読取部13は、対象物の両面を同時に読み取り可能である。ただし本実施形態は、画像読取装置10が対象物の両面を同時に読み取り可能な製品であることは必須ではない。製品の構成として、例えば、第2読取部13bは無くてもよい。
【0021】
第1読取部13aは、対象物を照射する第1光源13a1と、照射された対象物からの反射光を受光して読み取る第1イメージセンサー13a2とを有する。同様に、第2読取部13bは、対象物を照射する第2光源13b1と、照射された対象物からの反射光を受光して読み取る第2イメージセンサー13b2とを有する。図3Aによれば、第1読取部13aの第1光源13a1や第1イメージセンサー13a2の方が、第2読取部13bの第2光源13b1や第2イメージセンサー13b2よりも上流に位置している。つまり、第1読取部13aの方が、第2読取部13bよりも早くCS20の接合部23を読み取る。そこで、図3Aを参照して、第1読取部13aが第1窓部24を読み取る際に生じる“影”について説明する。
【0022】
搬送経路19の上側において、第1光源13a1や第1イメージセンサー13a2と対向する位置には、第1背景板17aが露出している。同様に、搬送経路19の下側において、第2光源13b1や第2イメージセンサー13b2と対向する位置には、第2背景板17bが露出している。背景板17a,17bは所定色の部材であり、この所定色は、例えばグレーである。従って、第1読取部13aは、第1窓部24を介して第1背景板17aの色を読み取る。窓部自体に色は無いが、窓部を介して読み取られる背景板の所定色を、窓部の色と見なすことができる。
【0023】
図3Aに示すように、第1光源13a1は、第1イメージセンサー13a2よりも下流の位置から対象物を照射する。そのため、第1窓部24の下流側の端部の影1が第1背景板17aの一部に発生し、第1窓部24の下流側の端部が第1イメージセンサー13a2による読取位置を通過したとき、第1イメージセンサー13a2は、この影1を読み取る。影1の色は、第1背景板17aの所定色よりも濃い。ただし図3Aは、対象物の搬送時の姿勢が理想的である例を示している。具体的には、図3AではCS20は、搬送経路19内を、上下方向におけるほぼ中央の位置で搬送されている。このようにCS20の搬送時の姿勢が理想的であれば、第1背景板17aに生じる影1は、比較的小さい範囲に生じ、第1背景板17aの所定色との色差も比較的小さい。つまり影1は、製品の設計上想定される程度の影であり、第1窓部24の検出に影1が与える影響は殆ど無いと言える。
【0024】
図3Bは、図3Aと同様に、搬送されるCS20の下流側の一部と読取部13とを側方からの視点により簡易的に示している。図3Bについては、図3Aと異なる点を説明する。図3Aと比べると、図3Bでは、対象物の搬送時の姿勢が理想的ではない。具体的には、CS20は、搬送経路19内を、第1読取部13a側へ寄った位置で搬送されている。このような対象物の姿勢の違いは、搬送部12が有する各ローラーの寸法や位置の誤差やばらつきに起因している。このようにCS20が第1読取部13a側へ寄り過ぎていると、第1光源13a1が照射する光は、第1窓部24の下流側の端部によって、より多く遮られ、第1背景板17aに生じる影2は、図3Aに示す影1よりも大きく、濃くなり易い。このようにCS20の搬送時の姿勢が理想的でないとき、第1背景板17aに生じる影2は、影1と比べて大きくて濃いため、第1窓部24の検出に影響を与える可能性が高い。
【0025】
4.CS検出方法:
図4は、制御部15が実行するCS検出方法をフローチャートにより示している。
ユーザーは、載置部11に対象物を載置し、タッチパネル16等を操作してスキャン開始を指示する。制御部15は、当該指示に応じて、搬送部12に対象物の搬送を開始させる。また、制御部15は、例えば、PEセンサー18によって対象物の先端が検知されたことを契機として、所定のタイミングで読取部13に読取処理を開始させる。
本実施形態では、対象物や、画像データや、それらの一部分、その他様々な領域や範囲に関して、下流側の端部を“先端”と呼び、上流側の端部を“後端”と呼ぶ。
【0026】
ステップS100では、制御部15は、読取部13による対象物の読取結果である画像データを、読取部13から取得する。
ステップS110では、制御部15は、ステップS100で取得した画像データに対して、窓部の読取結果である所定色を「第1色」に変換し、所定色以外の色を「第2色」に変換する2値化処理を実行する。2値化の結果としての第1色と第2色は、異なる色であればよい。
【0027】
ここで言う所定色は、上述したように背景板17a,17bの色であり、制御部15にとって既知の色である。そのため、制御部15は、画像データが画素毎に有する色を、所定色と所定色以外とに分け、所定色の画素を第1色の画素に変換し、所定色以外の色の画素を第2色の画素に変換する。ここでは、第1色の画素を「黒画素」とし、第2色の画素を「白画素」とする。制御部15は、所定色か否かの判定に際して、所定色の範囲に規定のマージンを含めて設定し、この所定色の範囲外の色を所定色ではないと判定すればよい。上述のように第1背景板17aに生じる影2は、その濃さにもよるが、白画素に変換され得る。ステップS110は2値化工程に該当する。ステップS110の結果、2値画像データが生成される。
【0028】
図3A図3Bの説明によれば、第1読取部13a、第2読取部13bのそれぞれが対象物の面を読み取って画像データを生成するが、ステップS110の2値化処理の対象とする画像データは、第1読取部13aによる読取結果である画像データでよい。また、ステップS110の2値化処理は、CS20の接合部23に相当する範囲を対象として実行できればよい。搬送方向D1における接合部23の長さは、CS20の先端から後端側に向かって数センチ数ミリの範囲といったように、CS20の仕様上予め判っている。
【0029】
従って、制御部15は、第1読取部13aの第1イメージセンサー13a2により読取結果として順次生成され、ステップS100により順次取得する画像データのうち、先端から後端側に向かう、接合部23の読取結果を十分に含んでいると言える特定距離分の範囲を対象として、2値化処理を行えばよい。つまり制御部15は、第1イメージセンサー13a2により生成される、対象物の1面全体の画像データに対して2値化処理を実行する必要は無い。そのため、制御部15は、読取部13が対象物の全面の読取を終えるよりも前に、図4のフローチャートを終えることができる。
【0030】
ステップS120では、制御部15は、2値画像データに基づいて対象物の先端を検出する。2値画像データの先端や先端付近は、対象物の先端を読み取るよりも前に読み取った第1背景板17aの色に対応して黒画素が続く。そのため、制御部15は、2値画像データを、その先端から後端側に向かって走査していき、黒画素から白画素へ切り替わったときの白画素の位置を対象物の先端として検出すればよい。制御部15は、対象物の先端の検出に成功した場合は、ステップS130の“Yes”の判定からステップS140へ進む。一方、制御部15は、何らかの理由により対象物の先端の検出に成功しなかった場合は、ステップS130の“Nо”の判定からステップS200へ進む。
【0031】
ステップS140では、制御部15は、第1窓部24の検出処理を実行し、第1窓部24の検出に成功した場合は、ステップS150の“Yes”の判定からステップS160へ進む。一方、第1窓部24の検出に成功しなかった場合は、ステップS150の“Nо”の判定からステップS200へ進む。
【0032】
ステップS160では、制御部15は、第2窓部25の検出処理を実行し、第2窓部25の検出に成功した場合は、ステップS170の“Yes”の判定からステップS180へ進む。一方、第2窓部25の検出に成功しなかった場合は、ステップS170の“Nо”の判定からステップS200へ進む。
ステップS140,S160の詳細は、図5等を参照して後述する。
【0033】
ステップS180では、制御部15は、窓間距離が適切であるか否かを判定する。窓間距離とは、搬送方向D1における第1窓部24と第2窓部25との距離である。窓間距離は、両窓部の中心同士の距離であってもよいし、第1窓部24の後端と第2窓部25の先端との距離であってもよい。いずれにしても、CS20の仕様上、窓間距離は既知である。そのため、制御部15は、ステップS140で検出できた第1窓部24とステップS160で検出できた第2窓部25との、搬送方向D1における距離である検出窓間距離が、仕様上の窓間距離に基づいて予め決定した窓間距離の下限値以上かつ上限値以下であるか否かを判定する。制御部15は、検出窓間距離が、窓間距離の下限値以上かつ上限値以下であれば、ステップS180の“Yes”からステップS190へ進み、検出窓間距離が、窓間距離の下限値未満であるか上限値を超えていれば、ステップS180の“Nо”からステップS200へ進む。
【0034】
ステップS190では、制御部15は、搬送部12が搬送する対象物はCS20であると判定し、図4のフローチャートを終える。これにより、CS20を検出できたことになる。一方、ステップS200では、制御部15は、搬送部12が搬送する対象物はCS20ではないと判定し、図4のフローチャートを終える。図4のうち少なくともステップS190やステップS200は、CS検出工程に該当する。
【0035】
CS20が窓部として第1窓部24だけ有する前提であれば、ステップS160,S170,S180は不要であり、図4は、ステップS150の判定からステップS190またはステップS200へ進むフローチャートとすればよい。CS20が窓部として第1窓部24だけ有する前提であれば、図5に示すステップS300,S320も同様に不要である。
【0036】
CS20が第1窓部24および第2窓部25を有する前提であれば、ステップS180で窓間距離が適切であるか否かを判定することにより、原稿に窓部に類似する孔が偶然2つ形成されている場合等に、CS20と誤判定することを避けることができる。ただし、CS20が第1窓部24および第2窓部25を有する前提であっても、ステップS180を省いて図4のフローチャートを簡略化してもよい。
以下では、CS20が第1窓部24および第2窓部25を有する前提で説明を続ける。
【0037】
図5は、ステップS140およびステップS160のそれぞれで実行する窓部検出処理をフローチャートにより示している。
ステップS300では、制御部15は、現在の検出対象とする窓部が第1窓部24であるか否かを判定し、検出対象が第1窓部24であれば“Yes”の判定からステップS310へ進む。一方、検出対象が第2窓部25であれば“Nо”の判定からステップS320へ進む。つまり、ステップS140においては、ステップS300で“Yes”と判定し、ステップS160においては、ステップS300で“Nо”と判定する。ステップS140,S160の違いは、ステップS310,S320の違いである。
【0038】
制御部15は、直交するX軸およびY軸によるXY座標系で2値画像データの各画素位置を定義する。2値画像データの処理において、Y軸は搬送方向D1に対応し、X軸は幅方向D2に対応する。また、搬送方向D1の下流側をY軸のマイナス側とし、上流側をY軸のプラス側として説明する。
ステップS310では、制御部15は、検出開始のY座標を、対象物の先端のY座標に設定してステップS330へ進む。一方、ステップS320では、制御部15は、検出開始のY座標を、第1窓部24の後端のY座標+1に設定してステップS330へ進む。対象物の先端のY座標は、ステップS120で検出済みの、対象物の先端位置である。第1窓部24の後端のY座標は、ステップS140が終了しているステップS160のタイミングでは判明済みである。ただし、第1窓部24の後端は、後述するように黒画素である。そのため、制御部15はステップS320では、白画素を検出開始位置とするために第1窓部24の後端のY座標に対してY軸プラス側に隣接する画素位置を、検出開始のY座標とする。
【0039】
ステップS330では、制御部15は、2値画像データに基づいて「窓高さ検出処理」を実行し、窓高さ検出処理において窓高さの検出に成功した場合には、ステップS340の“Yes”の判定からステップS350へ進む。一方、窓高さ検出処理において窓高さの検出に失敗した場合には、ステップS340の“Nо”の判定からステップS380へ進む。
【0040】
ステップS350では、制御部15は、2値画像データに基づいて「窓幅検出処理」を実行し、窓幅検出処理において窓幅の検出に成功した場合には、ステップS360の“Yes”の判定からステップS370へ進む。一方、窓幅検出処理において窓幅の検出に失敗した場合には、ステップS360の“Nо”の判定からステップS380へ進む。
【0041】
つまり、窓高さの検出に成功し、かつ、窓幅の検出に成功した場合に、ステップS370へ進み、窓高さの検出または窓幅の検出の少なくとも一方に成功しなかった場合に、ステップS380へ進む。ステップS370では、制御部15は、現在の検出対象の窓部について検出成功と決定し、図4のフローチャートに復帰する。一方、ステップS380では、制御部15は、現在の検出対象の窓部について検出失敗と決定し、図4のフローチャートに復帰する。ステップS140におけるステップS370またはステップS380の決定が、そのままステップS150の判定に反映される。同様に、ステップS160におけるステップS370またはステップS380の決定が、そのままステップS170の判定に反映される。従って、制御部15は、窓高さの検出に成功し、かつ、窓幅の検出に成功した場合に、対象物がCS20であると判定し、窓高さの検出または窓幅の検出の少なくとも一方に成功しなかった場合に、対象物がCS20ではないと判定する。
【0042】
5.窓高さ検出処理の詳細:
図6は、ステップS330の窓高さ検出処理をフローチャートにより示している。窓高さ検出処理を窓高さ検出工程とも言う。
ステップS400では、制御部15は、検出のためのX座標を設定する。制御部15は、幅方向D2における窓部の中央位置を予め定義する位置情報に基づいて、2値画像データ内で検出のためのX座標を設定する。
【0043】
接合部23における第1窓部24や第2窓部25の位置は、CS20の仕様上決まっているため、ユーザーが載置部11へCS20を正しくセットする前提に立てば、搬送経路内で、幅方向D2におけるいずれの位置に窓部の中央位置が在るべきか判る。また、2値画像データにおいて、そのような窓部の中央位置の在るべきX座標も、接合部23における第1窓部24や第2窓部25の仕様上の位置から予め定義しておくことができる。ここでは、2値画像データにおいて窓部の中央位置が在るべきX座標として、x1という位置情報が予め定義されているとする。従って、制御部15は、ステップS400ではX座標=x1と設定する。
【0044】
ステップS310またはステップS320と、ステップS400とにより、窓高さ検出処理の開始位置であるXY座標が決定された。現在の検出対象の窓部が第1窓部24であれば、ステップS310とステップS400とにより、窓高さ検出処理の開始位置であるXY座標が決定されたことになる。同様に、現在の検出対象の窓部が第2窓部25であれば、ステップS320とステップS400とにより、窓高さ検出処理の開始位置であるXY座標が決定されたことになる。
【0045】
図7Aは、2値画像データの一部を、所定の原点Оを基準としたXY座標系において例示している。図7Aでは、グレー色の領域が黒画素の集合であり、それ以外の領域は白画素で形成されている。図7Aには、第1窓部24の読取結果に対応する黒画素の集合領域を符号24で示している。このような2値画像データ内の黒画素の集合領域24も、分かり易く第1窓部24と呼ぶ。ちなみに、符号3で示す黒画素の集合領域は、第1読取部13aが対象物の先端を読み取るよりも前に読み取った第1背景板17aの色に対応して黒画素が続く領域である。
【0046】
ここで、ステップS310において設定した、対象物の先端のY座標=y1とすると、第1窓部24のための、窓高さ検出処理の開始位置はXY座標=(x1,y1)となる。ユーザーが載置部11へCS20をセットした際、CS20の位置が幅方向D2において若干ずれたり、CS20が搬送方向D1に対してやや傾いたりすることがある。そのため、幅方向D2における窓部の中央位置が、実際に2値画像データのX座標=x1と一致するとは限らない。しかしながら、幅方向D2における窓部の中央位置が、X座標=x1から大きくずれることは稀であるため、X座標=x1は、Y軸に沿って2値画像データの画素を走査したときにほぼ間違いなく窓部を通過する位置と言える。2値画像データ内のX座標=x1は、幅方向D2における検出基準位置に該当する。
【0047】
ステップS410では、制御部15は、2値画像データにおける現在位置の画素を取得する。ステップS400の直後のステップS410であれば、現在位置は当然に、窓高さ検出処理の開始位置である。また、窓高さ検出処理の開始位置の画素は、白画素である。
ステップS420では、制御部15は、現在位置の画素が黒画素であるか否かにより処理を分岐する。制御部15は、現在位置の画素が黒画素であれば、ステップS420の“Yes”の判定からステップS430へ進み、現在位置の画素が白画素であれば、ステップS420の“Nо”の判定からステップS460へ進む。
【0048】
ステップS460では、制御部15は、窓高さが1以上であるか否かを判定し、窓高さが1以上であれば“Yes”からステップS490へ進み、窓高さが0であれば“Nо”からステップS470へ進む。後述するように、ステップS450で窓高さをカウントすることで、窓高さが1以上となる。ステップS450でカウントする窓高さの単位は画素数である。
【0049】
ステップS430では、制御部15は、窓高さが0であるか否かを判定し、窓高さが0であれば“Yes”からステップS440へ進み、一方、窓高さが1以上であれば“Nо”からステップS450へ進む。ステップS420で最初に“Yes”と判定した時点では、窓高さは0である。
ステップS440では、制御部15は、現在位置のY座標を窓部の先端のY座標に決定した上で、ステップS450へ進む。
【0050】
ステップS450では、制御部15は、窓高さをインクリメントする。つまり、現在の窓高さに1を加えて窓高さを更新する。ステップS440の直後のステップS450であれば、窓高さは0から1に更新される。
ステップS450またはステップS460の後のステップS470では、制御部15は、現在位置のY座標をインクリメントする。つまり、現在位置をY軸のプラス側に1画だけ移動させる。
【0051】
ステップS480では、現在位置が窓高さの探索範囲の後端に達したか否かを判定する。窓高さの探索範囲とは、CS20の仕様上の窓高さに基づいて予め決められた、搬送方向D1における距離であり、1つの窓部の窓高さを検出するために走査する距離として必要十分な距離である。制御部15は、窓高さの探索範囲を、ステップS310またはステップS320で設定した検出開始のY座標を先端にして設定し、ステップS480の判定を行えばよい。
【0052】
制御部15は、現在位置が窓高さの探索範囲の後端に達した場合は、窓高さの検出をこれ以上続けても、窓高さを正しく検出することはできないため、ステップS480の“Yes”の判定からステップS540へ進む。一方、現在位置が窓高さの探索範囲の後端に達していない場合は、ステップS480の“Nо”の判定からステップS410へ戻る。
ステップS540では、制御部15は、現在の検出対象としている窓部の窓高さについて検出失敗と決定し、図5のフローチャートに復帰する。
【0053】
ステップS490では、制御部15は、現在位置のY座標-1を、窓部の後端のY座標に決定する。現在位置のY座標-1とは、現在位置に対してY軸のマイナス側に隣接する画素位置である。ステップS490の時点での現在位置は白画素であるため、この白画素にY軸マイナス側に隣接する黒画素を、窓部の後端とする。ステップS490までの処理により、窓高さが一旦検出できたことになる。つまり、ステップS440,S490で窓部の先端、後端それぞれのY座標が決まり、窓高さは、ステップS490までにステップS450を繰り返した回数に相当する。
【0054】
図6のステップS490までの流れを、図7Aを参照して説明する。先ず、ステップS410で、現在位置であるXY座標=(x1,y1)の白画素を取得した後は、ステップS420“Nо”、ステップS460“Nо”、ステップS480“Nо”のサイクルを複数回繰り返し、現在位置がXY座標=(x1,y2)に達すると、それまで続いた白画素から黒画素へ切り替わったため、ステップS420で“Yes”と判定する。そして、ステップS430,S440,S450,S470を順に実行した後は、ステップS480“Nо”、ステップS420“Yes”、ステップS430“Nо”のサイクルを複数回繰り返す。やがて、現在位置がXY座標=(x1,y3)をY軸プラス側に超えると、それまで続いた黒画素から白画素へ切り替わったため、再びステップS420で“Nо”と判定する。そして、ステップS460の“Yes”を経て、ステップS490で、y2~y3の範囲が窓高さとされる。
【0055】
図7B図7Cはそれぞれ、2値画像データの一部をXY座標系において例示している。図7B図7Cの見方は図7Aと同じであるため、共通する説明は省略する。
図7Bは、図7Aと比べると、第1窓部24の内側であって、第1窓部24の先端に近い位置に、影2の読取結果に対応する白画素の集合領域2が分布している点で異なる。このような2値画像データにおける第1窓部24内の白画素の集合領域2も、分かり易く影2と呼ぶ。
【0056】
図7Cは、図7Bと同様に、第1窓部24内に影2が存在するが、第1窓部24の本来の先端に該当する部分も、白画素つまり影2となっている点で、図7Bと異なる。
図7Aは、図3Aで説明したように、窓部の読取結果に影の影響が実質的に生じていない例に該当する。一方、図7B図7Cは、図3Bで説明したように、窓部の読取結果に影2の影響が強く表れる例に該当する。
【0057】
図6のステップS490までの流れを、図7Bを参照して説明する。ステップS410でXY座標=(x1,y1)の白画素を取得した後は、ステップS420“Nо”、ステップS460“Nо”、ステップS480“Nо”のサイクルを複数回繰り返し、現在位置がXY座標=(x1,y2)に達すると、それまで続いた白画素から黒画素へ切り替わったため、ステップS420で“Yes”と判定する。ステップS430,S440,S450,S470を順に実行した後は、ステップS480“Nо”、ステップS420“Yes”、ステップS430“Nо”のサイクルを複数回繰り返し、現在位置がXY座標=(x1,y4)をY軸プラス側に超えると、それまで続いた黒画素から影2に該当する白画素へ切り替わったため、再びステップS420で“Nо”と判定する。そして、ステップS460の“Yes”を経て、ステップS490で、y2~y4の範囲が窓高さとされる。
【0058】
図6のステップS490までの流れを、図7Cを参照して説明する。ステップS410で、XY座標=(x1,y1)の白画素を取得した後は、ステップS420“Nо”、ステップS460“Nо”、ステップS480“Nо”のサイクルを複数回繰り返し、現在位置がXY座標=(x1,y6)に達すると、それまで続いた白画素から黒画素へ切り替わったため、ステップS420で“Yes”と判定する。ステップS430,S440,S450,S470を順に実行した後は、ステップS480“Nо”、ステップS420“Yes”、ステップS430“Nо”のサイクルを複数回繰り返し、現在位置がXY座標=(x1,y3)をY軸プラス側に超えると、それまで続いた黒画素から白画素へ切り替わったため、再びステップS420で“Nо”と判定する。そして、ステップS460の“Yes”を経て、ステップS490で、y6~y3の範囲が窓高さとされる。
【0059】
ステップS500では、制御部15は、検出した窓高さが、所定の窓高さ上限値以下であるか否かを判定する。制御部15は、窓高さが窓高さ上限値を超える場合は、ステップS500の“Nо”の判定からステップS540へ進み、一方、窓高さが窓高さ上限値以下である場合は、ステップS500の“Yes”の判定からステップS510へ進む。
【0060】
ステップS510では、制御部15は、検出した窓高さが、所定の窓高さ下限値以上であるか否かを判定する。制御部15は、窓高さが窓高さ下限値に満たない場合は、ステップS510の“Nо”の判定からステップS520の影検出処理へ進み、一方、窓高さが窓高さ下限値以上である場合は、ステップS510の“Yes”の判定からステップS550へ進む。窓高さ上限値および窓高さ下限値は、CS20における仕様上の窓高さに基づいて予め決められた値であり、2値画像データから検出される窓高さに対して、正しい窓高さとして認めることができる許容範囲を示している。窓高さ上限値は、上述の探索範囲よりも当然小さい。
【0061】
ステップS550では、制御部15は、現在の検出対象としている窓部の窓高さについて検出成功と決定し、図5のフローチャートに復帰する。ステップS540またはステップS550の決定が、そのまま図5のステップS340の判定に反映される。
再び図7A図7B図7Cを参照する。図7Aに示すように検出された窓高さ=y2~y3は、第1窓部24の窓高さをほぼ正確に表していると言えるため、ステップS500,S510の両方で“Yes”とされる窓高さである。また、図7Cに示すように検出された窓高さ=y6~y3も、ステップS500,S510の両方で“Yes”と判定される可能性がある窓高さである。
【0062】
このような、ステップS550へ至る処理によれば、制御部15は、窓高さ検出処理では、搬送方向D1において第1色の画素が連続する範囲の長さである「第1色高さ」が、窓高さ上限値以下かつ窓高さ下限値以上である場合に、窓高さの検出に成功したと判定する。第1色高さは、搬送方向D1において黒画素が連続する範囲の長さであり、これまでの説明から解るように、例えば図7Aのy2~y3の範囲の長さである。
【0063】
一方、図7Bに示すように検出された窓高さ=y2~y4は、影2の影響により第1窓部24の本来の窓高さに全く足りず、ステップS510で“Nо”と判定される。本実施形態では、図7Bの例のように、本来検出されるべき窓高さが影2の影響で分断されている場合を想定し、ステップS510の“Nо”の後、ステップS520,S530を実行する。
【0064】
図8は、ステップS520の影検出処理をフローチャートにより示している。
ステップS600では、制御部15は、影検出中であることを示す影検出中フラグを、OFFに切り替えて初期化する。以下では、影検出中フラグを単にフラグと言う。
ステップS610では、制御部15は、現在位置の画素を取得する。ステップS610は、図6のステップS410と同じ処理である。ステップS600の直後のステップS610であれば、現在位置の画素は白画素である。
【0065】
ステップS620では、制御部15は、現在位置の画素が白画素であるか否かにより処理を分岐する。制御部15は、現在位置の画素が白画素であれば、ステップS620の“Yes”の判定からステップS630へ進み、現在位置の画素が黒画素であれば、ステップS620の“Nо”の判定からステップS720へ進む。
【0066】
ステップS630では、制御部15は、影高さが0であるか否かを判定し、影高さが0であれば“Yes”からステップS640へ進み、影高さが1以上であれば“Nо”からステップS660へ進む。影高さは、搬送方向D1における影の長さであり、2値画像データにおいてはY軸方向における長さと捉える。影高さも、窓高さと同様に画素数でカウントする。
【0067】
ステップS640では、制御部15は、現在位置のY座標を影の先端のY座標に決定した上で、ステップS650へ進む。ステップS650では、制御部15は、フラグをONに切り替えて、ステップS660へ進む。
【0068】
ステップS660では、制御部15は、フラグのON/OFFを判定し、フラグがONであれば、“Yes”の判定からステップS670へ進み、一方、フラグがOFFであれば“Nо”の判定からステップS760へ進む。
ステップS670では、制御部15は、影高さをインクリメントする。つまり、現在の影高さに1を加えて影高さを更新する。ステップS670を繰り返すことで、影高さが増えていく。
【0069】
ステップS680では、制御部15は、影高さが、影高さの所定の上限値を超えたか否かを判定する。影は窓部の内側に生じるものであるから、窓部よりも大きな影は、実際は影ではなく接合部23の一部分である。そこで、本実施形態では、窓高さの上限値よりも小さい所定値として影高さの上限値が予め決められており、制御部15は、影高さが影高さの上限値を超えた場合は、ステップS680の“Yes”からステップS690へ進む。一方、影高さが影高さの上限値以下であれば、ステップS680の“Nо”からステップS700へ進む。
【0070】
ステップS690では、制御部15は、現在の影高さを0に初期化し、フラグをOFFに切り替えて、ステップS700へ進む。つまり、これまでの影高さの検出を無かったことにする。
ステップS680またはステップS690の後のステップS700では、制御部15は、図6のステップS470と同様に、現在位置のY座標をインクリメントする。
【0071】
ステップS710では、制御部15は、図6のステップS480と同様に、現在位置が窓高さの探索範囲の後端に達したか否かを判定する。制御部15は、現在位置が探索範囲の後端に達した場合は、ステップS710の“Yes”の判定からステップS780へ進み、一方、現在位置が探索範囲の後端に達していない場合は、ステップS710の“Nо”の判定からステップS610へ戻る。
ステップS780では、制御部15は、影検出失敗と決定し、図6のフローチャートに復帰する。
【0072】
ステップS680で“Yes”と判定する場合としては、例えば、接合部23に印刷された罫線の太さを図6のフローチャートで窓高さとして検出し、ステップS510から進んだ影検出処理において、当該罫線の上流に続く空白領域を影高さとして検出していた、といったケースが考えらえる。また、白画素が過剰に連続し、ステップS680の“Yes”を何度か繰り返すことで、結果的にステップS710からステップS780へ進むことが考えられる。
【0073】
ステップS720では、制御部15は、ステップS660と同様に、フラグのON/OFFを判定し、フラグがONであれば、“Yes”の判定からステップS730へ進み、一方、フラグがOFFであれば“Nо”の判定からステップS750へ進む。
ステップS730では、制御部15は、現在位置のY座標-1を影の後端のY座標に決定した上で、ステップS740へ進む。ステップS730の時点での現在位置は黒画素であるため、この黒画素にY軸マイナス側に隣接する白画素を、影の後端とする。
【0074】
ステップS740では、制御部15は、現在の窓高さに影高さを加えることにより、窓高さを更新する。現在の窓高さは、図6のステップS490を終えた時点で検出できている窓高さであり、黒画素が連続する範囲である。また、影高さは、現在のフラグONの期間中にステップS670を繰り返すことで検出した影高さであり、白画素が連続する範囲である。制御部15は、これら窓高さと影高さとを足し、さらに現在位置である黒画素1つを足した値を、窓高さとする。ステップS740までの処理で、実質的に影高さの検出は終了し、以降は、影高さを含んだ窓高さを更新していく。さらにステップS740では、制御部15はフラグをOFFに切り替えた上で、ステップS700へ進む。
【0075】
ステップS750では、制御部15は、窓高さをインクリメントする。つまり、現在の窓高さに、現在位置の黒画素1つを加えて窓高さを更新する。ステップS750の後はステップS700へ進む。
制御部15は、現在位置が白画素であり且つフラグがOFFであるとき、ステップS660からステップS760へ進む。ステップS760では、制御部15は、現在位置のY座標-1を、窓部の後端のY座標に決定した上で、ステップS770へ進む。ステップS760の時点での現在位置は白画素であるため、この白画素にY軸マイナス側に隣接する黒画素を窓部の後端とする。ステップS770では、制御部15は、影検出成功と決定し、図6のフローチャートに復帰する。
【0076】
図6のステップS530では、制御部15は、ステップS520の影検出処理の結果に応じて処理を分岐する。つまり、影検出に成功し、ステップS520を終えた時点で検出できている窓高さが窓高さ上限値以下かつ窓高さ下限値以上であれば、ステップS530の“Yes”からステップS550へ進む。一方、影検出に失敗した場合や、影検出は成功したが、ステップS520を終えた時点で検出できている窓高さが、窓高さ上限値以下かつ窓高さ下限値以上という条件を満たしていない場合は、ステップS530の“Nо”からステップS540へ進む。
このように図6のフローチャートでは、ステップS510で“Yes”と判定する場合およびステップS530で“Yes”と判定する場合を除いて、窓高さの検出失敗とする。
【0077】
ステップS490の後の流れ、特に図8について、図7Bを参照して説明する。ステップS490の時点でy2~y4の範囲が窓高さとされ、この窓高さは、ステップS510において“Nо”と判定される。図8のステップS610で、現在位置であるXY座標=(x1,y4+1)の白画素を取得した後は、ステップS620“Yes”の後、ステップS630~S670をスキップせずに順に実行し、ステップS680“Nо”、ステップS710“Nо”、ステップS620“Yes”、ステップS630“Nо”、ステップS660“Yes”のサイクルを複数回繰り返す。そして、現在位置がXY座標=(x1,y5)に達すると、それまで続いた影2の白画素から黒画素へ切り替わったため、ステップS620で“Nо”と判定する。
【0078】
ステップS720“Yes”、S730,S740,S700を順に実行した後は、ステップS710“Nо”、ステップS620“Nо”、ステップS720“Nо”のサイクルを複数回繰り返す。やがて、現在位置がXY座標=(x1,y3)をY軸プラス側に超えると、それまで続いた黒画素から白画素へ切り替わったため、ステップS620で“Yes”と判定する。そして、ステップS660の“Nо”を経て、ステップS760に至ることで、y2~y3の範囲が窓高さとされる。このような図7Bの窓高さy2~y3は、y4とy5との間の影2の影高さを含んでいる。
【0079】
このような窓高さ検出処理によれば、制御部15は、搬送方向D1において第2色である白画素が連続する範囲と、当該範囲を搬送方向D1において挟む第1色である黒画素が連続する範囲とを合わせた「合計高さ」が、窓高さ上限値以下かつ窓高さ下限値以上であれば、窓高さの検出に成功したと判定する。図8において上述のように検出される影高さが、白画素が連続する範囲に該当し、図7Bのy2~y4の範囲やy5~y3の範囲が、搬送方向D1において影高さを挟む黒画素が連続する範囲に該当する。そして、図7Bのy2~y3の範囲が合計高さに該当する。また、窓高さ検出処理によれば、制御部15は、2値画像データの検出基準位置であるX座標=x1の画素を搬送方向D1に沿って走査することにより、黒画素が連続する範囲や、白画素が連続する範囲といった、同一色の画素が連続する範囲を認識する。
【0080】
6.窓幅検出処理の詳細:
図9は、ステップS350の窓幅検出処理をフローチャートにより示している。窓幅検出処理を窓幅検出工程とも言う。
ステップS800では、制御部15は、窓幅検出のリトライ回数を0に初期化する。
ステップS810では、制御部15は、窓幅検出を実行するためのY座標を設定する。具体的には、Y座標=窓部先端Y座標+オフセット値+リトライ回数、とする。窓部先端Y座標は、窓高さ検出処理のステップS440において検出済みである。窓幅の検出対象の窓部が第1窓部24であれば、制御部15は、第1窓部24の先端のY座標を採用する。
【0081】
オフセット値は、影の影響による白画素を避けて窓幅を検出するための所定距離であり、仕様上の窓高さや想定される影高さに基づいて予め決められている。オフセット値を用いることで、2値画像データにおける、窓高さの検出に成功したときの合計高さの搬送方向D1の下流端、つまり窓部の先端のY座標から、上流に向けて所定距離以上を空けた位置で、窓幅の検出を行うことができる。Y座標の設定のために加算するリトライ回数は、その時点のリトライ回数分の画素数と考えてよい。ステップS800の直後のステップS810においては、当然、リトライ回数は0である。
【0082】
窓幅検出処理における検出開始のX座標は、窓高さ検出処理と同じ検出基準位置x1である。本実施形態では、幅方向D2を分かり易く左右方向とも呼ぶ、また、幅方向D2の一端側、他端側を、左側、右側とも言う。ステップS820では、制御部15は、検出基準位置x1から幅方向D2の左側に向かって第1色の画素が連続する範囲を検出する左側窓幅検出処理を行う。なお、右側と左側とのどちらを先に実行するかは重要ではない。
【0083】
ステップS830では、制御部15は、ステップS820において1以上の窓幅を検出できたか否かにより処理を分岐する。窓幅の単位も画素数とする。制御部15は、ステップS820において1以上の窓幅を検出できた場合は、ステップS830の“Yes”の判定からステップS840へ進み、ステップS820において窓幅を検出できなかった場合は、ステップS830の“Nо”の判定からステップS860へ進む。
【0084】
ステップS840では、制御部15は、検出基準位置x1から幅方向D2の右側に向かって第1色の画素が連続する範囲を検出する右側窓幅検出処理を行う。
ステップS850では、制御部15は、ステップS820,S840の結果として、所定の窓幅上限値以下かつ所定の窓幅下限値以上の窓幅が検出できたか否かを判定し、窓幅上限値以下かつ窓幅下限値以上の窓幅が検出できた場合は“Yes”の判定からステップS890へ進む。一方、窓幅上限値以下かつ窓幅下限値以上の窓幅が検出できなかった場合は、ステップS850の“Nо”の判定からステップS860へ進む。
【0085】
窓幅上限値および窓幅下限値は、CS20における仕様上の窓幅に基づいて予め決められた値であり、2値画像データから検出される窓幅に対して、正しい窓幅として認めることができる許容範囲を示している。
ステップS890では、制御部15は、現在の検出対象としている窓部の窓幅について検出成功と決定し、図5のフローチャートに復帰する。ステップS890または後述のステップS880の決定が、そのまま図5のステップS360の判定に反映される。
【0086】
ステップS860では、制御部15は、リトライ回数をインクリメントする。つまり、現在のリトライ回数に1を加えてリトライ回数を更新する。
ステップS870では、制御部15は、更新後のリトライ回数が所定の上限回数以下であるか否かを判定する。上限回数は予め決まっている。更新後のリトライ回数が上限回数以下であれば、制御部15は、ステップS870の“Yes”の判定からステップS810へ進む。一方、更新後のリトライ回数が上限回数を超える場合は、制御部15は、ステップS870の“Nо”の判定からステップS880へ進む。
ステップS880では、制御部15は、現在の検出対象としている窓部の窓幅について検出失敗と決定し、図5のフローチャートに復帰する。
【0087】
図10は、ステップS820の左側窓幅検出処理をフローチャートにより示している。
ステップS900では、制御部15は、現在位置の画素を取得する。ステップS820における最初のステップS900の時点では、検出基準位置であるX座標=x1およびステップS810で設定したY座標により特定される位置を、現在位置とする。
【0088】
ステップS910では、制御部15は、現在位置の画素が黒画素であるか否かにより処理を分岐する。制御部15は、現在位置の画素が黒画素であれば、ステップS910の“Yes”の判定からステップS920へ進み、現在位置の画素が白画素であれば、ステップS910の“Nо”の判定からステップS950へ進む。
ステップS920では、制御部15は、窓幅をインクリメントする。図10のフローチャートにおける窓幅の初期値は0であるため、初回のステップS920では、窓幅を0から1へ更新する。
【0089】
ステップS930では、制御部15は、現在位置のX座標を左へ1画素移動して現在位置を更新する。ここでは、XY座標系においては、X軸のプラス側を右、X軸のマイナス側を左と捉える。
ステップS940では、制御部15は、現在位置が窓幅の探索範囲の左端に達したか否かを判定する。窓幅の探索範囲とは、CS20の仕様上の窓幅に基づいて予め決められた幅方向D2における距離であり、1つの窓部の窓幅を検出するために走査する距離として必要十分な距離である。制御部15は、窓幅の探索範囲の中央位置を検出基準位置に一致させて設定して、ステップS940や後述のステップS1040の判定を行えばよい。
【0090】
制御部15は、現在位置が窓幅の探索範囲の左端に達した場合は、窓幅の検出をこれ以上続けても、窓幅を正しく検出することはできないため、ステップS940の“Yes”の判定で図10のフローチャートを終了し、図9のフローチャートに復帰する。制御部15は、現在位置が窓幅の探索範囲の左端に達していない場合は、ステップS940の“Nо”の判定からステップS900に戻る。
【0091】
ステップS950では、制御部15は、窓幅が1以上であるか否かを判定し、窓幅が1以上であれば“Yes”の判定からステップS960へ進む。一方、ステップS950の時点で窓幅が0であれば、制御部15は、ステップS950の“Nо”の判定で図10のフローチャートを終了し、図9のフローチャートに復帰する。
【0092】
ステップS960では、制御部15は、現在位置のX座標+1を、窓部の左端のX座標に決定した上で、図10のフローチャートを終了し、図9のフローチャートに復帰する。ステップS960における現在位置は白画素であるため、この白画素の右隣りの画素位置を、窓部の左端のX座標に決定する。制御部15は、このような左側窓幅検出処理をステップS960で終えることができた場合に、ステップS830において、窓幅は1以上すなわち“Yes”と判定する。一方、左側窓幅検出処理をステップS940の“Yes”やステップS950の“Nо”で終えた場合は、ステップS830において“Nо”と判定する。
【0093】
図11は、ステップS840の右側窓幅検出処理をフローチャートにより示している。
ステップS1000では、制御部15は、現在位置の画素を取得する。ステップS840における最初のステップS1000の時点では、検出基準位置x1+1およびステップS810で設定したY座標により特定される位置を、現在位置とする。検出基準位置x1およびステップS810で設定したY座標により特定される位置については、左側窓幅検出処理により黒画素であることが確認済みであるため、右側窓幅検出処理では、この黒画素の右隣りの画素から処理を開始する。
【0094】
ステップS1010では、制御部15は、現在位置の画素が黒画素であるか否かにより処理を分岐する。制御部15は、現在位置の画素が黒画素であれば、ステップS1010の“Yes”の判定からステップS1020へ進み、現在位置の画素が白画素であれば、ステップS1010の“Nо”の判定からステップS1050へ進む。
【0095】
ステップS1020では、制御部15は、窓幅をインクリメントする。制御部15は、同じY座標で実行済みの左側窓幅検出処理でステップS920においてカウントした窓幅を、右側窓幅検出処理のステップS1020に引き継いで、さらにインクリメントしていく。このような窓幅は、幅方向D2において第1色の画素が連続する範囲の長さである「第1色幅」に該当する。また、ステップS1020で処理される窓幅は、検出基準位置から幅方向D2の一端側に向かって第1色の画素が連続する範囲と、検出基準位置から幅方向D2の他端側に向かって第1色の画素が連続する範囲とを合わせた長さである。
【0096】
ステップS1030では、制御部15は、現在位置のX座標を右へ1画素移動して現在位置を更新する。
ステップS1040では、制御部15は、現在位置が窓幅の探索範囲の右端に達したか否かを判定する。制御部15は、現在位置が窓幅の探索範囲の右端に達した場合は、窓幅の検出をこれ以上続けても、窓幅を正しく検出することはできないため、ステップS1040の“Yes”の判定で図11のフローチャートを終了し、図9のフローチャートに復帰する。制御部15は、現在位置が窓幅の探索範囲の右端に達していない場合は、ステップS1040の“Nо”の判定からステップS1000に戻る。
【0097】
ステップS1050では、制御部15は、現在位置のX座標-1を、窓部の右端のX座標に決定した上で、図11のフローチャートを終了し、図9のフローチャートに復帰する。ステップS1050における現在位置は白画素であるため、この白画素の左隣りの画素位置を、窓部の右端のX座標に決定する。制御部15は、このような右側窓幅検出処理をステップS1050で終えることができた場合に、ステップS850において、窓幅が窓幅上限値以下かつ窓幅下限値上であるか否かを判定する。一方、右側窓幅検出処理をステップS1040の“Nо”で終えた場合は、ステップS850において即“Nо”と判定する。
【0098】
図12Aは、2値画像データの一部をXY座標系において例示している。図12Aが示す2値画像データは図7Bと同じであるため、これまでと同じ説明は省略する。図12Aを参照して、窓幅検出処理の流れを説明する。先ず、リトライ回数=0のとき、制御部15は、ステップS810において、窓部の先端のY座標であるy2にオフセット値を加えて、窓幅検出を実行するためのY座標=y7を設定する。つまり、y2からy7までの距離がオフセット値である。これにより、制御部15は、ステップS820やステップS840では、Y座標=y7のライン上で現在位置を左や右に移動させて窓幅を検出する。図12Aの例では、オフセット値の効果により、Y座標=y7のラインは影2を通過しない位置となっている。
【0099】
Y座標=y7として実行した窓幅検出の結果、仮にステップS860へ進んだ場合は、制御部15は、リトライ回数の上限を遵守しつつ、リトライ回数の増加毎にY座標の設定をプラス側へ変更して、ステップS820以下をリトライ、すなわち再度実行する。図12Aでは、リトライ時に現在位置を左右に移動するためのラインを、Y座標=y7よりもY軸プラス側に1点鎖線や2点鎖線で例示している。
【0100】
図12Bは、2値画像データの一部をXY座標系において例示している。図12Bは、図12Aと比べると、第1窓部24等の読取結果が、X軸、Y軸に対して傾いている点で異なる。これは、対象物が搬送方向D1に対して傾いた状態で搬送部12により搬送されたことが原因と考えられる。図12Bを参照して、窓幅検出処理の流れを説明する。リトライ回数=0のとき、窓幅検出を実行するためのY座標=y7が設定されることは、図12Aで説明した通りである。しかしながら図12Bの例では、Y座標=y7のラインの一部が、第1窓部24内の影2を通過している。そのため、Y座標=y7として実行するステップS820,S840の窓幅検出では、ステップS850の判定で“Yes”となる窓幅が、検出されない可能性が高い。
【0101】
このような状況に鑑みて、上述したように制御部15は、ステップS810でY座標を設定し直してステップS820以下をリトライする。つまり、制御部15は、窓幅上限値以下かつ窓幅下限値以上の第1色幅を検出する処理を、上限回数以下で、2値画像データ内で搬送方向D1における位置を変えて繰り返し実行する。そのため、図12Bのように読取結果に傾きが生じている場合等にも、窓部の窓幅を正確に検出する可能性を高めることができる。
【0102】
7.まとめ:
このように本実施形態によれば、画像読取装置10は、原稿を挟むための範囲が透明な2枚のシート21,22が周縁部の一部で接合された接合部23を有するCS20を所定の搬送方向Dに沿って搬送可能な搬送部12と、搬送部12が搬送する対象物を読み取り可能な読取部13と、読取部13による対象物の読取結果である画像データを取得する制御部15と、を備え、接合部23は、光を透過させる窓部を有する。制御部15は、画像データに対して、窓部の読取結果である所定色を第1色に変換し、所定色以外の色を第2色に変換する2値化処理を施した2値画像データに基づいて、搬送方向D1における窓部の長さである窓高さを検出する窓高さ検出処理と、搬送方向D1に交差する幅方向D2における窓部の長さである窓幅を検出する窓幅検出処理と、を実行可能である。窓高さ検出処理では、搬送方向D1において第2色の画素が連続する範囲と、当該範囲を搬送方向D1において挟む第1色の画素が連続する範囲と、を合わせた合計高さが、所定の窓高さ上限値以下かつ所定の窓高さ下限値以上である場合に、窓高さの検出に成功したと判定し、窓幅検出処理では、幅方向D2において第1色の画素が連続する範囲の長さである第1色幅が、所定の窓幅上限値以下かつ所定の窓幅下限値以上である場合に、窓幅の検出に成功したと判定し、窓高さの検出に成功し、かつ、窓幅の検出に成功した場合に、対象物がCS20であると判定し、窓高さの検出または窓幅の検出の少なくとも一方に成功しなかった場合に、対象物がCS20ではないと判定する。
【0103】
前記構成によれば、制御部15は、2値画像データ内に搬送方向D1において第2色の画素が連続する範囲が有っても、当該範囲と、当該範囲を搬送方向D1において挟む第1色の画素が連続する範囲とを合わせた合計高さが、窓高さ上限値以下かつ窓高さ下限値以上であれば、窓高さの検出に成功したと判定する。これにより、影の影響で、本来窓部の読取結果であるべき範囲が分断されていても、窓高さを正確に検出し、CSであることの判定、検出の精度を向上させることができる。
【0104】
また、本実施形態によれば、制御部15は、窓高さ検出処理では、搬送方向D1において第1色の画素が連続する範囲の長さである第1色高さが、窓高さ上限値以下かつ窓高さ下限値以上である場合も窓高さの検出に成功したと判定する。
前記構成によれば、制御部15は、第1色高さに応じて、窓高さの検出に成功したと判定することができる。
【0105】
また、本実施形態によれば、制御部15は、幅方向D2における窓部の中央位置を予め定義する位置情報に基づいて、2値画像データ内で幅方向D2における検出基準位置を決定し、窓高さ検出処理では、2値画像データの検出基準位置の画素を搬送方向D1に沿って走査することにより、同一色の画素が連続する範囲を認識する、としてもよい。
前記構成によれば、搬送される対象物に多少の位置ずれや傾きが有ったとしても、制御部15は、対象物がCS20であればほぼ確実に窓部の読取結果の範囲を搬送方向D1に通過する位置で、第1色の画素が連続する範囲や第2色の画素が連続する範囲を認識することができる。
【0106】
また、本実施形態によれば、制御部15は、窓幅検出処理では、検出基準位置から幅方向D2の一端側に向かって第1色の画素が連続する範囲と、検出基準位置から幅方向D2の他端側に向かって第1色の画素が連続する範囲とを合わせた長さを、第1色幅とする、としてもよい。
前記構成によれば、単純に幅方向D2の一端側から他端側に沿って、或いはその逆向きに画素を走査して、窓幅の両端を検出しようとする場合と比較して、窓部の近傍に存在する窓部以外の対象を窓部として誤検出する可能性を、低くすることができる。窓部の近傍に存在する窓部以外の対象とは、接合部23に印刷されている図柄や文字である。
【0107】
また、本実施形態によれば、制御部15は、窓幅検出処理では、2値画像データにおける、窓高さの検出に成功したときの合計高さの搬送方向D1の下流端から、搬送方向D1の上流に向けて所定距離以上を空けた位置で、第1色幅を取得するとしてもよい。
前記構成によれば、制御部15は、窓部の先端から上流に向かってオフセットした位置で第1色幅を取得することにより、影の影響で第2色の画素が集まった位置で第1色幅を取得しようとすることを、避けることができる。なお、窓高さの検出に成功したときの合計高さの搬送方向D1の下流端は、窓高さの検出に成功したときの第1色高さの搬送方向D1の下流端、と読み替えてもよい。
【0108】
また、本実施形態によれば、制御部15は、窓幅検出処理では、窓幅上限値以下かつ窓幅下限値以上の第1色幅を検出する処理を、所定の上限回数以下で、2値画像データ内で搬送方向D1における位置を変えて繰り返し実行し、窓幅上限値以下かつ窓幅下限値以上の第1色幅を検出できた場合に、窓幅の検出に成功したと判定するとしてもよい。
前記構成によれば、上限回数の制限下で、2値画像データ内で搬送方向D1における位置を変えて第1色幅の検出を繰り返すことで、窓幅として正確な第1色幅を検出できる可能性を高めることができる。
【0109】
また、本実施形態によれば、接合部23は、窓部として位置が異なる第1窓部24および第2窓部25を有し、制御部15は、第1窓部24に対する窓高さ検出処理および窓幅検出処理により窓高さおよび窓幅の検出に成功し、かつ、第2窓部25に対する窓高さ検出処理および窓幅検出処理により窓高さおよび窓幅の検出に成功した場合に、対象物がCS20であると判定する、としてもよい。
前記構成によれば、2つの窓部それぞれの窓高さおよび窓幅の検出に成功したことをCS20と判定する条件にすることで、CS20の判定精度をより高めることができる。
なお、制御部15が予め接合部23における窓部の数やサイズや位置関係を認識している限り、接合部23が有する窓部の数は3つ以上であってもよいし、窓部同士の位置関係は図2に示す態様でなくてもよい。
【0110】
本実施形態は、装置以外にも、装置が実行する方法を発明として開示する。
つまり、原稿を挟むための範囲が透明な2枚のシート21,22が周縁部の一部で接合された接合部23を有するCS20を所定の搬送方向D1に沿って搬送可能な搬送部12と、搬送部12が搬送する対象物を読み取り可能な読取部13と、を備える画像読取装置10が実行するCSの検出方法を開示する。CSの検出方法によれば、接合部23は、光を透過させる窓部を有し、当該方法は、読取部13による対象物の読取結果である画像データに対して、窓部の読取結果である所定色を第1色に変換し、所定色以外の色を第2色に変換して2値画像データを生成する2値化工程と、2値画像データに基づいて、搬送方向D1における窓部の長さである窓高さを検出する窓高さ検出工程と、2値画像データに基づいて、搬送方向D1に交差する幅方向D2における窓部の長さである窓幅を検出する窓幅検出工程と、を備え、窓高さ検出工程では、搬送方向D1において第2色の画素が連続する範囲と、当該範囲を搬送方向D1において挟む第1色の画素が連続する範囲と、を合わせた合計高さが、所定の窓高さ上限値以下かつ所定の窓高さ下限値以上である場合に、窓高さの検出に成功したと判定し、窓幅検出工程では、幅方向D2において第1色の画素が連続する範囲の長さである第1色幅が、所定の窓幅上限値以下かつ所定の窓幅下限値以上である場合に、窓幅の検出に成功したと判定し、さらに、窓高さの検出に成功し、かつ、窓幅の検出に成功した場合に、対象物がCS20であると判定し、窓高さの検出または窓幅の検出の少なくとも一方に成功しなかった場合に、対象物がCS20ではないと判定するCS検出工程を備える。
【0111】
本実施形態は、さらに以下のような特徴を有する。
上述したように、画像読取装置10は、原稿の重送を検出する重送検出部14を備える。制御部15は、対象物がCS20であると判定した場合は、重送検出部14に重送の検出をさせず、対象物がCS20ではないと判定した場合は、重送検出部14に重送の検出をさせるとしてもよい。つまり、制御部15は、図4のフローチャートをステップS190で終えた場合は、重送検出部14の機能を無効化し、図4のフローチャートをステップS200で終えた場合は、重送検出部14の機能を有効なままとする。
このような構成によれば、CS20の搬送中に誤って重送と検出してしまうことを、回避することができる。
【0112】
制御部15は、対象物がCS20であると判定した場合、画像データのうち接合部23の読取結果に該当する領域を削除し、削除後に残った画像データを出力する、としてもよい。つまり、制御部15は、図4のフローチャートをステップS190で終えた場合は、読取部13から取得した、対象物の読取結果としての画像データのうち、接合部23の読取結果に該当する領域を削除する。接合部23のサイズや位置は既知であるため、このような削除は容易である。このような構成によれば、不要な接合部23の読取結果を取り除き、実質的に原稿のみの読み取り結果となった画像データを出力することができる。
【0113】
ここで言う出力とは、例えば、画像読取装置10内外のメモリーや記憶装置への保存であったり、画像読取装置10が有線または無線で通信可能な外部のコンピューターへの転送であったりする。また、図1では表現していないが、画像読取装置10は、いわゆるコピー機であってもよく、上述のように削除後に残った画像データを用紙へ印刷してコピー出力する構成であってもよい。むろん、制御部15は、上述のように削除後に残った画像データを表示画面に出力してもよい。
【0114】
制御部15は、2値画像データに基づいて、搬送方向D1に沿って第2色の画素が連続する縦筋の有無を判定する縦筋判定処理を実行し、幅方向D2における、縦筋が有ると判定された位置を避けて窓高さ検出処理を行うとしてもよい。
縦筋は、例えば、イメージセンサーに付着したゴミの影響で画像データに発生し、2値化処理の結果、2値画像データには白画素による線として現れる。このような縦筋が窓部を縦断していると、窓部を正確に把握できない虞がある。
【0115】
縦筋判定処理は、縦筋の有無を判定できればどのような方法であってもよい。例えば、図6の窓高さ検出処理において、一度もステップS420で黒画素と判定することなく、ステップS460“Nо”、ステップS480“Nо” ステップS420“Nо”のサイクルを繰り返した末にステップS480で“Yes”と判定したとする。この場合、制御部15は、現在の窓高さ検出のための位置であるX座標=x1には縦筋が有ると判定する。そこで、制御部15は、x1とは異なるX座標、例えば、図12Aに示すX座標=x2を新たな位置として設定し、この位置で窓高さ検出処理を開始すればよい。このように設定したX座標にも縦筋が有れば、再度、窓高さ検出のための位置を設定すればよい。このような構成によれば、縦筋の影響で窓高さを検出できないという不都合を、回避することができる。
【0116】
また、縦筋が発生している場合は、窓幅としての黒画素の幅方向D2における連続も、縦筋により途切れている。そこで、制御部15は、縦筋が発生している場合は、窓幅検出処理においては、縦筋に該当するX座標は白画素であっても黒画素と見なして、窓幅の検出を行えばよい。このような構成によれば、縦筋の影響で窓幅を正しく検出できないという不都合を、回避することができる。
【0117】
画像読取装置10は、一台の装置ではなく、通信可能に接続する複数の装置により構成されるシステムであってもよい。つまり、搬送部12や読取部13を有して対象物の搬送や読取を実行するスキャナーと、スキャナーから読取結果としての画像データを取得し、画像データを解析してCS20の検出方法を実行するコンピューター等の制御装置とにより、システムが構成されていてもよい。
【符号の説明】
【0118】
2…影、10…画像読取装置、11…載置部、12…搬送部、13…読取部、14…重送検出部、15…制御部、20…CS、23…接合部、24…第1窓部、25…第2窓部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12