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

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

▶ ブラザー工業株式会社の特許一覧

特開2022-183662コンピュータプログラム、記録媒体、および、画像処理装置
<>
  • 特開-コンピュータプログラム、記録媒体、および、画像処理装置 図1
  • 特開-コンピュータプログラム、記録媒体、および、画像処理装置 図2
  • 特開-コンピュータプログラム、記録媒体、および、画像処理装置 図3
  • 特開-コンピュータプログラム、記録媒体、および、画像処理装置 図4
  • 特開-コンピュータプログラム、記録媒体、および、画像処理装置 図5
  • 特開-コンピュータプログラム、記録媒体、および、画像処理装置 図6
  • 特開-コンピュータプログラム、記録媒体、および、画像処理装置 図7
  • 特開-コンピュータプログラム、記録媒体、および、画像処理装置 図8
  • 特開-コンピュータプログラム、記録媒体、および、画像処理装置 図9
  • 特開-コンピュータプログラム、記録媒体、および、画像処理装置 図10
  • 特開-コンピュータプログラム、記録媒体、および、画像処理装置 図11
  • 特開-コンピュータプログラム、記録媒体、および、画像処理装置 図12
  • 特開-コンピュータプログラム、記録媒体、および、画像処理装置 図13
  • 特開-コンピュータプログラム、記録媒体、および、画像処理装置 図14
  • 特開-コンピュータプログラム、記録媒体、および、画像処理装置 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022183662
(43)【公開日】2022-12-13
(54)【発明の名称】コンピュータプログラム、記録媒体、および、画像処理装置
(51)【国際特許分類】
   G06V 30/14 20220101AFI20221206BHJP
【FI】
G06K9/20 340J
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2021091099
(22)【出願日】2021-05-31
(71)【出願人】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】110001058
【氏名又は名称】鳳国際弁理士法人
(72)【発明者】
【氏名】内野 俊二
(72)【発明者】
【氏名】山田 竜司
【テーマコード(参考)】
5B029
【Fターム(参考)】
5B029BB02
5B029CC29
5B029EE12
(57)【要約】      (修正有)
【課題】画像から線のオブジェクトを表す領域を適切に検出するコンピュータプログラム、記録媒体及び画像処理装置を提供する。
【解決手段】コンピュータプログラムは、対象画像データの第1ラベリング処理を実行することによって、オブジェクトを表すオブジェクト領域を検出するステップS220と、線含有条件をオブジェクト領域が満たすか否かを判断することS240、S260と、線含有条件を満たすと判断されたオブジェクト領域の画素のうち、第1方向候補条件を満たす部分領域に含まれる複数の画素を使用する第2ラベリング処理を実行することによって、第1方向線候補領域を検出し、第1方向対象条件を第1方向線候補領域が満たすか否かを判断して、第1方向対象条件を満たすと判断された第1方向線候補領域に含まれる複数の画素のそれぞれの色値を背景の色値に変更することS250、S270と、を含む。
【選択図】図4
【特許請求の範囲】
【請求項1】
画像データを処理するコンピュータのためのコンピュータプログラムであって、
読取装置によって光学的に読み取られた原稿の画像である対象画像を表す対象画像データの第1ラベリング処理を実行することによって、オブジェクトを表すJ個(Jは1以上の整数)のオブジェクト領域を検出する第1種検出機能と、
前記オブジェクト領域が線を含むオブジェクトを表すことを示す線含有条件を前記オブジェクト領域が満たすか否かを判断する第1判断機能と、
前記線含有条件を満たすと判断されたオブジェクト領域であるK個(Kは、1以上、J以下の整数)の線候補領域に含まれる複数の画素のうち、横方向と縦方向とのいずれかである第1方向に延びる線を含むことを示す第1方向候補条件を満たす部分領域に含まれる複数の画素を使用する第2ラベリング処理を実行することによって、前記第1方向に延びる線を示すオブジェクト領域の候補であるL個(Lは、1以上の整数)の第1方向線候補領域を検出する第1方向候補検出機能と、
前記第1方向線候補領域が前記第1方向に延びる線のオブジェクトを表すことを示す第1方向対象条件を前記第1方向線候補領域が満たすか否かを判断する第1方向判断機能と、
前記対象画像の複数の画素のうち、前記第1方向対象条件を満たすと判断された第1方向線候補領域に含まれる複数の画素のそれぞれの色値を背景の色値に変更する第1方向変更機能と、
をコンピュータに実現させる、コンピュータプログラム。
【請求項2】
請求項1に記載のコンピュータプログラムであって、さらに、
前記K個の線候補領域に含まれる前記複数の画素のうち、前記横方向と前記縦方向とのうちの前記第1方向とは異なる第2方向に延びる線を含むことを示す第2方向候補条件を満たす部分領域に含まれる複数の画素を使用する第3ラベリング処理を実行することによって、前記第2方向に延びる線を示すオブジェクト領域の候補であるM個(Mは、1以上の整数)の第2方向線候補領域を検出する第2方向候補検出機能と、
前記第2方向線候補領域が前記第2方向に延びる線のオブジェクトを表すことを示す第2方向対象条件を前記第2方向線候補領域が満たすか否かを判断する第2方向判断機能と、
前記対象画像の複数の画素のうち、前記第2方向対象条件を満たすと判断された第2方向線候補領域に含まれる複数の画素のそれぞれの色値を背景の色値に変更する第2方向変更機能と、
をコンピュータに実現させる、コンピュータプログラム。
【請求項3】
請求項1または2に記載のコンピュータプログラムであって、
前記線含有条件は、
前記オブジェクト領域の横方向の長さと、
前記オブジェクト領域の縦方向の長さと、
前記横方向に平行な2辺と前記縦方向に平行な2辺とで構成される矩形であって、前記オブジェクト領域を包囲する最小包囲矩形の対角線の延びる方向と、
に関連している、コンピュータプログラム。
【請求項4】
請求項3に記載のコンピュータプログラムであって、
前記線含有条件は、さらに、前記最小包囲矩形の内の画素の総数に対する前記最小包囲矩形によって包囲される前記オブジェクト領域の画素の総数の割合である画素割合に関連している、コンピュータプログラム。
【請求項5】
請求項4に記載のコンピュータプログラムであって、さらに、
色値を変更すべきでない文字を含む文字原稿の画像であって前記読取装置によって光学的に読み取られた前記文字原稿の画像である文字原稿画像を表す文字原稿画像データの第4ラベリング処理を実行することによって、前記文字のオブジェクトを表す文字オブジェクト領域を検出する第1種文字検出機能と、
前記文字オブジェクト領域を包囲する最小包囲矩形である最小文字包囲矩形の内の画素の総数に対する前記最小文字包囲矩形によって包囲される前記文字オブジェクト領域の画素の総数の割合である文字画素割合を使用して、前記文字オブジェクト領域が前記線含有条件を満たさないように前記線含有条件を決定する決定機能と、
をコンピュータに実現させる、コンピュータプログラム。
【請求項6】
請求項1から5のいずれかに記載のコンピュータプログラムであって、
前記第1方向対象条件は、
前記オブジェクト領域の横方向の長さと、
前記オブジェクト領域の縦方向の長さと、
前記横方向に平行な2辺と前記縦方向に平行な2辺とで構成される矩形であって、前記オブジェクト領域を包囲する最小包囲矩形の対角線の角度と、
に関連している、コンピュータプログラム。
【請求項7】
請求項1から6のいずれかに記載のコンピュータプログラムであって、さらに、
前記J個のオブジェクト領域に関する情報を表示装置に表示させる表示機能と、
ユーザによって選択されたオブジェクト領域であって色値を変更すべきでない領域を含むオブジェクト領域を示す選択領域データを取得する取得機能と、
前記選択領域データによって示されるオブジェクト領域に含まれる複数の画素を、前記色値の変更の対象から除外する除外機能と、
をコンピュータに実現させる、コンピュータプログラム。
【請求項8】
画像データを処理するコンピュータのためのコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記コンピュータプログラムは、
読取装置によって光学的に読み取られた原稿の画像である対象画像を表す対象画像データの第1ラベリング処理を実行することによって、オブジェクトを表すJ個(Jは1以上の整数)のオブジェクト領域を検出する第1種検出機能と、
前記オブジェクト領域が線を含むオブジェクトを表すことを示す線含有条件を前記オブジェクト領域が満たすか否かを判断する第1判断機能と、
前記線含有条件を満たすと判断されたオブジェクト領域であるK個(Kは、1以上、J以下の整数)の線候補領域に含まれる複数の画素のうち、横方向と縦方向とのいずれかである第1方向に延びる線を含むことを示す第1方向候補条件を満たす部分領域に含まれる複数の画素を使用する第2ラベリング処理を実行することによって、前記第1方向に延びる線を示すオブジェクト領域の候補であるL個(Lは、1以上の整数)の第1方向線候補領域を検出する第1方向候補検出機能と、
前記第1方向線候補領域が前記第1方向に延びる線のオブジェクトを表すことを示す第1方向対象条件を前記第1方向線候補領域が満たすか否かを判断する第1方向判断機能と、
前記対象画像の複数の画素のうち、前記第1方向対象条件を満たすと判断された第1方向線候補領域に含まれる複数の画素のそれぞれの色値を背景の色値に変更する第1方向変更機能と、
をコンピュータに実現させる、記録媒体。
【請求項9】
画像データを処理する画像処理装置であって、
読取装置によって光学的に読み取られた原稿の画像である対象画像を表す対象画像データの第1ラベリング処理を実行することによって、オブジェクトを表すJ個(Jは1以上の整数)のオブジェクト領域を検出する第1種検出部と、
前記オブジェクト領域が線を含むオブジェクトを表すことを示す線含有条件を前記オブジェクト領域が満たすか否かを判断する第1判断部と、
前記線含有条件を満たすと判断されたオブジェクト領域であるK個(Kは、1以上、J以下の整数)の線候補領域に含まれる複数の画素のうち、横方向と縦方向とのいずれかである第1方向に延びる線を含むことを示す第1方向候補条件を満たす部分領域に含まれる複数の画素を使用する第2ラベリング処理を実行することによって、前記第1方向に延びる線を示すオブジェクト領域の候補であるL個(Lは、1以上の整数)の第1方向線候補領域を検出する第1方向候補検出部と、
前記第1方向線候補領域が前記第1方向に延びる線のオブジェクトを表すことを示す第1方向対象条件を前記第1方向線候補領域が満たすか否かを判断する第1方向判断部と、
前記対象画像の複数の画素のうち、前記第1方向対象条件を満たすと判断された第1方向線候補領域に含まれる複数の画素のそれぞれの色値を背景の色値に変更する第1方向変更部と、
を備える、画像処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、画像データを処理する技術に関する。
【背景技術】
【0002】
従来から、スキャナなどの読取装置が、原稿などの読取対象物の読み取りに使用されている。また、読み取られた画像の文字認識の精度を向上するために、画像内の罫線を除去する処理が行われ得る。例えば、特許文献1は、横方向に連続した黒画素の連続部分を検出し、所定のしきい値以上の長さを有する連続部分を画像中から除去することで、罫線を除去する技術を提案している。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2000-322510号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、読み取られた画像は、罫線に加えて、表、グラフ、文字などの種々のオブジェクトを表し得る。このような画像から線のオブジェクトを表す領域を適切に検出することについては、工夫の余地があった。
【0005】
本明細書は、画像から線のオブジェクトを表す領域を検出する技術を開示する。
【課題を解決するための手段】
【0006】
本明細書に開示された技術は、以下の適用例として実現することが可能である。
【0007】
[適用例1]画像データを処理するコンピュータのためのコンピュータプログラムであって、読取装置によって光学的に読み取られた原稿の画像である対象画像を表す対象画像データの第1ラベリング処理を実行することによって、オブジェクトを表すJ個(Jは1以上の整数)のオブジェクト領域を検出する第1種検出機能と、前記オブジェクト領域が線を含むオブジェクトを表すことを示す線含有条件を前記オブジェクト領域が満たすか否かを判断する第1判断機能と、前記線含有条件を満たすと判断されたオブジェクト領域であるK個(Kは、1以上、J以下の整数)の線候補領域に含まれる複数の画素のうち、横方向と縦方向とのいずれかである第1方向に延びる線を含むことを示す第1方向候補条件を満たす部分領域に含まれる複数の画素を使用する第2ラベリング処理を実行することによって、前記第1方向に延びる線を示すオブジェクト領域の候補であるL個(Lは、1以上の整数)の第1方向線候補領域を検出する第1方向候補検出機能と、前記第1方向線候補領域が前記第1方向に延びる線のオブジェクトを表すことを示す第1方向対象条件を前記第1方向線候補領域が満たすか否かを判断する第1方向判断機能と、前記対象画像の複数の画素のうち、前記第1方向対象条件を満たすと判断された第1方向線候補領域に含まれる複数の画素のそれぞれの色値を背景の色値に変更する第1方向変更機能と、をコンピュータに実現させる、コンピュータプログラム。
【0008】
この構成によれば、対象画像データの第1ラベリング処理を実行することによってJ個のオブジェクト領域が検出され、線含有条件を満たすと判断されたオブジェクト領域であるK個の線候補領域に含まれる複数の画素のうち第1方向候補条件を満たす部分領域に含まれる複数の画素を使用する第2ラベリング処理を実行することによってL個の第1方向線候補領域が検出され、第1方向対象条件を満たすと判断された第1方向線候補領域に含まれる複数の画素のそれぞれの色値が背景の色値に変更されるので、対象画像から直接的に線のオブジェクトを表す領域が検出される場合と比べて、線のオブジェクトを表す領域を適切に検出できる。
【0009】
なお、本明細書に開示の技術は、種々の態様で実現することが可能であり、例えば、画像処理方法および画像処理装置、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体(例えば、一時的ではない記録媒体)、等の形態で実現することができる。
【図面の簡単な説明】
【0010】
図1】システム1000の構成を示すブロック図である。
図2】読取画像処理の例を示すフローチャートである。
図3】(A)は、読取画像の例を示している。(B)は、ラベル画像の例を示している。
図4】線除去処理の例を示すフローチャートである。
図5】線候補領域の判断処理の例を示すフローチャートである。
図6】(A)-(D)は、オブジェクト領域の例を示す説明図である。
図7】(A)は、線候補領域画像の例を示す説明図である。(B)は、ラベル画像の例を示している。(C)は、ラベル画像の例を示している。
図8】横線除去処理の例を示すフローチャートである。
図9】横線除去処理の例を示すフローチャートである。
図10】(A)-(D)は、注目線候補領域の処理の例を示す説明図である。
図11】縦線除去処理の例を示すフローチャートである。
図12】縦線除去処理の例を示すフローチャートである。
図13】線除去画像の例を示している。
図14】条件決定処理の例を示すフローチャートである。
図15】線除去処理の別の実施例を示すフローチャートである。
【発明を実施するための形態】
【0011】
A.第1実施例:
A1.システム1000の構成:
図1は、システム1000の構成を示すブロック図である。このシステム1000は、複合機200と、ユーザ端末500と、を備えている。複合機200とユーザ端末500とは、ネットワークNTに接続されている。ネットワークNTは、いわゆるローカルエリアネットワークである。複合機200とユーザ端末500とは、ネットワークNTを介して、互いに通信可能である。なお、ネットワークNTは、いわゆるインターネットを含んでよい。
【0012】
複合機200は、制御部299と、表示部240と、操作部250と、通信インタフェース270と、読取実行部280と、印刷実行部290と、を備えている。制御部299は、プロセッサ210と、記憶装置215と、を備えている。これらの要素は、バスを介して互いに接続されている。記憶装置215は、揮発性記憶装置220と、不揮発性記憶装置230と、を含んでいる。
【0013】
表示部240は、液晶ディスプレイ、有機ELディスプレイなどの、画像を表示するように構成された装置である。操作部250は、表示部240上に重ねて配置されたタッチパネル、ボタン、レバーなどの、ユーザによる操作を受け取るように構成された装置である。ユーザは、操作部250を操作することによって、種々の指示を複合機200に入力可能である。通信インタフェース270は、他の装置と通信するためのインタフェースである(例えば、USBインタフェース、有線LANインタフェース、IEEE802.11の無線インタフェース)。本実施例では、通信インタフェース270は、ネットワークNTに接続されている。
【0014】
読取実行部280は、CCDやCMOSなどの光電変換素子を用いて光学的に原稿等の対象物を読み取るように構成された読取装置である。読取実行部280は、読み取った画像(「読取画像」と呼ぶ)を表す読取画像データを生成する(例えば、RGBのビットマップデータ)。
【0015】
印刷実行部290は、所定の方式(例えば、レーザ方式や、インクジェット方式)で、用紙(印刷媒体の一例)上に印刷材を用いて画像を印刷する装置である。印刷実行部290は、プロセッサ210の制御に従って、印刷を実行する。
【0016】
プロセッサ210は、データ処理を行うように構成された装置であり、例えば、CPUである。揮発性記憶装置220は、例えば、DRAMであり、不揮発性記憶装置230は、例えば、フラッシュメモリである。
【0017】
不揮発性記憶装置230は、プログラム232を格納している。プロセッサ210は、プログラム232を実行することによって、複合機200を制御する種々の機能を実現する。プロセッサ210は、プログラム232の実行に利用される種々の中間データを、記憶装置(例えば、揮発性記憶装置220、不揮発性記憶装置230のいずれか)に、一時的に格納する。本実施例では、プログラム232は、複合機200の製造者によって、ファームウェアとして、不揮発性記憶装置230に予め格納されている。
【0018】
ユーザ端末500は、複合機200を使用して画像処理を実行する装置である(例えば、スマートフォン、タブレットコンピュータ等)。ユーザ端末500は、プロセッサ510と、記憶装置515と、表示部540と、操作部550と、通信インタフェース570と、を備えている。これらの要素は、バスを介して互いに接続されている。記憶装置515は、揮発性記憶装置520と、不揮発性記憶装置530と、を含んでいる。
【0019】
表示部540は、画像を表示する装置であり、例えば、液晶ディスプレイである。操作部550は、ユーザによる操作を受け取る装置であり、例えば、表示部540上に重ねて配置されたタッチパネルを含んでいる。ユーザは、操作部550を操作することによって、種々の指示をユーザ端末500に入力可能である。通信インタフェース570は、他の装置と通信するためのインタフェースである(例えば、有線LANインタフェース、IEEE802.11の無線インタフェース)。本実施例では、通信インタフェース570は、ネットワークNTに接続されている。
【0020】
プロセッサ510は、データ処理を行うように構成された装置であり、例えば、CPUである。揮発性記憶装置520は、例えば、DRAMであり、不揮発性記憶装置530は、例えば、フラッシュメモリである。
【0021】
不揮発性記憶装置530は、プログラム531を格納している。プロセッサ510は、プログラム531を実行することによって、画像処理アプリケーションとしての機能を実行する。プロセッサ510は、プログラム531の実行に利用される種々の中間データを、記憶装置(例えば、揮発性記憶装置520、または、不揮発性記憶装置530)に、一時的に格納する。プロセッサ510によって実行される処理の詳細については、後述する。なお、本実施例では、画像処理アプリケーションのプログラム531は、図示しないサーバによって提供される。これに代えて、プログラム531は、メモリーカードなどの携帯型の記録媒体によって提供されてよい。
【0022】
A2.読取画像処理:
図2は、読取画像処理の例を示すフローチャートである。本実施例では、ユーザ端末500は、複合機200に原稿等の対象物を読み取らせ、複合機200から読取画像データを取得する。そして、ユーザ端末500は、読取画像の線除去処理と文字認識処理を実行する。ユーザ端末500による処理は、プロセッサ510がプログラム531を実行することによって、行われる。
【0023】
S110では、ユーザは、原稿を、複合機200(図1)の読取実行部280のうちの読取対象物を配置すべき部分に、配置する(例えば、原稿が、読取実行部280の原稿台に載せられる)。そして、ユーザは、ユーザ端末500の操作部550を操作し、処理開始の指示を入力する。ユーザ端末500のプロセッサ510は、複合機200に読取指示を供給する。複合機200のプロセッサ210は、読取指示に応じて、読取実行部280に原稿を読み取らせる。読取実行部280は、原稿を読取、読み取った原稿の画像を表す読取画像データを生成する。
【0024】
S120では、複合機200のプロセッサ210は、読取実行部280から読取画像データを取得し、取得した読取画像データをユーザ端末500に送信する。ユーザ端末500のプロセッサ510は、複合機200から読取画像データを取得する。
【0025】
図3(A)は、読取画像データによって表される読取画像の例を示している。読取画像I1は、横方向Dxに平行な2辺と、横方向Dxに垂直な縦方向Dyに平行な2辺と、を有する矩形状の画像である。読取画像I1は、横方向Dxと縦方向Dyとに沿ってマトリクス状に並ぶ複数の画素のそれぞれの色値(本実施例では、R(赤)、G(緑)、B(青)の成分値)によって、表されている。
【0026】
図3(A)の読取画像I1は、3本の罫線OL1-OL3と、タイトルOtx1と、文字列群Otx2と、表Otbと、棒グラフObgと、を含む複数のオブジェクトを表している。表Otbは、セルを区切る線OL4と、各セルに配置された文字列と、を含んでいる。棒グラフObgは、軸と棒を示す線OL5と、目盛りの文字列と、を含んでいる。文字の近くに配置された線は、文字の認識精度を低下させ得る。S130(図2)では、ユーザ端末500のプロセッサ510は、読取画像I1から線を除去する線除去処理を実行する(詳細は、後述)。S140では、プロセッサ510は、線が除去された残りの画像を使用して、文字認識処理を実行する。文字認識処理は、画像中の文字を認識する種々の処理であってよい。例えば、Google社の「Tesseract」と呼ばれるOCRエンジンが、採用されてよい。プロセッサ510は、文字認識処理によって認識された文字を示す文字データを、記憶装置515(例えば、不揮発性記憶装置530)に、格納する。そして、プロセッサ510は、図2の処理を終了する。
【0027】
図4は、線除去処理の例を示すフローチャートである。S210では、ユーザ端末500のプロセッサ510は、ユーザの指示に従って、除去すべき線の方向を決定する(除去対象方向とも呼ぶ)。ユーザは、操作部550を操作することによって、「横方向」と「縦方向」と「両方」とから、除去対象方向を選択できる。
【0028】
S220では、プロセッサ510は、読取画像データのラベリング処理を実行することによって、オブジェクト領域を示すラベリングデータを生成する。本実施例では、プロセッサ510は、読取画像データの二値化処理を実行することによって、読取画像I1の複数の画素を、オブジェクトを示すオブジェクト画素と、背景を示す背景画素と、に分類する。そして、プロセッサ510は、連続する1以上のオブジェクト画素で構成される1つの連続領域に、1つの識別子を割り当てる。そして、プロセッサ510は、互いに離れた複数個の連続領域に、互いに異なる識別子を割り当てる。ラベルデータは、各画素の識別子を示している。以下、連続領域を、オブジェクト領域とも呼ぶ。プロセッサ510は、このようなラベリング処理によって、オブジェクト領域を検出する。
【0029】
なお、二値化処理としては、種々の処理を採用可能である。本実施例では、プロセッサ510は、各画素の色値(ここでは、RGB値)から輝度値を算出し、閾値未満の輝度値を有する画素をオブジェクト画素に分類し、閾値以上の輝度値を有する画素を背景画素に分類する。閾値は、読取画像中の背景とオブジェクトとを適切に分類するように、予め実験的に決定される。これに代えて、プロセッサ510は、撮影画像データを分析することによって閾値を決定してもよい。また、二値画像のラベリング処理としては、種々の処理を採用可能である。本実施例では、いわゆる8近傍ラベリングが行われる。これに代えて、いわゆる4近傍ラベリングが行われてよい。
【0030】
図3(B)は、読取画像I1(図3(A))のラベリング処理によって得られるラベル画像の例を示している。このラベル画像I2は、オブジェクト領域OA1-OA5と、文字を示す複数のオブジェクト領域OAと、を表している。第1オブジェクト領域OA1は、タイトルOtx1の複数の文字と罫線OL1とを示している。このように、文字の近くに線が配置されている場合、文字と線とは、1個のオブジェクト領域に、含まれ得る。オブジェクト領域OA2、OA3は、罫線OL2、OL3を、それぞれ示している。第4オブジェクト領域OA4は、表Otbの線OL4を示している。第5オブジェクト領域OA5は、棒グラフObgの線OL5を示している。複数のオブジェクト領域OAは、文字列群Otx2と表Otbと棒グラフObgとに含まれる複数の文字のそれぞれを示している。このように、プロセッサ510は、ラベリング処理によって、読取画像I1に含まれるオブジェクトを示すオブジェクト領域を、取得する。
【0031】
S230(図4)では、プロセッサ510は、線候補領域の判断処理を実行する。線候補領域の判断処理は、オブジェクト領域が、線を示す領域の候補である線候補オブジェクト領域であるか否かを判断する処理である(線候補オブジェクト領域を、単に、線候補領域とも呼ぶ)。
【0032】
図5は、線候補領域の判断処理の例を示すフローチャートである。S310では、プロセッサ510は、ラベリングデータによって表されるオブジェクト領域から、未処理のオブジェクト領域を、注目オブジェクト領域として選択する。
【0033】
S320では、プロセッサ510は、注目オブジェクト領域の高さと幅とを取得する。そして、プロセッサ510は、高さと幅との一方、または、両方が、長さ閾値ThL以上であるか否かを判断する。
【0034】
図6(A)-図6(D)は、オブジェクト領域の例を示す説明図である。図6(A)-図6(D)は、オブジェクト領域OA2、OA3、OA6、OA5を、それぞれ示している。
【0035】
図6(A)のハッチングを有する第2オブジェクト領域OA2は、横方向Dxにおおよそ平行な罫線OL2を示している。矩形R2は、横方向Dxに平行な2辺と、縦方向Dyに平行な2辺と、によって形成される矩形であって、第2オブジェクト領域OA2を包囲する最小の矩形である(最小包囲矩形R2とも呼ぶ)。図中では、説明のために、最小包囲矩形R2の輪郭の全体が、第2オブジェクト領域OA2の輪郭から離れて示されている。実際には、最小包囲矩形R2の輪郭の少なくとも一部は、第2オブジェクト領域OA2の輪郭に接している(図6(B)、図6(D)についても、同様)。幅W2は、最小包囲矩形R2の横方向Dxの長さであり、高さH2は、最小包囲矩形R2の縦方向Dyの長さである。最小包囲矩形の幅と高さとは、最小包囲矩形に囲まれたオブジェクト領域の幅と高さとを、それぞれ示している。オブジェクト領域OA2が横方向Dxにおおよそ平行な罫線OL2を示す場合、幅W2は、罫線OL2の長さとおおよそ同じであり、大きい値であり得る。高さH2は、小さい値であり得る。
【0036】
図6(B)のハッチングを有する第3オブジェクト領域OA3は、縦方向Dyにおおよそ平行な罫線OL3を示している。図中には、第3オブジェクト領域OA3を含む最小包囲矩形R3の幅W3と高さH3とが示されている。オブジェクト領域OA3が縦方向Dyにおおよそ平行な罫線OL3を示す場合、高さH3は、罫線OL3の長さとおおよそ同じであり、大きい値であり得る。幅W3は、小さい値であり得る。
【0037】
図6(C)の第6オブジェクト領域OA6は、1個の文字CH6(ここでは、日本の漢字)を示している。図中には、第6オブジェクト領域OA6を含む最小包囲矩形R6の幅W6と高さH6とが示されている。オブジェクト領域OA6が文字CH6を示す場合、高さH6と幅W6との両方が、大きい値であり得る。
【0038】
図6(D)の第5オブジェクト領域OA5は、棒グラフObg(図3(A))の線OL5を示している。図中には、第5オブジェクト領域OA5を含む最小包囲矩形R5の幅W5と高さH5とが示されている。オブジェクト領域OA5が棒グラフObgの線OL5を示す場合、高さH6と幅W6との両方が、大きい値であり得る。
【0039】
S320(図5)では、プロセッサ510は、このような高さと幅とのそれぞれを、長さ閾値ThLと比較する。本実施例では、長さ閾値ThLは、予め決められている。長さ閾値ThLは、例えば、除去すべき線の長さの最小値に、設定される。
【0040】
高さと幅との両方が、長さ閾値ThL未満である場合(S320:No)、注目オブジェクト領域は、線候補領域として選択すべき線と比べて小さいオブジェクトを示している。プロセッサ510は、S360で、注目オブジェクト領域は非線候補領域であると判断し、判断結果を示す候補判断データを、記憶装置515(本実施例では、不揮発性記憶装置530)に格納する(図示省略)。そして、プロセッサ510は、S370へ移行する。
【0041】
高さと幅との一方、または、両方が長さ閾値ThL以上である場合(S320:Yes)、S330で、プロセッサ510は、最小包囲矩形の対角線の角度が、横範囲内、または、縦範囲内であるか否かを判断する。
【0042】
図6(A)-図6(D)の線DL2、DL3、DL6、DL5は、それぞれ、最小包囲矩形R2、R3、R6、R5の対角線である。角度Ag2、Ag3、Ag6、Ag5は、対角線DL2、DL3、DL6、DL5の角度である。本実施例では、対角線の角度は、横方向Dxに平行な直線と、対角線と、がなす角度のうちの鋭角を示している。従って、対角線の角度は、ゼロ度以上、90度以下の値である。
【0043】
横範囲は、対角線が横方向Dxにおおよそ平行である場合の対角線の角度の範囲である。例えば、横範囲は、ゼロ度以上、19度以下の範囲であってよい。図6(A)の罫線OL2のように、注目オブジェクト領域が横方向Dxにおおよそ平行な線を示す場合、対角線の角度は、横範囲内である。
【0044】
縦範囲は、対角線が縦方向Dyにおおよそ平行である場合の対角線の角度の範囲である。例えば、縦範囲は、71度以上、90度以下の範囲であってよい。図6(B)の罫線OL3のように、注目オブジェクト領域が縦方向Dyにおおよそ平行な線を示す場合、対角線の角度は、縦範囲内である。
【0045】
対角線の角度が横範囲内、または、縦範囲内である場合(図5:S330:Yes)、注目オブジェクト領域は、図6(A)、図6(B)のオブジェクト領域OA2、OA3のように、横方向Dxにおおよそ平行な線、または、縦方向Dyにおおよそ平行な線を示す可能性が高い。この場合、プロセッサ510は、S350で、注目オブジェクト領域は線候補領域であると判断し、判断結果を示す候補判断データを、不揮発性記憶装置530に格納する(図示省略)。そして、プロセッサ510は、S370へ移行する。本実施例では、オブジェクト領域OA2、OA3は、線候補領域であると判断される。
【0046】
対角線の角度が横範囲外、かつ、縦範囲外である場合(S330:No)、注目オブジェクト領域は、図6(C)、図6(D)のオブジェクト領域OA6、OA5のように、横方向Dxと縦方向Dyとの両方に広がるオブジェクトを示している。この場合、プロセッサ510は、S340で、画素割合が文字閾値ThT未満であるか否かを判断する。画素割合は、最小文字包囲矩形内の画素数に対するオブジェクト領域の画素数の割合である。
【0047】
図6(C)のオブジェクト領域OA6は文字CH6を示している。文字CH6を示す画素(すなわち、オブジェクト領域の画素)は、最小包囲矩形R6のおおよそ全体に亘って、分布する。従って、画素割合RPは、大きい値であり得る。オブジェクト領域が図6(C)の文字CH6とは異なる文字を示す場合も、同様に、画素割合RPは大きい値であり得る。
【0048】
図6(D)のオブジェクト領域OA5は、棒グラフObgの線OL5を示している。最小包囲矩形R5は、線と線との間に配置された背景部分を含んでいる。従って、画素割合RPは、小さい値であり得る。棒グラフObgの線OL5に限らず、オブジェクト領域が、表Otb(図3(B))の線OL4など、線を含む種々のオブジェクトを示す場合に、画素割合RPは小さい値であり得る。
【0049】
本実施例では、文字閾値ThTは、文字のオブジェクト領域と、非文字(表やグラフなど)のオブジェクト領域と、を適切に区別するように、予め実験的に決定されている(例えば、ThT=30%)。
【0050】
画素割合が文字閾値ThT未満である場合(図5:S340:Yes)、プロセッサ510は、S350で、注目オブジェクト領域は線候補領域であると判断し、候補判断データを、不揮発性記憶装置530に格納する。そして、プロセッサ510は、S370へ移行する。本実施例では、第5オブジェクト領域OA5(図6(D))は、線候補領域であると判断される。
【0051】
画素割合が文字閾値ThT以上である場合(S340:No)、プロセッサ510は、S360で、注目オブジェクト領域は非線候補領域であると判断し、候補判断データを、不揮発性記憶装置530に格納する。そして、プロセッサ510は、S370へ移行する。本実施例では、第6オブジェクト領域OA6(図6(C))は、非線候補領域であると判断される。
【0052】
S370では、プロセッサ510は、全てのオブジェクト領域が処理されたか否かを判断する。未処理のオブジェクト領域が残っている場合(S370:No)、プロセッサ510は、S310へ移行し、新たな注目オブジェクト領域の処理を実行する。全てのオブジェクト領域が処理された場合(S370:Yes)、プロセッサ510は、図5の処理、すなわち、図4のS230の処理を終了する。
【0053】
図7(A)は、ラベル画像I2(図3(B))が処理される場合の線候補領域を示す線候補領域画像の例を示す説明図である。この線候補領域画像I3によって示されるように、罫線OL1、OL2、OL3を含むオブジェクト領域OA1、OA2、OA3と、表Otbの線OL4を含む第4オブジェクト領域OA4と、棒グラフObgの線OL5を含む第5オブジェクト領域OA5とが、線候補領域であると判断されている。
【0054】
図5の実施例では、オブジェクト領域が線候補領域であると判断されるための条件は、「S320:Yes、かつ、S330:Yes」と「S320:Yes、かつ、S330:No、かつ、S340:Yes」の一方、または、両方が満たされることである。この条件は、オブジェクト領域が線を含むオブジェクト(線、表、グラフなど)を表すことを示す線含有条件の例である。
【0055】
S240(図4)では、プロセッサ510は、横線が除去対象であるか否かを判断する。S210で決定された除去対象方向が「横方向」または「両方」である場合(S250:Yes)、プロセッサ510は、S250で、横線除去処理を実行する。
【0056】
図8図9は、横線除去処理の例を示すフローチャートである。S410では、プロセッサ510は、ラベリングデータを使用して、横線抽出用画像の画像データを生成する(横画像データとも呼ぶ)。プロセッサ510は、S350、S360(図5)で説明した候補判断データを参照し、ラベル画像に含まれる複数のオブジェクト領域のうちの線候補領域を示す画像データを、横画像データとして生成する。図3(B)のラベル画像I2が処理される場合、横画像データは、図7(A)の線候補領域画像I3を示している。
【0057】
S415では、プロセッサ510は、横画像データによって表される線候補領域から、未処理の線候補領域を、注目線候補領域として選択する。
【0058】
図10(A)-図10(D)は、注目線候補領域の処理の例を示す説明図である。図10(A)のハッチングが付された領域OAxは、注目線候補領域OAxを示している。注目線候補領域OAxは、表の複数の線(線L1-L6を含む)を示している。矩形Rxは、注目線候補領域OAxを包囲する最小包囲矩形Rxである。左端RxLは、最小包囲矩形Rxの横方向Dxとは反対方向側の端である。右端RxRは、最小包囲矩形Rxの横方向Dx側の端である。
【0059】
S420(図8)では、プロセッサ510は、注目横部分領域を選択する。図10(A)には、横部分領域PAが示されている。横部分領域PAは、最小包囲矩形Rxの左端RxLから右端RxRまで、横方向Dxに向かって延びる矩形領域である。図示を省略するが、最小包囲矩形Rxは、縦方向Dyに並ぶ複数の横部分領域PAによって、形成される。すなわち、最小包囲矩形Rxは、複数の横部分領域PAに分割可能である。後述するように、プロセッサ510は、各横部分領域PA毎に、横部分領域PAが横方向Dxに延びる線を含むか否かを判断する。S420では、処理対象の横部分領域である注目横部分領域を、未処理の横部分領域から、選択する。
【0060】
S425では、プロセッサ510は、注目横部分領域に含まれる複数の処理領域のうち、注目線候補領域の画素を含む処理領域の数をカウントする。図10(A)には、横部分領域PAに含まれる複数の処理領域CAのうちの一部の複数の処理領域CAが示されている。処理領域CAは、矩形領域である。処理領域CAの横方向Dxの幅は、例えば、5画素であり、縦方向Dyの高さは、例えば、5画素である。図示を省略するが、横方向Dxに並ぶ複数の処理領域CAが、横部分領域PAを形成する。すなわち、横部分領域PAは、複数の処理領域CAに分割可能である。プロセッサ510は、複数の処理領域CAのそれぞれに関して、処理領域CAが注目線候補領域OAxの画素を含むか否かを判断する。例えば、プロセッサ510は、左端RxLから横方向Dxに向かって、1つの処理領域CAずつ順番に、処理領域CAが注目線候補領域OAxの画素を含むか否かの判断を行う。そして、プロセッサ510は、注目線候補領域OAxの画素を含む処理領域CAの数をカウントする。
【0061】
図10(A)の横部分領域PA(第1横部分領域PA1と呼ぶ)は、左端RxLから右端RxRまで、横方向Dxに延びる第1線L1を含んでいる。従って、第1横部分領域PA1の複数の処理領域CAは、それぞれ、注目線候補領域OAxの画素を含んでいる。
【0062】
図10(B)は、第1横部分領域PA1(図10(A))の隣の横部分領域PAを示している(第2横部分領域PA2と呼ぶ)。第2横部分領域PA2は、横方向Dxに延びる線を含まずに、縦方向Dyに延びる線L4-L6のそれぞれの一部分を含んでいる。従って、第2横部分領域PA2の複数の処理領域CAのうち、線L4-L6に重なる処理領域CAa、CAb、CAcは、注目線候補領域OAxの画素を含み、残りの複数の処理領域CAは、注目線候補領域OAxの画素を含まない。
【0063】
S430(図8)では、プロセッサ510は、注目横部分領域の領域割合RAが領域閾値ThP未満であるか否かを判断する。領域割合RAは、注目横部分領域に含まれる処理領域CAの総数に対する注目線候補領域OAxの画素を含む処理領域CAの数の割合である。図10(A)の第1横部分領域PA1は、横方向Dxに延びる第1線L1を含むので、第1横部分領域PA1内の多くの処理領域CAが、注目線候補領域OAxの画素を含む。従って、第1横部分領域PA1の領域割合RAは、大きい値になり得る。図10(B)の第2横部分領域PA2は、横方向Dxに延びる線を含まないので、第2横部分領域PA2内の多くの処理領域CAが、注目線候補領域OAxの画素を含まない。従って、第2横部分領域PA2の領域割合RAは、小さい値になり得る。
【0064】
本実施例では、領域閾値ThPは、横部分領域PAが横方向Dxに延びる線を含む場合に領域割合RAが領域閾値ThP以上となるように、予め実験的に決定されている(例えば、ThP=40%)。このように、領域割合RAが領域閾値ThP以上であることは、横部分領域PAが横方向Dxに延びる線を含むことを示す横方向候補条件CCxの例である。
【0065】
領域割合RAが領域閾値ThP未満である場合(S430:Yes)、S435で、プロセッサ510は、横線抽出用画像の中で、注目横部分領域の全ての画素を、線候補領域から除去する。例えば、図10(B)の第2横部分領域PA2に関しては、画素割合RPは、領域閾値ThP未満である。従って、第2横部分領域PA2内の全ての画素が、線候補領域OAxから除去される。図10(C)は、除去処理の後の線候補領域OAxを示している。第2横部分領域PA2に含まれる画素が、線候補領域OAxから除去されている。S435の後、プロセッサ510は、S440へ移行する。
【0066】
領域割合RAが領域閾値ThP以上である場合(S430:No)、プロセッサ510は、S435をスキップして、S440へ移行する。例えば、図10(A)の第1横部分領域PA1に関しては、画素割合RPは、領域閾値ThP以上である。従って、第1横部分領域PA1内の画素は、線候補領域OAxから除去されずに、維持される(図10(B)、図10(C)参照)。
【0067】
S440では、プロセッサ510は、注目線候補領域に含まれる全ての横部分領域の処理が終了したか否かを判断する。未処理の横部分領域が残っている場合(S440:No)、プロセッサ510は、S420へ移行して、新たな横部分領域の処理を実行する。
【0068】
全ての横部分領域の処理が終了した場合(S440:Yes)、S445で、プロセッサ510は、横画像データによって表される全ての線候補領域の処理が終了したか否かを判断する。未処理の線候補領域が残っている場合(S445:No)、プロセッサ510は、S415へ移行して、新たな線候補領域の処理を実行する。
【0069】
図10(D)は、処理済の線候補領域OAxを示している。図示するように、縦方向Dyに延びる線L4-L6が、線候補領域OAxから除去されている。このように、横方向Dxに延びる線を含まない横部分領域の画素は、線候補領域OAxから除去される。例えば、横部分領域が、横方向Dxに延びる線を含まずに、文字の一部分を含む場合、その文字の一部分は、除去される。横方向Dxに延びる線L1-L3は、残っている。処理済の線候補領域OAxは、線候補領域OAxの複数の画素のうち、横方向候補条件CCx(図8)を満たす横部分領域PAに含まれる複数の画素を示している。
【0070】
全ての線候補領域の処理が終了した場合(S445:Yes)、プロセッサ510は、図9のS450へ移行する。
【0071】
S450では、プロセッサ510は、処理済の横線抽出用画像を表す横画像データのラベリング処理を実行することによって、オブジェクト領域を示す横ラベリングデータを生成する。ラベリング処理の対象の横線抽出用画像では、図10(D)に示すように、横方向Dxに延びる線とは異なる部分が除去されている。従って、S450のラベリング処理は、横方向Dxに延びる線を表すオブジェクト領域を、検出可能である。例えば、図10(D)の画像からは、3本の線L1、L2、L3をそれぞれ表す3個のオブジェクト領域が、検出される。以下、S450で検出されるオブジェクト領域を、横線候補領域と呼ぶ。横ラベリングデータは、検出された横線候補領域を表している。なお、S450のラベリング処理の方法は、図4のS220の二値画像のラベリング処理の方法と、同じである。
【0072】
図7(B)は、線候補領域画像I3(図7(A))が処理される場合の横ラベリングデータによって表されるラベル画像の例を示している。ラベル画像I4は、複数の横線候補領域である複数のオブジェクト領域OA1a、OA2、OA4a、OA5aを表している。第1オブジェクト領域OA1aは、図7(A)の第1オブジェクト領域OA1からタイトルOtx1の複数の文字が除去された残りである罫線OL1を示している。第2オブジェクト領域OA2は、図7(A)の第2オブジェクト領域OA2と同じであり、横方向Dxに延びる罫線OL2を示している。複数の第4オブジェクト領域OA4aは、図7(A)の第4オブジェクト領域OA4(すなわち、表Otbの線)から複数の縦線が除去された残りである複数の横線を示している。複数のオブジェクト領域OA5aは、図7(A)の第5オブジェクト領域OA5(すなわち、棒グラフObgの線)から複数の縦線が除去された残りである複数の横線を示している。このように、オブジェクト領域のうち、横方向Dxに延びる線とは異なる要素(例えば、文字、縦線など)を示す部分が除去されている。
【0073】
S455(図9)では、プロセッサ510は、横ラベリングデータによって表される横線候補領域から、未処理の横線候補領域を、注目横線候補領域として選択する。
【0074】
S460では、プロセッサ510は、注目横線候補領域が、横対象条件を満たすか否かを判断する。横対象条件は、横線候補領域が横方向Dxに延びる線のオブジェクトを表すことを示す条件である。本実施例では、横対象条件は、以下の3個の条件C11、C12、C13の全てが満たされることである。
(第1条件C11)横線候補領域の横方向Dxの長さが、長さ閾値ThL以上である
(第2条件C12)横線候補領域の縦方向Dyの長さが、線幅閾値ThW以下である。
(第3条件C13)横線候補領域の最小包囲矩形の対角線の角度が、横範囲内である。
第1条件C11の長さ閾値ThLは、図5のS320の長さ閾値ThLと同じである。第2条件C12の線幅閾値ThWは、予め決められており、例えば、除去すべき線の幅の最大値に、設定される。第3条件C13の横範囲は、図5のS330の横範囲と同じである。これらの条件C11-C13で構成される横対象条件は、図5の線含有条件とは異なり、横方向Dxに延びる1本の線を含み、他の要素を含まないオブジェクト領域を、選択する。例えば、図10(D)の画像に関しては、3本の線L1、L2、L3をそれぞれ表す3個のオブジェクト領域が、横対象条件を満たし得る。
【0075】
注目横線候補領域が横対象条件を満たす場合(S460:Yes)、S465で、プロセッサ510は、読取画像の注目横線候補領域内の各画素の色値を、背景色値に変更する。本実施例では、背景色値は、白色に近い色を示す色値であり、予め決められている。これに代えて、プロセッサ510は、読取画像の背景部分の複数の画素のそれぞれの色値を使用して、背景色値を決定してよい(例えば、背景色値は、複数の画素の色値の平均値であってよい)。プロセッサ510は、S465の処理により、読取画像I1(図3(A))から、図7(B)に示す種々の横線を、除去する。S465の後、プロセッサ510は、S470へ移行する。
【0076】
注目横線候補領域が横対象条件を満たさない場合(S460:No)、プロセッサ510は、S465をスキップして、S470へ移行する。
【0077】
S470では、プロセッサ510は、横ラベリングデータによって表される全ての横線候補領域の処理が終了したか否かを判断する。未処理の横線候補領域が残っている場合(S470:No)、プロセッサ510は、S455へ移行して、新たな横線候補領域の処理を実行する。全ての横線候補領域の処理が終了した場合(S470:Yes)、プロセッサ510は、図8図9の処理、すなわち、図4のS250の処理を終了する。そして、プロセッサ510は、図4のS260へ移行する。
【0078】
横線が除去対象ではない場合(S240:No)、プロセッサ510は、S250をスキップして、S260へ移行する。
【0079】
S260では、プロセッサ510は、縦線が除去対象であるか否かを判断する。S210で決定された除去対象方向が「縦方向」または「両方」である場合(S260:Yes)、プロセッサ510は、S270で、縦線除去処理を実行する。
【0080】
図11図12は、縦線除去処理の例を示すフローチャートである。図8図9の横線除去処理との差異は、横方向Dxと縦方向Dyとの立場が入れ替わっている点だけである。図11図12の各ステップの符号は、図8図9の対応するステップの符号の数字の百の位を「4」から「5」に変更したものである。例えば、図11のS510は、図8のS410に対応している。図11図12の各ステップの処理は、横方向Dxと縦方向Dyとの立場が入れ替わっている点を除いて、図8図9の対応するステップの処理と同じである(詳細な説明を省略する)。
【0081】
S510では、プロセッサ510は、ラベリングデータと候補判断データとを使用して、縦線抽出用画像の画像データを生成する(縦画像データとも呼ぶ)。図3(B)のラベル画像I2が処理される場合、縦画像データは、図7(A)の線候補領域画像I3を示している。
【0082】
S520-S525では、プロセッサ510は、横方向Dxに延びる横部分領域PA(図10(A)-図10(C))に代えて、縦方向Dyに延びる縦部分領域(図示省略)の領域割合RAを算出する。そして、領域割合RAが領域閾値ThP未満である場合(S530:Yes)、S535で、プロセッサ510は、縦線抽出用画像の中で、注目縦部分領域の全ての画素を、線候補領域から除去する。例えば、図10(A)の線候補領域OAxが処理される場合、横方向Dxに延びる線L1-L3が、線候補領域OAxから除去される(図示省略)。S515-S545で、プロセッサ510は、全ての線候補領域の全ての縦部分領域を処理する。なお、処理領域CAと領域閾値ThPとは、図8図9の処理領域CAと領域閾値ThPと、それぞれ同じである。また、領域割合RAが領域閾値ThP以上であることは(S530:No)、縦部分領域が縦方向Dyに延びる線を含むことを示す縦方向候補条件CCyの例である。
【0083】
S550(図12)では、プロセッサ510は、縦線抽出用画像を表す縦画像データのラベリング処理を実行することによって、オブジェクト領域を示す縦ラベリングデータを生成する。以下、S550で検出されるオブジェクト領域を、縦線候補領域と呼ぶ。
【0084】
図7(C)は、線候補領域画像I3(図7(A))が処理される場合の縦ラベリングデータによって表されるラベル画像の例を示している。ラベル画像I5は、複数の縦線候補領域である複数のオブジェクト領域OA3、OA4b、OA5bを表している。第3オブジェクト領域OA3は、図7(A)の第3オブジェクト領域OA3と同じであり、縦方向Dyに延びる罫線OL3を示している。複数の第4オブジェクト領域OA4bは、図7(A)の第4オブジェクト領域OA4(すなわち、表Otbの線)から複数の横線が除去された残りである複数の縦線を示している。複数のオブジェクト領域OA5bは、図7(A)の第5オブジェクト領域OA5(すなわち、棒グラフObgの線)から複数の横線が除去された残りである複数の縦線を示している。このように、オブジェクト領域のうち、縦方向Dyに延びる線とは異なる要素(例えば、文字、横線など)を示す部分が除去されている。
【0085】
プロセッサ510は、S555(図12)で注目縦線候補領域を選択し、S560で、注目縦線候補領域が縦対象条件を満たすか否かを判断する。縦対象条件は、縦線候補領域が縦方向Dyに延びる線のオブジェクトを表すことを示す条件である。本実施例では、縦対象条件は、以下の3個の条件C21、C22、C23の全てが満たされることである。
(第1条件C21)縦線候補領域の縦方向Dyの長さが、長さ閾値ThL以上である
(第2条件C22)縦線候補領域の横方向Dxの長さが、線幅閾値ThW以下である。
(第3条件C23)縦線候補領域の最小包囲矩形の対角線の角度が、縦範囲内である。
長さ閾値ThLと線幅閾値ThWとは、図9のS460の長さ閾値ThLと線幅閾値ThWと、それぞれ同じである。縦範囲は、図5のS330の縦範囲と同じである。これらの条件C21-C23で構成される縦対象条件は、図5の線含有条件とは異なり、縦方向Dyに延びる1本の線を含み、他の要素を含まないオブジェクト領域を、選択する。
【0086】
注目縦線候補領域が縦対象条件を満たす場合(S560:Yes)、S565で、プロセッサ510は、読取画像の注目縦線候補領域内の各画素の色値を、背景色値に変更する。プロセッサ510は、S565の処理により、読取画像I1(図3(A))から、図7(C)に示す種々の縦線を、除去する。
【0087】
プロセッサ510は、S555-S570で、縦ラベリングデータによって表される全ての縦線候補領域を処理する。全ての縦線候補領域の処理が終了した場合(S570:Yes)、プロセッサ510は、図11図12の処理、すなわち、図4のS270の処理を終了する。そして、プロセッサ510は、図4のS280へ移行する。
【0088】
縦線が除去対象ではない場合(S260:No)、プロセッサ510は、S270をスキップして、S280へ移行する。
【0089】
S280では、プロセッサ510は、S250、S270の一方、または、両方による線除去処理済の読取画像である線除去画像を表す線除去画像データを、記憶装置515(本実施例では、不揮発性記憶装置530)に格納する。そして、プロセッサ510は、図4の処理、すなわち、図2のS130を、終了する。
【0090】
図13は、線除去画像の例を示している。この線除去画像I6は、読取画像I1(図3(A))に対して横線除去処理(S250)と縦線除去処理(S270)との両方が実行される場合の例を示している。読取画像I1からは、図7(B)に示す横線と、図7(C)に示す縦線とが、除去されている。線除去画像I6は、タイトルOtx1と、文字列群Otx2と、表Otbに含まれる複数の文字と、棒グラフObgに含まれる複数の文字と、を表している。このように、文字の近傍の線が除去されているので、図2のS140では、プロセッサ510は、適切な文字認識を実行可能である。
【0091】
以上のように、本実施例では、プロセッサ510は、横方向Dxに延びる線を表すオブジェクト領域を検出するために、図4のS220と図9のS450との2段階のラベリング処理によって、オブジェクト領域を抽出する。1回の抽出処理で横方向Dxに延びる線を表すオブジェクト領域を検出する場合、処理の複雑化(例えば、オブジェクトの形状の詳細な分析が行われる)によって、処理に要する時間が長くなり得る。本実施例では、プロセッサ510は、高速に、横方向Dxに延びる線を表すオブジェクト領域を検出できる。縦方向Dyに延びる線を表すオブジェクト領域を検出する場合も、同様に、プロセッサ510は、図4のS220と図12のS550との2段階のラベリング処理を実行する。従って、プロセッサ510は、高速に、縦方向Dyに延びる線を表すオブジェクト領域を検出できる。
【0092】
また、図10(A)-図10(D)で説明したように、S430(図8)とS530(図11)とでは、プロセッサ510は、除去対象方向に延びる線を含むことを示す条件(横方向候補条件CCx、または、縦方向候補条件CCy)を満たす部分領域に含まれる複数の画素を抽出する。そして、プロセッサ510は、抽出された複数の画素を使用して、2段階目のラベリング処理(S450(図9)、S550(図12))を実行する。候補条件CCx、CCyは、除去対象方向に延びる線を含まずにノイズを含む部分領域の複数の画素を、2段階目のラベリング処理の対象から除外できる。従って、読取画像(例えば、図3(A)の読取画像I1)がノイズを含む場合に、ノイズの影響は緩和される。
【0093】
また、図5のS340では、プロセッサ510は、画素割合RPを使用して、注目オブジェクト領域が線候補領域であるか否かを判断する。オブジェクト領域が多数のノイズを含む場合、画素割合RPが大きくなり得る。S340では、プロセッサ510は、多数のノイズを含む領域を、線候補領域から除外できる。従って、読取画像(例えば、図3(A)の読取画像I1)がノイズを含む場合に、ノイズの影響は緩和される。
【0094】
また、本実施例では、プロセッサ510は、以下の処理を実行する。図4のS220では、プロセッサ510は、読取装置の例である読取実行部280(図1)によって光学的に読み取られた原稿の画像である対象画像(例えば、図3(A)の読取画像I1)を表す対象画像データのラベリング処理を実行する(第1ラベリング処理とも呼ぶ)。図3(B)に示すように、プロセッサ510は、第1ラベリング処理によって、オブジェクトを表すJ個(Jは1以上の整数)のオブジェクト領域を検出する。図4のS230では、プロセッサ510は、線候補領域の判断処理(図5)を実行する。図5で説明したように、プロセッサ510は、オブジェクト領域が線を含むオブジェクトを表すことを示す線含有条件をオブジェクト領域が満たすか否かを判断する。
【0095】
さらに、プロセッサ510は、図4のS250とS270との一方、または、両方を実行する。S250では、プロセッサ510は、図8図9の横線除去処理を実行する。S450(図9)では、プロセッサ510は、ラベリング処理を実行することによって、横方向Dxに延びる線を示すオブジェクト領域の候補であるL個(Lは、1以上の整数)の横線候補領域(図7(B))を検出する(以下、このラベリング処理を、横ラベリング処理と呼ぶ)。横ラベリング処理の対象の画像データは、図8の処理による処理済の横線抽出用画像を表す横画像データである。図8の処理は、線含有条件(図5)を満たすと判断されたオブジェクト領域であるK個(Kは、1以上、J以下の整数)の線候補領域(図7(A))に含まれる複数の画素のうち、横方向Dxに延びる線を含むことを示す横方向候補条件CCx(図8:S430:No)を満たす横部分領域に含まれる複数の画素(図10(D)、図7(B))を抽出する。横ラベリング処理(図8:S450)は、抽出された複数の画素を使用する。これにより、プロセッサ510は、横方向Dxに延びる線を示すオブジェクト領域の候補である横線候補領域を検出する(図7(B))。
【0096】
図9のS460では、プロセッサ510は、横線候補領域が横方向Dxに延びる線のオブジェクトを表すことを示す横対象条件を横線候補領域が満たすか否かを判断する。そして、S465では、プロセッサ510は、対象画像(例えば、読取画像I1(図3(A))の複数の画素のうち、横対象条件を満たすと判断された横線候補領域に含まれる複数の画素のそれぞれの色値を背景の色値に変更する(図13)。以上により、プロセッサ510は、対象画像から、横線を、適切に、除去できる。
【0097】
仮に、色値を変更すべき複数の画素(すなわち、横線を表す複数の画素)を対象画像から直接的に検出する場合には、注目している画素が横線とは異なる要素(例えば、文字など)を表していないことを確認するために複雑な処理が実行される。例えば、複数の罫線の交差パターンを検出する処理などが実行され得る。このようなオブジェクトの形状の分析は、ノイズの影響を受けやすい場合がある。本実施例では、プロセッサ510は、2段階のラベリング処理(図4のS220と図9のS450)という簡単な処理と、ラベリング処理によって得られるオブジェクト領域の構成と、を使用して横線のオブジェクトを表す領域を検出するので、処理に要する時間を短縮できる。また、ノイズの影響を緩和できるので、横線のオブジェクトを表す領域を適切に検出できる。なお、オブジェクト領域の構成としては、本実施例では、図5図8図9で説明したように、横方向Dxの長さと、縦方向Dyの長さと、最小包囲矩形の対角線の角度と、領域割合RAと、が使用される。
【0098】
S270(図7)の処理が実行される場合も、同様である。上述したように、S270の処理は、S250の処理における横方向Dxと縦方向Dyを入れ替えて得られる処理である。S270では、プロセッサ510は、図11図12の縦線除去処理を実行する。S550(図12)では、プロセッサ510は、ラベリング処理を実行することによって、縦方向Dyに延びる線を示すオブジェクト領域の候補であるM個(Mは、1以上の整数)の縦線候補領域(図7(C))を検出する(以下、このラベリング処理を、縦ラベリング処理と呼ぶ)。縦ラベリング処理の対象の画像データは、図11の処理による処理済の縦線抽出用画像を表す横画像データである。図11の処理は、線含有条件(図5)を満たすと判断されたオブジェクト領域であるK個(Kは、1以上、J以下の整数)の線候補領域(図7(A))に含まれる複数の画素のうち、縦方向Dyに延びる線を含むことを示す縦方向候補条件CCy(図11:S530:No)を満たす縦部分領域に含まれる複数の画素(図7(C))を抽出する。縦ラベリング処理(図12:S550)は、抽出された複数の画素を使用する。これにより、プロセッサ510は、縦方向Dyに延びる線を示すオブジェクト領域の候補である縦線候補領域を検出する(図7(C))。
【0099】
図12のS560では、プロセッサ510は、縦線候補領域が縦方向Dyに延びる線のオブジェクトを表すことを示す縦対象条件を縦線候補領域が満たすか否かを判断する。そして、S565では、プロセッサ510は、対象画像(例えば、読取画像I1(図3(A))の複数の画素のうち、縦対象条件を満たすと判断された縦線候補領域に含まれる複数の画素のそれぞれの色値を背景の色値に変更する(図13)。以上により、プロセッサ510は、対象画像から、縦線を、適切に、除去できる。また、プロセッサ510は、縦線を検出するための処理に要する時間を短縮できる。
【0100】
また、本実施例では、図5で説明したように、線含有条件は、オブジェクト領域の横方向Dxの長さ(S320)と、オブジェクト領域の縦方向Dyの長さ(S320)と、横方向Dxに平行な2辺と縦方向Dyに平行な2辺とで構成される矩形であって、オブジェクト領域を包囲する最小包囲矩形の対角線の延びる方向(S330)と、に関連している。従って、プロセッサ510は、線を含むオブジェクトを表すオブジェクト領域を、適切に、線候補領域として抽出できる。
【0101】
また、図5で説明したように、線含有条件は、さらに、最小包囲矩形の内の画素の総数に対する最小包囲矩形によって包囲されるオブジェクト領域の画素の総数の割合である画素割合RP(S340)に関連している。従って、プロセッサ510は、線を含むオブジェクトを表すオブジェクト領域を、適切に、線候補領域として抽出できる。
【0102】
また、図9のS460で説明したように、横対象条件は、オブジェクト領域の横方向Dxの長さ(第1条件C11)と、オブジェクト領域の縦方向Dyの長さ(第2条件C12)と、横方向Dxに平行な2辺と縦方向Dyに平行な2辺とで構成される矩形であって、オブジェクト領域を包囲する最小包囲矩形の対角線の角度(第3条件C13)と、に関連している。従って、プロセッサ510は、横線のオブジェクトを表すオブジェクト領域を、適切に、抽出できる。
【0103】
また、図12のS560で説明したように、縦対象条件は、オブジェクト領域の縦方向Dyの長さ(第1条件C21)と、オブジェクト領域の横方向Dxの長さ(第2条件C22)と、横方向Dxに平行な2辺と縦方向Dyに平行な2辺とで構成される矩形であって、オブジェクト領域を包囲する最小包囲矩形の対角線の角度(第3条件C23)と、に関連している。従って、プロセッサ510は、縦線のオブジェクトを表すオブジェクト領域を、適切に、抽出できる。
【0104】
B.第2実施例:
図14は、条件決定処理の例を示すフローチャートである。条件決定処理は、図5のS340で使用される文字閾値ThTを決定する処理である。本実施例では、ユーザ端末500(図1)のプロセッサ510は、色値を変更すべきでない文字を含む文字原稿を使用して、文字閾値ThTを決定する。プログラム531は、図2の読取画像処理に加えて、条件決定処理を実行するように、構成される。
【0105】
S610では、ユーザは、色値を変更すべきでない文字を含む文字原稿を、複合機200(図1)の読取実行部280のうちの読取対象物を配置すべき部分に、配置する。そして、ユーザは、ユーザ端末500の操作部550を操作し、処理開始の指示を入力する。ユーザ端末500のプロセッサ510は、複合機200に読取指示を供給する。複合機200のプロセッサ210は、読取指示に応じて、読取実行部280に文字原稿を読み取らせる。読取実行部280は、文字原稿を読み取り、読み取った文字原稿の画像である文字原稿画像を表す読取画像データを生成する。以下、この読取画像データを、文字原稿画像データとも呼ぶ。
【0106】
S620では、複合機200のプロセッサ210は、読取実行部280から文字原稿画像データを取得し、取得した文字原稿画像データを、ユーザ端末500に送信する。ユーザ端末500のプロセッサ510は、複合機200から文字原稿画像データを取得する。
【0107】
S630では、プロセッサ510は、文字原稿画像データのラベリング処理を実行することによって、文字を示すオブジェクト領域である文字オブジェクト領域を示すラベリングデータを生成する。ラベリング処理の方法は、図4のS220のラベリング処理の方法と、同じである。これにより、図6(C)のオブジェクト領域OA6のように、文字オブジェクト領域が検出される。
【0108】
S640(図14)では、プロセッサ510は、文字オブジェクト領域の文字画素割合を算出する。文字画素割合の算出方法は、図5のS340で説明した画素割合RPの算出方法と同じである。文字画素割合は、文字オブジェクト領域を包囲する最小包囲矩形である最小文字包囲矩形の内の画素の総数に対する、最小文字包囲矩形によって包囲される文字オブジェクト領域の画素の総数の割合である。
【0109】
S650では、プロセッサ510は、算出された文字画素割合を使用して、文字閾値ThTを決定する。文字画素割合を有する文字オブジェクト領域が線含有条件を満たさないように、プロセッサ510は、文字閾値ThTを、文字画素割合よりも小さい値に決定する(例えば、ThT=RP*0.9)。S630で複数の文字オブジェクト領域が検出される場合、プロセッサ510は、複数の文字画素割合のうちの最も小さい文字画素割合を使用して、文字閾値ThTを決定する。
【0110】
S660では、プロセッサ510は、決定した文字閾値ThTを示す文字閾値データを、記憶装置515(本実施例では不揮発性記憶装置530)に格納する。そして、プロセッサ510は、図14の処理を終了する。以後、プロセッサ510は、図5の処理を実行する場合に、文字閾値データによって示される文字閾値ThTを使用する。
【0111】
以上のように、本実施例では、プロセッサ510は、以下の処理を実行する。S630では、プロセッサ510は、文字原稿画像データのラベリング処理を実行することによって、文字のオブジェクトを表す文字オブジェクト領域を検出する。文字原稿画像データは、色値を変更すべきでない文字を含む文字原稿の画像であって読取装置(本実施例では、読取実行部280)によって光学的に読み取られた文字原稿の画像である文字原稿画像を表す画像データである(S610、S620)。S640-S650では、プロセッサ510は、文字画素割合を使用して、文字オブジェクト領域が線含有条件を満たさないように線含有条件の判断に使用される文字閾値ThTを決定する。従って、プロセッサ510は、文字を表す画素の色値の変更を、抑制できる。適切な文字閾値ThTは、文字のフォントや文字の大きさなど、文字の属性に応じて異なり得る。本実施例では、プロセッサ510は、文字の属性に適した文字閾値ThTを使用できる。
【0112】
C.第3実施例:
図15は、線除去処理の別の実施例を示すフローチャートである。図中には、図4のS220とS230との間に挿入されるS710、S720、S730が示されている。線除去処理の他の部分の処理は、図4の実施例の対応する部分の処理と同じである(同じ部分については、図示と説明を省略する)。
【0113】
図4のS220の後、図15のS710では、プロセッサ510(図1)は、S220(図4)で生成されたラベリングデータによって表されるオブジェクト領域を、表示部540に表示させる。本実施例では、プロセッサ510は、ラベリングデータによって表される画像の全体を、表示部540に表示させる。例えば、ラベリングデータが図3(B)のラベル画像I2を表す場合、プロセッサ510は、ラベル画像I2を表示部540に表示する。
【0114】
S720では、ユーザは、色値を変更すべきでない領域を含むオブジェクト領域を選択し、操作部550を操作することによって、選択したオブジェクト領域を示す情報を入力する。プロセッサ510は、操作部550からの信号を使用して、入力された情報を示すデータである選択領域データを取得する。
【0115】
S730では、プロセッサ510は、選択領域データによって示されるオブジェクト領域を、ラベリングデータから除去する。具体的には、オブジェクト領域を示す複数の画素の画素値を、オブジェクト領域を示す値(本実施例では、オブジェクト領域の識別子)から、背景画素を示す値に、変更する。これにより、オブジェクト領域に含まれる複数の画素は、色値の変更の対象から除外される。S730の後、プロセッサ510は、図4のS230へ移行する。
【0116】
以上のように、本実施例では、プロセッサ510は、さらに、以下の処理を実行する。S710では、プロセッサ510は、ラベリングデータによって表されるJ個のオブジェクト領域に関する情報の例であるラベル画像(例えば、ラベル画像I2(図3(B)))を、表示部540に表示させる。S720では、プロセッサ510は、ユーザによって選択されたオブジェクト領域であって色値を変更すべきでない領域を含むオブジェクト領域を示す選択領域データを取得する。S730では、選択領域データによって示されるオブジェクト領域に含まれる複数の画素を、色値の変更の対象から除外する。以上により、プロセッサ510は、選択領域データによって示されるオブジェクト領域に含まれる画素の色値の変更を、抑制できる。また、ユーザは、色値を変更すべきでない領域を含むオブジェクト領域として、任意のオブジェクト領域を選択してよい。例えば、ユーザは、表やフラグを含むオブジェクト領域を、選択してよい。
【0117】
D.変形例:
(1)線含有条件は、図5で説明した条件に限らず、オブジェクト領域が線を含むオブジェクトを表すことを示す種々の条件であってよい。例えば、横方向Dxの長さに関しては、長さ閾値ThL以上であり、かつ、長さ上限値以下であることが条件であってよい。縦方向Dyの長さに関しても、同様である。横線が除去対象ではない場合、S320の条件のうちの「横方向Dxの長さ」に関する条件は、省略されてよい。横線が除去対象ではない場合、S330の条件のうちの横範囲の条件は省略されてよい。縦線が除去対象ではない場合、S320の条件のうちの「縦方向Dyの長さ」に関する条件は、省略されてよい。縦線が除去対象ではない場合、S330の縦範囲は省略されてよい。画素割合RPに関するS340は、省略されてよい。例えば、S330の判断結果がNoである場合、プロセッサ510は、S360へ移行してよい。また、対角線に関するS330と画素割合RPに関するS340とが、省略されてよい。線含有条件は、横方向Dxの長さと縦方向Dyの長さと対角線の延びる方向とに関連する種々の条件であってよい。一般的には、線含有条件は、オブジェクト領域が1本の線を表す場合に加えて、オブジェクト領域が1本の線に加えて他の要素(例えば、他の線、文字など)を含む場合にも満たされるような条件であってよい。例えば、横方向Dxと縦方向Dyとのいずれかである特定の方向に延びる線を含むオブジェクト領域を検出する場合、線含有条件は、オブジェクト領域の特定の方向の長さが第1閾値以上であることを、含んでよい。
【0118】
(2)図8の横方向候補条件CCxは、「RAがThP以上である」に限らず、横部分領域PAが横方向Dxに延びる線を含むことを示す種々の条件であってよい。例えば、横方向候補条件CCxは、横部分領域PA内の画素の総数に対する横部分領域PA内の線候補領域の画素の総数の割合である部分画素割合が、部分画素閾値以上であること、であってよい。部分画素閾値は、横部分領域が横方向Dxに延びる線を含む場合に、部分画素割合が部分画素閾値以上となるように、予め実験的に決定されてよい。図11の縦方向候補条件CCyについても、同様である。
【0119】
(3)図9のS460の横対象条件は、上述のC11-C13で構成される条件に代えて、他の種々の条件であってよい。例えば、横方向Dxの長さに関しては、長さ閾値ThL以上であり、かつ、長さ上限値以下であることが条件であってよい。縦方向Dyの長さに関しては、線幅閾値ThW以下であり、かつ、線幅下限値以上(線幅下限値は、ゼロより大きい)であることが条件であってよい。縦方向Dyの長さに関する条件(例えば、第2条件C12)は、省略されてよい。対角線に関連する第3条件C13は、省略されてよい。横対象条件は、オブジェクト領域の横方向Dxの長さが第2閾値以上であることを、含んでよい。横対象条件は、横方向Dxの長さと縦方向Dyの長さと対角線の角度とに関連する種々の条件であってよい。一般的には、横対象条件は、オブジェクト領域が横方向Dxに延びる線とは異なる要素を含む場合には、満たされないように、構成されていることが好ましい。図12のS560の縦対象条件についても、同様である。例えば、縦対象条件は、オブジェクト領域の縦方向Dyの長さが第3閾値以上であることを、含んでよい。縦対象条件は、横方向Dxの長さと縦方向Dyの長さと対角線の角度とに関連する種々の条件であってよい。一般的には、縦対象条件は、オブジェクト領域が縦方向Dyに延びる線とは異なる要素を含む場合には、満たされないように、構成されていることが好ましい。
【0120】
(4)図14のS650の文字閾値ThTを決定する処理は、文字画素割合を使用する種々の処理であってよい。S630で複数の文字オブジェクト領域が検出される場合、プロセッサ510は、複数の文字画素割合の総合的な評価値(例えば、平均値、中央値など)を使用して、文字閾値ThTを決定してよい。例えば、文字閾値ThTは、評価値に所定の係数を乗じて得られる値であってよい。ここで、複数の文字画素割合のうちの1以上の文字画素割合が、文字閾値ThT未満であってもよい。
【0121】
(5)図15のS710で表示される情報は、ラベリングデータによって表されるJ個のオブジェクト領域に関する任意の情報であってよい。例えば、プロセッサ510は、各オブジェクト領域を個別に拡大して表示部540に表示させてよい。また、プロセッサ510は、J個のオブジェクト領域のリストを表示部540に表示させてよい。一般的には、J個のオブジェクト領域にそれぞれ関連するJ個のオブジェクト情報を含む情報が、表示されることが好ましい。ユーザは、表示されたJ個のオブジェクト情報を観察することによって、オブジェクト領域を選択できる。オブジェクト情報は、オブジェクト領域の画像、サイズ、形状など、オブジェクト領域に関する任意の情報であってよい。
【0122】
(6)図15のS730の処理は、選択領域データによって示されるオブジェクト領域をラベリングデータから除去する処理に代えて、選択領域データによって示されるオブジェクト領域に含まれる複数の画素を、色値の変更の対象から除外する任意の処理であってよい。例えば、図9のS465、図12のS565で、プロセッサ510は、除外フラグが設定された画素の色値の変更をスキップしてよい。この場合、S730では、プロセッサ510は、選択領域データによって示されるオブジェクト領域に含まれる複数の画素のそれぞれに、除外フラグを設定してよい。
【0123】
(7)線除去処理に使用される条件は、ユーザによって決定されてよい。例えば、プロセッサ510は、横対象条件(図9、S460)と縦対象条件(図12、S560)を決定するパラメータ(例えば、ThL、ThW、横範囲、縦範囲)として、ユーザによって決定されたパラメータを使用してよい。さらに、プロセッサ510は、横対象条件と縦対象条件を決定するパラメータを使用して、図5の線含有条件を決定するパラメータを決定してよい。線含有条件を決定するパラメータは、横対象条件と縦対象条件を満たさないオブジェクト領域が、線含有条件を満たし得るように、決定されてよい。例えば、プロセッサ510は、横対象条件と縦対象条件の長さ閾値ThLに1未満の係数を乗じることによって、線含有条件の長さ閾値ThLを算出してよい。
【0124】
(8)線除去処理は、図4に示す実施例の処理に代えて、他の種々の処理であってよい。例えば、横線除去(S250)と縦線除去(S260)との一方が省略されてよい。また、線除去処理済の読取画像である線除去画像を表す線除去画像データの用途は、文字認識に限らず、任意の用途であってよい。例えば、プロセッサ510は、ユーザに観察させるために、線除去画像を表示部540に表示させてよい。ユーザは、容易に文字を読むことができる。
【0125】
(9)読取装置の構成は、読取実行部280(図1)の構成に代えて、原稿を光学的に読み取ることによって、読み取られた原稿の画像である読取画像を表す読取画像データを生成する任意の構成であってよい。例えば、読取装置は、原稿を1枚ずつ自動的に搬送する自動原稿搬送部(ADF(Auto Document Feeder))を備えてよい。また、複合機200に代えて、単機能の読取装置が使用されてよい。また、デジタルカメラやカメラ付スマートフォンなどの携帯装置が、読取装置として使用されてよい。
【0126】
(10)ユーザ端末500に代えて、複合機200の制御部299が、線除去処理、ひいては、図2の読取画像処理を実行してよい。このように、読取装置の内部に設けられた制御装置、または、読取装置に接続された画像処理装置が、線除去処理、ひいては、図2の読取画像処理を実行してよい。また、ネットワークを介して互いに通信可能な複数の装置(例えば、コンピュータ)が、線除去処理の機能を一部ずつ分担して、全体として、線除去処理の機能を提供してもよい(これらの装置を備えるシステムが画像処理装置に対応する)。同様に、ネットワークを介して互いに通信可能な複数の装置が、図2の読取画像処理の機能を一部ずつ分担して、全体として、読取画像処理の機能を提供してもよい。
【0127】
上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、図4のラベリング処理(S220)の機能を、専用のハードウェア回路によって実現してもよい。
【0128】
また、本発明の機能の一部または全部がコンピュータプログラムで実現される場合には、そのプログラムは、コンピュータ読み取り可能な記録媒体(例えば、一時的ではない記録媒体)に格納された形で提供することができる。プログラムは、提供時と同一または異なる記録媒体(コンピュータ読み取り可能な記録媒体)に格納された状態で、使用され得る。「コンピュータ読み取り可能な記録媒体」は、メモリーカードやCD-ROMのような携帯型の記録媒体に限らず、各種ROM等のコンピュータ内の内部記憶装置や、ハードディスクドライブ等のコンピュータに接続されている外部記憶装置も含み得る。
【0129】
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【符号の説明】
【0130】
200…複合機、210…プロセッサ、215…記憶装置、220…揮発性記憶装置、230…不揮発性記憶装置、232…プログラム、240…表示部、250…操作部、270…通信インタフェース、280…読取実行部、290…印刷実行部、299…制御部、500…ユーザ端末、510…プロセッサ、515…記憶装置、520…揮発性記憶装置、530…不揮発性記憶装置、531…プログラム、540…表示部、550…操作部、570…通信インタフェース、1000…システム
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15