(57)【要約】【課題】  相対的に大きい二値化閾値を用いた二値化処理は、文字が掠れた部分を黒画素化するが、照明の映り込み部分などの不要な部分も黒画素化してしまう。【解決手段】  相対的に大きい二値化閾値を用いた二値化処理で黒画素化された部分のうち、所定の処理に用いる部分を、相対的に小さい二値化閾値を用いて特定する。【選択図】  図６
2018195262.tif 000002
【特許請求の範囲】
【請求項１】
二値化閾値よりも暗い画素を黒画素に変換する所定の二値化処理を入力画像に行うことで二値画像を生成し、前記二値画像に含まれる黒画素群を用いて所定の処理を行う画像処理装置において、
前記入力画像の同じ画素に対する二値化閾値が前記二値化処理で用いられる値よりも小さい別の二値化処理を、前記入力画像に対して行うことで別の二値画像を生成する生成手段と、
前記別の二値画像を少なくとも用いて、前記二値画像に含まれる黒画素群のうちの少なくとも１つの黒画素群を特定する特定手段と、
前記特定の結果に基づいて、前記二値画像に含まれる黒画素群を用いて前記所定の処理を行う処理手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記特定手段は、前記二値画像と前記別の二値画像との差分を求め、当該求められた差分に基づいて、前記少なくとも１つの黒画素群を特定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記特定手段は、前記差分の画像に対して、白画素と隣接する黒画素を白画素に変換する処理を行った結果、黒画素が残る場合に、当該残った黒画素に対応する前記二値画像に含まれる黒画素群を、前記所定の処理に用いられない黒画素群として特定することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記特定手段は、前記差分の画像に含まれる黒画素群の幅が所定画素幅を超える場合に、当該黒画素群を前記所定の処理に用いられない黒画素群として特定することを特徴とする請求項２に記載の画像処理装置。
【請求項５】
前記処理手段は、前記所定の処理に用いられない黒画素群として特定された黒画素群を、前記二値画像から削除することを特徴とする請求項３または４に記載の画像処理装置。
【請求項６】
前記処理手段は、前記削除が行われた二値画像に含まれる黒画素群と、前記別の二値画像に含まれる黒画素群とを用いて、前記所定の処理を行うことを特徴とする請求項５に記載の画像処理装置。
【請求項７】
入力画像に基づいて輝度画像を生成し、前記輝度画像に対して二値化処理を行うことで二値画像を生成し、前記二値画像に基づいて所定の処理を行う画像処理装置において、
第１の二値化処理を、前記輝度画像に対して行うことで第１の二値画像を生成する第１の生成手段と、
前記輝度画像の同じ画素に対する二値化閾値が前記第１の二値化処理で用いられる値よりも大きい第２の二値化処理を、前記輝度画像に対して行うことで第２の二値画像を生成する第２の生成手段と、
複数の白画素に隣接する黒画素を白画素に変換する処理を、前記第２の二値画像に対して行うことで第３の二値画像を生成する第３の生成手段と、
前記第１および第３の二値画像に基づいて、前記第１および第３の二値画像の排他的論理和に相当する第４の二値画像を生成する第４の生成手段と、
少なくとも１つの白画素に隣接する黒画素を白画素に変換する処理を、前記第４の二値画像に対して行うことで第５の二値画像を生成する第５の生成手段と、
前記第５の二値画像に含まれる黒画素に対応する位置の、前記第３の二値画像中の黒画素群を特定する特定手段と、
前記特定された黒画素群を白画素に変換する処理を行うことで、第６の二値画像を生成する第６の生成手段と、
前記第１および第６の二値画像に基づいて、前記第１および第６の二値画像の論理和に相当する第７の二値画像を生成する第７の生成手段と、
前記第７の二値画像に基づいて前記所定の処理を行う処理手段と、
を有することを特徴とする画像処理装置。
【請求項８】
前記入力画像はカラー画像から得られたグレースケール画像であり、
前記処理手段は、前記二値画像に含まれる黒画素群に対応する前記カラー画像の部分を単色化するかを判定し、当該判定に基づいて当該部分を当該部分の色に対応する所定の色で単色化することを、前記所定の処理として行うことを特徴とする請求項１乃至７の何れか１項に記載の画像処理装置。
【請求項９】
二値化閾値よりも暗い画素を黒画素に変換する所定の二値化処理を入力画像に行うことで二値画像を生成し、前記二値画像に含まれる黒画素群を用いて所定の処理を行う画像処理方法において、
前記入力画像の同じ画素に対する二値化閾値が前記二値化処理で用いられる値よりも小さい別の二値化処理を、前記入力画像に対して行うことで別の二値画像を生成する生成工程と、
前記別の二値画像を少なくとも用いて、前記二値画像に含まれる黒画素群のうちの少なくとも１つの黒画素群を特定する特定工程と、
前記特定の結果に基づいて、前記二値画像に含まれる黒画素群を用いて前記所定の処理を行う処理工程と、
を有することを特徴とする画像処理方法。
【請求項１０】
前記特定工程は、前記二値画像と前記別の二値画像との差分を求め、当該求められた差分に基づいて、前記少なくとも１つの黒画素群を特定することを特徴とする請求項９に記載の画像処理方法。
【請求項１１】
請求項１乃至８の何れか１項に記載の画像処理装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、プログラムに関する。
【背景技術】
【０００２】
二値化処理によって入力画像の閾値未満の暗い画素を黒画素に変換し、黒画素群を文字とみなして文字用の所定の処理を行う技術がある。この画像中の文字が掠れた部分も文字として扱うために、掠れた部分も黒画素になるような二値化閾値を用いることが望ましい。特許文献１では、複数の二値化閾値それぞれで二値化した複数の二値画像のそれぞれについて二値画像に含まれる文字等のコンテンツ数とノイズ数とを評価し、それら複数の二値画像の中から最適な二値画像を選択する技術を開示する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−２２４９１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術では１つの二値画像に含まれる黒画素群を別の二値画像を用いて評価することはしてない。そのため、ある二値画像中に含まれる黒画素群のうち、所定の処理に用いる黒画素群を適切に特定することができないことがある。
【０００５】
そこで本発明は、二値画像に含まれる黒画素群のうち、所定の処理に用いる、あるいは用いない黒画素群を別の二値画像を用いて特定することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、特許請求の範囲に記載の通りである。
【発明の効果】
【０００７】
本発明によれば、所定の処理を行うために用いる黒画素群を適切に特定できる。
【図面の簡単な説明】
【０００８】
【図１】本発明の第１の実施形態に係る携帯端末の概観図である。
【図２】本発明の第１の実施形態に係る携帯端末の概略構成を示すブロック図である。
【図３】本発明の第１の実施形態に係る処理手順のフローチャートである。
【図４】本発明の第１の実施形態に係る枠検知処理、枠指定、歪み補正処理を表す図である。
【図５】本発明の第１の実施形態に係る画像補正処理のフローチャートである。
【図６】本発明の第１の実施形態に係る前景抽出処理のフローチャートである。
【図７】本発明の第１の実施形態に係る前景抽出処理の流れを示すである。
【図８】本発明の第１の実施形態に係るノイズ領域判定処理のフローチャートである。
【図９】本発明の第１の実施形態に係るノイズ領域判定処理の流れを示す図である。
【発明を実施するための形態】
【０００９】
［実施例１］
以下に、本発明を実施するための形態について図面を用いて説明する。
【００１０】
＜携帯端末の構成＞
図１に本実施例で利用する携帯端末（情報処理装置、画像処理装置）１０１の外観を示す。図１（ａ）は、携帯端末１０１を表側の外観図であり、表側には、タッチパネルディスプレイ１０２、操作ボタン１０３が含まれる。図１（ｂ）は、携帯端末１０１の裏側の外観図であり、裏側には、カメラ１０４が配置されている。また、カメラ１０４には図示しないオートフォーカス機構が搭載されており、これにより焦点距離や被写体距離を測定することもできる。
【００１１】
なお、本実施例は撮影機能を持つ装置ならば利用が可能である。例えば、撮影機能を有するスマートフォン（携帯電話）やタブレット端末やパソコン（ＰＣ）のみならず、タッチパネルディスプレイを有するデジタルカメラでも構わない。また、有線または無線でカメラと接続されたＰＣ等でも実施可能である。また、カメラ等で撮影された画像データが保存されている保存装置（メモリカード等）から、携帯端末やＰＣ等が画像データを読み込んで本実施例の処理を行うことも可能である。
【００１２】
図２に携帯端末１０１の内部のハードウェア構成を示す。但し、この構成図は本実施例を実施するための構成の一例であり、この構成に限るものではない。図２において、ＣＰＵ２０１、ＲＡＭ２０２、ＲＯＭ２０３がデータバス２０９を介してプログラムやデータを送受信する。データバス２０９には、記憶部２０４、データ送受信部２０５、撮像部２０６、表示部２０７、操作部２０８が接続される。さらに、ＣＰＵ２０１、ＲＡＭ２０２、ＲＯＭ２０３も併せて、互いにプログラムやデータの送受信を行う。
【００１３】
記憶部２０４は、フラッシュメモリであり、画像データや図３の処理フローを実行するためのプログラムを含む各種プログラムを格納する。
【００１４】
データ送受信部２０５は、無線ＬＡＮコントローラを有し、外部とのデータの送受信を実現する。
【００１５】
撮像部２０６は、カメラであり、ホワイトボード面の撮影を行って撮影画像を取得する。取得された撮影画像には、携帯端末のメーカー名やモデル名・画像解像度・絞り（Ｆ値）・焦点距離などのヘッダー情報が付与され、後述のように各部に送信される。
【００１６】
表示部２０７は、タッチパネルディスプレイ１０２を構成するディスプレイであり、撮影機能を用いてホワイトボード面を撮影する際の被写体の映像のライブビューを表示する。
【００１７】
操作部２０８は、タッチパネルディスプレイ１０２を構成するタッチパネルや操作ボタン１０３であり、ユーザからの操作を受け付けて各部へ該操作の情報を送信する。
【００１８】
なお、ＣＰＵ２０１がＲＯＭ２０３または記憶部２０４で保持されているコンピュータプログラムを実行することで、これらの携帯端末１０１内の構成要素の制御を行う。
【００１９】
＜フローチャートを用いた本実施例の詳細説明＞
本実施例では、ユーザが携帯端末１０１を用いてホワイトボード面を撮影し、撮影画像内からホワイトボード面の部分だけを切り出して画像補正するアプリケーションを想定している。図３は、本実施例における携帯端末１０１が実行する処理手順を説明するフローチャートである。また、図４は、撮影画像からホワイトボード面の部分を切り出す処理の流れを示した図である。
【００２０】
携帯端末１０１のＣＰＵ２０１（コンピュータ）が、ＲＯＭ２０３に格納されている処理プログラムをＲＡＭ２０２にロードして実行することにより、図３の各ステップの処理を実行する処理部として機能する。なお、ＣＰＵ２０１は、データ送受信部２０５を介して外部のサーバから取得した処理プログラムを記憶部２０４に格納し、その処理プログラムをＲＡＭ２０２にロードして実行することで、以下の各ステップの処理を実行する処理部として機能してもよい。
【００２１】
ステップＳ３０１において、ＣＰＵ２０１は、ユーザによって選択または撮影された入力画像データを取得する。入力画像データが選択される場合には、記憶部２０４やメモリカード等に格納されている画像データの中から、操作部２０８を介してユーザによって指示された画像データを選択し、データパス２０９を経由して取得する。また、入力画像データが撮影される場合には、操作部２０８を介してユーザによって撮影指示を受け付け、撮像部２０６で取得された画像データを、データパス２０９を経由して取得する。入力画像データはＲ（レッド）、Ｇ（グリーン）、Ｂ（ブルー）の３チャンネルのカラー画像とする。図４（ａ）は、入力画像データであり、画像内にホワイトボード面４０１を撮影した領域を含む。
【００２２】
ステップＳ３０２において、ＣＰＵ２０１は、ステップＳ３０１で取得した入力画像データ中から、ホワイトボード面の形状を表す四辺形領域を特定する領域特定処理を実行する。領域特定処理は、ホワイトボード面の各辺の候補となる候補線分群（候補辺群）を検出し、その候補線分群の組み合わせで構成される四辺形を評価することで実現する。候補線分群の検出と、四辺形の評価方法には、公知の方法が用いられる。たとえば、候補線分群は、入力画像から検出されたエッジ情報を、極座標上に投票して直線を検出するＨｏｕｇｈ変換アルゴリズムによって検出する。また、四辺形は、対辺の長さの比や内角の大きさ、アスペクト比などの幾何学的な情報に基づいて評価してもよいし、四辺形を構成する線分について、内側と外側の色味や分散を比較するなどの画像情報に基づいて評価してもよい。
【００２３】
ステップＳ３０３において、ＣＰＵ２０１は、ステップＳ３０２で検出された四辺形領域を前記入力画像データに重ねて表示し、当該表示された四辺形領域の形状変更（修正）をユーザから受け付ける領域指定処理を実行する。図４（ｂ）は、入力画像上に特定された四辺形領域を重ねて表示した画像である。４０２、４０３、４０４、４０５が特定された領域の辺を示しており、ユーザから辺の位置の指示を受け付けるための辺ハンドラである。また、４０６、４０７、４０８、４０９は特定された領域の頂点を示しており、ユーザから頂点の位置の指示を受け付けるための頂点ハンドラである。ユーザが辺ハンドラおよび頂点ハンドラを、選択して操作することで四辺形領域の形状変更を可能にする。
【００２４】
ステップＳ３０４において、ＣＰＵ２０１は、ステップＳ３０３で指定された四辺形領域に含まれる入力画像データの部分の画像を抽出し、矩形画像になるように歪みを補正する歪み補正処理を実行する。歪み補正は、四辺形領域が台形以外の形状に歪んでいる場合も考慮し、射影変換を利用する。射影変換行列は、入力画像内の四辺形領域の頂点情報（頂点４０６、４０７、４０８、４０９）と、出力画像の四隅の座標情報（４１０、４１１、４１２、４１３）から公知の方法により算出することが可能である。なお、処理速度を優先する場合には、アフィン変換行列や単純な変倍率を変倍パラメータとして算出しても良い。歪み補正の結果画像を示したのが、図４（ｃ）である。
【００２５】
ステップＳ３０５において、ＣＰＵ２０１は、ステップＳ３０４で得られた歪み補正後の画像に対して、画像補正処理を実行する。画像補正処理の詳細については、図５および図６を用いて後述する。
【００２６】
ステップＳ３０６において、ＣＰＵ２０１は、ステップＳ３０５で行われた画像補正処理の結果の画像を表示部２０７に表示する。なお、ユーザは、この表示された画像を確認し、操作部２０８を介して画像補正処理の結果の画像の保存指示をＣＰＵ２０１に出すことができる。保存指示を受け付けたＣＰＵ２０１は、画像補正処理の結果の画像を記憶部２０４に保存する。保存されるファイルフォーマットはＪＰＥＧフォーマットやＰＤＦフォーマットなどであればよく、特定のファイルフォーマットに限定されない。
【００２７】
以上が、本実施例のＣＰＵ２０１が行う処理フローである。
【００２８】
＜画像補正処理（Ｓ３０５）の詳細説明＞
画像補正処理の詳細について、図５を用いて説明する。
【００２９】
ステップＳ５０１において、ＣＰＵ２０１は、Ｓ３０４で行われた歪み補正後の画像から照明ムラや影などの明るさのムラを取り除く影除去処理（明度ムラ除去処理）を実行する。影除去処理は、歪み補正後の画像から照明ムラや影などの明るさムラを推定して影成分画像を生成し、歪み補正後の画像と影成分画像との差分値に応じて入力画像を補正することで影除去後の画像を生成する。すなわち、影成分画像は、歪み補正後の画像と同じサイズのカラー画像（ＲＧＢ成分を持つ画像）であり、その画像中の画素の値（ＲＧＢ値）が、その画素の座標に対応する歪み補正後の画像中の画素の値を補正するために用いられるような画像である。影成分は、歪み補正後の画像における下地領域に含まれる画素の画素値から取得することが望ましい。通常、紙やホワイトボードの下地領域は白であるため、輝度値が高い（つまり白い）画素の画素値をその画素における影成分値として推定可能である。そこで影除去処理は、次のような処理を行う。
【００３０】
ＣＰＵ２０１は、歪み補正後の画像を所定サイズ（例えば８ｘ８画素）のブロックに分割し、各ブロックについて、ブロック内で最も明るい画素値（ブロック内の最大輝度値を持つ画素のＲＧＢ値）を、そのブロックの代表画素値（影成分値）として算出する。そしてＣＰＵ２０１は、各ブロックの代表画素値がブロックの配置に合わせて並べられた画像を得る。このとき、ブロック内に下地領域が含まれている場合には、適切な影成分値を推定できる。一方、写真や図などの大きいオブジェクト（コンテンツ）の影響でブロック内に下地領域が無い場合には、適切な影成分値の推定が困難である。そこで、周囲のブロックと比較して極端に暗いブロック（例えば隣接のブロックの最大輝度値から所定値を引いた値未満の最大輝度値を持つブロック）については、下地領域が含まれる隣接ブロックの代表画素値を利用して補正する。このようにして各ブロックについて代表画素値が算出される。このようにして得られた代表画素値の画像のサイズは歪み補正後の画像のサイズを縮小したものである。そこでＣＰＵ２０１は、この縮小画像を歪み補正後の画像と同画素数となるように拡大処理することで、影成分画像を生成する。そしてＣＰＵ２０１は、影成分画像を用いて、歪み補正後の画像の各画素のＲＧＢ値を補正することで影除去後の画像を生成する。例えば、影成分画像における画素の輝度値が暗ければ暗いほど、その画素に対応する歪み補正後の画像における画素のＲＧＢ値は明るく補正される。なお、以上の内容は、特開２０１７−２２６２０号公報にて開示されている。
【００３１】
続くステップＳ５０２において、ＣＰＵ２０１は、歪み補正後の画像における前景の画素の座標を抽出（特定）するための前景抽出処理を実行する。この前景抽出処理は、歪み補正後の画像に対して図６および図７で詳述する二値化処理を行う。この二値化処理によって得られた二値画像（後述の第７の二値画像に対応する）中の黒画素の座標は、歪み補正後の画像中の前景の座標を示している。この二値画像中の黒画素群が、続くステップＳ５０３の単色化処理を行うために用いられる。なお本実施例の単色化処理は、二値画像中の黒画素群を用いて行われる所定の処理の一例である。前景抽出処理の詳細については、図６および図７を用いて後述する。
【００３２】
続くステップＳ５０３において、ＣＰＵ２０１は、ステップＳ５０２で生成された二値画像（後述の第７の二値画像）に含まれる黒画素群を用いて、ステップＳ５０１で生成された影除去後の画像の特定部分（マーカー属性部分）の単色化処理を行う。
【００３３】
具体的には、ＣＰＵ２０１は、Ｓ５０２で生成された二値画像に含まれる隣接黒画素どうしを連結することで１つの黒画素領域（黒画素群に相当する）を形成し、その黒画素領域に含まれる画素に同一ラベルを付与するラベリング処理を行う。そしてＣＰＵ２０１は、同一ラベルが付与された黒画素の座標に対応する影除去後の画像の画素の画素値を参照し、それら画素がマーカー属性であるのか非マーカー属性であるのかを判定する。この属性判定は、例えば、影除去後の画像におけるそれら画素のＲＧＢ値からＹＵＶ値を得て、Ｕ、Ｖ成分（各色差成分）それぞれの分散値を計算し、どちらの分散値も閾値未満であれば、それら画素はマーカー属性であると判定する。
【００３４】
次に、ＣＰＵ２０１は、マーカー属性判定されたそれら画素の置換色を決定する。本実施例においては、ホワイトボードマーカーの代表的な色である黒、赤、青、緑の４色を規定マーカー色とし、それら画素のＹＵＶ色空間での平均色に応じて単色化を行う。予めＹＵＶ色空間における黒、赤、青、緑の範囲を定めておき、各領域の平均色が、規定マーカー色の範囲に該当にすれば、４色のいずれか１色に単色化し、規定マーカー色の４色以外の範囲であれば、領域の平均色に単色化する。この単色化は、ＣＰＵ２０１が、影除去後の画像中のマーカー属性と判定された画素のＲＧＢ値を、決定された置換色のＲＧＢ値で置き換える（上書きする）ことで行われる。
【００３５】
以上のようにして、歪み補正後の画像には、影除去処理と単色化処理が行われる。
【００３６】
＜前景抽出処理（Ｓ５０２）の詳細説明＞
前景抽出処理の詳細について、図６および図７を用いて説明する。ここでは歪み補正後の画像を入力画像として扱う。
【００３７】
ステップＳ６０１において、ＣＰＵ２０１は、入力画像をグレースケール画像に変換する。グレースケール画像は輝度画像とも呼ばれる。入力画像がＲ（レッド）、Ｇ（グリーン）、Ｂ（ブルー）の３チャンネルのカラー画像であった場合、各チャンネルを所定の割合で混合して１チャンネルの画像を生成する。このときの混合比は限定しないが、たとえば、ＮＴＳＣ加重平均によってグレースケール画像を生成する。図７（ａ）は、グレースケール画像を示しており、かすれ文字７０１および照明の映り込み領域７０２、７０３を含んでいる。
【００３８】
ステップＳ６０２において、ＣＰＵ２０１は、グレースケール画像の各画素に対する二値化閾値の二次元配列に相当する閾値マップ（閾値配列）を生成する。本実施例において、閾値マップは、図５のステップＳ５０１の影除去処理において生成される影成分画像と同じようにして生成される。ただし、Ｓ５０１で生成される影成分画像がカラー成分（ＲＧＢ成分）を持つ画像であったのに対し、閾値マップはグレースケール画像を二値化するための二値化閾値の１成分から構成される画像である。すなわち、閾値マップは、グレースケール画像と同じサイズの画像で表現され、その画像中の画素の値が、その画素の座標に対応するグレースケール画像中の画素の二値化閾値であるような画像である。そのため閾値マップを作成するために、ＣＰＵ２０１は、各ブロックの代表画素値として、最大輝度値を持つ画素のＲＧＢ値ではなく、最大輝度値そのものを設定する。ブロックの代表画素値の補正（修正）については、影成分画像の生成と同様に、隣接ブロックの輝度値なお、閾値マップの作成方法は、上記の方法に限るものではなく、公知の方法でよい。たとえば、大津の手法を用いて求めた画像全面に対する一律の閾値を閾値マップとしてもよい。また例えば、各画素について、その画素の周辺画素の輝度値を参照してその画素の二値化閾値を求める局所二値化閾値を閾値マップとしてもよい。
【００３９】
ステップＳ６０３において、ＣＰＵ２０１は、ステップＳ６０１で得られた閾値マップの画素値を第１の閾値調整パラメータ値によって一律で下げるように調整する。本実施例では、各画素８ｂｉｔ（０〜２５５）で表される閾値マップの各画素値を、一律で値１０ずつ下げる調整することで、閾値マップの画素の値と近い値を持つ下地領域のノイズを抑制する。なお、本ステップにおいて、必ずしも閾値を下げる必要はなく、後述するステップＳ６０５での閾値調整結果と比べて、相対的に閾値が低くなればよい。
【００４０】
ステップＳ６０４において、ＣＰＵ２０１は、グレースケール画像に対して、ステップＳ６０３で調整した閾値マップ（第１の閾値配列）を利用して二値化処理（第１の二値化処理）を行うことで、第１の二値画像を生成する。説明のためグレースケール画像、閾値マップともに各画素８ｂｉｔで表される画素値で構成され、画素値０が黒、画素値２５５が白であるとする。また出力される二値画像は各画素１ｂｉｔで表される画素値で構成され、画素値０は白、画素値１は黒とする。座標（ｘ，ｙ）におけるグレースケール画像の画素値をｇ（ｘ，ｙ）、閾値マップの画素値をｔ（ｘ，ｙ）、出力される二値画像の画素値をｂ（ｘ，ｙ）で表す。同座標でのグレースケール画像の画素値ｇ（ｘ，ｙ）と閾値マップの画素値ｔ（ｘ，ｙ）の大小を比較することで、下記のように二値画像の画素値ｂ（ｘ，ｙ）が０であるか１であるかを決定して二値画像を生成する。
【００４１】
ｇ（ｘ，ｙ）≧ｔ（ｘ，ｙ）のとき、ｂ（ｘ，ｙ）＝０（白画素）
ｇ（ｘ，ｙ）＜ｔ（ｘ，ｙ）のとき、ｂ（ｘ，ｙ）＝１（黒画素）
すなわち、入力画像（あるいはグレースケール画像）の画素のうち、二値化閾値よりも濃い（暗い）画素が黒画素に変換され、二値化閾値以上に薄い（明るい）画素が白画素に変換されることで、二値画像が生成される。
【００４２】
図７（ｂ）に、ステップＳ６０４で生成（出力）される二値画像を示す。ステップＳ６０３において、ノイズ領域を抑制するようにＳ６０２の閾値マップよりも小さい閾値に調整しているため、ノイズは少ないが、７０４に示すようにかすれ文字の前景抽出はできていない。
【００４３】
ステップＳ６０５において、ＣＰＵ２０１は、ステップＳ６０１で得られた閾値マップを、後述するステップＳ６０６の二値化処理で、文字が掠れている部分を文字として再現するように、第２の閾値調整パラメータ値で調整する。本実施例では、閾値マップの画素と近い値を持つ掠れ部分を文字の一部（前景）として抽出するために、閾値マップの各画素値を、一律で値５ずつ上げる調整を行う。なお、閾値の調整方法は上記の方法に限るものではない。なお、本ステップにおいて、必ずしも閾値を上げる必要はなく、ステップＳ６０３での閾値調整結果と比べて、相対的に閾値が高くなればよい。すなわち、上記のＳ６０３で調整され作成された閾値マップ（第１の閾値配列）と、このＳ６０５で調整され作成された閾値マップ（第２の閾値配列）は次のような関係である。グレースケール画像の同じ画素に対して、第１の閾値配列による二値化閾値よりも、第２の閾値配列による二値化閾値のほうが大きい。
【００４４】
ステップＳ６０６において、ＣＰＵ２０１は、グレースケール画像とステップＳ６０５で調整した閾値マップ（第２の閾値配列）を利用して二値化処理を行うことで、第２の二値画像を生成する。図７（ｃ）に、ステップＳ６０６の生成（出力）される二値画像を示す。ステップＳ６０５において、かすれ文字を再現するように閾値マップを調整しているため、マーカー領域を全て抽出することができているが、閾値マップの画素と近い領域が７０５に示すような孤立点のノイズが前景抽出される。また、文字と背景（下地領域）との境界ほどではないが、比較的急な輝度変化を持つ照明の映り込み領域の周辺では、７０６、７０７に示すようにノイズ領域が抽出される。映り込み領域の周辺では隣接画素間の輝度変化が大きいため、閾値マップ（すなわち影）の推定が困難だからである。また、図７（ｂ）に示すステップＳ６０４の二値画像と比べてマーカー部が太く抽出される。
【００４５】
ステップＳ６０７において、ＣＰＵ２０１は、ステップＳ６０６で生成された二値画像（第２の二値画像）に対して孤立点の黒画素を除去する処理（第１の黒画素除去処理）を行う。黒画素を除去するとは、その黒画素を白画素に変換することであり、この第１の黒画素除去処理は、第２の二値画像における、複数の白画素に隣接している黒画素を白画素に変換する処理である。ここではＣＰＵ２０１は、第２の二値画像に対して第１の黒画素除去処理を行うことで第３の二値画像を生成する。なお孤立点と言っているが、除去される黒画素のサイズは１画素ｘ１画素に限られず、２画素ｘ１画素や２画素ｘ２画素などであってよい。本実施例では、細い文字部や小さい文字部を除去しないように、各黒画素について、４近傍のうち３画素以上の画素が白画素である場合には、当該黒画素を白画素に置きかえる方法を利用する。なお孤立点除去の他の方法としてパターンマッチングにより該当する形状の黒画素塊を除去（白画素化）する方法でもよい。図７（ｄ）に、孤立点除去の結果画像を示す。
【００４６】
ステップＳ６０８において、ＣＰＵ２０１は、ステップＳ６０７で生成された二値画像（第１の黒画素除去処理後の第２の二値画像、つまり第３の二値画像）に含まれる黒画素および黒画素群が、ノイズ領域であるかどうかを判定するノイズ領域判定を行う。このノイズ領域判定は、第３の二値画像に含まれる黒画素群のうち、第１の二値画像の対応する領域の画像の内容に比べて著しく大きい黒画素群を特定する（見つける）処理である。例えば、第１の二値画像の対応領域には少数の黒画素しかない或いはまったく黒画素がないにもかかわらず、第３の二値画像においては比較的大きい黒画素群（特定の大きさの黒画素群）が存在する場合、このような黒画素群は、ノイズ領域として特定される。このように、第３の二値画像における黒画素群が特定の大きさであるかどうかは、第１の二値画像中の対応領域の画像内容に依存する。すなわち、このＳ６０８の処理は、第２の二値画像に含まれる黒画素群のうちの、特定の大きさの黒画素群を、第１の二値画像に基づいて特定し、この特定された黒画素群をノイズの領域として判定する処理である。このノイズ領域判定の詳細については、図８および図９を用いて後述する。
【００４７】
ステップＳ６０９において、ＣＰＵ２０１は、ステップＳ６０８でノイズ領域として判定された黒画素群を、第３の二値画像から除去（削除）する。この処理は、第３の二値画像におけるノイズ領域として判定された黒画素群を白画素に変換することで、（後述の第４、第５の二値画像に続く）第６の二値画像を生成する処理に相当する。図７（ｅ）に、ノイズ領域を除去した結果画像を示す。７１０に示すように、ステップＳ６０８において、ノイズ領域として判定された７０８、７０９が除去されている。
【００４８】
ステップＳ６１０において、ＣＰＵ２０１は、ステップＳ６０４の二値画像（第１の二値画像）と、ステップＳ６０９の二値画像（ノイズ領域除去後の第３の二値画像、つまり第６の二値画像）を統合する。統合には、２つの二値画像のＯＲ（和集合）を利用する。座標（ｘ，ｙ）におけるステップＳ６０４の出力二値画像の画素値をｐ（ｘ，ｙ）、ステップＳ６０９の出力二値画像の画素値をｑ（ｘ，ｙ）、出力される二値画像の画素値をｂ（ｘ，ｙ）で表す。下記のように出力画像の画素値ｂ（ｘ，ｙ）が０であるか１であるかを決定して二値画像（第７の二値画像）を生成する。
【００４９】
ｐ（ｘ，ｙ）＝０かつｑ（ｘ，ｙ）＝０のとき、ｂ（ｘ，ｙ）＝０（白画素）
ｐ（ｘ，ｙ）＝１またはｑ（ｘ，ｙ）＝１のとき、ｂ（ｘ，ｙ）＝１（黒画素）
すなわちこの処理は、２つの二値画像に基づいて、２つの二値画像の論理和の画像を生成する処理である。この論理和の画像がステップＳ５０３の画像処理の対象となる。図７（ｆ）に、ステップＳ６１０の出力二値画像を示す。２種類の二値化結果を統合することで、７１１に示すようにノイズ領域を抑制しつつ、７１２に示すようにかすれ文字を再現可能になる。
【００５０】
＜ノイズ領域判定処理（ステップＳ６０８）の詳細説明＞
ノイズ領域判定処理の詳細について、図８および図９を用いて説明する。図９（ａ）と図９（ｂ）は、ノイズ領域判処理における入力画像である。それぞれ図９（ａ）は、図７（ｂ）に示すステップＳ６０４の出力二値画像と、図９（ｂ）は図７（ｄ）に示すステップＳ６０７の出力二値画像と同じ画像である。ノイズ領域判定処理は、図９（ｂ）の二値画像の各領域（各黒画素群）について、映り込みなどのノイズ領域であるかどうかを、別の二値画像を用いて、個別に評価して判定する処理である。すなわち、ここではノイズ領域である黒画素群が特定され、その特定結果がＳ６０９以降の処理で用いられる。
【００５１】
ステップＳ８０１において、ＣＰＵ２０１は、ステップＳ６０４で生成された二値画像（第１の二値画像）と、ステップＳ６０７で生成された二値画像（第３の二値画像）の差分を取り、差分画像（第４の二値画像）を作成する。座標（ｘ，ｙ）におけるステップＳ６０４の二値画像の画素値をｐ（ｘ，ｙ）、ステップＳ６０７の二値画像の画素値をｑ（ｘ，ｙ）、出力される二値画像の画素値をｂ（ｘ，ｙ）で表す。下記のように出力画像の画素値ｂ（ｘ，ｙ）が０であるか１であるかを決定して二値画像を生成する。
【００５２】
ｐ（ｘ，ｙ）＝ｑ（ｘ，ｙ）のとき、ｂ（ｘ，ｙ）＝０（白画素）
ｐ（ｘ，ｙ）！＝ｑ（ｘ，ｙ）のとき、ｂ（ｘ，ｙ）＝１（黒画素）
すなわちこの処理は、２つの二値画像に基づいて、２つの二値画像の排他的論理和の画像を第４の二値画像として生成する処理である。差分結果画像を図９（ｃ）に示す。９０１や９０２に示すノイズ領域や、９０３に示すかすれマーカー領域のように、図（ａ）には含まれていない領域が差分として抽出される。また、図９（ｂ）に示すステップＳ６０７の出力二値画像は、図９（ａ）に示すステップＳ６０４の出力二値画像と比べてマーカー部が太く抽出されるため、９０３に示すように、マーカー部を縁取ったような領域が差分として抽出される。
【００５３】
ステップＳ８０２において、ＣＰＵ２０１は、ステップＳ８０１で生成された二値画像（第４の二値画像）に対して、収縮処理（第２の黒画素除去処理ともいう）を複数回実行することで、第５の二値画像を生成する。この収縮処理を行う目的は、第３の二値画像における黒画素群のうち、第１の二値画像の内容に比べて著しく大きな黒画素群を特定しやすくするために行われる。
【００５４】
本実施例において、収縮処理とは、二値画像の各黒画素について、８近傍のうち１画素でも白画素である場合に、当該黒画素を白画素に置きかえる方法である。つまり、収縮処理とは、黒画素群の輪郭の黒画素を白画素に変換するために、少なくとも１つの白画素に隣接する黒画素を白画素に変換する処理に対応する。そのため、収縮処理を所定の回数繰り返すと、差分画像内の黒画素群が所定の回数に応じた所定画素幅だけ細くなる。この収縮処理の結果として、照明の映り込みなどのノイズ領域である黒画素群は比較的大きいので、黒画素が残り、マーカー部の縁取り領域（９０３）やかすれマーカー領域（９０４）のような細い領域（比較的小さい黒画素群）については黒画素が残らない。すなわち、後述するように、所定画素幅を超える幅を持つ、差分画像内の黒画素群に対応する第３の二値画像中の黒画素群が、ノイズ領域として特定される。
【００５５】
なお、収縮処理の繰り返し回数は、予め規定（例えば３回）してもよい。またあるいは収縮処理の繰り返し回数は、画像サイズに応じて決定されてもよい。例えば画像サイズが大きければ繰り返し回数を多くする。
【００５６】
ステップＳ８０３において、ＣＰＵ２０１は、図９（ｂ）に示すステップＳ６０７で生成された二値画像（第３の二値画像）の黒画素について、ラベリングを行うことで隣接する黒画素群を孤立領域として抽出する。ここでは、隣接する黒画素がないような１画素分の黒画素も孤立した黒画素群として抽出される。
【００５７】
ステップＳ８０４において、ＣＰＵ２０１は、ステップＳ８０３で得られた各孤立領域について、ノイズ領域であるかどうかを判定する。この判定は、ステップＳ８０３で得られた各孤立領域が、ステップＳ８０２で生成された二値画像（第５の二値画像）の黒画素の座標を含むかどうかをチェックすることで行われる。第５の二値画像に含まれる黒画素の座標に対応する、前記第３の二値画像の座標における画素が黒画素である場合に、孤立領域が黒画素の座標を含むと判定される。ここで孤立領域は黒画素の座標を含むと判定された場合、その孤立領域に対応する第３の二値画像中の黒画素群はノイズ領域として特定される。図９（ｅ）に、判定結果を示す。孤立領域９０５、９０６は、それぞれの孤立領域内に、図９（ｄ）に示す画像の黒画素を含むため、ノイズ領域として判定される。一方、孤立領域９０７〜９１６については、該当する領域に図９（ｄ）に示す画像の黒画素を含まないため、ノイズ領域ではないと判定する。
【００５８】
以上のＳ８０３、Ｓ８０４は、次のような考え方に基づいている。二値化閾値が相対的に大きいため第３の二値画像に含まれる黒画素群のほうが第１の二値画像よりも大きい。そしてこれら第１の二値画像と第３の二値画像との差分画像に収縮処理を繰り返した上でも黒画素が残るならば、その残った黒画素に対応する、第３の二値画像に含まれる黒画素群は、照明の映り込みなどのノイズ領域が二値化されたものである。ノイズ領域の判定はこのような考え方に従ったものであればよく、この判定方法だけに限定されない。他の方法については下記変形例において説明する。
【００５９】
以上のノイズ領域判定処理により、映り込み領域などを、写真やマーカー文字の部分（前景部分）と区別し、ノイズ領域として判定することができる。
【００６０】
以上、本実施形態によれば、ノイズ抑制の閾値での二値化結果と、ノイズ領域を除去したかすれ文字再現の閾値での二値化結果を統合することで、撮影画像からの前景抽出において、かすれ文字の再現とノイズ領域の抑制を実現することができる。また、照明の映り込みの領域とマーカー領域が近い場合でも、マーカー部のみを前景として抽出することができる。
【００６１】
（変形例）
実施例１では、照明の映り込み領域などのノイズ領域を、マーカー部などの前景領域と区別して特定する（分離する）ために、ステップＳ６０８の処理を行っていた。本変形例では、この処理の代わりに次のような処理を行う。
【００６２】
ＣＰＵ２０１は、第３の二値画像に含まれる黒画素群に対してラベリング処理を行う。次にＣＰＵ２０１はラベルごとに次の（１）〜（３）の処理を行う。（１）ＣＰＵ２０１は、同一ラベルを持つ黒画素の数をカウントする。（２）ＣＰＵ２０１は、その同一ラベルを持つ黒画素群の各座標に対応する、第１の二値画像中の座標における画素群に含まれる黒画素の数をカウントする。（３）ＣＰＵ２０１は、カウントされた２つの数を比較し、差分が閾値以上あれば、その同一ラベルを持つ黒画素群が、第１の二値画像の内容に比べて著しく大きいと判定し、その黒画素群を照明の映り込み領域（ノイズ領域）として特定する。このようにすることで、ＣＰＵ２０１は、第３の二値画像に含まれる黒画素群のうちの、第１の二値画像に基づく特定の大きさの黒画素群を特定し、その特定された黒画素群をノイズ領域として判定することができる。
【００６３】
（その他の実施例）
上記実施例では、Ｓ６０７の処理後にＳ６０８、Ｓ６０９を行っていたが、Ｓ６０８、Ｓ６０９の処理後にＳ６０７の処理を実行してもよい。
【００６４】
上記実施例では、携帯端末１０１にてすべての画像処理を実施していた。しかしながら、図３の処理の一部を携帯端末１０１の外部のサーバで実施してもよい。例えば、ステップＳ３０４、Ｓ３０５の処理をサーバで実施するようにすることで、メモリ資源や計算資源の少ない携帯端末を利用した場合でも、上述の画像補正処理を利用できる。なおステップＳ３０１〜Ｓ３０３の処理はユーザの操作（例えば四辺形領域の変更操作）を受け付けるため、サーバではなく携帯端末１０１上で行うようにしている。なお、Ｓ３０４、Ｓ３０５をサーバで実施する場合、携帯端末１０１は、Ｓ３０３の処理後に、データ送受信部２０５を通じて、Ｓ３０１で取得された画像と四辺形領域の頂点情報をサーバに送信する。サーバは画像と四辺形領域の頂点情報に基づいてＳ３０４の処理を行う。そしてサーバはＳ３０５の処理後に、画像補正処理の結果の画像を、データ送受信部１１０４を通じて、携帯端末１０１に送信する。携帯端末１０１は、受け取った画像をＳ３０６で表示する。
【００６５】
本発明は、以下の処理を実行することによっても実現される。即ち、上述の実施例の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2018195262.tif 000003
【図２】
2018195262.tif 000004
【図３】
2018195262.tif 000005
【図４】
2018195262.tif 000006
【図５】
2018195262.tif 000007
【図６】
2018195262.tif 000008
【図７】
2018195262.tif 000009
【図８】
2018195262.tif 000010
【図９】
2018195262.tif 000011