JP2007011925A - 画像傾き検出方法、画像傾き検出装置および画像傾き検出プログラム - Google Patents

画像傾き検出方法、画像傾き検出装置および画像傾き検出プログラム Download PDF

Info

Publication number
JP2007011925A
JP2007011925A JP2005194648A JP2005194648A JP2007011925A JP 2007011925 A JP2007011925 A JP 2007011925A JP 2005194648 A JP2005194648 A JP 2005194648A JP 2005194648 A JP2005194648 A JP 2005194648A JP 2007011925 A JP2007011925 A JP 2007011925A
Authority
JP
Japan
Prior art keywords
image
code
representative
inclination detection
detection method
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005194648A
Other languages
English (en)
Other versions
JP4692109B2 (ja
Inventor
Tomotaka Takarabe
倫孝 財部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2005194648A priority Critical patent/JP4692109B2/ja
Publication of JP2007011925A publication Critical patent/JP2007011925A/ja
Application granted granted Critical
Publication of JP4692109B2 publication Critical patent/JP4692109B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Image Analysis (AREA)

Abstract

【課題】 画像の中から線分を検出すると共に、この線分の成す角度から画像の傾きを算出することで、画像の角度を高速かつ高精度で求める。
【解決手段】 画像傾き検出方法は、信号成分と背景成分とから成る画像のデータを、水平方向または垂直方向の少なくとも1つの方向に沿って抽出して符号化する工程と、前記符号化されたデータの中から、所定値以上の長さで連続する符号列を抽出する工程と、前記抽出した符号列の代表である代表符号を、前記符号列毎に割り当て記憶する工程と、前記画像の中で、前記代表符号の成分と同一な成分である前記符号データと共に略直線状に並ぶ複数の前記代表符号を、前記記憶された代表符号の中から検索する工程と、前記検索された複数の代表符号を結ぶ線分が前記画像の中で成す角度を算出する工程と、前記算出した角度のデータを蓄積して統計処理により前記画像の傾きを算出する工程とを備える。
【選択図】 図2

Description

本発明は、画像入力手段から入力した画像の処理に係り、特に、直線部分を含む画像傾き検出方法、画像傾き検出装置および画像傾き検出プログラムに関する。
従来、帳票等の文書を入力して、その画像の傾きを検出する方法としては、下記特許文献1に記載されているように、文字や罫線等の直線が水平方向や垂直方向に連続して並ぶ傾向を利用して、短冊状に分割した領域毎に所定の画素の出現回数をヒストグラム化し、そのヒストグラムのピークの位置を求めることにより、画像の傾きを検出していた。
特開2000−22898号公報
しかしながら、従来の方法では、画像を構成する文字と直線とを区別することなく抽出するため、文書毎に異なる文字数や文字の書体は、傾きを検出する際の誤差要因となり、傾き角度を精度良く求めることはできなかった。また、画像全体を対象としてヒストグラムを作成するため、角度を算出するのに多くの時間を要した。
上記した課題を解決するために、本発明の画像傾き検出方法は、信号成分と背景成分とから成る画像のデータを、水平方向または垂直方向の少なくとも1つの方向に沿って抽出して符号化する工程(a)と、前記符号化された符号データの中から、所定値以上の長さで同一の成分が連続する符号列を抽出する工程(b)と、前記抽出した符号列の代表である代表符号を、前記符号列毎に割り当て記憶する工程(c)と、前記画像の中で、前記代表符号の成分と同一な成分である前記符号データと共に略直線状に並ぶ複数の前記代表符号を、前記記憶された代表符号の中から検索する工程(d)と、前記検索された複数の代表符号を結ぶ線分が前記画像の中で成す角度を算出する工程(e)と、前記算出した角度のデータを蓄積して統計処理により前記画像の傾きを算出する工程(f)とを備えることを特徴とする。
この発明によれば、代表符号と同一な成分の符号データと共に略直線状に並ぶ複数の代表符号を検索することにより、画像の中から直線成分を抽出し、抽出した直線成分から角度を算出するため、文字に多く含まれる非直線部の影響を排除できることから、画像の傾きを精度良く検出できる。更に、画像全体を対象とすることなく、直線成分の角度を対象として統計処理するため、短時間で画像の傾きを算出できる。
本発明では、前記画像を構成する符号データの出現回数により、前記信号成分と前記背景成分とを判別する工程(g)を更に備えることが好ましい。
また、本発明では、前記出現回数が多い符号データを、前記背景成分と判定すると共に、前記出現回数が少ない符号データを、前記信号成分と判定することが好ましい。
この発明によれば、符号データの出現回数に基き、信号成分と背景成分とを判定するため、これらを識別するための情報を入力することなく処理できる。
本発明では、前記画像のデータを符号化する方式は、ランレングス符号化であることが好ましい。
また、本発明では、前記背景成分を示す符号データは、白ランであると共に、前記信号成分を示す符号データは、黒ランであることが好ましい。
この発明によれば、画像のデータは、ランレングス変換により圧縮されて符号化されるため、データの保持や移動等の扱いが容易になる。
本発明では、前記工程(a)は、前記画像のデータを抽出するライン毎に異なる間隔で抽出することが好ましい。
この発明によれば、画像のデータは、ライン毎に異なる間隔で抽出されるため、模様のような等間隔のパターンを有する画像に対して、同一のパターンの抽出により生じる誤差要因を排除でき、角度を精度良く算出できる。
本発明では、前記工程(b)は、前記連続する長さが前記所定値以上、かつ、他方の所定値以下である符号列を抽出することが好ましい。
この発明によれば、抽出する符号列の長さの上限と下限を決めることで、角度を算出する対象となる符号列の長さの分布を平準化できるため、画像の傾きを精度良く検出できる。
本発明では、前記工程(c)は、前記抽出した符号列の中点位置の符号、又は中点近傍で出現頻度が多い符号を前記代表符号として割り当てても良い。
本発明では、前記工程(d)は、前記画像の中で、前記記憶された一方の代表符号を起点にして、前記代表符号と同一な前記成分の符号データを略直線状に辿ることにより到達可能な他方の代表符号を、前記記憶された代表符号の中から順次検索することが好ましい。
この発明によれば、画像の中で、2つの代表符号を端点として、前記代表符号と同一な成分の符号データで構成される直線を抽出できる。
本発明では、前記工程(d)は、前記画像の中で、前記記憶された一方の代表符号を起点にして、前記代表符号とは同一な前記成分の符号データと、一定の割合を超えない数の前記代表符号とは異なる前記成分の符号データとを略直線状に辿ることにより到達可能な他方の代表符号を、前記記憶された代表符号の中から順次検索することが好ましい。
この発明によれば、画像の中で、2つの代表符号を端点として、前記代表符号とは同一な成分の符号データと、異なる成分の符号データとで構成される鎖線や点線のような直線も抽出できる。
本発明では、前記工程(f)は、前記信号成分を示す代表符号から算出された角度に基き、前記画像の傾きを算出することが好ましい。
この発明によれば、画像の中の信号成分を示す画像を対象にして、画像の傾きを検出できる。
本発明では、前記工程(f)は、前記算出した角度の出現回数に応じたヒストグラムを作成する工程と、前記ヒストグラムの頂点に対応する角度を、前記ヒストグラムにおける一定の幅を有する領域の面積中心により算出する工程とを有することが好ましい。
この発明によれば、角度の出現回数をヒストグラムで示すと共に、ヒストグラムの一定幅の中から面積中心値を算出するため、角度を精度良く算出できる。
本発明では、前記工程(f)は、水平方向または垂直方向の何れか一方の方向に沿って算出した角度を、余角関係にある角度に変換する工程を更に備えることが好ましい。
この発明によれば、水平方向および垂直方向に沿って符号列を抽出して、それぞれ算出した角度は、同一の基準軸からの角度に統一されるため、これらの角度をまとめて統計処理できる。
本発明では、前記ヒストグラムは、前記画像のデータを抽出する間隔に関する情報、または前記角度を算出した2つの代表符号間の距離に関する情報の少なくとも一方を含むことが好ましい。
この発明によれば、データを抽出した条件をヒストグラムに反映できるため、角度の算出精度がより向上する。
また、上記した方法を実行させる画像傾き検出装置により、高精度で高速な画像傾き検出装置を提供できる。
更に、この発明はコンピュータプログラムとして捉えることができる。即ち、信号成分と背景成分とから成る画像のデータを、水平方向または垂直方向の少なくとも1つの方向に沿って抽出して符号化する機能と、前記符号化された符号データの中から、所定値以上の長さで同一の成分が連続する符号列を抽出する機能と、前記抽出した符号列の代表である代表符号を、前記符号列毎に割り当て記憶する機能と、前記画像の中で、前記代表符号の成分と同一な成分である前記符号データと共に略直線状に並ぶ複数の前記代表符号を、前記記憶された代表符号の中から検索する機能と、前記検索された複数の代表符号を結ぶ線分が前記画像の中で成す角度を算出する機能と、前記算出した角度のデータを蓄積して統計処理により前記画像の傾きを算出する機能とをコンピュータに実現させることを要旨とする。
以下、本発明の実施形態について、入力した画像の傾きを求める方法について、プログラムのフローチャートを参照しつつ説明する。
(実施形態)
図1(a)は、この発明の実施形態としての画像傾き検出装置100の斜視図である。この画像傾き検出装置100は、スキャナ102と、コンピュータ104と、モニタ105と、キーボード106と、マウス107と、ケーブル108とを備える。スキャナ102は、画像入力手段の一つであり、内部に配置されたラインセンサの走査により、読み込んだ画像を電子データに変換して出力する。出力された画像の電子データは、ケーブル108を介してコンピュータ104に送られる。コンピュータ104は、ハードウェアとして、図示を略したCPU、ROM、RAM、ハードディスクおよび入出力インターフェイス等を備える。また、このコンピュータ104は、基本ソフトウェアである所定のオペレーティングシステム(OS)により管理される。このオペレーティングシステムの管理下で、ROMやハードディスクに記憶されたドライバを含む種々のソフトウェアにより、所定の機能が実行され、例えば、入出力インターフェイスを介してモニタ105、マウス107およびキーボード106との間でデータが授受される。更に、このコンピュータ104には、後述する画像傾き検出プログラムが実行可能にインストールされており、前記したハードウェア資源とソフトウェアとが有機的に協働することで、画像入力手段から入力した画像の電子データに対して所定の機能が実行される。
図1(b)は、モニタ105に表示された文書画像112を説明する図である。本実施形態では、この図1(b)に示すように、スキャナ102のような画像入力手段から入力され、階調情報を含む多値で構成される入力画像110において、文書画像112が所定の基準線に対して、角度WDegで傾いて入力された場合を想定する。この文書画像112は、罫線等の直線を示す直線画像114と、文字を示す文字画像118と、背景を示す背景画像120とから成る。このような入力画像110から直線画像114を抽出し、抽出した直線画像114を統計処理することにより文書画像112の傾きを検出するプログラムを、図2〜図12のフローチャートに基いて説明する。尚、入力画像110は、多値で構成されるデータに限らず、ランレングス変換により符号化を行い、背景成分を白ランで示すと共に、信号成分を黒ランで示す2値画像のデータであっても良い。
図2は、本実施形態の画像傾き検出プログラムの処理を示すフローチャートである。この処理が実行されると、最初に、以降の処理で必要な初期値を設定する工程(ステップS10)が実行される。この工程で設定される値は、入力画像110の幅w(単位:ピクセル)、入力画像110の高さh(単位:ピクセル)、解像度r(単位:dpi)、実寸の探索幅RT(単位:ポイント)、最小抽出線幅RWmin(単位:ポイント)、最大抽出線幅RWmax(単位:ポイント)、直線抽出時の画素割合の最小値LPMinおよび背景色情報CLbackである。尚、これらの中で、実寸の探索幅RT、最小抽出線幅RWmin、最大抽出線幅RWmaxおよび直線抽出時の画素割合の最小値LPminについては、入力されない場合のデフォルト値として、RT=20、RWmin=0.25、RWmax=6およびLPMin=0.5を採用するように設定されている。更に、背景色情報CLbackは、入力画像110の中で背景成分に該当するデータを識別するための情報であり、この情報が入力されない場合、後述する背景色CLbackの計算(ステップS50)の処理により算出される。尚、上記した単位である1ポイントは、本実施形態においては1/72インチとする。
次に、横方向(X方向)の探索による直線部の傾きヒスグラムの作成工程(ステップS30)が実行される。この工程の詳細は、後述する。
続いて、縦方向(Y方向)の探索による直線部の傾きヒスグラムの作成工程(ステップS20)が実行される。この工程の詳細は、後述する。
次に、背景色情報CLbackが入力されているか、否かを判定する(ステップS40)。ここで、背景色情報CLbackが入力されている場合(ステップS40でYes)、次の工程(ステップS60)に進む。また、背景色情報CLbackが入力されていない場合(ステップS40でNo)、信号成分と背景成分とを判別するべく、背景色CLbackを計算する工程(ステップS50)が実行された後、次の工程(ステップS60)に進む。尚、背景色CLbackを計算する工程(ステップS50)の詳細は、後述する。
次に、CLback以外の色に対する直線部の傾きヒストグラムを全て選択する(ステップS60)。この工程では、前記縦方向のヒストグラムおよび前記横方向のヒストグラムをそれぞれ構成するデータの中から、背景色情報CLbackが示す背景成分のデータを除外して、信号成分のデータのみの構成とする。
続いて、前記した2つのヒストグラムにおいて、同じ傾きに対する各度数を合計して、1つのヒストグラムに統合する(ステップS70)。ここで、横方向および縦方向に沿って算出した直線部の角度の基準軸は、同一では無く、それぞれ直交する。従って、何れか一方の方向に沿った角度に統一するべく、他方の方向に沿って算出した角度を、余角関係にある角度に変換することで、同一の基準軸から算出した角度に統一する。ここで、余角関係に変換する角度は、正の角度だけではなく、負の角度も含まれる。例えば、−30度の場合、−60度に変換される。更に、統一されたヒストグラムには−45度から45度の範囲に入らない角度も現れるので、これらの角度について、90度の整数倍の角度を加減して、−45度から45度の範囲に収まるように変換を行い、変換後の角度に対する度数に変換前の角度に対する度数を加える。例えば、−60度や75度の場合、それぞれ30度と、−15度に変換される。これにより、例えば、傾いた矩形の直行する2辺の傾きが一致するので、矩形全体の傾きを正しく抽出できる。
次に、直線部の傾きを示すデータを統計処理することにより、1つに統合した傾きヒストグラムに基き画像全体の傾きWDegを計算する工程(ステップS80)が実行される。この工程の詳細は、後述する。
最後に、算出した傾きWDegを出力して(ステップS95)、一連の処理を終了する。
図3は、横方向(X方向)の探索により、直線部の傾き角度の出現回数に応じたヒストグラムの作成工程(ステップS30)の詳細を示すフローチャートである。この処理が呼び出されて実行されると、最初に、入力画像110のデータを1つの方向に沿って抽出して符号化するべく、横方向のライン毎に探索する探索幅tを計算する工程(ステップS31)が実行される。この探索幅tは、実寸の探索幅RTおよび解像度rを用いて、以下のように計算される。
t=RT÷72×r
次に、入力画像110に対して探索する探索行nを初期化して、一行目(n=1)に設定する(ステップS32)。
続いて、設定した探索行nに対する直線候補位置リストを作成する工程(ステップS33)が実行される。この工程の詳細は、後述する。
次に、探索行nと、前記工程で作成した直線候補位置リストとを組合せて探索行リストに追加する(ステップS34)。
次に、乱数uを発生させて、次に探索する探索行を計算する(ステップS35)。乱数uは、以下の範囲で発生する。
−(t÷3)<u<(t÷3)
また、次に探索する探索行n1は、現在の探索幅n0、探索幅tおよび乱数uを用いて、以下のように計算される。このようにして、画像のデータは、探索するライン毎に異なる間隔で抽出される。
n1=n0+t+u
続いて、次に探索する探索行n1は、入力画像110の高さh以下に収まるか、否かを判定する(ステップS36)。ここで、次に探索する探索行n1は、入力画像110の高さh以下に収まる場合(ステップS36でYes)、設定した探索行nに対する直線候補位置リストを作成する工程(ステップS33)に戻る。また、次に探索する探索行n1は、入力画像110の高さh以下に収まらない場合(ステップS36でNo)、次の工程(ステップS37)に進む。
次に、探索行リストから傾きヒストグラムを作成する工程(ステップS37)が実行され、一連の処理を終了して、この処理の呼び出し元に戻る。尚、この工程の詳細は、後述する。
図4は、設定した探索行nに対する直線候補位置リストを作成する工程(ステップS33)の詳細を示すフローチャートである。この処理が呼び出されて実行されると、最初に、最小抽出線幅Wminおよび最大抽出線幅Wmaxを計算する工程(ステップS330)が実行される。これらの値は、最小抽出線幅RWmin、最大抽出線幅RWmax、および解像度rを用いて以下のように計算される。
Wmin=RWmin÷72×r
Wmax=RWmax÷72×r
次に、横方向の探索位置x、および同一成分の符号列を示すランデータの開始位置sを初期化する(ステップS332)。具体的には、以下のような値を代入する。
x=1
s=x
次に、探索位置xの画素と、この探索位置xから横方向(X方向)に1つ増分した位置(x+1)の画素とを抽出して、これらの画素の色に関する情報を符号化し、両者が異なる、即ち、画素間で所定の基準値を越えて色が変化しているか、または、横方向の探索位置が入力画像110の幅wに達したか、否かを検出する(ステップS334)。ここで、横方向の隣接する探索位置の画素間で色の変化は所定の基準値以下であり、かつ、横方向の探索位置が入力画像110の幅wに達していない場合(ステップS334でNo)、次の探索位置xを横方向(X方向)に1つ増分した位置(x+1)に設定して(ステップS336)、この検出工程(ステップS334)を再度実行する。また、横方向の隣接する探索位置の画素間で色が所定の基準値を越えて変化している場合、または、横方向の探索位置xが入力画像110の幅wに達した場合(ステップS334でYes)、ランデータの終端位置eを(e=x)に設定して、次の工程(ステップS338)に進む。
次に、ランデータの終端位置eから、所定の基準値を越えて色変化することなく符号が連続する長さを示すランデータの長さdと、符号列の代表符号として割り当てるランデータの中点位置cと、ランデータの色の平均値Clとを計算する(ステップS338)。ランデータの長さdおよびランデータの中点位置cは、それぞれ以下のように計算される。
d=e−s
c=(s+e)÷2
次に、ランデータの長さdが所定値(最小抽出線幅RWmin)以上であり、かつ、他方の所定値(最大抽出線幅RWmax)以下であるか、否かを判定する(ステップS340)。ここで、ランデータの長さdが最小抽出線幅RWmin以上であり、かつ最大抽出線幅RWmax以下である場合(ステップS340でYes)、次の工程(ステップS342)に進む。また、ランデータの長さdが最小抽出線幅RWmin以下であるか、または最大抽出線幅RWmax以上である場合(ステップS340でNo)、次の工程(ステップS342)を実行することなく、更に次の工程(ステップS344)に進む。
次に、探索行nに対する直線候補位置リストにランデータの中点位置cと、ランデータの色の平均値Clとを登録して記憶する(ステップS342)。
続いて、横方向の探索位置が入力画像110の幅wに達したか、否かを判定する(ステップS344)。ここで、横方向の探索位置xが入力画像110の幅wに達した場合(ステップS344でYes)、一連の処理を終了して、この処理の呼び出し元に戻る。また、横方向の探索位置xが入力画像110の幅wに達していない場合(ステップS344でNo)、次の探索位置xを横方向(X方向)に1つ増分した位置(x+1)に設定すると共に、ランデータの開始位置sを探索位置xに設定して(ステップS346)、前記した検出工程(ステップS334)に戻る。
図5は、探索行リストから直線部の傾きヒストグラムを作成する工程(ステップS37)の詳細を示すフローチャートである。尚、この工程での処理の理解を容易にするべく、図13(c)および(d)も参照して説明する。この処理が呼び出されて実行されると、最初に、探索行リストの中から隣接する探索行n1およびn2を選択する工程(ステップS370)が実行される。ここで、n1とn2とは、n1<n2の関係にあり、更に、後述する工程(ステップS388)から戻って実行される場合には、選択されるn1およびn2は、この工程が実行されて以来、未選択な組合せになるように選択される。ここで、図13(c)は、入力画像110の所定の領域の拡大図であり、直線画像114と、文字画像118と、背景画像120とから成る。この工程で選択された探索行n1と探索行n2は、所定の領域内をX方向に平行して並んでいる。また、探索行n1は、背景画像120と直線画像114とを横切り、探索行n2は、背景画像120と、直線画像114と、文字画像118とを横切る。
続いて、探索行n1およびn2に対応する直線候補位置リストから、同一色の代表符号P1およびP2を選択する(ステップS372)。ここで、P1およびP2の列方向(X方向)の位置を、m1およびm2とする。また、これらの色をclとする。尚、後述する工程(ステップS386)から戻って実行される場合には、P1およびP2は、この工程が実行されて以来、未選択な組合せになるように選択される。ここで、図13(d)は、探索行n1およびn2上の各画素の色情報の並びを示す。ここで、背景画像120の色は0を示し、直線画像114や文字画像118は、それぞれの色を示す0以外の数値を示す。この色情報の並びに基いて、代表符号のP1とP2とを選択できる。
続いて、選択されたP1とP2とを結ぶ線分が、入力画像110の中で成す角度を算出するべく、P1からP2に向かう線分の傾きaを計算する(ステップS374)。この傾きaは、以下のように計算される。尚、計算された傾きaは、図13(c)に示すように、P1とP2とが横方向(X方向)に探索するラインと成す角度Deg1の正接関数(tan)の値を示す。
a=(m2−m1)÷(n2−n1)
次に、傾きaが−1と1との間に入っているか、否かを判定する(ステップS376)。これは、言い換えると、P1とP2とを結ぶ線分が成す角度が−45度から+45度の範囲に入っているか、否かを調べることを意味する。ここで、傾きaが−1と1との間に入っている場合(ステップS376でYes)、次の工程(ステップS378)に進む。また、傾きaが−1と1との間に入っていない場合(ステップS376でNo)、このP1とP2の組合せをヒストグラムに反映させることなく、全ての代表符号の組合せを選択したか、否かを判定する工程(ステップS386)に進む。
次に、P1とP2の線分上での画素割合LPを縦方向探索により計算する(ステップS378)。尚、この工程の詳細は、後述する。
次に、算出された画素割合LPは、画素割合の最小値LPMin以上であるか、否かを判定する(ステップS380)。ここで、画素割合LPは、画素割合の最小値LPMin以上である場合(ステップS380でYes)、次の工程(ステップS382)に進む。また、画素割合LPは、画素割合の最小値LPMinよりも小さい場合(ステップS380でNo)、全ての代表符号の組合せを選択したか、否かを判定する工程(ステップS386)に進む。
ここで、最小値LPMinを適切に設定することで、種々の線分を抽出できる。例えば、最小値LPMinを1に設定すると、2つの代表符号(P1,P2)間を、clと同一色である画素で辿れる線分のみを抽出する。また、この最小値LPMinを0.5近傍に設定すると、2つの代表符号(P1,P2)間を、略同じ数のclと同一色である画素と、clと異なる画素とで辿れる線分、例えば、点線のような線分を抽出する。
次に、P1およびP2間の線分の長さLLと傾きLDとを計算する(ステップS382)。これらは、以下のように計算される。
LL=SQRT((m2−m1)×(m2−m1)+(n2−n1)×(n2−n1))
LD=arctan(a)
ここで、SQRT()は、平方根を求める関数を示し、arctan()は、正接関数の逆関数を示す。
続いて、検出された線分の色clに対応する傾きヒストグラムに対して、傾きLDの度数にLLを加算する(ステップS384)。この場合、簡易的な方法として、P1およびP2間の線分の長さLLの代わりに、前記した乱数により異なる探索行の間隔を傾きLDの度数に追加することで、LLの計算を省くこともできる。
次に、全ての代表符号の組合せを選択したか、否かを判定する(ステップS386)。ここで、全ての代表符号の組合せを選択した場合(ステップS386でYes)、次の工程(ステップS388)に進む。また、全ての代表符号の組合せを選択していない場合(ステップS386でNo)、代表符号P1とP2とを選択して、P1からP2に向かう線分の傾きaを計算する工程(ステップS372)に戻る。
次に、全ての探索行の組合せを選択したか、否かを判定する(ステップS388)。ここで、全ての探索行の組合せを選択した場合(ステップS388でYes)、一連の処理を終了して、この処理の呼び出し元に戻る。また、全ての探索行の組合せを選択していない場合(ステップS388でNo)、探索行リストの中から隣接する探索行n1およびn2を選択する工程(ステップS370)に戻る。
図6は、P1とP2の線分上での画素割合LPを縦方向探索により計算する工程(ステップS378)の詳細を示すフローチャートである。尚、この工程での処理の理解を容易にするべく、図13(c)と(d)に加えて、(e)も参照して説明する。この処理が呼び出されて実行されると、最初に、直線の探索行yと、画素数pnを初期化する工程(ステップS350)が実行される。ここで、探索行yは初期値n1が選択される(y=n1)と共に、画素数pnは初期値0が選択される(pn=0)。
次に、直線の探索列xを計算する(ステップS354)。ここでは、P1からP2に向かう直線の傾きaを用いて、以下のように計算される。
x=m1+a×(y−n1)
次に、探索列xおよび探索行yで特定される位置の画素の色が、clと同一色であるか、否かを判定する(ステップS356)。ここで、探索列xおよび探索行yで特定される位置の画素の色が、clと同一色である場合(ステップS356でYes)、次の工程(ステップS358)に進む。また、探索列xおよび探索行yで特定される位置の画素の色が、clと同一色でない場合(ステップS356でNo)、次の工程(ステップS358)を実行することなく、更に次の工程(ステップS360)に進む。
次に、画素数pnの値に1画素を加える(ステップS358)。
次に、探索行yが代表符号P2のY座標と同一か、否かを判定する(ステップS360)。ここで、探索行yが代表符号P2のY座標と同一である場合(ステップS360でYes)、次の工程(ステップS364)に進む。また、探索行yが代表符号P2のY座標と同一でない場合(ステップS360でNo)、探索行yを次の行にセットして(ステップS362)、直線の探索列xを計算する工程(ステップS354)に戻る。
最後に、P1とP2の線分上の画素割合LPを計算して(ステップS364)、一連の処理を終了し、この処理の呼び出し元に戻る。ここで、画素割合LPは、前記工程で求めた画素数pnを、代表符号P1およびP2間のY方向の長さで除することにより、以下のように計算される。
LP=pn÷(n2−n1)
ここで、図13(c)において、P1およびP2から成る直線ベクトルV10と、P1およびP3から成る直線ベクトルV20とを想定する。図13(e)は、V10およびV20を上記した工程に従い抽出した画素の色情報の並びを示す。V10のように、画素を抽出する軌跡が、直線画像114と大部分が重なる場合、画素の色情報は、信号成分である直線画像114の色情報でほぼ占有される。他方で、V20のように、画素を抽出する軌跡が、背景成分である背景画像120と多く重なる場合、画素の色情報は、背景画像120の色情報が多く出現する。このようなV10とV20に対して、画素割合LPを算出すると、直線ベクトルVの長さに比例して、これらの違いが明確化する。
図7は、縦方向(Y方向)の探索による傾きヒスグラムの作成工程(ステップS20)の詳細を示すフローチャートである。尚、縦方向(Y方向)の探索は、前記した横方向(X方向)の探索と探索方向が異なるだけで、それ以外は同一な処理であるため、各図面の説明に留め、各工程の説明は略す。即ち、図8は、設定した探索行mに対する直線候補位置リストを作成する工程(ステップS23)の詳細を示すフローチャートである。また、図9は、探索列リストから傾きヒストグラムを作成する工程(ステップS27)の詳細を示すフローチャートである。更に、図10は、P1とP2の線分上での画素割合LPを横方向探索により計算する工程(ステップS278)の詳細を示すフローチャートである。
図11は、背景色CLbackを計算する工程(ステップS50)の詳細を示すフローチャートである。この処理が呼び出されて実行されると、最初に、探索行yを、画像の先頭行(y=1)に初期化する工程(ステップS51)が実行される。
次に、行毎の探索列xを、行の先頭位置(x=1)に初期化する(ステップS52)。
続いて、探索列xおよび探索行yで特定される位置の画素の色を抽出して、色の出現数を保存する色リストに登録し、その出現数を1にする(ステップS53)。ここで、既に登録されている場合は、対応する色の出現数を1つ増加する。
次に、探索列xと、入力画像110の幅wとが等しいか、否かを判定する(ステップS54)。ここで、探索列xと、入力画像110の幅wとが等しい場合(ステップS54でYes)、次の工程(ステップS56)に進む。また、探索列xと、入力画像110の幅wとが異なる場合(ステップS54でNo)、探索列xを1つ増加して(ステップS55)、探索列xおよび探索行yで特定される位置の画素の色を抽出して、色の出現数を保存する色リストに登録し、その出現数を1にする工程(ステップS53)に戻る。
次に、探索行yと、入力画像110の高さhとが等しいか、否かを判定する(ステップS56)。ここで、探索行yと、入力画像110の高さhとが等しい場合(ステップS56でYes)、次の工程(ステップS58)に進む。また、探索行yと、入力画像110の高さhとが異なる場合(ステップS56でNo)、探索行yを1つ増加して(ステップS57)、行毎の探索列xを、行の先頭位置(x=1)に初期化する工程(ステップS52)に戻る。
最後に、色リストの中で、最も出現数の多い色を背景色CLbackに設定し(ステップS58)、一連の処理を終了し、この処理の呼び出し元に戻る。
図12は、抽出した線分が成す角度のデータを統計処理することにより、入力画像110の傾きWDegを計算する工程(ステップS80)の詳細を示すフローチャートである。この処理が呼び出されて実行されると、最初に、傾きヒストグラムにおいて、度数が最大となる階級を選択する工程(ステップS81)が実行される。ここで、度数が最大な階級をVとし、その角度をDeg、度数をFとする。
次に、ヒストグラム探索用に、各値を初期化する(ステップS82)。即ち、ヒストグラム探索用の階級V1にVを設定し、度数の累積値FSum、および度数と角度の積の累積値FPSumに対して0を設定する。
次に、各累積値を計算する(ステップS83)。ここで、階級V1の角度をDeg1、度数をF1とすると、各累積値は以下のように計算される。
FSum=FSum+F1
FPSum=FPSum+Deg1×F1
次に、V1の1つ前の階級の度数が0、またはF1よりも大きいか、否かを判定する(ステップS84)。ここで、V1の1つ前の階級の度数が0、またはF1よりも大きい場合(ステップS84でYes)、次の工程(ステップS86)に進む。また、V1の1つ前の階級の度数が0でもなく、かつF1よりも大きくない場合(ステップS84でNo)、V1を1つ前の階級に更新して(ステップS85)、各累積値を計算する工程(ステップS83)に戻る。
次に、ヒストグラム探索用の階級V1にVを設定する(ステップS86)。
次に、V1の1つ後の階級の度数が0、またはF1よりも大きいか、否かを判定する(ステップS87)。ここで、V1の1つ後の階級の度数が0、またはF1よりも大きい場合(ステップS87でYes)、次の工程(ステップS90)に進む。また、V1の1つ後の階級の度数が0でもなく、かつF1よりも大きくない場合(ステップS87でNo)、V1を1つ後の階級に更新して(ステップS88)、各累積値を計算する(ステップS89)。その後、V1の1つ後の階級の度数が0、またはF1よりも大きいか、否かを判定する工程(ステップS87)に戻る。
次に、全体の傾き角度WDegを以下のように計算して、一連の処理を終了し、この処理の呼び出し元に戻る(ステップS90)。
WDeg=FPSum÷FSum
このようにして、ヒストグラム度数の増減の変化から一定の幅を有する領域を規定し、この領域において度数分布の面積中心を求めることにより、ヒストグラムの頂点に対応する角度を精度良く求めることができる。
以上、本発明を図示した実施形態に基いて説明したが、本発明は、本実施形態に限定されるものではなく、以下に述べるような変形例も想定できる。
(1)連続する符号列を画素の色の変化により検出したが、画素の色に限定されるものではなく、例えば、カラー画像の場合は、画素の輝度の変化により検出しても良い。
(2)画像入力手段は、スキャナ102に限定されず、例えばエリアセンサを有する機器から取得されても良い。また、入力画像110は、画像データから形成されることに限定されず、例えばプリンタのような印刷手段から出力された印刷データから形成されても良い。更に、入力画像110を形成するデータは、ネットワークやメディア等を介して入力されても良い。
(a)は、本発明の実施形態に係る画像傾き検出装置の外観を示し、(b)は、モニタに表示された文書画像を示す図。 本発明の実施形態に係る画像傾き検出の処理を示すフローチャート。 横方向の探索により、直線部の傾き角度を示すヒスグラムの作成工程を示すフローチャート。 設定した探索行に対する直線候補位置リストの作成工程を示すフローチャート。 探索行リストから直線部の傾きを示すヒストグラムの作成工程を示すフローチャート。 縦方向探索により線分上での画素割合を計算する工程を示すフローチャート。 縦方向の探索により、直線部の傾き角度を示すヒスグラムの作成工程を示すフローチャート。 設定した探索列に対する直線候補位置リストの作成工程を示すフローチャート。 探索列リストから直線部の傾きを示すヒストグラムの作成工程を示すフローチャート。 横方向探索により線分上での画素割合を計算する工程を示すフローチャート。 背景色を計算する工程を示すフローチャート。 傾きヒストグラムから入力画像の傾きを計算する工程を示すフローチャート。 (c)は、入力画像の所定の領域の拡大を示し、(d)は、探索行上の各画素の色情報の並びを示し、(e)は、直線ベクトルを抽出した画素の色情報の並びを示す図。
符号の説明
100…検出装置、102…スキャナ、104…コンピュータ、105…モニタ、106…キーボード、107…マウス、108…ケーブル、110…入力画像、112…文書画像、114…直線画像、118…文字画像、120…背景画像。

Claims (16)

  1. 信号成分と背景成分とから成る画像のデータを、水平方向または垂直方向の少なくとも1つの方向に沿って抽出して符号化する工程(a)と、
    前記符号化された符号データの中から、所定値以上の長さで同一の成分が連続する符号列を抽出する工程(b)と、
    前記抽出した符号列の代表である代表符号を、前記符号列毎に割り当て記憶する工程(c)と、
    前記画像の中で、前記代表符号の成分と同一な成分である前記符号データと共に略直線状に並ぶ複数の前記代表符号を、前記記憶された代表符号の中から検索する工程(d)と、
    前記検索された複数の代表符号を結ぶ線分が前記画像の中で成す角度を算出する工程(e)と、
    前記算出した角度のデータを蓄積して統計処理により前記画像の傾きを算出する工程(f)とを備えることを特徴とする画像傾き検出方法。
  2. 請求項1に記載の画像傾き検出方法において、
    前記画像を構成する符号データの出現回数により、前記信号成分と前記背景成分とを判別する工程(g)を更に備えることを特徴とする画像傾き検出方法。
  3. 請求項2に記載の画像傾き検出方法において、
    前記出現回数が多い符号データを、前記背景成分と判定すると共に、前記出現回数が少ない符号データを、前記信号成分と判定することを特徴とする画像傾き検出方法。
  4. 請求項1乃至3のいずれか1項に記載の画像傾き検出方法において、
    前記画像のデータを符号化する方式は、ランレングス符号化であることを特徴とする画像傾き検出方法。
  5. 請求項4に記載の画像傾き検出方法において、
    前記背景成分を示す符号データは、白ランであると共に、
    前記信号成分を示す符号データは、黒ランであることを特徴とする画像傾き検出方法。
  6. 請求項1乃至5のいずれか1項に記載の画像傾き検出方法において、
    前記工程(a)は、前記画像のデータを抽出するライン毎に異なる間隔で抽出することを特徴とする画像傾き検出方法。
  7. 請求項1乃至6のいずれか1項に記載の画像傾き検出方法において、
    前記工程(b)は、前記連続する長さが前記所定値以上、かつ、他方の所定値以下である符号列を抽出することを特徴とする画像傾き検出方法。
  8. 請求項1乃至7のいずれか1項に記載の画像傾き検出方法において、
    前記工程(c)は、前記抽出した符号列の中点位置の符号、又は中点近傍で出現頻度が多い符号を前記代表符号として割り当てることを特徴とする画像傾き検出方法。
  9. 請求項1乃至8のいずれか1項に記載の画像傾き検出方法において、
    前記工程(d)は、前記画像の中で、前記記憶された一方の代表符号を起点にして、前記代表符号と同一な前記成分の符号データを略直線状に辿ることにより到達可能な他方の代表符号を、前記記憶された代表符号の中から順次検索することを特徴とする画像傾き検出方法。
  10. 請求項1乃至8のいずれか1項に記載の画像傾き検出方法において、
    前記工程(d)は、前記画像の中で、前記記憶された一方の代表符号を起点にして、前記代表符号とは同一な前記成分の符号データと、一定の割合を超えない数の前記代表符号とは異なる前記成分の符号データとを略直線状に辿ることにより到達可能な他方の代表符号を、前記記憶された代表符号の中から順次検索することを特徴とする画像傾き検出方法。
  11. 請求項1乃至10のいずれか1項に記載の画像傾き検出方法において、
    前記工程(f)は、
    前記信号成分を示す代表符号から算出された角度に基き、前記画像の傾きを算出することを特徴とする画像傾き検出方法。
  12. 請求項1乃至11のいずれか1項に記載の画像傾き検出方法において、
    前記工程(f)は、
    前記算出した角度の出現回数に応じたヒストグラムを作成する工程と、
    前記ヒストグラムの頂点に対応する角度を、前記ヒストグラムにおける一定の幅を有する領域の面積中心により算出する工程とを有することを特徴とする画像傾き検出方法。
  13. 請求項12に記載の画像傾き検出方法において、
    前記工程(f)は、
    水平方向または垂直方向の何れか一方の方向に沿って算出した角度を、余角関係にある角度に変換する工程を更に備えることを特徴とする画像傾き検出方法。
  14. 請求項12乃至13に記載の画像傾き検出方法において、
    前記ヒストグラムは、
    前記画像のデータを抽出する間隔に関する情報、または前記角度を算出した2つの代表符号間の距離に関する情報の少なくとも一方を含むことを特徴とする画像傾き検出方法。
  15. 請求項1乃至14のいずれか1項に記載の画像傾き検出方法を実行することを特徴とする画像傾き検出装置。
  16. 信号成分と背景成分とから成る画像のデータを、水平方向または垂直方向の少なくとも1つの方向に沿って抽出して符号化する機能と、
    前記符号化された符号データの中から、所定値以上の長さで同一の成分が連続する符号列を抽出する機能と、
    前記抽出した符号列の代表である代表符号を、前記符号列毎に割り当て記憶する機能と、
    前記画像の中で、前記代表符号の成分と同一な成分である前記符号データと共に略直線状に並ぶ複数の前記代表符号を、前記記憶された代表符号の中から検索する機能と、
    前記検索された複数の代表符号を結ぶ線分が前記画像の中で成す角度を算出する機能と、
    前記算出した角度のデータを蓄積して統計処理により前記画像の傾きを算出する機能とをコンピュータに実現させることを特徴とする画像傾き検出プログラム。

JP2005194648A 2005-07-04 2005-07-04 画像傾き検出方法、画像傾き検出装置および画像傾き検出プログラム Expired - Fee Related JP4692109B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005194648A JP4692109B2 (ja) 2005-07-04 2005-07-04 画像傾き検出方法、画像傾き検出装置および画像傾き検出プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005194648A JP4692109B2 (ja) 2005-07-04 2005-07-04 画像傾き検出方法、画像傾き検出装置および画像傾き検出プログラム

Publications (2)

Publication Number Publication Date
JP2007011925A true JP2007011925A (ja) 2007-01-18
JP4692109B2 JP4692109B2 (ja) 2011-06-01

Family

ID=37750286

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005194648A Expired - Fee Related JP4692109B2 (ja) 2005-07-04 2005-07-04 画像傾き検出方法、画像傾き検出装置および画像傾き検出プログラム

Country Status (1)

Country Link
JP (1) JP4692109B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011113311A (ja) * 2009-11-26 2011-06-09 Tateyama System Laboratory Ltd 画像補正方法
JP2013251005A (ja) * 2013-09-03 2013-12-12 Tateyama System Laboratory Ltd 画像補正方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59103178A (ja) * 1982-12-06 1984-06-14 Matsushita Electric Ind Co Ltd 線図形のストロ−ク抽出装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59103178A (ja) * 1982-12-06 1984-06-14 Matsushita Electric Ind Co Ltd 線図形のストロ−ク抽出装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011113311A (ja) * 2009-11-26 2011-06-09 Tateyama System Laboratory Ltd 画像補正方法
JP2013251005A (ja) * 2013-09-03 2013-12-12 Tateyama System Laboratory Ltd 画像補正方法

Also Published As

Publication number Publication date
JP4692109B2 (ja) 2011-06-01

Similar Documents

Publication Publication Date Title
US10127199B2 (en) Automatic measure of visual similarity between fonts
KR101604931B1 (ko) 한자 구성 방법과 장치, 문자 구성 방법과 장치, 및 폰트 라이브러리 생성 방법
JP4724801B1 (ja) 二次元コードリーダおよびプログラム
JP5934762B2 (ja) 文字の形状特徴を使用した文字比較による文書改変検知方法、コンピュータプログラム、記録媒体および情報処理装置
EP3214577A1 (en) Image text recognition method and device
JP2016018359A (ja) 画像処理方法、画像処理装置、プログラム及び記録媒体
JP7424573B2 (ja) 三次元点群データに基づく三次元モデル生成装置
JP6003705B2 (ja) 情報処理装置及び情報処理プログラム
KR102745026B1 (ko) 가상 모델 생성 장치 및 방법
JP4977232B2 (ja) 文字読取結果確認装置および文字読取結果確認方法
JPH08167000A (ja) 文字認識装置および方法
JP4692109B2 (ja) 画像傾き検出方法、画像傾き検出装置および画像傾き検出プログラム
KR101336901B1 (ko) 화상 처리 장치, 화상 처리 방법 및 기록 매체
US11908216B2 (en) Musical notation system
JP6337680B2 (ja) 画像処理システム、画像処理装置、プログラム及び画像処理方法
JP2022090469A (ja) 書式定義装置、書式定義方法、及びプログラム
JP4791295B2 (ja) 罫線抽出プログラム、罫線抽出装置、罫線抽出方法
JP5657503B2 (ja) 読取装置、方法及びプログラム
KR101722871B1 (ko) 서포트 벡터 머신의 최적 파라미터 선택 장치 및 방법
JP6310155B2 (ja) 文字認識装置、文字認識方法及び文字認識プログラム
JP5145862B2 (ja) 画像処理プログラムおよび画像処理装置
KR102616255B1 (ko) 폰트 생성 시스템 및 이를 이용한 폰트 생성 방법
JP5862396B2 (ja) 帳票判別装置及びプログラム
JP2010044517A (ja) 画像処理装置、画像処理方法、画像処理プログラム及び記録媒体
JP5636691B2 (ja) 画像処理装置及び画像処理プログラム

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20070404

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080528

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100924

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101005

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101125

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110125

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110207

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140304

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees