(57)【要約】【課題】  画像のエッジ角度検出における演算数を削減する。【解決手段】  ２のべき数への近似と、分数を消去することによって、簡易な演算で画像のエッジ角度を検出するための演算を行なう。【選択図】  図１
2007034704.tif 000002
【特許請求の範囲】
【請求項１】
画像処理に用いるθ＝atan(b/a)の演算をシフト回路と、比較回路によって構成することを特徴とする、画像処理装置。
【請求項２】
画像のエッジを検出してそのエッジ角度を用いて画像処理を行なう画像処理装置において、
画像の水平強度をGh、垂直強度をGvとした時に、
θ＝atan（Gv/Gh）から求められるエッジ角度θを検出する角度検出器、を備え、
前記角度検出器は、シフト回路と比較回路によって構成されることを特徴とする、
画像処理装置。
【請求項３】
前記角度検出器は、検出しようとする角度のタンジェントをとった値を、２のべき数に近似することを特徴とする、請求項２に記載の画像処理装置。
【請求項４】
前記角度検出器は、角度検出に用いる等式もしくは不等式に除算が含まれ、両辺に分母をかけることによって除算を省略することを特徴とする、請求項２に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置に関する。特に、画像のエッジを検出して、そのエッジの角度を用いて画像処理を行なう画像処理装置に関する。
【背景技術】
【０００２】
特許文献１には、色相角の計算においてアークタンジェント（atan）計算を簡単な算術演算に置き換える方法が記載されている。
【０００３】
本発明の画像処理装置は、特許文献１と同様にアークタンジェントの演算を簡略化することを目的とする。
【０００４】
特許文献1では色相角演算におけるH=atan(b/a)演算を簡略化することを目的としている。そのために、H=(2ab+b2)/(8a2+4ab+2b2)で近似計算している。
【０００５】
一方、本発明の画像処理装置では画像のエッジ角度演算におけるθ=atan(b/a)演算を簡略化することを目的としている。そのため、θに適切な条件設定を行なうことにより、除算や乗算も省き、シフト回路と比較回路で構成するようにしている。
【０００６】
また、従来、エッジ検出フィルタを用いた画像処理方法および装置に関するもので、図８に示すように水平/垂直のエッジ強度を求め、そこからエッジの角度を算出する例がある。
【０００７】
本発明の画像処理装置は、エッジ角度算出時のアークタンジェント演算を簡単な演算に置き換えるのに対し、先願1に記載の画像処理方法では水平/垂直のエッジ強度を求めるためのフィルタ演算数を削減するものである。
【特許文献１】特開２０００−３２２８５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
特許文献１に記載されている画像処理装置は、色相角H＝atan(b/a)の計算を簡易にするためのものである。特許文献1ではL*a*b色空間への変換を想定していた。そのため、乗算や除算を行なう必要があった。
【０００９】
本発明は、画像のエッジ角度算出におけるアークタンジェントの演算を乗算や除算を省いた、より簡易な演算で実現することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、画像処理に用いるθ＝atan(b/a)の演算をシフト回路と、比較回路によって構成することを特徴とする、画像処理装置である。
【発明の効果】
【００１１】
請求項１に関して、除算器を削減して、シフト回路と、比較回路で回路を構成するので、回路規模が小さくなる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態について説明する。
【００１３】
本発明の画像処理装置は、画像のエッジ角度を用いて画像処理を行なう方法に関し、特に、アークタンジェントを用いて角度算出を行なう場合は、演算を簡易にするという点から本発明が適用される好ましい形態である。
【００１４】
本発明の実施の形態について、図面を用いて以下に具体的に説明する。
【００１５】
図１は本発明の処理の流れを示したフローチャートである。１０１は画像データの入力工程、１０２は水平強度検出工程、１０３は垂直強度検出工程、１０４はアークタンジェントでの比較式、１０５はアークタンジェントを両辺から外した比較式、１０６は１０５の近似式、１０７は１０６を分解した条件判定工程、１０８は斜めエッジ検出工程、１０９は斜めエッジなしの工程、を表している。１０４〜１０６は実際に行なわれる工程ではなく、考え方の流れを説明するために記したものである。
【００１６】
画像データ入力工程１０１によって画像データが入力されると、画像データは水平強度検出工程１０２、垂直強度検出工程１０３に渡される。
【００１７】
画像の水平強度、垂直強度を検出するためには、例えば、図７のようなフィルタが用いられる。図7-aは水平エッジ検出フィルタ、7-bは垂直エッジ検出フィルタ、を表している。
【００１８】
このフィルタと、フィルタのマトリクスに対応する画素データを用いて画素データマトリクスの水平強度Gh、垂直強度Gvが求められる。すなわち、フィルタと画素のマトリクスのそれぞれ対応する位置同士のデータを乗算し、その値を積算すると水平強度Gh、垂直強度Gvが求められる。水平エッジ検出フィルタ7-aからは水平強度Ghが求められ、垂直エッジ検出フィルタ7-bからは垂直強度Gvが求められる。
【００１９】
図８は水平垂直強度と、エッジの角度の関係を説明した図である。水平強度Ghと垂直強度Gvは直交関係にあるから、以下の式が成り立つ。（θはエッジの角度）
θ＝atan（Gv/Gh）・・・・・・・・・（式１）
ここで検出したいエッジの角度が45°±20°とすると、次式で表せる。
【００２０】
25°＜atan（Gv/Gh）＜65°・・・・・（式２）
これが比較式１０４となる。
【００２１】
次に（式２）の両辺にタンジェントをとれば、atan（Gv/Gh）のアークタンジェントが外せる。
【００２２】
0.47＜（Gv/Gh）＜2.15        ・・・・・・・（式３）
これが比較式１０５となる。
【００２３】
図２はこのときの変換を表に表したものである。この表からtan(25°)≒0.47、およびtan(65°)≒2.15、となることがわかる（図２の白い矢印部）。さらに、0.47を0.5に、2.15を2.0に近似する（図２の黒い矢印部）。
【００２４】
0.5＜（Gv/Gh）＜2.0・・・・・・・・（式４）
これが近似式１０６となる。この時、atan(0.5)≒26.5°、atan(2.0)≒63.4°である。ここで検出したエッジ角度を後段でどのように処理するかにもよるが、一般に画像のエッジ角度を求める場合はおおよその角度がわかれば問題ない。したがって上記の近似によって検出角度の誤差が±2°程度発生するが、本例では問題にならないものとする。
【００２５】
次に、（式４）の両端にGhを乗算することによって除算を無くすことができる。
【００２６】
0.5＊Gh＜Gv＜2.0＊Gh・・・・・・・（式５）
0.5＊Gh＜Gv、Gv＜2.0＊Gh・・・・・（式６）
つまり、（式６）の二つの不等式を同時に満たせば、（式２）にあてはまる角度のエッジが検出できることになる。
【００２７】
条件判定工程１０７は上記（式６）の条件判定を行なう。条件判定工程１０７で条件を満たせば「斜めエッジあり」と判断され、後段の斜めエッジ検出工程１０８に渡される。また、条件を満たさない場合は「斜めエッジなし」と判断され、後段の斜めエッジなし工程１０９に渡される。
【００２８】
図３は図1のフローをブロック図にしたものである。３０１は右シフト回路、３０２は左シフト回路、３０３は第1の比較回路、３０４は第２の比較回路、３０５は検出器、S301は水平強度、S302は垂直強度、S303は右シフト回路の出力、S304は左シフト回路の出力、S305は第１の比較回路の出力、S306は第２の比較回路の出力、S307は斜めエッジ検出信号、を表している。
【００２９】
前記フィルタ等によって検出された水平強度S301は右シフト回路３０１と、左シフト回路３０２に入力される。ここで右シフト回路３０１は1/2演算を表し、左シフト回路３０２は2倍演算、を表している。
【００３０】
また、前記フィルタ等によって検出された垂直強度S302は第1の比較回路３０３と、第２の比較回路３０４に入力される。
【００３１】
右シフト回路３０１の出力S303は第１の比較回路３０３に入力され、左シフト回路３０２の出力S304は第２の比較回路３０４に入力される。
【００３２】
第1の比較回路３０３では前記（式６）の左式0.5＊Gh＜Gvの比較が行なわれ、第２の比較回路３０４では右式Gv＜2.0＊Ghの比較が行なわれる。
【００３３】
二つの比較回路の出力S305,S306は検出器３０５に入力される。検出器３０５では、
（S307）←（S305）AND（S306）・・・・・（式７）
の演算が行われる。(S305),(S306)はそれぞれ不等式の検出結果を表し、検出結果が正ならば'1'を出力する。また、（式７）の「←」は検出信号S307への出力を表している。
【００３４】
これによって、右シフト回路と、左シフト回路と、比較回路、および簡易な論理演算回路だけで角度検出回路を構成することができる。
【００３５】
次に本発明の第２の実施の形態について、図４、図５を用いて説明する。
【００３６】
図４は本発明の第２の実施の形態の処理の流れを示したフローチャートである。１０１〜１０６、１０８〜１０９に関しては図１と同じものであり、同じ記号によって表している。また、４０７は条件判定工程を表している。
【００３７】
条件判定工程４０７は図１の条件判定工程１０７を変形したものである。すなわち、（式６）の右式の両辺に0.5を乗算したものである。
【００３８】
0.5＊Gh＜Gv、0.5＊Gv＜Gh・・・・・・・（式８）
図５は図４をブロック図によって表したものである。５０１は第１の右シフト回路、５０２は第２の右シフト回路、５０３は第１の比較回路、５０４は第２の比較回路、５０５は検出器、S501は水平強度、S502は垂直強度、S503は第１の右シフト回路の出力、S504は第２の右シフト回路の出力、S505は第１の比較回路の出力、S506は第２の比較回路の出力、S507は斜めエッジ検出信号、を表している。
【００３９】
前記フィルタ等によって検出された水平強度S501は第１の右シフト回路５０１と、第２の比較回路５０４に入力される。
【００４０】
また、前記フィルタ等によって検出された垂直強度S502は第1の比較回路５０３と、第２の右シフト回路５０２に入力される。
【００４１】
ここで第１,第２の右シフト回路５０１,５０２は1/2演算を表している。
【００４２】
第１の右シフト回路５０１の出力S503は第１の比較回路５０３に入力され、第２の右シフト回路５０２の出力S504は第２の比較回路５０４に入力される。
【００４３】
第1の比較回路５０３では前記（式８）の左式0.5＊Gh＜Gvの比較が行なわれ、第２の比較回路５０４では右式0.5＊Gv＜Ghの比較が行なわれる。
【００４４】
二つの比較回路の出力S505,S506は検出器５０５に入力される。検出器５０５では、
（S507）←（S505）AND（S506）・・・・・・・（式９）
の演算が行われる。(S505),(S506)はそれぞれ不等式の検出結果を表し、検出結果が正ならば'1'を出力する。また、（式９）の「←」は検出信号S507への出力を表している。
【００４５】
これによって右シフト回路と比較回路、および簡易な論理演算回路だけで角度検出回路を構成することができる。
【００４６】
次に、図６を用いて本発明の第３の実施の形態を説明する。
【００４７】
第３の実施の形態では、角度検出範囲を広げた場合の例を示す。本例では、４５°±３０°の角度検出を行なう場合の例を示す。
【００４８】
図６は本発明の第３の実施の形態の処理の流れを示したフローチャートである。１０１〜１０３、１０８〜１０９に関しては図１と同じものであり、同じ記号によって表している。また、６０４はアークタンジェントでの比較式、６０５はアークタンジェントを両辺から外した比較式、６０６は６０５の近似式、６０７は６０６を分解した条件判定工程、を表している。
【００４９】
第１の実施の形態と同様に図２の角度変換表を参照すると、角度15°に対し、atan(0.25)≒14.0°、また角度75°に対し、atan(4.0)≒76.0°の近似を行なっている。
【００５０】
これによって条件判定工程６０７の次式が導きだせる。
【００５１】
0.25＊Gh＜Gv、Gv＜4.0＊Gh・・・・・（式１０）
(式１０)の左式の0.25＊GhはGhを1/4にするものである。すなわち、Ghに対して2bit右シフトを行なえばよい。
【００５２】
また、(式１０)の右式の4.0＊Ghでは、Ghに対して2bit左シフトを行なえばよい。
【００５３】
このように角度検出範囲を広げても、シフト回路と比較回路、および簡易な論理演算回路だけで角度検出回路を構成することができる。
【００５４】
以下、具体的な実施例を挙げて本発明を詳しく説明する。
前記、実施の形態における（式３）の左辺の一般形、すなわち、
c＜(b/a)・・・・・（式１１）
を、プログラマブルデバイスである、FPGAで構成し、従来例と本発明との比較を行なう。（a,b,cは各8bitの数値）
本実施例ではXilinxのFPGA（VertexII）を用いて、IPコアで（式１１）を構成するようにした場合を考える。IPコアの生成についてはXilinx製のソフトウェアCoreGeneraterを使用した。
【００５５】
VertexIIはCLBというブロック単位で構成されている。１CLBは４つのSLICEで構成されていて、１SLICEには２つのルックアップテーブル（LUT）と２つのFFが内蔵されている。
【００５６】
CoreGeneraterで（式１１）で必要となるIPコアを生成すると、以下のようになる。
【００５７】
（１）Divider  99LUT,234reg
（２）Comparator  9LUT,0reg
（３）Shift_register  0LUT,8reg
ここで、regはレジスタを表している。
【００５８】
従来の演算方法で（式１１）の演算を行う場合、まず、（１）Dividerにて（b/a）の除算を行なった後に、（２）Comparatorでcとの比較を行なう。
【００５９】
すなわち、（１）＋（２）となり、108LUT,234regが必要となる。
【００６０】
これに対し、本発明を用いると、まず、c*aを行なう、ここでcは２のべき数に近似されるから、（３）Shift_registerによって計算できる。その後に、（２）Comparatorを用いてbとの比較を行なう。
【００６１】
すなわち、（２）＋（３）となり、9LUT,8regだけで構成することができた。
【００６２】
これによって、従来手法に比べ、回路規模を10分の１以下にすることができた。
【図面の簡単な説明】
【００６３】
【図１】第１の実施の形態におけるフローチャート。
【図２】角度変換表。
【図３】第1の実施の形態におけるブロック図。
【図４】第２の実施の形態におけるフローチャート。
【図５】第２の実施の形態におけるブロック図。
【図６】第３の実施の形態におけるフローチャート。
【図７】フィルタの例を示した図。
【図８】水平垂直強度とエッジの角度の関係を説明した図。
【符号の説明】
【００６４】
１０１  画像データの入力工程
１０２  水平強度検出工程
１０３  垂直強度検出工程
１０４  アークタンジェントでの比較式
１０５  アークタンジェントを両辺から外した比較式
１０６  近似式
１０７  条件判定工程
１０８  斜めエッジ検出工程
１０９  斜めエッジなしの工程
３０１  右シフト回路
３０２  左シフト回路
３０３  第1の比較回路
３０４  第２の比較回路
３０５  検出器
S301  水平強度
S302  垂直強度
S303  右シフト回路の出力
S304  左シフト回路の出力
S305  第１の比較回路の出力
S306  第２の比較回路の出力
S307  斜めエッジ検出信号
４０７  条件判定工程
５０１  第１の右シフト回路
５０２  第２の右シフト回路
５０３  第１の比較回路
５０４  第２の比較回路
５０５  検出器
S501  水平強度
S502  垂直強度
S503  第１の右シフト回路の出力
S504  第２の右シフト回路の出力
S505  第１の比較回路の出力
S506  第２の比較回路の出力
S507  斜めエッジ検出信号
６０４  アークタンジェントでの比較式
６０５  アークタンジェントを両辺から外した比較式
６０６  近似式
６０７  条件判定工程
【図１】
2007034704.tif 000003
【図２】
2007034704.tif 000004
【図３】
2007034704.tif 000005
【図４】
2007034704.tif 000006
【図５】
2007034704.tif 000007
【図６】
2007034704.tif 000008
【図７】
2007034704.tif 000009
【図８】
2007034704.tif 000010