(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-29
(45)【発行日】2022-12-07
(54)【発明の名称】画像処理装置と画像処理方法、及びプログラム
(51)【国際特許分類】
H04N 1/387 20060101AFI20221130BHJP
H04N 1/393 20060101ALI20221130BHJP
H04N 1/40 20060101ALI20221130BHJP
【FI】
H04N1/387
H04N1/393
H04N1/40 062
(21)【出願番号】P 2018169119
(22)【出願日】2018-09-10
【審査請求日】2021-09-03
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】村石 雅明
【審査官】橋爪 正樹
(56)【参考文献】
【文献】特開2004-242075(JP,A)
【文献】特開2006-304063(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 1/38- 1/409
G06T 7/00- 7/90
(57)【特許請求の範囲】
【請求項1】
多値画像を2値画像に変換する変換手段と、
前記2値画像から文字領域と非文字領域とを判定する第1判定手段と、
前記第1判定手段によって前記文字領域と判定された領域から文字単位の領域を抽出する文字切り出し手段と、
前記文字単位の領域が文字領域か非文字領域か判定する第2判定手段と、
前記第2判定手段により前記文字領域と判定された前記文字単位の領域ごとに、当該文字単位の領域に含まれる前記多値画像から第1代表色を抽出
することで複数の第1代表色を決定する決定手段と、
前記複数の第1代表色のそれぞれの第1代表色に対応する前記文字単位の領域の2値画像を生成する生成手段と、
前記文字単位の領域の注目画素の
色に最も近い第2代表色を
、前記複数の第1代表色の中から選択する処理を画素ごとに行う選択手段と、
前記生成手段により生成された前記第1代表色に対応する前記文字単位の領域の2値画像を、前記
選択手段により
選択された前記第2代表色の2値画像に変更する変更手段と、
を有することを特徴とする画像処理装置。
【請求項2】
前記変換手段は、前記多値画像に含まれる閾値以上の濃い画素を黒画素に、前記閾値より小さい画素を白画素に変換することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記第1判定手段は、前記2値画像の黒画素の輪郭を追跡することにより黒画素の塊を抽出し、当該黒画素の塊の大きさや形状、黒画素密度のうちの少なくとも1つを用いて、前記文字領域と前記非文字領域とを判定することを特徴とする請求項1又は2に記載の画像処理装置。
【請求項4】
前記多値画像を縮小する縮小手段を、更に有し、
前記
決定手段は、前記文字領域と判定された前記文字単位の領域における各文字を構成する画素の位置を特定し、特定した文字の画素の位置に基づいて、前記縮小手段により縮小された多値画像における対応する位置の色を参照して、前記文字単位の領域における前記第1代表色を
決定することを特徴とする請求項1乃至3のいずれか1項に記載の画像処理装置。
【請求項5】
前記
決定手段は、前記文字単位の領域における前記2値画像で黒となった画素群に対応する前記多値画像の色の平均、或いは重み付け平均に基づいて、前記第1代表色を
決定することを特徴とする請求項4に記載の画像処理装置。
【請求項6】
前記
決定手段は、前記文字単位の領域における前記2値画像で黒となった画素群の中で最も頻度の多い色に基づいて、前記第1代表色を
決定することを特徴とする請求項4に記載の画像処理装置。
【請求項7】
前記文字単位の領域における前記2値画像の黒画素の位置に対応する前記多値画像から色分散を算出し、当該色分散が第一の閾値未満の場合は、前記文字単位の領域は単色の領域と判定し、前記色分散が前記第一の閾値以上で、かつ第二の閾値未満の場合に、前記文字単位の領域は複数色の領域と判定する
第3の判定手段を、更に有することを特徴とする請求項
1乃至6のいずれか一項に記載の画像処理装置。
【請求項8】
前記変更手段によって変更された2値画像に対し2値可逆圧縮を行う圧縮手段を、更に有することを特徴とする請求項1乃至
7のいずれか1項に記載の画像処理装置。
【請求項9】
前記圧縮手段による圧縮によって得られたデータからファイルを生成するファイル生成手段を、更に有することを特徴とする請求項8に記載の画像処理装置。
【請求項10】
前記圧縮手段による圧縮によって得られたデータを伸張する伸張手段と、
前記伸張手段による伸張によって得られた画像データに基づいて印刷する印刷手段と、を更に有することを特徴とする請求項8に記載の画像処理装置。
【請求項11】
画像処理方法であって、
多値画像を2値画像に変換する変換工程と、
前記2値画像から文字領域と非文字領域とを判定する第1判定工程と、
前記第1判定工程によって前記文字領域と判定された領域から文字単位の領域を抽出する文字切り出し工程と、
前記文字単位の領域が文字領域か非文字領域か判定する第2判定工程と、
前記第2判定工程により前記文字領域と判定された前記文字単位の領域ごとに、当該文字単位の領域に含まれる前記多値画像から第1代表色を抽出
することで複数の第1代表色を決定する決定工程と、
前記複数の第1代表色のそれぞれの第1代表色に対応する前記文字単位の領域の2値画像を生成する生成工程と、
前記文字単位の領域の注目画素の
色に最も近い第2代表色を
、前記複数の第1代表色の中から選択する処理を画素ごとに行う選択工程と、
前記生成工程で生成された前記第1代表色に対応する前記文字単位の領域の2値画像を、前記
選択工程により
選択された前記第2代表色の2値画像に変更する変更工程と、
を有することを特徴とする画像処理方法。
【請求項12】
コンピュータを、請求項1乃至
10のいずれか1項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置と画像処理方法、及びプログラムに関する。
【背景技術】
【0002】
近年、カラープリンタやカラースキャナ等の普及により、カラーで印刷された文書が増え、この文書をスキャンにより取り込んで電子ファイルとして保存したり、インターネット等を介して第三者等に送付する機会が増えてきている。しかし、フルカラーデータのままでは記憶装置や回線への負荷が大きいため、圧縮処理を行ってデータ量を小さくする必要がある。
【0003】
従来、カラー画像を圧縮する方法として、例えば、誤差拡散等で擬似階調を持った2値画像にして圧縮する方法、JPEG形式で圧縮する方法、8ビットのパレットカラーに変換してZIP圧縮やLZW圧縮をする方法等があった。
【0004】
特許文献1では、入力画像に含まれる文字領域を検出し、その文字領域の文字部分を2値画像にしてMMR圧縮(2値可逆圧縮)し、各文字の文字色情報とともにファイルに保存する。更に、入力画像上の文字部分を周囲の色で塗りつぶしたものを背景画像として解像度を落としてJPEG圧縮(非可逆圧縮)して、そのファイルに保存する。この圧縮方法により圧縮されたファイルは、文字領域については高い品位が得られるとともに、圧縮率も高くすることができる。また特許文献1では、文字領域内に存在する文字を1文字単位に分離し、その文字領域内で算出された代表色値を、分離した1文字ごとに割り当てることで、文字領域に複数の色の文字が存在する場合でも良好な文字色の再現を行うことができる。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
上記特許文献1では、入力画像を2値化して得られた2値画像を用いて、主走査方向及び副走査方向に黒画素の射影ヒストグラムを生成する。そして、その射影ヒストグラムから、行、列の切れ目を検出することで1文字ごとの領域(以降、文字切り領域)を特定している。ここで、その文字切り領域内における2値画像の黒画素部分に対応する多値画像に複数の色が存在する場合、その文字切り領域を代表色1色で表現してしまった場合、本来の文字色とは異なる色で文字が再現されてしまう場合がある。
【0007】
図11は、文字色が変化してしまう従来例を説明する図である。
【0008】
例えば黒い文字1102に対し赤い丸枠1101が重なるように囲まれている場合や、黒文字1104上に赤ペン等で文字上にチェックマーク1103が入っている場合が挙げられる。更に、黒い文字1106の上に蛍光ペンなどのマーカ1105,1107を引いた場合などが挙げられる。
図11の入力画像から2値画像を生成した場合、黒い文字部分と赤枠や赤ペン、蛍光ペン部分が共に2値化されて黒画素となる。このように2値画像で連結してしまった黒と赤色部分は、2値画像から生成される射影ヒストグラムでは、分離できない。
図11の2値画像に対しては、参照符号1108,1109,1110で示すように、文字切り領域が生成される。この場合、1つの文字切り領域内の黒画素部分に対応する多値画像に複数の色が存在することとなる。従って、前述したように、各文字切り領域に代表色1色を割り当てると、1つの文字領域に対して1つの色を割り当てるため、本来の文字色とは異なる色の文字画像が生成されてしまうことになる。
【0009】
本発明の目的は、上記従来技術の問題点の少なくとも一つを解決することにある。
【0010】
本発明の目的は、文字領域を2値化し代表色を割り当てて文字色を再現する際に、文字単位の領域内のある色が本来の色から変化して再現されてしまうことを抑制できる技術を提供することにある。
【課題を解決するための手段】
【0011】
上記目的を達成するために本発明の一態様に係る画像処理装置は以下のような構成を備える。即ち、
多値画像を2値画像に変換する変換手段と、
前記2値画像から文字領域と非文字領域とを判定する第1判定手段と、
前記第1判定手段によって前記文字領域と判定された領域から文字単位の領域を抽出する文字切り出し手段と、
前記文字単位の領域が文字領域か非文字領域か判定する第2判定手段と、
前記第2判定手段により前記文字領域と判定された前記文字単位の領域ごとに、当該文字単位の領域に含まれる前記多値画像から第1代表色を抽出することで複数の第1代表色を決定する決定手段と、
前記複数の第1代表色のそれぞれの第1代表色に対応する前記文字単位の領域の2値画像を生成する生成手段と、
前記文字単位の領域の注目画素の色に最も近い第2代表色を、前記複数の第1代表色の中から選択する処理を画素ごとに行う選択手段と、
前記生成手段により生成された前記第1代表色に対応する前記文字単位の領域の2値画像を、前記選択手段により選択された前記第2代表色の2値画像に変更する変更手段と、を有することを特徴とする。
【発明の効果】
【0012】
本発明によれば、文字領域を2値化し代表色で文字色を再現する場合に、文字単位の領域内のある色が本来の色から変化して再現されてしまうことを抑制できるという効果がある。
【0013】
本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。なお、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。
【図面の簡単な説明】
【0014】
添付図面は明細書に含まれ、その一部を構成し、本発明の実施形態を示し、その記述と共に本発明の原理を説明するために用いられる。
【
図1】本発明の実施形態1に係る画像処理装置を含むシステムの全体構成を示す図。
【
図2】実施形態1に係る圧縮伸張処理部の圧縮処理部の機能構成を示す機能ブロック図。
【
図3】実施形態1に係る圧縮伸張処理部において、別の装置から送られてきたPDF形式の圧縮データを伸張する構成を説明するブロック図。
【
図4】実施形態1に係る画像処理装置における、原稿の読み取りからファイルの生成までの処理の流れを説明するフローチャート。
【
図5】
図4のS405に示す圧縮伸張処理部による画像データの圧縮処理を説明するフローチャート。
【
図6】
図5のS509の文字色修正部による文字色の修正処理を説明するフローチャート。
【
図7】実施形態1に係る圧縮伸張処理部における2値化部、領域判定部、文字切出し部の処理結果の具体例を説明する図。
【
図8】実施形態1に係る代表色抽出部によって抽出された代表色ごとに2値画像を分類して画像バッファに格納した例を説明する図。
【
図9】実施形態1に係る文字色修正部による文字色の修正処理の結果、代表色ごとに2値画像を分類して画像バッファに格納した例を説明する図。
【
図10】実施形態1に係る文字色修正部による文字色の修正処理の一例を説明する図。
【
図11】文字色が変化してしまう従来技術の一例を説明する図。
【
図12】実施形態2に係る領域判定部による1つの文字切り領域に対する処理を説明するフローチャート。
【
図13】実施形態2に係る
図5のS509の文字色修正部による文字色の修正処理を説明するフローチャート。
【
図14】実施形態における領域判定の具体例を説明する図。
【発明を実施するための形態】
【0015】
以下、図面を参照して本発明の実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る発明を限定するものでなく、また実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【0016】
[実施形態1]
図1は、本発明の実施形態1に係る画像処理装置を含むシステムの全体構成を示す図である。
【0017】
この画像処理装置は、コントローラユニット100、スキャナ115、プリンタ116、操作部117を含む、例えば複合機(MFP)である。コントローラユニット100は原稿を読み取って、その画像データを入力するスキャナ115、画像データに応じた画像を印刷するプリンタ116に接続されている。そして一方では、LAN118を介してホストコンピュータ119と通信し、画像データやデバイス情報の入出力を行う。CPU103は、この画像処理装置全体を制御するコントローラとして機能する。RAM(Random Access Memory)104は、CPU103の制御の下で制御データの一時記憶、或いはワークメモリとして使用される。ROM(Read Only Memory)105は、CPU103が実行するプログラムなどを記憶している。HDD106はハードディスクドライブで、システムソフトウェア、画像データ等を格納する。CPU103は、ROM105に格納されているブートプログラムを実行してHDD106に格納されているプログラムをRAM104に展開し、その展開したプログラムを実行することで、この画像処理装置の動作を制御する。操作部I/F107は、操作部117とのインターフェース部で、操作部117に表示する画像データを操作部117に出力する。また操作部117からユーザが入力した情報をCPU103に伝える役割をする。ユーザは操作部117を操作することにより画像処理装置に対し各種指示を入力できる。例えば、データを送信する宛先、各種送信設定(解像度や圧縮率等)、データ書式(JPEG/TIFF/PDF/PDF高圧縮等)を指定する。
【0018】
実施形態1では、カラー画像の圧縮技術において、文字色を補正する例を説明するため、データ書式としてPDF高圧縮を指定した場合で説明する。PDF高圧縮の技術詳細については後述する。ネットワークI/F108はLAN118に接続し、情報の入出力を行う。以上の構成がシステムバス101上に配置される。
【0019】
イメージバスI/F110は、システムバス101と画像データを高速で転送するイメージバス102とを接続し、データ構造を変換するバスブリッジである。イメージバス102は、PCIバス又はIEEE1394などの高速バスである。デバイスI/F111は、スキャナ115及びプリンタ116とコントローラユニット100とを接続し、画像データの同期系/非同期系の変換を行う。
【0020】
入力画像処理部112は、スキャナ115から入力される画像データに対し、シェーディング補正処理、ガンマ補正処理、色ずれ補正、色変換処理、フィルタ処理等の画像処理を実施する。出力画像処理部113は、プリンタ116に出力するビットマップ画像データに対して、色変換処理、擬似中間調処理等の画像処理を実施する。圧縮伸張処理部114は、前述したPDF高圧縮の処理を行なうことで、後述するPDF形式の圧縮データ220(
図2)を生成する。生成された圧縮データ220は、ネットワークI/F108及びLAN118を介して、指定された宛先(例えばホストコンピュータ119)に送信される。また圧縮伸張処理部114は、ネットワークI/F108及びLAN118を介して受信した圧縮データの伸張を行うこともできる。伸張された画像データは、出力画像処理部113で画像処理がなされた後、デバイスI/F111を介してプリンタ116に送されて印刷される。圧縮伸張処理部114の詳細は後述する。
【0021】
スキャナ115は、照明ランプの発光によって原稿上の画像を露光走査して得られた反射光をリニアイメージセンサ(CCDセンサ)に入力することで、原稿の画像情報を電気信号に変換する。スキャナ115は更に、電気信号をR、G、B各色の輝度信号に変換し、その輝度信号を画像データとしてデバイスI/F111を介してコントローラユニット100に出力する。プリンタ116は、予め定められた画像フォーマットで生成された画像データをコントローラユニット100から受信し、給紙ユニット(不図示)より給紙された転写紙へ印刷する。ここでは例えば、帯電、露光、現像、転写、定着の処理を経ることで、転写材である記録紙面へ画像を印刷する。
【0022】
次に実施形態1に係る圧縮伸張処理部114により実現される画像圧縮処理部の構成、及び画像伸張処理部の構成について
図2及び
図3を参照して説明する。実施形態1では、圧縮伸張処理部114の機能は、CPU103がHDD106からRAM104に展開したプログラムを実行することにより実現されるものとする。或いは、圧縮伸張処理部114の機能の一部、或いは全てをASIC等のハードウェアで実現してもよい。
【0023】
前述した通り、圧縮伸張処理部114では、PDF高圧縮処理を行う。ここで、PDF高圧縮は、カラー及びモノクロ多値画像の圧縮技術である。PDF高圧縮では、画像データに対して領域判定を行い、各領域の属性に応じて、MMRによる2値可逆圧縮とJPEGによる非可逆圧縮とを適応的に切り替えて圧縮する。これにより、圧縮率を高くできるとともに、文字領域については高い品位の画像が得られる圧縮が可能となる。
【0024】
図2は、実施形態1に係る圧縮伸張処理部114の圧縮処理部の機能構成を説明する機能ブロック図である。ここでは入力画像データを圧縮して高圧縮PDFを生成している。ここで圧縮伸張処理部114に入力される画像データは、原稿をスキャナ115で読み取り、入力画像処理部112で処理された画像データとして説明する。また、説明を行う上で適時
図7を参照する。尚、ここで圧縮伸張処理部114の機能がCPU103がプログラムを実行することにより実現される場合は、
図2に示す各機能部の機能は、CPU103がプログラムを実行することにより実現される。
【0025】
図7は、実施形態1に係る圧縮伸張処理部114における2値化部202、領域判定部203、文字切出し部204の処理結果の具体例を説明する図である。
【0026】
2値化部202は、多値画像である入力画像201から2値画像を生成する。2値画像では、入力画像において閾値以上の濃い画素が例えば黒画素に、閾値未満の画素が例えば白画素となる。もちろん、2値化の結果は、黒、白で表されず、他の色で表されても良いし、色ではなく、数字の1や0で表されてもよい。また閾値は、固定値(例えば8ビットで128)としてもよく、多値画像からヒストグラムを生成し、文字と非文字部分を分離するのに最適な閾値を算出する方法を用いてもよい。
【0027】
ここで入力画像201が、例えば
図7の701で示すような画像である場合、2値化処理後の2値画像は702のようになる。
【0028】
入力画像701において、711は赤色で構成され、文字列712の中の黒文字「A」は赤丸で囲まれていることを示している。また、文字列712の「BCDEFGH」は、黒文字で構成されているものとする。尚、入力画像201がカラーの多値画像である場合は、2値化は多値画像の輝度(例えばYUVのうちのY)に対して行われる。
【0029】
領域判定部203は、2値化部202によって生成された2値画像から、文字が含まれる可能性がある文字領域と、文字が含まれない非文字領域とを検出する。ここで
図14を用いて概要を説明する。
【0030】
図14は、実施形態1における領域判定の具体例を説明する図である。
(1)2値画像に対して黒画素の輪郭を追跡することにより、黒画素の塊(黒画素塊)を抽出する。輪郭の追跡では、左上、左、左下、下、右下、右、右上、上の8つの方向の何れかで黒画素が連続しているかで判断する。例えば
図14(1)において枠線1400で囲まれた黒画素塊を抽出する。
(2)抽出された黒画素塊の中に、一定の大きさを越える黒画素塊があれば、その領域内に白画素塊があるかを特定する。即ち、黒画素塊の領域内で白画素の輪郭を追跡することにより白画素塊を抽出する。例えば
図14(2)の枠線の内側の白画素の輪郭を追跡し白画素塊を抽出する。更に、抽出した白画素塊が一定の大きさを越える場合には、再度、白画素塊内の黒画素の輪郭を追跡することにより黒画素塊の抽出を行う。例えば
図14(2)の黒文字部分の輪郭を追跡し黒画素塊を抽出する。これらの処理は、画素塊が一定の大きさ以下になるまで繰り返し行う。この処理は、例えば枠線などで囲まれた領域内の文字領域を抽出するために行う。
(3)得られた黒画素塊を、大きさや形状、黒画素密度のうちの少なくとも1つを用いて、文字か、非文字かに分類する。例えば、
図14(3)の文字のように、縦横比が1に近く、かつ、大きさが定められた範囲の黒画素塊であれば、それを文字を構成する黒画素塊と判定する。そして、残りの黒画素塊を、非文字を構成する画素塊と判定する。
(4)文字を構成する黒画素塊同士の端部からの距離が近接している場合に、その黒画素塊同士を同じグループに分類する。その上で、同じグループに分類された黒画素塊の何れをも包含する外接矩形領
域1401を文字領域と判定する。例えば
図14(4)に示すように、文字間の距離が近い場合は、ABCの文字列を1つの文字領域として判定する。尚、文字を構成する他の黒画素塊が所定の距離内にない場合、文字を構成する黒画素塊は、それ単独で一つのグループを構成することになる。従って、その単独の黒画素塊の外接矩形領域が文字領域と判定されることになる。尚、非文字を構成する黒画素塊に対して(4)で説明した処理と同様の処理がなされるものとする。
【0031】
こうして得られた各領域の位置と、その領域の属性判定情報(文字か非文字か)とを判定結果として出力する。
【0032】
上記の(1)~(4)の処理により、領域判定部203へ入力される2値画像が、例えば
図7の2値画像702の場合、
図7の703で示すような判定結果が出力される。すなわち、領域713,715が文字を含む可能性が高い文字領域、領域714が文字を含まない非文字領域であるという判定結果が出力される。以上で領域判定部203の説明を終える。
【0033】
文字切出し部204は、領域判定部203で判定された文字領域の各々に対して、文字切り矩形の切り出し処理を行う。ここでは例えば、
図7の703に示すように、領域判定部203において文字領域と判定された領域713,715に対し、文字の切り出しを行った結果を704に示す。切り出された結果は、716,717,718,719,720のようになる。この切り出し処理は以下の処理を含んでいる。
(1)文字領域の一つを選択する(例えば、領域713を選択する)。
(2)文字領域によって特定される一の2値画像に対して横方向から射影を取る。具体的には、横方向に伸びるラインに黒画素がいくつあるかを数え、その数えた結果が射影となる。取られた射影を、参照符号705で示す。この射影705において、閾値Th_hmより多くの黒画素があった縦方向に連続するラインを一つのグループとする。このグループを、参照符号706で示す。この結果、文字領域713の場合、一つのグループが生成されることになる。
(3)このグループに対して、縦方向から射影を取る。具体的には、縦方向に黒画素がいくつかあるかを数え、その数えた結果が射影となる。こうして得られた射影を参照符号707で示す。
(4)(3)で得られた射影707において、閾値Th_hsより多くの黒画素が存在する横方向に連続するラインを一つのグループとする。このグループを参照符号708で示す。例えば、射影707では、6つのグループが生成されることになる。これら6つのグループは、S,A,M,P,L,Eそれぞれの文字で構成されるグループとなる。
(5)(4)で得られた各ライン群のグループの外接矩形を、文字切出し領域として切り出す。その結果、例えば、各文字の外接矩形が文字切出し領域として切り出されることになる。こうして切り出された結果は、716で示す外
接矩形となる。
(6)以上(1)~(5)の処理を、選択されていない文字領域が無くなるまで繰り返す。これら(1)~(6)の処理により、文字切り領域結果716,717,718,719,720が出力されることになる。以上で文字切出し部204の説明を終える。
【0034】
領域判定部205は、文字切り出し部204により切り出された文字切り領域内の文字画像について、文字切り領域単位で、文字であるか否かを判定する。ここでは例えば、文字切り領域内の黒画素密度から文字か否かを判定する。例えば文字の場合は、文字を構成する線同士の間に隙間が存在する。このため一定量の白画素が存在する。一方で非文字である場合は、文字切り領域内の多くが黒画素となる場合が多い。このため黒画素密度が閾値より大きい場合は非文字、閾値より小さい場合は文字領域と判定する。またこれ以外にも、文字切り領域の縦、横のサイズ比などから判定しても良い。更に領域判定部205は、領域判定部205で非文字と判断された文字切り領域の情報に基づいて、領域判定部203で生成された文字領域情報と、文字切り出し部204で生成された文字切り領域情報とを修正する。即ち、領域判定部203で生成された文字領域情報と、文字切り出し部204で生成された文字切り領域情報とから、領域判定部205で非文字であると判断された文字領域の情報を除去する。
【0035】
縮小部206は、入力画像201を縮小処理(低解像度化処理)し、縮小多値画像を生成する。実施形態1では、入力画像は300dpiであり、これを150dpiに縮小する処理を行なう。
【0036】
代表色抽出部207は、領域判定部205で修正した文字領域情報と文字切り矩領域情報とに基づいて、2値画像における各文字を構成する画素(黒画素)の位置を特定する。そして、その特定した文字の画素の位置に基づいて、縮小多値画像における対応する位置の色を参照して、文字切り領域単位で文字の代表色を算出し、各文字の文字色情報を得る。また同色の代表色の2値画像を統合し、代表色ごとの画像バッファを生成する。代表色は、文字切り領域における2値画像で黒となった画素群に対応する多値画像の色の平均や重み付け平均で算出される。或いは、そうした画素群の中で最も頻度の多い色である。このように代表色の求め方は様々考えられるが、文字切り領域における2値画像で黒となった画素群のうちの少なくとも一画素の、多値画像における色が、代表色の算出に用いられることになる。実施形態1では、平均値を代表色とする例で説明する。
【0037】
また実施形態1では、多値画像は縮小多値画像を参照しているが、入力画像の多値画像を参照するようにしてもよい。
【0038】
次に
図7及び
図8を参照して、代表色抽出部207の処理結果について説明する。
【0039】
図7に示す画像701は入力画像201の一例であり、画像704の716,717,718,719,720はそれぞれ文字切出し部204によって生成された文字切り領域を示している。この文字切り領域を、代表色抽出部207によって抽出された代表色ごとに2値画像を分類した画像バッファの一例を
図8に示す。
【0040】
図8は、実施形態1に係る代表色抽出部207によって抽出された代表色ごとに2値画像を分類して画像バッファに格納した例を説明する図である。
【0041】
図8(A)は、代表色が(R,G,B)=(20,20,20)と判定された文字切り領域群を示している。
図8(B)は、代表色が(R,G,B)=(255,32,32)と判定された文字切り領域群を示している。更に
図8(C)は、代表色が(R,G,B)=(98,24,24)と判定された文字切矩形領域群を示している。
【0042】
図8(C)で検出されている文字切り領域は、入力画像701に示す黒文字Aが赤丸で囲まれている領域である。前述したように、2値化部202での2値化処理は閾値処理であるため、濃い部分が黒画素として生成される。このため、入力画像701の赤丸で囲まれ黒文字Aでは、黒文字A及び赤丸部分が2値化処理により両方とも黒画素に変換される。この場合、黒文字Aと赤丸部分が2値化後の2値画像では連結してしまっているため、文字切出し部204の処理では分離することができない。この場合、1つの文字切り領域内の黒画素に対応する多値画像は、黒と赤の両方の色値を有することになる。そのため代表色抽出部207は、黒画素部分に対応する多値画像の平均値を算出することで代表色を決定し、文字切り領域内の黒画素部分を再現する色を決定する。ここで黒と赤両方の色が存在する場合、平均値を取った場合、茶色のような色になり、元々黒色だった文字Aの部分及び赤色だった丸い囲い部分が茶色で再現されることになる。
【0043】
そこで実施形態1では、代表色抽出部207によって抽出された代表色を修正し、入力画像の色値に近い代表色とすることで、文字色が変化して表現されてしまうことを抑制する。この代表色を修正する方法については後述する。
【0044】
文字領域穴埋め部208は、領域判定部205で生成された文字領域情報に基づいて、2値画像における各文字を構成する画素(黒画素)の位置を特定する。そして、その特定した画素の位置に基づいて、縮小多値画像における対応する位置の画素を、その周辺色で塗り潰す処理を行う。ここで周辺色は、文字の周囲の画素の画素値の平均値を用い、文字の画素の画素値を、その求めた周辺色で置き換えればよい。
【0045】
文字色修正部209は、領域判定部205で修正された文字切り領域情報と、代表色抽出部207で生成された各文字切り領域の代表色と、縮小部206によって生成された縮小多値画像から文字色情報の修正を行う。この文字色修正部209の詳細は後述する。
【0046】
MMR圧縮部210は、文字色修正部209で生成された、代表色ごとの2値画像に対してMMR圧縮を行い、圧縮コード1(221)を生成する。
【0047】
JPEG圧縮部211は、文字領域穴埋め部208で穴埋め処理した後の多値画像をJPEG圧縮して、圧縮コード2(224)を生成する。
【0048】
このようにして、各構成要素から得られた圧縮コード1(221)と、文字領域情報222と、文字色情報223と、圧縮コード2(224)とを含む圧縮データ220のファイルがPDF形式で生成される。生成されたPDF形式のファイルは、上述の通り、ユーザにより指定された宛先へ送信されることになる。
【0049】
図3は、実施形態1に係る圧縮伸張処理部114において、別の装置から送られてきたPDF形式の圧縮データを伸張する構成を説明するブロック図である。
図3の処理は、圧縮データを伸張して印刷する場合などに実行される。ここでは、ホストコンピュータ119から送られてきた圧縮データが、上述の圧縮データ220と同じファイル形式である場合を例に説明する。尚、ここで圧縮伸張処理部114の機能がCPU103がプログラムを実行することにより実現される場合は、
図3に示す各機能部の機能は、CPU103がプログラムを実行することにより実現される。
【0050】
MMR伸張部301は、圧縮データ220のファイルに含まれている圧縮コード1(221)に対してMMR伸張処理を行い、2値画像を再現する。JPEG伸張部302は、圧縮データ220のファイルに含まれている圧縮コード2(224)に対してJPEG伸張処理を行い、縮小多値画像を再現する。拡大部303は、JPEG伸張部302で伸張された縮小多値画像に対して拡大処理を行うことで、圧縮前の入力画像201のサイズと同じサイズの多値画像を生成する。
【0051】
合成部304は、文字領域情報222を参照しながら、MMR伸張部301で伸張された2値画像の黒画素に文字色情報の色(以下、文字色)を割り当る。更に、その文字色が割り当てられた2値画像を、拡大部204で生成された多値画像の上に合成することにより、伸張画像305を生成する。合成する際、2値画像における白画素に対しては透明色が割り当てられており、背景の多値画像を透過する。このように圧縮伸張処理部114は、圧縮データを伸張して伸張画像305を生成する。この伸張画像305は、出力画像処理部113で画像処理をがなされた後、デバイスI/F111を介してプリンタ116に送られて印刷される。
【0052】
図4は、実施形態1に係る画像処理装置における、原稿の読み取りからファイルの生成までの処理の流れを説明するフローチャートである。
図4のフローチャートで示す処理は、CPU103が前述のRAM104に展開したプログラムを実行することにより達成される。
【0053】
まずS401でCPU103は、操作部117のスタートキー(不図示)の押下を検知する。次にS402に進みCPU103は、ユーザが操作部117で設定した設定値(ファイルフォーマット、解像度、送信する宛先等)を取得する。そしてS403に進みCPU103は、スキャナ115を制御して原稿の読取を行う。そしてS404に進みCPU103は、S403でスキャナ115が原稿を読み取って得られた画像データに対して入力画像処理部112による画像処理を実行させ、処理済の画像データをRAM104に格納する処理を実行していく。次にS405に進みCPU103は、RAM104に格納されている画像データに対し、圧縮伸張処理部114にて画像圧縮処理を実行することで圧縮データ220を生成する。この処理における圧縮コード1(221)、文字領域情報222、文字色情報223の生成フローの詳細は
図5のフローチャートを参照して後述する。そしてS406に進みCPU103は、圧縮伸張処理部114によって生成された圧縮データ220からPDF形式のファイルを生成して、この処理を終了する。
【0054】
図5は、
図4のS405に示す圧縮伸張処理部114による画像データの圧縮処理を説明するフローチャートである。ここでは、圧縮伸張処理部114の機能がCPU103がプログラムを実行することにより実現されるものとして説明する。
【0055】
まずS501でCPU103は縮小部206として機能し、入力画像201に対して画像縮小処理を実行して、縮小した多値画像データを生成する。次にS502に進みCPU103は2値化部202として機能し、入力画像201に対して2値化処理を実行する。次にS503に進みCPU103は領域判定部203として機能し、S502で生成された2値画像に対して領域判定処理1を実行し、2値画像内に含まれる各領域を識別し、識別された領域が文字領域か非文字領域か判定する。
【0056】
そしてS504に進みCPU103は領域判定部205として機能し、領域判定部203で判定された領域の1つを順に注目領域とし、その注目領域に対する領域判定部203の判定結果が文字領域であるか否かの判定を行う。ここで注目領域が文字領域の場合はS505に進み、非文字領域の場合はS507に進む。S505でCPU103は文字切出し部204として機能し、文字領域と判定された注目領域から文字単位の文字切り領域を抽出する。次にS506に進みCPU103は代表色抽出部207として機能し、文字切出し部204で生成された文字切矩形領域ごとに2値画像の色を示す代表色を算出する。そしてS507に進みCPU103は、領域判定部203で生成された全ての領域に対するS504~S506の処理が終了したか否かを判定し、全ての領域に対する処理が終了した場合はS508に進み、そうでないときはS504に進む。
【0057】
S508でCPU103は領域判定部205として機能し、S505で生成された各文字切り領域が文字か否か判定し、文字領域の判定修正を行う。具体的には、S503で抽出された文字領域に対し、領域判定部205の判定処理で非文字と判定された文字切り領域を除外することで文字領域の修正を行う。次にS509に進みCPU103は文字色修正部209として機能し、代表色抽出部207で算出された文字切り領域ごとの代表色を修正する。この詳細は
図6を参照して後述する。次にS510に進みCPU103は文字領域穴埋め部208として機能し、縮小部206で生成された縮小多値画像に対し、文字部分の画素をその周辺の色で塗りつぶす処理を行なう。そしてS511に進みCPU103はMMR圧縮部210として機能し、文字色修正部209で修正された2値画像及び文字色情報に基づいて、2値画像に対しMMR圧縮を行って圧縮コード1(221)を生成する。またCPU103はJPEG圧縮部211として機能し、文字領域穴埋め部20
8で生成された多値画像に対しJPEG圧縮を行って圧縮コード2(224)を生成して、この処理を終了する。
【0058】
図6は、
図5のS509の文字色修正部209による文字色の修正処理を説明するフローチャートである。また、このフローチャートを説明する上で適時
図9、
図10を参照する。
【0059】
図9は、実施形態1に係る文字色修正部209による文字色の修正処理の結果、代表色ごとに2値画像を分類して画像バッファに格納した例を説明する図である。
【0060】
図10は、実施形態1に係る文字色修正部209による文字色の修正処理の一例を説明する図である。
【0061】
まずS601でCPU103は、代表色抽出部207で算出された文字切り領域ごとのN個の代表色の色変換を行う。ここで代表色抽出部207で算出された代表色は、R,G,Bで表される輝度系の色空間であるため、均等色空間であるLab色空間に変換する。尚、このRGB色空間からLab色空間への変換は、一般的な変換式を用いることで実現できる。ここでは後述する色差信号算出のためLab色空間に変換を行っているが、これに限るものではなく、YCbCr色空間への変換であってもよい。また、色空間変換を実施せず、RGB色空間での色の差分から後述する色差を簡易的に算出してもよい。
【0062】
図10(B)は、
図8で示される代表色を一般的な変換式を用いてLabに変換した場合の色値を示している。ここで、No.1~No.3の代表色は、それぞれ
図8(A)~
図8(C)の代表色に対応している。
図8(A)の代表色のLabは、(L、a、b)=(33、0、0)、
図8(B)の代表色のLabは(L,a,b)=(69,59,31)、
図8(C)の代表色のLabは(L,a,b)=(46,33,15)となる。尚、実施形態1では、代表色の数はN=3として説明する。
【0063】
次にS602に進みCPU103は、文字と判定された文字切り領域内における2値画像の黒画素部分の1つを順に注目画素とし、その注目画素の位置に対応する多値画像のRGB信号をLab信号に変換する。
【0064】
図10(A)は、
図7に示した黒文字Aが赤丸の枠で囲まれた部分の多値画像を示している。ここで注目画素1000を、赤枠部分の注目画素とした場合、多値画像の信号値は(R,G,B)=(255,32,32)とする。これを一般的な変換式を用いてLabに変換すると(L,a,b)=(63,59,31)となる。一方で、注目画素1001を黒文字Aの部分の注目画素した場合、多値画像の信号値は(R,G,B)=(20,20,20)とする。これをLabに変換すると(L,a,b)=(33,0,0)となる。
【0065】
次にS603に進みCPU103は、S602で算出された注目画素のLab信号(L1,a1,b1)と、注目文字切り領域の代表色のLab信号(L2,a2,b2)とから色差ΔEを算出する。この色差ΔEは、下記の式(1)によって算出される。
【0066】
色差ΔE=√((ΔL×ΔL)+(Δa×Δa)+(Δb×Δb)) …式(1)
ここでΔL=L1-L2、Δa=a1-a2、Δb=b1-b2、とし、√()は平方根を取る関数を示している。ここで算出された色差ΔEを、RAM104に設けた変数Minに格納する。
【0067】
次にS604に進みCPU103は、S602で算出された注目画素のLab信号(L1,a1,b1)と、S601で算出されたn番目(nはRAM104に記憶され、初期値が「1」)の代表色のLab信号(Ln,an,bn)とから色差ΔEnを算出する。次にS605に進みCPU103は、S604で算出された色差ΔEnがMinより小さいかを判定する。そして、色差ΔEnがMinより小さい場合、即ち、注目画素の文字色が、注目文字切り領域の代表色よりもn番目の代表色に、より近い場合はS606に進む。一方、そうでないときはS607に進む。S606でCPU103は、その色差ΔEnをMinに格納し、代表色を、注目画素の色値との色差が、より小さいn番目の代表色に更新する。ここではn番目の色値情報を保持するため、RAM104に設けられた変数MinN=nとすることで、注目画素の色値との色差が、より小さい代表色の番号を記憶する。
【0068】
そしてS607に進みCPU103は、注目画素に対してN個すべての代表色との比較が終了したか否かを判定する。そして、全ての代表色との比較が終了したときはS609に進むが、そうでないときはS608に進み、変数nをカウントアップして、次の代表色との色差比較を行うためにS604に進む。
【0069】
S609でCPU103は、変数MinNに格納されている番号(n)の代表色で示される2値画像のバッファに2値画像データを移動する。こうして、現在の文字切矩形領域として保持されている代表色よりも、注目画素の色値に、より近い代表色がある場合は、その代表色で注目画素の色値を再現する。
【0070】
図10(C)は、注目画素1000及び注目画素1001の各色値と各代表色との色差の一例を示す。注目画素1000に対する各代表色との色差は、No.2の代表色が最も色差が小さくなる。この場合、注目画素1000に対応する2値画像は、No.2の代表色の画像バッファに移動される。これにより、
図8(C)の赤丸の枠部分の2値画像が、
図9(C)の代表色(R,G,B)=(98,24,24)のバッファから
図9(B)に示すNo.2の代表色の画像バッファに移動される。
【0071】
また、注目画素1001に対する各代表色との色差は、No.1の代表色が最も色差が小さくなる。この場合、注目画素1001に対応する2値画像は、
図9(C)の代表色(R,G,B)=(98,24,24)のバッファから
図9(A)のNo.1の代表色の画像バッファに移動される。これにより、
図8(C)の黒文字Aの部分の2値画像が
図9(A)に示すように、No.1の代表色の画像バッファに移動されることとなる。
【0072】
これにより、1つの文字切り領域内に複数の色が存在する場合であっても、文字色が変化してしまうことを抑制し、適切に文字色を再現することが可能となる。
【0073】
次にS610に進みCPU103は、文字切矩形領域内の2値画像における黒画素を全て参照したか否かを判定し、黒画素の参照が全て終了した場合はS612に進む。黒画素の参照がすべて終了していない場合はS611に進み、次の黒画素を注目画素としてS602に進む。S612でCPU103は、全文字切矩形領域に対して処理が終了したか否かを判定する。そして、全ての文字切矩形領域に対して処理が終了している場合は、この処理を終了し、そうでないときはS613に進み、次の文字切矩形領域を注目文字切矩形領域としてS602に進む。
【0074】
以上説明したように実施形態1によれば、文字領域を2値化し代表色で文字色を再現する場合に、注目画素の色値と、代表色として抽出された色値とを比較し、より注目画素の色値に近い代表色を選択し直す。これにより、1つの文字切り領域内の黒画素部分に対応する多値画像に複数の色が存在する場合でも、文字色が本来の色から変化して再現されてしまうことを抑制し、適切に文字色を再現することが可能となる。
【0075】
[実施形態2]
上述の実施形態1では、注目画素の色値と、代表色として抽出された色値とを比較し、より注目画素の色値に近い代表色を抽出する例で説明した。しかしながら、注目画素の色値と、代表色として抽出された色値とを比較する場合、文字と判定された文字切矩形領域に含まれる黒画素数と、代表色として抽出された色数とに応じた比較演算が必要となり処理速度が低下する場合がある。そこで実施形態2では、文字切矩形内に複数色が存在するか否かを判定し、文字で、かつ複数色が存在すると判定した文字切矩形領域のみに対して文字色修正部209の処理を実施する例で説明する。尚、実施形態2に係る画像処理装置のハードウェア構成等は前述の実施形態1と同様であるため、その説明を省略する。
【0076】
図12は、実施形態2に係る領域判定部205による1つの文字切り領域に対する処理を説明するフローチャートである。
図4のフローチャートで示す処理は、CPU103が前述のRAM104に展開したプログラムを実行することにより達成される。
【0077】
まずS1201でCPU103は、文字切り領域における2値画像から黒画素密度を算出する。この黒画素密度は、文字切り領域内の黒画素数を文字切り領域の画素数で除算することで求められる。次にS1202に進みCPU103は、S1201で取得した黒画素密度が閾値ThMより小さいか否か判定する。ここで閾値ThMより小さいと判定したときはS1203に進むが、そうでないときはS1208に進む。
【0078】
S1203でCPU103は、その文字切り領域における2値画像の黒画素位置に対応する多値画像から色分散を算出する。具体的にはRGBをLabに変換し、黒画素の位置部分のa及びbの分散値を算出する。そしてS1204に進みCPU103は、S1203で求めた色分散が、閾値ThS1より小さいか否かを判定する。ここで色分散が閾値ThS1より小さいと判定したときはS1205に進むが、そうでないときはS1206に進む。ここでは明らかに単色である文字切り領域を判定するため、閾値ThS1として「50」を設定するが、これに限ったものではない。S1205でCPU103は、文字切り領域の色情報を単色と判定した結果を出力して、この処理を終了する。即ち、ここでは、文字切り領域の黒画素の密度が第1の所定値(閾値ThM)よりも小さくて、かつその黒画素の色分散が第2の所定値(閾値ThS1)よりも小さいときは、その文字切り領域の文字色情報を単色と判定するものである。
【0079】
一方、色分散が閾値ThS1より大きいときはS1206でCPU103は、S1203で得られた色分散が、閾値ThS1以上で、かつ閾値ThS2(ThS1<ThS2))未満かどうか判定する。そうであればS1207に進み、そうでないときはS1208に進む。ここで閾値ThS2は、明らかに色数が多く、文字ではない文字切り領域を判定するための閾値で、ここでは例えば「300」とするが、これに限ったものではない。S1207でCPU103は、文字切り領域の色情報を複数色と判定した結果を出力して、この処理を終了する。即ち、ここでは、文字切り領域の黒画素の密度が第1の所定値よりも小さくて、かつその黒画素の色分散が第2の所定値よりも大きいが、その文字切り領域が文字であると判定できるときは、その文字切り領域の文字色情報を複数と判定するものである。
【0080】
また文字切り領域における黒画素密度が閾値ThMより大きいときはS1208でCPU103は、文字切り領域を非文字領域と判定し、領域判定部203で生成された文字領域情報と文字切出し部204で生成された文字切り情報を修正する。即ち、文字領域情報と文字切り情報から、この文字切り領域を除去して、この処理を終了する。
【0081】
図13は、実施形態2に係る
図5のS509の文字色修正部209による文字色の修正処理を説明するフローチャートである。尚、
図13において、S1301~S1313の処理は、前述の
図6のS601~S613の処理と同様であるため、その説明を省略する。
【0082】
S1314でCPU103は、
図12のS1205或いはS1207で生成された文字切り領域の色情報を参照し、その文字切り領域の文字色が複数か否かを判定する。ここで文字切り領域の文字色が複数と判定された場合はS1302に進んで、前述の
図6と同様の処理を実行する。一方、文字切り領域の文字色が単数と判定した場合は、
図6の処理をスキップしてS1312に進む。
【0083】
以上説明したように実施形態2によれば、文字切り領域の文字色が複数かどうか判定し、複数の場合にのみ、上述の実施形態1と同様の処理を実行する。これにより、全ての文字切り領域に対して文字色の修正処理を実施することを抑制する。これにより、処理速度の低下を抑制すると共に、文字色が本来の色から変化して再現されてしまうことを抑制し、適切に文字色を再現することが可能となる。
【0084】
尚、実施形態2では、文字切り領域の文字色が複数かどうか判定する際、色分散を用いたが、本発明は、これに限定されるものではない。例えば、多値画像のRGBやLabから2次元又は3次元のヒストグラムを生成し、色の集合を生成し、集合の数によって複数色か否かを判定しても良い。
【0085】
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0086】
本発明は上記実施形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。
【符号の説明】
【0087】
100…コントローラユニット、103…CPU、104…RAM、105…ROM、106…HDD,115…スキャナ、116…プリンタ、117…操作部、114…圧縮伸張処理部