(57)【要約】【課題】文字切り矩形内の黒画素密度が高い文字は、非文字として判定されてしまう場合があり、非文字と判定された領域に対しては、ＪＰＥＧ形式の圧縮が適用される。これにより、ＭＭＲ圧縮された高品位の文字列の中に、ＪＰＥＧ形式の圧縮が適用された低品位の文字が現れて文字列の判読性が低下する。【解決手段】多値の入力画像から２値画像を生成し、その２値画像から文字領域と非文字領域とを検出する。そして、文字領域に含まれる文字をそれぞれを囲む領域を、文字切り矩形として切り出し、文字切り矩形に含まれる２値画像の黒画素密度に基づいて当該文字切り矩形が文字領域か否かを判定し、この判定で非文字領域と判定された文字切り矩形に含まれる画素数に基づいて、当該非文字領域と判定された文字切り矩形が文字領域か否かを判定する。【選択図】  図８
2020053818.tif 000002
【特許請求の範囲】
【請求項１】
多値の入力画像から２値画像を生成する２値化手段と、
前記２値画像から文字領域と非文字領域とを検出する検出手段と、
前記検出手段により検出された前記文字領域に含まれる文字のそれぞれを囲む領域を、文字切り矩形として切り出す切り出し手段と、
前記文字切り矩形に含まれる前記２値画像の黒画素密度に基づいて当該文字切り矩形が文字領域か否かを判定する第１判定手段と、
前記第１判定手段で非文字領域と判定された文字切り矩形に含まれる画素数に基づいて、当該非文字領域と判定された文字切り矩形が文字領域か否かを判定する第２判定手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記第２判定手段は、前記第１判定手段で文字領域と判定された文字切り矩形に含まれる画素の平均画素数を算出する第１算出手段を有し、
前記平均画素数と、前記第１判定手段で非文字領域と判定された文字切り矩形に含まれる画素数との差の絶対値が所定値よりも小さい場合に、前記非文字領域と判定された文字切り矩形が文字領域であると判定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記所定値は、前記平均画素数の５０％〜１５０％の値であることを特徴とする請求項２に記載の画像処理装置。
【請求項４】
多値の入力画像から２値画像を生成する２値化手段と、
前記２値画像から文字領域と非文字領域とを検出する検出手段と、
前記検出手段により検出された前記文字領域に含まれる文字をそれぞれを囲む領域を、文字切り矩形として切り出す切り出し手段と、
前記文字切り矩形に含まれる前記２値画像の黒画素密度に基づいて当該文字切り矩形が文字領域か否かを判定する第１判定手段と、
前記第１判定手段で非文字領域と判定された文字切り矩形の中心と、前記第１判定手段で文字領域と判定された文字切り矩形のうちの最も近い文字切り矩形の中心とに基づいて、当該非文字領域と判定された文字切り矩形が文字領域か否かを判定する第２判定手段と、
を有することを特徴とする画像処理装置。
【請求項５】
前記第２判定手段は、前記第１判定手段で非文字領域と判定された文字切り矩形の中心を算出する第２算出手段を有し、
前記第２算出手段により算出した前記中心と、前記第１判定手段で文字領域と判定された文字切り矩形の中心との距離が所定値よりも小さい場合に、前記非文字領域と判定された文字切り矩形が文字領域であると判定することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記第１判定手段は、前記文字切り矩形に含まれる前記２値画像の黒画素密度が所定の閾値よりも大きい場合に、当該文字切り矩形が非文字領域であると判定することを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【請求項７】
前記検出手段は、前記２値画像に含まれる黒画素塊の大きさや形状、黒画素密度のうち少なくとも１つを用いて文字領域と非文字領域とを検出することを特徴とする請求項１乃至６のいずれか１項に記載の画像処理装置。
【請求項８】
前記検出手段は、前記２値画像に含まれる黒画素塊の縦横比が１に近く、かつ当該黒画素塊の大きさが所定の範囲であれば、当該黒画素塊を文字領域として検出することを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記第１判定手段、及び前記第２判定手段により前記文字領域と判定された文字切り矩形の２値画像を圧縮する第１圧縮手段と、前記第１判定手段、及び第２判定手段により前記非文字領域と判定された文字切り矩形の２値画像を、前記第１圧縮手段と異なる圧縮方法で圧縮する第２圧縮手段と、を更に有することを特徴とする請求項１乃至８のいずれか１項に記載の画像処理装置。
【請求項１０】
多値の入力画像から２値画像を生成する２値化工程と、
前記２値画像から文字領域と非文字領域とを検出する検出工程と、
前記検出工程で検出された前記文字領域に含まれる文字のそれぞれを囲む領域を、文字切り矩形として切り出す切り出し工程と、
前記文字切り矩形に含まれる前記２値画像の黒画素密度に基づいて当該文字切り矩形が文字領域か否かを判定する第１判定工程と、
前記第１判定工程で非文字領域と判定された文字切り矩形に含まれる画素数に基づいて、当該非文字領域と判定された文字切り矩形が文字領域か否かを判定する第２判定工程と、
を有することを特徴とする画像処理方法。
【請求項１１】
多値の入力画像から２値画像を生成する２値化工程と、
前記２値画像から文字領域と非文字領域とを検出する検出工程と、
前記検出工程で検出された前記文字領域に含まれる文字のそれぞれを囲む領域を、文字切り矩形として切り出す切り出し工程と、
前記文字切り矩形に含まれる前記２値画像の黒画素密度に基づいて当該文字切り矩形が文字領域か否かを判定する第１判定工程と、
前記第１判定工程で非文字領域と判定された文字切り矩形の中心と、前記第１判定工程で文字領域と判定された文字切り矩形のうちの最も近い文字切り矩形の中心とに基づいて、当該非文字領域と判定された文字切り矩形が文字領域か否かを判定する第２判定工程と、
を有することを特徴とする画像処理方法。
【請求項１２】
コンピュータを、請求項１乃至９のいずれか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置と画像処理方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、カラープリンタやカラースキャナ等の普及により、カラーで印刷された文書が増え、この文書をスキャンにより取り込んで電子ファイルとして保存したり、インターネット等を介して第三者等に送付する機会が増えてきている。しかし、フルカラーデータのままでは記憶装置や回線への負荷が大きいため、圧縮処理を行ってデータ量を小さくする必要がある。
【０００３】
従来、カラー画像を圧縮する方法として、例えば、誤差拡散等で擬似階調を有する２値画像にして圧縮する方法、ＪＰＥＧ形式で圧縮する方法、８ビットのパレットカラーに変換してＺＩＰ圧縮やＬＺＷ圧縮をする方法等があった。しかし、文字部などの高周波部分をＪＰＥＧ形式で圧縮すると、モスキートノイズと呼ばれる画像の劣化が発生し、また圧縮率も低くなる。
【０００４】
特許文献１では、入力画像に含まれる文字領域を検出し、その文字領域の文字部分を２値画像にしてＭＭＲ圧縮（２値可逆圧縮）して、各文字の文字色情報とともにファイルに保存する。更に、入力画像の文字部分を周囲の色で塗りつぶしたものを背景画像として解像度を落としてＪＰＥＧ圧縮（非可逆圧縮）して同じファイルに保存する。この圧縮方法により圧縮されたファイルは、文字領域については高い品位が得られるとともに、圧縮率も高くすることができることが記載されている。
【０００５】
また特許文献２では、入力画像の２値画像を生成し、２値画像内の文字領域と、各文字を囲む領域を文字切り矩形情報として取得し、各文字切り矩形が、背景から分離される文字か否かを判定する。これにより、文字領域と背景とを、より高精度で分離でき、更に、非文字領域（例えば、写真やグラデーション部分）の２値化による画像の潰れが防止できることが記載されている。
【０００６】
また、この文字と背景との分離処理において、各文字を囲む文字切り矩形が背景から分離される文字か否かを判定する際に、文字切り矩形内の黒画素密度から文字か否かを判定している。これにより、非文字の黒画素の塊（例えば、文字領域付近にある写真等）を文字として判定しないようにしている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００２−０７７６３３号公報
【特許文献２】特開２０１５−１９５５４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述の黒画素密度から文字か否かを判定する判定処理を用いた場合、文字切り矩形内の黒画素密度が高い文字（例えば、画数が多く、太い文字）は、非文字として判定されてしまう場合がある。この非文字と判定された領域に対しては、ＪＰＥＧ形式の圧縮が適用される。これにより、ＭＭＲ圧縮された高品位の文字列の中に、ＪＰＥＧ形式の圧縮が適用された低品位の文字が現れ、文字列の判読性を欠くという課題があった。
【０００９】
本発明の目的は、上記従来技術の問題点の少なくとも一つを解決することにある。
【００１０】
本発明の目的は、例えば、画数が多く、太い文字に対しても、正確に文字領域か非文字領域か判定できる技術を提供することにある。
【課題を解決するための手段】
【００１１】
上記目的を達成するために本発明の一態様に係る画像処理装置は以下のような構成を備える。即ち、
多値の入力画像から２値画像を生成する２値化手段と、
前記２値画像から文字領域と非文字領域とを検出する検出手段と、
前記検出手段により検出された前記文字領域に含まれる文字をそれぞれを囲む領域を、文字切り矩形として切り出す切り出し手段と、
前記文字切り矩形に含まれる前記２値画像の黒画素密度に基づいて当該文字切り矩形が文字領域か否かを判定する第１判定手段と、
前記第１判定手段で非文字領域と判定された文字切り矩形に含まれる画素数に基づいて、当該非文字領域と判定された文字切り矩形が文字領域か否かを判定する第２判定手段と、を有することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、例えば、画数が多く、太い文字に対しても、正確に文字領域か非文字領域か判定できるという効果がある。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態１に係る画像処理装置を含むシステムの全体構成を示す図。
【図２】本発明の実施形態１に係るＭＦＰのハードウェア構成を説明するブロック図。
【図３】実施形態１に係る文字切り矩形修正部の機能構成を示すブロック図。
【図４】実施形態１における、入力画像から文字領域を判定する処理の具体例を説明する図。
【図５】実施形態１に係るデータ処理部により実現される画像圧縮部の構成を説明するブロック図。
【図６】実施形態１に係るデータ処理部により実現される画像伸張部の構成を説明するブロック図。
【図７】実施形態１において、入力画像から文字領域と非文字領域とを判定し、文字領域から文字を抽出する処理の一例を説明する図。
【図８】実施形態１に係るデータ処理部による領域判定と、文字切り矩形が文字属性かどうかを判定する処理を説明するフローチャート。
【図９】図８のＳ８０５の黒画素密度による領域判定処理を説明するフローチャート。
【図１０】図８のＳ８０６の文字矩形の平均画素数の算出処理を説明するフローチャート。
【図１１】図８のＳ８０７の文字矩形の平均画素数による領域判定処理を説明するフローチャート。
【図１２】実施形態２に係るデータ処理部による領域判定と、文字切り矩形が文字属性かどうかを判定する処理を説明するフローチャート。
【図１３】図１２のＳ１２０６の文字切り矩形の中心点を求める処理を説明するフローチャート。
【図１４】図１２のＳ１２０７の中心点間距離による領域判定処理を説明するフローチャート。
【図１５】実施形態２に係る文字切り矩形修正部の機能構成を示すブロック図。
【図１６】実施形態１における領域判定の具体例を説明する図。
【発明を実施するための形態】
【００１４】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでするものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１５】
［実施形態１］
図１は、本発明の実施形態１に係る画像処理装置を含むシステムの全体構成を示す図である。実施形態１では、本発明に係る画像処理装置の一例である複合機（ＭＦＰ：multi-function peripheral）１０１とコンピュータ（以下、ＰＣ）１０２とが、ネットワーク１０３を介して接続されている。図において、点線１０４と１０５は処理の流れを示しており、点線１０４は、ユーザがＭＦＰ１０１のスキャナを用いて紙文書を読み込ませる処理を示す。その際、ユーザは、後述するＭＦＰ１０１のユーザインタフェース（図２の操作部２０３）を用いて、スキャン画像を送信する宛先（例えば、ＰＣ１０２）と、スキャンや送信に関わる各種設定を行うことができる。その各種設定として、ユーザは、解像度、圧縮率、データ書式（例えば、ＪＰＥＧ、ＴＩＦＦ、ＰＤＦ、ＰＤＦ高圧縮、ＰＤＦ高圧縮（ＯＣＲ結果付き））等を指定できる。実施形態１では、データ書式としてＰＤＦ高圧縮が指定された場合で説明する。ＰＤＦ高圧縮の詳細については後述する。点線１０５は、指定された各種設定に基づいて、ＭＦＰ１０１のソフトウェア或いはハードウェア機能を利用してデータを生成し、指定された宛先に送信する処理を示す。ここで、ＰＣ１０２へ送信される画像データは、ＰＤＦ等のファイルフォーマットで送信されることになるので、ＰＣ１０２の有する汎用的なビューアで閲覧可能である。
【００１６】
図２は、本発明の実施形態１に係るＭＦＰ１０１のハードウェア構成を説明するブロック図である。
【００１７】
ＭＦＰ１０１は、画像入力デバイスであるスキャナ部２０１と画像出力デバイスであるプリンタ部２０２、ＭＦＰ１０１の動作を制御する制御部２０４、ユーザインタフェースである操作部２０３等を有する。制御部２０４は、スキャナ部２０１、プリンタ部２０２、操作部２０３と接続し、一方では、ネットワーク１０３と接続することで、画像情報やデバイス情報の入出力を行う。ＣＰＵ２０５は、このＭＦＰ１０１全体を制御するプロセッサである。ＲＡＭ２０６は、ＣＰＵ２０５が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。ＲＯＭ２１０はブートＲＯＭで、ブートプログラム等のプログラムを格納している。記憶部２１１は、例えばハードディスクドライブで、システム制御ソフトウェア、画像データ等を格納する。操作部Ｉ／Ｆ（インタフェース）２０７は、操作部２０３のインターフェース部で、操作部２０３に表示するための画像データを操作部２０３に出力する。また操作部Ｉ／Ｆ２０７は、操作部２０３でユーザが入力した情報を、ＣＰＵ２０５に伝える役割をする。ネットワークＩ／Ｆ２０８は、ＭＦＰ１０１をネットワーク１０３に接続し、パケット形式の情報の入出力を行う。以上のデバイスがシステムバス２１６上に配置される。イメージバスＩ／Ｆ２１２は、システムバス２１６と、画像データを高速で転送する画像バス２１７とを接続し、データ構造を変換するバスブリッジである。画像バス２１７は、例えば、ＰＣＩバスやＩＥＥＥ１３９４で構成される。
【００１８】
画像バス２１７上には以下のデバイスが配置される。ラスタイメージプロセッサ（ＲＩＰ）部２１３は、ＰＤＬ（ページ記述言語）コードを解析し、指定された解像度のビットマップイメージに展開する、いわゆるレンダリング処理を実現する。デバイスＩ／Ｆ２１４は、信号線２１８を介して画像入力デバイスであるスキャナ部２０１を接続し、また信号線２１９を介してプリンタ部２０２を接続しており、画像データの同期系／非同期系の変換を行う。データ処理部２１５は、スキャナ部２０１より入力されるスキャンデータの画像処理及び、プリンタ部２０２へ出力するプリント画像データの画像処理を実施するとともに、ＰＤＦ高圧縮やＯＣＲ等の処理を行う。これにより、後述のＰＤＦ形式の圧縮データ（図５の５１５）を生成する。こうして生成された圧縮データは、ネットワークＩ／Ｆ２０８及びネットワーク１０３を介して、指定された宛先（例えば、ＰＣ１０２）に送信される。また、このデータ処理部２１５は、ネットワークＩ／Ｆ２０８及びネットワーク１０３を介して受信した圧縮データの伸張を行うこともできる。伸張された画像データは、デバイスＩ／Ｆ２１４を介してプリンタ部２０２に送られて印刷される。データ処理部２１５の詳細については後述する。
【００１９】
次に、実施形態１に係るデータ処理部２１５により実現される画像圧縮部の構成と画像伸張部の構成について、図５及び図６のブロック図を参照して説明する。前述した通り、データ処理部２１５では、プロセッサがコンピュータプログラムを実行することにより、図５又は図６の各処理部として機能するように構成してもよいし、その一部又は全部をＡＳＩＣや電子回路等のハードウェアで構成してもよい。実施形態１では、データ処理部２１５の機能は、ＣＰＵ２０５がＲＡＭ２０６に展開したプログラムを実行することにより実現されるものとして説明する。
【００２０】
ＰＤＦ高圧縮処理は、例えば特許文献１で述べられているように、属性毎の領域判定を行い、各領域の属性に応じて、ＭＭＲによる２値可逆圧縮とＪＰＥＧによる多値非可逆圧縮とを適応的に変えて圧縮する。即ち、文字領域に対してはＭＭＲ圧縮し、文字領域を周りの色で塗りつぶした画像をＪＰＥＧ圧縮することにより、圧縮率を高くできるとともに、文字領域については高い品位が得られるようにする。このＰＤＦ高圧縮の処理は、カラー或いはモノクロの多値画像に対して有効な圧縮技術である。詳細は後述するが、実施形態１では、文字領域内の画像情報を用いて、文字領域内にある、誤判定された文字を再判定することができる。これにより、文字列の中の画数が多く、太い文字も正しく領域判定して文字列全体の判読性を向上させることができる。
【００２１】
図５は、実施形態１に係るデータ処理部２１５により実現される画像圧縮部の構成を説明するブロック図であり、ここでは入力画像データを圧縮して高圧縮ＰＤＦを生成するための各処理部を示す。
【００２２】
２値化部５０２は、スキャナ部２０１で原稿を読み取って得られた多値画像データである入力画像５０１から２値画像を生成する。この２値画像では、入力画像５０１において閾値より濃い画素が例えば黒画素、閾値以下の画素が例えば白画素となる（勿論、２値化結果は、黒、白で表されず、他の色で表されても良いし、色ではなく、例えば「１」や「０」で表されてもよい）。また２値化部５０２は、閾値より濃い画素と、閾値以下の画素とを区別することを目的としているが、同じ目的を達成できるのであれば、２値化以外の方法でも良い（例えば、３値化、４値化でも良い）。但し、以下は、２値化部５０２で２値化がされたものとして説明する。ここで、例えば入力画像５０１が、図７（Ａ）の７０１で示すような画像である場合、２値画像は、図７（Ｂ）の７０２で示すようなモノクロ画像になる。
【００２３】
図７は、実施形態１において、入力画像から文字領域と非文字領域とを判定し、文字領域から文字を抽出する処理の一例を説明する図である。尚、入力画像がカラーの多値画像である場合には、２値化は、その多値画像の輝度（例えば、ＹＵＶの内のＹ）に対してのみ行われることになる。２値化を行う際の閾値の算出方法は公知の技術を用いる。例えば、画像全体の輝度のヒストグラムから算出しても良いし、任意の値を閾値としても良い。
【００２４】
領域判定部５０３は、２値化部５０２によって生成された２値画像から、文字領域と写真領域を検出する。ここで図１６を参照して、領域判定の概要を説明する。
【００２５】
図１６は、実施形態１における領域判定の具体例を説明する図である。
（１）２値画像に対して黒画素の輪郭を追跡することにより、黒画素の塊（黒画素塊）を抽出する。輪郭の追跡では、左上、左、左下、下、右下、右、右上、上の８つの方向の何れかで黒画素が連続しているかで判断する。例えば図１６（１）において枠線部分の黒画素塊を抽出する。
（２）抽出された黒画素塊の中に、一定の大きさを越える黒画素塊があれば、その領域内に白画素塊があるか判定する。即ち、黒画素塊の領域内で白画素の輪郭を追跡することにより白画素塊を抽出する。例えば図１６（２）の枠線の内側の白画素の輪郭を追跡して白画素塊を抽出する。更に、抽出した白画素塊が一定の大きさを越える場合には、再度、白画素塊内の黒画素の輪郭を追跡することにより黒画素塊を抽出する。例えば図１６（２）の黒文字部分の輪郭を追跡して黒画素塊を抽出する。これらの処理は、画素塊が一定の大きさ以下になるまで繰り返し行う。この処理は枠線などで囲まれた領域内の文字領域を抽出するために行う。
（３）得られた黒画素塊を、大きさや形状、黒画素密度の内の少なくとも１つを用いて、文字か写真かに分類する。例えば、図１６（３）の文字「Ａ」のように、縦横比が１に近く、かつ、大きさが定められた範囲の黒画素塊であれば、その黒画素塊は、文字を構成する黒画素塊であると判定する。そして、残りの黒画素塊を、写真を構成する画素塊と判定する。
（４）文字を構成する黒画素塊同士の端部からの距離が近接している場合に、その黒画素塊同士を同じグループに分類する。その上で、同じグループに分類された黒画素塊の何れをも包含する外接矩形領域を文字領域と判定する。例えば図１６（４）に示すように、文字間の距離が近い場合は、ＡＢＣの文字列を１つの文字領域として判定する。尚、文字を構成する他の黒画素塊が所定の距離内に無い場合、文字を構成する黒画素塊は、それ単独で一つのグループを構成することになる。従って、その単独の黒画素塊の外接矩形領域が文字領域と判定されることになる。尚、写真を構成する黒画素塊に対しても（４）で説明した処理と同様の処理がなされるものとする。そして、各領域の位置と、その領域の属性判定情報（文字か写真か）とを判定結果として出力する。
【００２６】
上記の（１）〜（４）の処理により、例えば、領域判定部５０３へ入力される２値画像が図７（Ｂ）の画像７０２の場合、図７（Ｃ）に示すように、領域７０４は文字領域と判定される。また領域７０５は、黒画素塊の縦横比が１から大きく異なるため、写真領域であるという判定結果が出力されることになる。以上で領域判定部５０３の説明を終える。
【００２７】
文字切出し部５０４は、領域判定部５０３で生成された文字領域の夫々に対して、文字切り矩形の切り出し処理を行う。切り出された結果は、図７（Ｆ）（Ｇ）の文字切り出し矩形として７１５，７１６のようになる。この切り出し処理は以下の処理（Ａ）〜（Ｅ）を含んでいる。
（Ａ）文字領域を選択する（例えば、図７（Ｄ）の領域７０４を選択する）。
（Ｂ）選択した文字領域７０４に対して、矢印７０８の方向（横方向）に、黒画素がいくつあるかを数える。その結果を、図７（Ｅ）の７０９で表す。７０９において、閾値ｔｈより多くの黒画素があった縦方向に連続するラインを１つのグループにする。この結果、図７（Ｅ）の７１０で表すように、２つのグループ７１１，７１２が抽出される。これら２つのグループ７１１，７１２は、７０６で示す「突然の雨に驚く」の文字列が存在するライン群を含むグループ７１１と、７０７で示すカメラで撮影された画像が存在するライン群を含むグループ７１２である。
（Ｃ）これらグループ７１１，７１２のそれぞれに対して、図７（Ｆ）の矢印７１３の方向（縦方向）に、黒画素がいくつあるかを数え、連続するラインを１つのグループにする。例えば、グループ７１１に対して処理を行った場合、７１４で示すように、７つのグループが抽出される。これら７つのグループは、それぞれ文字「突」、「然」、「の」、「雨」、「に」、「驚」、「く」が存在するライン群である。
（Ｄ）（Ｃ）で得られた各ライン群のグループの外接矩形を文字切出し矩形として切り出す。その結果、例えば、各文字の外接矩形が文字切出し矩形として切り出されることになる。切り出された結果は、図７（Ｆ）（Ｇ）の７１５，７１６で示す通りである。
（Ｅ）以上（Ａ）〜（Ｄ）の処理を、選択されていない文字領域が無くなるまで繰り返す。
【００２８】
次に図７を参照して、処理対象となる画像と、２値化・領域判定・文字切出しの処理結果の具体例を説明する。
【００２９】
図７（Ａ）の入力画像７０１は、図５の入力画像５０１に対応している。７２１は、濃いグラデーションで描写された写真領域で、７２２は黒文字で書かれた文字列、７２３は縦横の幅の大きな写真である。図７（Ｂ）の２値画像７０２は、２値化部５０２によって２値化により得られたた２値画像であり、写真領域７２１は、写真全体のグラデーションよりも小さい値の閾値で２値化された結果、黒くつぶれてしまっている。図７（Ｃ）の画像７０３は、領域判定部５０３により、文字領域と写真領域とが領域判定された結果を示す。ここで、領域７０４は文字領域と判定され、領域７０５は写真領域として判定されたものとする。
【００３０】
図７（Ｇ）は、文字切り出し部５０４により切り出された文字切り矩形の概略図を示す。７１５は、文字領域７０４の文字切り矩形である。
【００３１】
文字切り矩形修正部５０５は、文字切り出し部５０４により切り出された文字切り矩形内の文字画像について、非文字領域かどうか判定する。文字切り矩形修正部５０５の判定方法の詳細については後述する。
【００３２】
文字切り矩形修正部５０５で「２値化で黒く塗りつぶされた非文字領域」であると判定された文字領域の情報に基づいて、文字切り出し部５０４で生成された文字切り矩形情報を修正する。即ち、黒画素密度が高い場合は、「本来非文字領域であるが誤判定している領域」であると判定し、黒画素密度が低い場合には「確かに文字らしい領域」であると判定する。更に、非文字矩形領域内の画素数が、当該文字領域内の文字矩形の平均画素数に近しいかどうか判定し、近しいと判定された非文字属性の文字切り矩形を、文字属性の文字切り矩形であると再判定する。そうすることにより、画数の多い文字や太文字といった、黒画素密度による領域属性の修正によって、非文字属性の矩形であると判定される文字も正しく判定することができ、文字部全体の判読性を向上させることができる。
【００３３】
ＭＭＲ圧縮部５０６は、２値化部５０２で生成された２値画像から、文字切り矩形修正部５０５で修正した後の文字領域情報に基づいて文字領域の２値画像を抽出する。即ち、「背景から分離容易な文字画像」と判定された文字切り矩形に含まれる２値画像のみを抽出する。そして、その抽出した文字領域の２値画像に対してＭＭＲ圧縮を行って圧縮コード５１１を生成する。
【００３４】
一方、入力画像５０１は、縮小部５０７により縮小（又は低解像度化）され、不図示の縮小多値画像が生成される。実施形態１では、３００ｄｐｉの入力画像を１５０ｄｐｉに縮小する。
【００３５】
代表色抽出部５０８は、文字切り矩形修正部５０５で修正した後の文字領域情報と文字切り矩形情報とに基づいて、２値画像における各文字を構成する画素（黒画素）の位置を特定する。そして、その特定した文字の画素の位置に基づいて、縮小多値画像における、対応する位置の色を参照して、文字切り矩形の単位で文字の代表色を算出し、各文字の文字色情報５１３を得る。例えば、代表色は、文字切り矩形における２値画像で黒となった画素群の多値画像における色の平均や重み付け平均である。或いは、そうした画素群の中で最も頻度の多い色である。このように代表色の取り方は様々考えられるが、文字切り矩形における２値画像で黒となった画素群のうちの少なくとも一画素の、多値画像における色が、代表色の算出に用いられることになる。
【００３６】
文字領域穴埋め部５０９は、文字切り矩形修正部５０５で修正した後の文字領域情報と文字切り矩形情報とに基づいて、２値画像における各文字を構成する画素（黒画素）の位置を特定する。そして、その特定した画素の位置に基づいて、縮小多値画像における対応する位置の画素を、その周辺色で塗り潰す処理を行う。この周辺色は、文字の周囲の画素の画素値の平均値を用い、文字の画素の画素値を、その求めた周辺色で置き換えればよい。文字領域穴埋め部５０９による穴埋め処理の詳細は、例えば特許文献１に記載されている。
【００３７】
ＪＰＥＧ圧縮部５１０は、文字領域穴埋め部５０９で穴埋めされた画像データを入力として圧縮コード５１４を生成する。
【００３８】
このようにして、各構成要素から得られる圧縮コード５１１、文字領域情報５１２、文字色情報５１３、圧縮コード５１４のデータ群を結合した圧縮データ５１５が生成される。
【００３９】
図６は、実施形態１に係るデータ処理部２１５により実現される画像伸張部の構成を説明するブロック図であり、ここでは、別の装置から送られてきた圧縮データが圧縮データ５１５と同じデータ構造であった場合を例に説明する。画像伸張部の処理は、圧縮データを伸張して印刷する場合などに実行される。
【００４０】
ＭＭＲ伸張部６０１は、圧縮データ５１５のファイルに含まれている圧縮コード５１１に対してＭＭＲ伸張処理を行って２値画像を再現する。ＪＰＥＧ伸張部６０３は、圧縮コード５１４に対してＪＰＥＧ伸張処理を行って縮小多値画像を再現する。拡大部６０４は、ＪＰＥＧ伸張部６０３で伸張された縮小多値画像に対して拡大処理を行うことで、圧縮前の入力画像５０１のサイズと同じサイズの多値画像を生成する。合成部６０２は、文字領域情報５１２を参照しながら、ＭＭＲ伸張部６０１で伸張された２値画像の黒画素に文字色情報の色（以下、文字色と称する文字色情報５１３）を割り当る。更に、その文字色が割り当てられた２値画像を、拡大部６０４で生成された多値画像の上に合成することにより、伸張画像６０５を生成する。この合成に際して、２値画像における白画素に対しては透明色が割り当てられており、背景の多値画像を透過する。このように、画像伸張部は、画像圧縮部により生成された圧縮データを伸張して伸張画像６０５を生成する。この伸張画像６０５は、デバイスＩ／Ｆ２１４を介してプリンタ部２０２に送られて印刷される。
【００４１】
次に、上述した文字切り矩形修正部５０５が実行する処理の詳細を図３、図４を参照して説明する。
【００４２】
文字切り矩形修正部５０５は、２値化部５０２で生成された２値画像と、文字切出し部５０４で生成された文字切り矩形情報とに基づいて、更に、文字切り矩形が文字領域か非文字領域か判定する。尚、記憶部２１１において、入力画像５０１が保持されている場合は、縮小多値画像の代わりに入力画像５０１を用いてもよい。
【００４３】
図４は、実施形態１における、入力画像から文字領域を判定する処理の具体例を説明する図である。
【００４４】
ここで図４の４０１は、白の背景上に記載された文字列（画数が多く、文字線の太い文字を含む）の領域に近い写真がある画像の例を示しており、２値化部５０２で画像４０１を２値化すると、４０２に示すような画像になる。４０３は、領域判定部５０３で文字領域であると判定された領域を示している。また、４０４〜４０６は、文字切り出し部５０４により、文字領域４０３に対して文字矩形の切り出し処理を行った結果を示す。
【００４５】
図３は、実施形態１に係る文字切り矩形修正部５０５の機能構成を示すブロック図である。
【００４６】
黒画素密度による領域判定部３０１は、各文字切り矩形４０４〜４０６の領域内の黒画素の画素数を計数する。そしてその計数した画素数が閾値より大きい場合、その文字切り矩形を非文字属性（非文字領域）と判定する。例えば、文字切り矩形４０４の「突」「然」「の」「雨」「に」「く」は、文字切り矩形内の黒画素の密度が低いため文字属性として判定する。一方で、文字切り矩形４０５，４０６は、文字切り矩形内の黒画素の密度が高いため、非文字属性として判定する。
【００４７】
以降、文字属性として判定された文字切り矩形を「文字属性矩形」、非文字属性として判定された矩形を「非文字属性矩形」と呼ぶ。これにより、元々非文字領域である領域４０５を、非文字領域と正しく判定することができる。
【００４８】
文字矩形の平均画素数算出部３０２は、各文字切り矩形が文字属性矩形である場合、その文字切り矩形内の画素数をカウントする。そして、同一文字領域内の文字属性矩形の矩形数で除算し、文字属性矩形の平均画素数を算出する。より具体化するために、文字領域の解像度を３００ｄｐｉ、文字切り矩形４０４のフォントサイズを１０．５ｐｔとする。この場合、文字属性矩形の平均画素数は、およそ２０００となる。これ以降、文字属性矩形の平均画素数を「文字矩形平均」と呼ぶ。
【００４９】
文字矩形の平均画素数による領域判定部３０３は、各文字切り矩形が非文字属性矩形かどうか判定し、非文字属性矩形の場合、非文字属性矩形領域内の画素数を計数する。その後、その計数した画素数と、文字矩形平均とが近しい場合、その非文字属性矩形を文字属性と判定する。より具体化するために、例えば、非文字属性矩形４０５の画素数が１２０００、非文字属性矩形４０６の画素数が２５００であるとする。これらの値と、文字矩形の平均画素数算出部３０２で算出した文字矩形の平均画素数２０００とでそれぞれ減算して、絶対値を求める。その絶対値が「１０００」、即ち、非文字属性矩形の画素数が、文字矩形平均の５０％〜１５０％の値の場合、その非文字属性矩形は文字属性であると判定する。そうでない場合、非文字属性矩形は非文字属性であると判定する。従って、この例では、非文字属性矩形４０５の場合は絶対値は「１００００」となり、文字矩形平均の５０％〜１５０％でないため非文字属性と判定される。一方、非文字属性矩形４０６の場合は、絶対値は「５００」となり、文字矩形平均の５０％〜１５０％に入るため文字属性と判定される。一般的に、文字列中の文字サイズは同じであると考えられるため、文字種類のパターン等も考慮して、文字矩形平均の５０％〜１５０％の画素数の非文字属性矩形を文字属性であると判定する。以上が、文字切り矩形修正部５０５の構成を示す図３に関する説明である。
【００５０】
図８は、実施形態１に係るデータ処理部２１５による領域判定と、文字切り矩形が文字属性かどうかを判定する処理を説明するフローチャートである。尚、この処理の説明において、適宜、図２、図３及び図５を適宜参照する。尚、文字切り矩形修正部５０５の処理は、図８のＳ８０５〜Ｓ８０７の処理に該当している。また、ここでは前述したように、データ処理部２１５の機能はＣＰＵ２０５がＲＡＭ２０６に展開したプログラムを実行することにより達成されるとして説明する。
【００５１】
まずＳ８０１でＣＰＵ２０５は、２値化部５０２として機能し、入力画像５０１の２値化を行う。次にＳ８０２に進みＣＰＵ２０５は領域判定部５０３として機能し、２値画像に対して領域判定を行い、その判定した領域が文字領域か、非文字領域かを判定する。次にＳ８０３に進みＣＰＵ２０５は、領域として判定された領域の一つを順次、注目領域とし、その注目領域が文字領域と判定されているかどうか判定し、文字領域と判定されていればＳ８０４へ、非文字領域と判定されていればＳ８０８へ進む。Ｓ８０４でＣＰＵ２０５は文字切出し部５０４として機能し、文字の切り出しを行うことによって文字切り矩形情報を生成する。
【００５２】
次にＳ８０５に進みＣＰＵ２０５は文字切り矩形修正部５０５の黒画素密度による領域判定部３０１として機能し、黒画素密度による領域判定を行う。この詳細を、図９のフローチャートを参照して説明する。
【００５３】
図９は、図８のＳ８０５の黒画素密度による領域判定処理を説明するフローチャートである。
【００５４】
まずＳ９０１でＣＰＵ２０５は、文字切り矩形内の黒画素の数を計数し、文字切り矩形内における黒画素の密度を算出する。次にＳ９０２に進みＣＰＵ２０５は、Ｓ９０１で計数された黒画素密度と所定の閾値（ｔｈ）とを比較し、「２値化で黒く塗りつぶされた非文字領域」であるかを判定する。即ち、黒画素密度が所定の閾値ｔｈよりも高い場合は、「本来非文字領域であるが誤って文字領域と判定している領域」であると判定してＳ９０３に進み、ＣＰＵ２０５は、その文字切り矩形を非文字属性に修正してＳ９０４に進む。一方、Ｓ９０２でＣＰＵ２０５は、黒画素密度が所定の閾値ｔｈよりも低いと判定した場合は、「確かに文字らしい領域」であると判定してＳ９０３をスキップしてＳ９０４に進む。これにより、本来非文字領域である、図４の４０５のような領域を、正しく非文字領域と判定することができる。
【００５５】
Ｓ９０４でＣＰＵ２０５は、当該着目している文字領域内の全ての文字切り矩形について処理が終了しているかどうか判定し、終了していると判定すると、このフローチャートを終了してＳ８０６に進む。一方、Ｓ９０４でＣＰＵ２０５は、未処理の文字切り矩形があると判定した場合はＳ９０５に進み、次の文字切り矩形を処理対象に設定してＳ９０１に戻る。
【００５６】
Ｓ８０６でＣＰＵ２０５は文字矩形の平均画素数算出部３０２として機能し、現在、着目している文字領域内の、文字属性矩形の平均画素数を算出する。この処理の詳細を図１０のフローチャートを参照して説明する。
【００５７】
図１０は、図８のＳ８０６の文字矩形の平均画素数の算出処理を説明するフローチャートである。
【００５８】
まずＳ１００１でＣＰＵ２０５は、現在着目している文字切り矩形が文字属性の矩形かどうか判定する。ここで文字属性の矩形であると判定するとＳ１００２へ進み、そうでないときはＳ１００３へ進む。Ｓ１００２でＣＰＵ２０５は、文字属性であると判定された文字切り矩形内の全ての画素数を計数する。次にＳ１００３に進みＣＰＵ２０５は、現在、着目している文字領域内の全ての文字切り矩形について処理が終了しているかどうか判定し、終了していると判定するとＳ１００４に進む。一方、Ｓ１００３でＣＰＵ２０５は、未処理の文字切り矩形があると判定した場合はＳ１００５に進み、次の文字切り矩形を処理対象に設定してＳ１００１に戻る。Ｓ１００４でＣＰＵ２０５、その文字領域内の、Ｓ１００２で計数された全ての文字属性矩形領域の画素数を加算し、その合計値を、加算に用いた全ての文字属性矩形の数で除算する。これにより、文字矩形平均を求めることができる。この処理が終了すると、このフローチャートを終了してＳ８０７に進む。
【００５９】
次にＳ８０７に進みＣＰＵ２０５は、文字矩形の平均画素数による領域判定部３０３として機能し、黒画素密度による領域判定部３０１による、文字切り矩形の属性の判定が正しいかどうか再判定する。この処理の詳細を図１１のフローチャートを参照して説明する。
【００６０】
図１１は、図８のＳ８０７の文字矩形の平均画素数による領域判定処理を説明するフローチャートである。
【００６１】
まずＳ１１０１でＣＰＵ２０５は、現在の文字切り矩形が非文字属性かどうか判定する。ここで非文字属性であると判定するとＳ１１０２に進むが、文字属性であると判定するとＳ１１０５に進む。Ｓ１１０２でＣＰＵ２０５は、その非文字属性の文字切り矩形内の画素数をカウントする。次にＳ１１０３に進みＣＰＵ２０５は、Ｓ１１０２でカウントした、その非文字属性の矩形内の画素数が、図１０のＳ１００４で算出した当該文字領域内の文字属性の文字切り矩形の平均画素数に近いか否かを判定する。ここでは前述したように、文字属性矩形内の画素数と平均画素数との差の絶対値を求め、その絶対値が文字矩形の平均画素数の５０％〜１５０％かどうか判定する。そうであればＳ１１０４に進みＣＰＵ２０５は、その文字切り矩形の属性を文字属性に変更してＳ１１０５に進む。これにより、Ｓ８０６で行った黒画素密度による文字切り矩形の属性の修正によって非文字属性であると判定された画数の多い文字や太文字を、正しく文字と判定することができる。Ｓ１１０５でＣＰＵ２０５は、現在、着目している文字領域内の全ての文字切り矩形について処理が終了しているかどうか判定し、終了していると判定すると、このフローチャートで示す処理を終了してＳ８０８に進む。一方、Ｓ１１０５で未処理の文字切り矩形があると判定した場合はＳ１１０６に進みＣＰＵ２０５は、次の文字切り矩形を処理対象に設定してＳ１１０１に戻る。
【００６２】
こうしてＳ８０８に進みＣＰＵ２０５は、全ての文字領域についての判定が終了したかどうか判定し、そうであればこの処理を終了する。一方、未処理の領域があると判定した場合はＳ８０９に進んで次の文字領域を処理対象としてＳ８０３に戻る。
【００６３】
以上説明したように実施形態１によれば、文字切り矩形の単位で、文字矩形、非文字矩形かを、より正確に判定することができる。これにより、例えばＭＭＲ圧縮された高品位の文字列の中に、ＪＰＥＧ形式の圧縮がかかった低品位の文字が現れた場合でも、文字列の判読性を欠くという課題を解決することができる。
【００６４】
［実施形態２］
図１５は、実施形態２に係る文字切り矩形修正部５０５の機能構成を示すブロック図である。
【００６５】
実施形態２では、文字切り矩形修正部５０５は、実施形態１と同様の黒画素密度による領域判定部３０１と、実施形態２の特徴である文字切り矩形の中心点算出部１５０１、中心点間距離による領域判定部１５０２とを有している。
【００６６】
文字切り矩形の中心点算出部１５０１は、各文字切り矩形の中心点を算出する。この算出方法は、例えば、各文字切り矩形の縦の画素数と横の画素数から算出しても良い。中心点間距離による領域判定部１５０２は、着目している文字領域内の、各非文字属性の文字切り矩形の中心点について、最も近い文字属性の文字切り矩形の中心点との間の距離を求める。そしてその距離が閾値（所定値）より小さい場合は、その文字切り矩形の属性を非文字属性から文字属性に変更する。尚、実施形態２に係るシステム及び画像形成装置のハードウェア構成等は、前述の実施形態１と同様であるため、その説明を省略する。
【００６７】
図１２は、実施形態２に係るデータ処理部２１５による領域判定と、文字切り矩形が文字属性かどうかを判定する処理を説明するフローチャートである。尚、図１２において、Ｓ１２０１〜Ｓ１２０５の処理は、前述の図８のＳ８０１〜８０５の処理と同様であるため、その説明を省略する。
【００６８】
Ｓ１２０６でＣＰＵ２０５は文字切り矩形の中心点算出部１５０１として機能し、文字矩形の中心点を求める。この処理の詳細を図１３を参照して説明する。
【００６９】
図１３は、図１２のＳ１２０６の文字切り矩形の中心点を求める処理を説明するフローチャートである。
【００７０】
まずＳ１３０１でＣＰＵ２０５は、対象の文字切り矩形の中心点を求める。これは前述したように、文字切り矩形の縦の画素数と横の画素数から算出しても良く、或いは、文字切り矩形の座標から求めてもよい。次にＳ１３０２に進みＣＰＵ２０５は、現在、着目している文字領域内の全ての文字切り矩形に対する処理が終了しているかどうか判定し、終了していると判定すると、このフローチャートで示す処理を終了してＳ１２０７に進む。一方、Ｓ１３０２で未処理の文字切り矩形があると判定した場合はＳ１３０３に進み、次の文字切り矩形を処理対象に設定してＳ１３０１に進む。
【００７１】
Ｓ１２０７でＣＰＵ２０５は中心点間距離による領域判定部１５０２として機能し、中心点間の距離に基づく領域判定を行う。この詳細を図１４のフローチャートを参照して説明する。
【００７２】
図１４は、図１２のＳ１２０７の中心点間距離による領域判定処理を説明するフローチャートである。
【００７３】
まずＳ１４０１でＣＰＵ２０５は、現在の文字切り矩形の属性が非文字属性かどうか判定する。ここで非文字属性と判定するとＳ１４０２に進むが、そうでないときはＳ１４０５に進む。Ｓ１４０２でＣＰＵ２０５は、文字切り矩形の中心点算出部１５０１として機能して、この非文字属性である文字切り矩形の中心点からの最近傍点の、即ち、最も近い文字属性の文字切り矩形を検出する。この最近傍点は、例えば、市街地距離やユークリッド距離から求めるものとする。次にＳ１４０３に進みＣＰＵ２０５は中心点間距離による領域判定部１５０２として機能し、現在の非文字属性である文字切り矩形の中心点と、Ｓ１４０２で検出した最近傍の文字属性を有する文字切り矩形の中心点との距離を算出する。そして、その距離が閾値ｔｈより短いかどうか判定し、そうであればＳ１４０４に進みＣＰＵ２０５は、現在の非文字属性である文字切り矩形の属性を文字属性に変更してＳ１４０５に進む。一方、Ｓ１４０３でＣＰＵ２０５は、その距離が閾値ｔｈより長いと判定すると、現在の非文字属性である文字切り矩形の属性は非文字属性のままと判定してＳ１４０５に進む。ここで例えば、閾値ｔｈを、現在の非文字属性である文字切り矩形の縦方向の長さの２倍、もしくは横方向の長さの２倍とすれば、同じ文字列中の文字かどうか判定することができる。こうして、文字列中の、画数が多く黒画素密度の高い文字や、他の文字に比べて文字サイズの異なる文字を正しく判定することが可能となる。その結果、図４の４０６の様な文字も正しく判定することができる。
【００７４】
Ｓ１４０５でＣＰＵ２０５は、現在、着目している文字領域内の全ての文字切り矩形に対する処理が終了したかどうか判定し、終了したとと判定すると、この処理を終了してＳ１２０８に進む。一方、Ｓ１４０５で未処理の文字切り矩形があると判定した場合はＳ１４０６に進み、次の文字切り矩形を処理対象に設定してＳ１４０１に進む。
【００７５】
こうして図１２に戻ると、Ｓ１２０８でＣＰＵ２０５は、全ての文字領域についての判定が終了したと判定すると、この処理を終了し、未処理の領域があると判定した場合はＳ１２０９に進んで、次の文字領域を処理対象としてＳ１２０３に戻る。
【００７６】
以上説明したように実施形態２によれば、注目する文字切り矩形から、所定の距離以内に存在する文字切り矩形の属性に基づいて、当該文字切り領域の属性を決定する。これにより、文字列中に含まれる、画数が多く文字線の太い文字や、大きな文字も高い精度で正しく属性の判定を行うことができる。
【００７７】
尚、実施形態２では、文字切り矩形の中心点間の距離を用いて、その文字切り矩形の属性を判定したが、例えば、文字切り矩形の縦横比を用いてもよい。即ち、文字属性の矩形の縦横比に近い非文字属性の文字切り矩形であれば、その非文字属性の文字切り矩形の属性を文字属性に変更する。これにより、文字列中に含まれる、画数が多く文字線の太い文字や、大きな文字も高い精度で正しく属性の判定を行うことができる。
【００７８】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００７９】
本発明は上記実施形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。
【符号の説明】
【００８０】
１０１…画像形成装置（ＭＦＰ），２０３…操作部、２０５…ＣＰＵ、２１５…データ処理部、３０１…黒画素密度による領域判定部、３０２…文字矩形の平均画素数算出部、３０３…文字矩形の平均画素数による領域判定部、５０３，５０５…領域判定部、５０４…文字切出し部、５１５…圧縮データ
【図１】
2020053818.tif 000003
【図２】
2020053818.tif 000004
【図３】
2020053818.tif 000005
【図４】
2020053818.tif 000006
【図５】
2020053818.tif 000007
【図６】
2020053818.tif 000008
【図７】
2020053818.tif 000009
【図８】
2020053818.tif 000010
【図９】
2020053818.tif 000011
【図１０】
2020053818.tif 000012
【図１１】
2020053818.tif 000013
【図１２】
2020053818.tif 000014
【図１３】
2020053818.tif 000015
【図１４】
2020053818.tif 000016
【図１５】
2020053818.tif 000017
【図１６】
2020053818.tif 000018