(57)【要約】【課題】画像処理装置の小型化を図り、画像の歪みも抑制する。【解決手段】画像処理装置は、入力画像データが有する複数の画素の座標を１画素単位で入力し、画素の座標の入力順に、入力座標を回転させたときの回転座標を取得する取得部（３２２）と、前記取得部による前記入力座標における画素の画素データ値を、回転座標系において前記回転座標を囲む近接した複数の近接画素の画素データ値に重み付けて分配する分配部（３２４）と、前記分配部によって重み付けて分配された前記複数の近接画素の画素データ値を格納する記憶部（３３）とを有する。【選択図】図４
2011076539.tif 000002
【特許請求の範囲】
【請求項１】
入力画像データが有する複数の画素の座標を１画素単位で入力し、画素の座標の入力順に、入力座標を回転させたときの回転座標を取得する取得部と、
前記取得部による前記入力座標における画素の画素データ値を、回転座標系において前記回転座標を囲む近接した複数の近接画素の画素データ値に重み付けて分配する分配部と、
前記分配部によって重み付けて分配された、前記複数の近接画素の画素データ値を格納する記憶部と
を有する画像処理装置。
【請求項２】
前記分配部は、
前記回転座標の整数部分および小数部分を用いて前記複数の近接画素の座標を取得し、取得した前記複数の近接画素の座標と前記回転座標との前記小数部分で示される距離に応じて、前記回転座標における画素の画素データ値を前記入力座標における画素の画素データ値で補間する
請求項１記載の画像処理装置。
【請求項３】
２次元の回転座標系において、
前記小数部分は、
行方向の行成分と、
列方向の列成分と
を有し、
前記回転座標は、
第１、第２、第３および第４の近接画素の座標に囲まれており、
前記分配部は、
前記第１から前記第４の近接画素の各画素データ値を求めるに際し、求める対象の近接画素の対極に位置する近接画素の座標と前記回転座標間の差分の行方向成分と列方向成分とを、各々前記入力座標における画素の画素データ値に乗算して重み付け分配することにより、前記求める対象の近接画素の画素データ値を求める
請求項２記載の画像処理装置。
【請求項４】
前記記憶部から読み出すべき前記複数の近接画素の画素データ値が格納されているアドレスを指定するアドレス制御部を有し、
前記分配部は、
補間した前記回転座標における画素の画素データ値を、前記アドレス制御部が指定する前記記憶部のアドレスから読み出した前記複数の近接画素の画素データ値に加算する
請求項３記載の画像処理装置。
【請求項５】
前記記憶部は、
前記取得部が１画面を構成する入力画像データの始めの画素の座標を入力する前に、全てのアドレスの値を初期化する
請求項４記載の画像処理装置。
【請求項６】
前記取得部が画素の座標を入力するごとに、画素数をカウントするカウンタを有する
請求項５記載の画像処理装置。
【請求項７】
前記入力画像データが格納された画像データ記憶部と、
前記画像データ記憶部に格納された前記入力画像データを１画素ずつ走査して読み出す走査制御部と
を有する
請求項１記載の画像処理装置。
【請求項８】
入力画像データが有する複数の画素の座標を１画素単位で入力する第１の工程と、
前記第１の工程での画素の座標の入力順に、入力座標を回転させたときの回転座標を取得する第２の工程と、
前記第２の工程での前記入力座標における画素の画素データ値を、回転座標系において前記回転座標を囲む近接した複数の近接画素の画素データ値に重み付けて分配する第３の工程と、
前記第３の工程で重み付けて分配した前記複数の近接画素の画素データ値を記憶部に格納する第４の工程と
を有する画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、画像を回転させる処理を行う画像処理装置および画像処理方法に関するものである。
【背景技術】
【０００２】
近年、例えば、被写体の中から人物の顔を自動的に検出する機能を有するデジタルカメラが市場に広く流通している。
この機能を有するデジタルカメラの中には、人物の顔を検出する際に、例えば、その顔に相当する部分の画像を抽出し、抽出した顔の画像を予め登録してあるデータベースと比較する処理を行うものがある。この処理を行うためには、正面から撮影された傾きの少ない顔の画像を用いる必要がある。
そのため、顔の画像に傾きがある場合には、この画像を回転させることにより、その傾きが適切に補正される。回転処理には、例えば、特許文献１，２に開示される画像処理装置が用いられる。
【０００３】
特許文献１に記載の画像処理装置は、入力画像を構成する画素（ピクセル）を１画素ずつスキャン（走査）し、スキャンした画素の座標に対して回転処理を施す。回転処理の際に、画像処理装置は、回転処理後の座標とその近傍の４つの座標に対応した画素の画素データ値を取得し、これらの画素データ値を用いて回転処理後の座標に対してバイリニア補間を施す。そして、画像処理装置は、バイリニア補間を施した座標の画素データ値をスキャン対象の画素における画素データ値とする。
なお、バイリニア補間は、補間すべき座標の画素データ値を、この座標とその周辺の４つの座標との距離に応じて、これらの座標の画素データ値で重み付けする線形補間の一種である。
【０００４】
一方、特許文献２に記載の画像処理装置は、入力画像の各ラスター（raster）を表す線分群を、全ての線分が同一の傾きを取り、ｙ切片だけが各々異なる線分群に変換する。なおラスタは、ドットの集合を指す。そして、この画像処理装置は、スキャン対象の画素の座標における画素データ値を、回転後の線分群の座標の画素データ値とする。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平５−１５３４８６号公報
【特許文献２】特開平９−３１１９３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１によれば、スキャンされた画素の座標に対して１画素ずつ回転処理が施されるため、回転処理後の画像を格納するメモリとは別に、回転処理前の入力画像を一旦格納する中間バッファを設ける必要がある。
このため、必然的に、回路基板上のメモリの占有面積が増大し、画像処理装置の回路規模が大きくなる。
【０００７】
一方、特許文献２によれば、特許文献１のように、中間バッファを設けずとも入力画像に回転処理を施すことができるため、回路基板上のメモリの占有面積の低減化を図ることができる。
その反面、特許文献２が開示する方法では、元の１本の線分を回転させた結果、元の１本の線分があたかも歪んだかのように複数の線分に変換され、回転処理後の画像に歪みが発生するという欠点がある。
【０００８】
いずれにせよ、画像の回転処理を行うにあたり、回転処理後の画像の画質を維持しようとすれば、画像処理装置の回路規模が大きくなり、メモリの使用量の低減化を図れば、回転処理後の画像の画質が劣化するという問題があった。
そこで、画像処理装置の小型化を図ることが可能な画像処理装置が望まれている。また、画像処理を容易にする画像処理方法が望まれている。
【０００９】
本発明は、画像処理装置の小型化を図ることができ、画像の歪みを抑制することができる画像処理装置を提供することにある。また、本発明は、画像処理の容易化を図ることができる画像処理方法を提供することにある。
【課題を解決するための手段】
【００１０】
本発明の画像処理装置は、入力画像データが有する複数の画素の座標を１画素単位で入力し、画素の座標の入力順に、入力座標を回転させたときの回転座標を取得する取得部と、前記取得部による前記入力座標における画素の画素データ値を、回転座標系において前記回転座標を囲む近接した複数の近接画素の画素データ値に重み付けて分配する分配部と、前記分配部によって重み付けて分配された前記複数の近接画素の画素データ値を格納する記憶部とを有する。
【００１１】
本発明の画像処理方法は、入力画像データが有する複数の画素の座標を１画素単位で入力する第１の工程と、前記第１の工程での画素の座標の入力順に、入力座標を回転させたときの回転座標を取得する第２の工程と、前記第２の工程での前記入力座標における画素の画素データ値を、回転座標系において前記回転座標を囲む近接した複数の近接画素の画素データ値に重み付けて分配する第３の工程と、前記第３の工程で重み付けて分配した前記複数の近接画素の画素データ値を記憶部に格納する第４の工程とを有する。
【００１２】
本発明の画像処理装置によれば、取得部は、入力画像データが有する複数の画素の座標を１画素単位で入力すると、画素の座標の入力順に、入力座標を回転させたときの回転座標を取得する第２の工程と、入力座標を回転させたときの回転座標を取得する。
そして、分配部は、入力座標における画素の画素データ値を、回転座標系において前記回転座標を囲む近接した複数の近接画素の画素データ値に重み付けて分配する。
そして、記憶部は、重み付けて分配された前記複数の近接画素の画素データ値を格納する。
【発明の効果】
【００１３】
本発明によれば、画像処理装置の小型化を図ることができ、画像の歪みも抑制することができる。また、本発明によれば、画像処理の容易化を図ることができる。
【図面の簡単な説明】
【００１４】
【図１】図１は、本発明の実施形態に係る画像処理装置の構成例を示す概略ブロック図である。
【図２】図２は、本発明の実施形態に係るラスタースキャンを説明するための概念図である。
【図３】図３（Ａ）、（Ｂ）は、本発明の実施形態に係る回転処理を説明するための図である。
【図４】図４は、本発明の実施形態に係る画像回転部の構成例を示すブロック図である。
【図５】図５は、本発明の実施形態に係る回転処理を説明するための図である。
【図６】図６は、本発明の実施形態に係る回転処理後の画像の一例を示す図である。
【図７】図７は、本発明の実施形態に係る画像処理装置の動作例を示すフローチャートである。
【図８】図８は、本発明の実施形態に係る画像回転部の動作例を示すフローチャートである。
【図９】図９は、回転処理後の座標Ｐ２の輝度値に対してバイリニア補間を行い、この輝度値を画像とする場合の画像回転部の構成例を示す概略ブロック図である。
【図１０】図１０（Ａ）、（Ｂ）は、一般的な画像処理装置による回転処理の例を示す図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態を図面に関連付けて説明する。なお、説明は以下の順序で行う。
１．画像処理装置１の構成例
２．処理部３の構成例
３．画像回転部３２の構成例
４．画像処理装置１の動作例
５．画像回転部３２の動作例
【００１６】
本発明の実施形態を説明する前に、本発明の構成要素と実施形態の構成要素との対応関係について説明する。
本発明の取得部は、座標演算部３２２に対応する。本発明の分配部は、演算部３２４に対応する。本発明のカウンタは、走査カウンタ３２１に対応する。
本発明の入力座標は、座標Ｐ１に対応する（図３参照）。本発明の回転座標は、座標Ｐ２に対応する（図３参照）。
本発明の第１、第２、第３、第４の近接画素は、画素ＰＩＸ３１〜ＰＩＸ３４に各々対応する（図５参照）。
本発明の第１、第２、第３、第４の近接画素の座標は、座標Ｐ３１〜Ｐ３４に各々対応する（図５参照）。
本発明の画像データ記憶部は、画像記憶部２に対応する。本発明の走査制御部は、制御部３５に対応する。
【００１７】
＜実施形態＞
［画像処理装置１の構成例］
本実施形態に係る画像処理装置の構成例を図１に関連づけて説明する。図１は、本発明の実施形態に係る画像処理装置の構成例を示す概略ブロック図である。
【００１８】
図１に図示する画像処理装置１は、画像記憶部（ＲＡＭ）２、処理部（ＤＳＰ）３、ＣＰＵ４および内部バス（ＢＵＳ）５を有する。
画像処理装置１は、例えば、撮像装置（不図示）を有するデジタルカメラに搭載される。デジタルカメラの一部を構成する画像処理装置１は、撮像装置によって撮像された画像の中から人物の顔に相当する部分がどの人物であるかを認識する。この処理を「認識処理」という。
【００１９】
画像記憶部２は、例えば、ＲＡＭ（Random Access Memory）である。画像記憶部２は、例えば、撮像装置によって撮像された原画像データｓｒｃを内部バス５を介して格納する。
ただし、画像記憶部２に格納された原画像データｓｒｃは、予め人物の顔に相当する部分の画像が元の撮像画像から抽出（「トリミング」ともいう）されたものであると仮定する。
以下、説明を明確にするため、画像処理装置１が扱う画像（データ）は、一枚の静止画像であるものと仮定するが、これは、例えば、複数の連続したフレーム画像で構成される動画像データ（例えば、ＭＰＥＧ：Moving Picture Experts Group）であってもよい。
【００２０】
処理部３は、基本的には、加算器、除算器、カウンタ等を用いたハードウェアで構成される。そのため、画像処理装置１で取り扱う画像データは、処理部３の回路規模等を考慮し、認識処理を実行可能な程度の画質（解像度）であることが望ましい。
【００２１】
処理部３は、大別して、（１）画像データの読み出し処理と、（２）画像を拡大／縮小する拡大／縮小処理と、（３）画像を回転させる回転処理と、（４）人物の顔を認識する認識処理とを行う。以下、処理部３の概要を処理別に説明する。
【００２２】
［（１）読み出し処理］
処理部３は、ラスタースキャン（raster scan）を行って、画像記憶部２に格納されている原画像データｓｒｃを読み出す。この処理を「読み出し処理」という。
【００２３】
ここで、ラスタースキャンを図２に関連づけて説明する。図２は、本発明の実施形態に係るラスタースキャンを説明するための概念図である。
【００２４】
画像記憶部２には、例えば、図２に図示する原画像データｓｒｃが格納されている。一枚の原画像ｓｒｃは、ｍ（行）×ｎ（列）画素（ＰＩＸ）で構成されている。ここで、ｍおよびｎは、正の整数である。ｍ×ｎ個の画素は、例えば、２５６階調（８ビット）で表現される画素データ値を各々持つ。本実施形態では、画素データ値として輝度値を例に挙げるが、これは、例えば、色差信号の色差値であっても差し支えない。
【００２５】
処理部３は、テレビジョンにおけるスキャンのように、画像記憶部２に格納されている原画像ｓｒｃを行の始めから終わりまで１画素ずつスキャンしていき、スキャン対象の画素が行の終わりに達したら、次の行の始めからスキャンを開始する。図２には、ラスタースキャンの方向が矢印Ｖで図示されている。処理部３は、上述のラスタースキャンを行って、原画像ｓｒｃを構成するｍ×ｎ個の画素における画素データ値やその座標を順番に読み出す。
【００２６】
［（２）拡大／縮小処理］
処理部３は、原画像ｓｒｃの大きさが認識処理可能な大きさとなるように、これを拡大／（または）縮小する（「スケーリング」ともいう）。このとき、処理部３は、原画像ｓｒｃを構成する全ての画素を取得してから拡大／縮小処理を行うのではなく、１画素ずつ拡大／縮小を行う。この処理を「拡大／縮小処理」という。なお、原画像ｓｒｃの拡大率／縮小率は、原画像ｓｒｃごとにＣＰＵ４から与えられる。
【００２７】
［（３）回転処理］
図３（Ａ）、（Ｂ）は、本発明の実施形態に係る回転処理を説明するための図である。図３（Ａ）には、拡大／縮小処理後の原画像ｓｒｃ１が図示されている。
ところで、図３（Ａ）に図示する人物の顔Ｆは、Ｘ軸と平行な水平線Ｈに対して角Ａ°（度）傾いている。この状態では、認識処理を的確に行うことが困難であるため、処理部３は、座標ｃｓ（ｃｓｘ，ｃｓｙ）を中心として、原画像ｓｒｃ１を反時計方向に角Ａ°回転させる。この座標ｃｓは、原画像ｓｒｃの中心点である。
なお、回転角Ａは、元の画像から原画像ｓｒｃが抽出される際に予め取得されており、ＣＰＵ４から与えられる。この処理を「回転処理」といい、回転すべき角Ａを「回転角」ともいう。図３（Ｂ）には、回転座標系における回転処理後の画像ｄｅｓｔが図示されている。
【００２８】
［（４）認識処理］
処理部３は、回転処理後の画像ｄｅｓｔを基に、顔の認識処理を行う。認識処理では、画像ｄｅｓｔにおける顔の部分の画像データが、予めデータベースに登録されている顔の画像データに一致（マッチング）するか否かが判別される。なお、データベースは、画像記憶部２あるいは不図示の記憶部に格納されている。
【００２９】
ＣＰＵ４は、制御部３５に制御信号Ｃを与え、画像処理装置１の全般の動作を制御する。この制御信号Ｃは、例えば、認識処理の開始／終了、画像記憶部２からの画像データの読み出し開始／終了、拡大率／縮小率、記憶部３３の初期化を制御するための信号である。
【００３０】
内部バス５は、主に、画像記憶部２および処理部３間でのデータの授受を行う。内部バス５は、例えば、撮像装置（不図示）にも接続されており、この撮像装置および画像記憶部２間でのデータの授受も行う。
【００３１】
［処理部３の構成例］
次に、処理部３の構成例を説明する。処理部３は、スケーリング部（ＳＣＡ）３１、画像回転部（ＲＯＴ）３２、記憶部（ＭＥＭ）３３、画像認識部（ＲＥＣ）３４および制御部（ＣＴＬ）３５を有する。
【００３２】
スケーリング部３１は、ラスタースキャンにより、１画素ずつ入力された原画像データｓｒｃに対して拡大／縮小処理を施し、これを拡大／縮小処理後の原画像データｓｒｃ１として画像回転部３２に出力する。
【００３３】
画像回転部３２は、スケーリング部３１から１画素ずつ入力された原画像データｓｒｃ１に回転処理を施す。具体的には、例えば、画像回転部３２が、図３（Ａ）に図示する任意の画素ＰＩＸにおける座標Ｐ１（ｘ１，ｙ１）の輝度値を取得したものとする。このとき、画像回転部３２は、この画素ＰＩＸ１の座標Ｐ１（ｘ１，ｙ１）を取得し、この座標Ｐ１を座標ＣＳを中心として反時計回りに角Ａ°回転させる。
その結果、画像回転部３２は、図３（Ｂ）に図示するように、回転処理後の座標Ｐ２（ｘ２，ｙ２）を取得する。そして、画像回転部３２は、座標Ｐ１が位置する画素ＰＩＸ１の輝度値を、座標Ｐ２を取り囲むように、その周囲に近接（隣接でもよい）した４つの座標における画素の輝度値に重み付けて分配する。回転処理の終了後、画像回転部３２は、重み付けの結果を回転処理後の画像データｄｅｓｔとして記憶部３３に格納する。
【００３４】
記憶部３３は、例えば、ランダムアクセス（random access）が可能なＲＡＭである。記憶部３３は、主に、画像回転部３２から入力された画像データｄｅｓｔを格納する。
ただし、記憶部３３は、１枚の原画像データｓｒｃ１に対する回転処理が施される前、より詳細には、１枚の原画像データｓｒｃ１の始めの画素の座標が座標演算部３２２に入力される前に、全てのアドレスの値を０にリセットする。このリセットは、制御部３５の指示に従って行われる。
【００３５】
画像認識部３４は、記憶部３３から回転処理後の画像データｄｅｓｔを読み出し、顔の認識処理を行う。画像ｄｅｓｔにおける顔の部分の画像データが、予めデータベースに登録されている顔画像データに一致（マッチング）するか否かを判別し、両者が一致した場合には、判別結果を処理信号Ｓとして制御部３５およびＣＰＵ４に出力する。
【００３６】
制御部３５は、ＣＰＵ４の制御信号Ｃに従って、処理部３の動作を統括する。基本的には、制御部３５は、制御信号Ｃ１〜Ｃ３をスケーリング部３１、画像回転部３２および画像認識部３４に各々出力し、読み出し処理、拡大／縮小処理、回転処理および認識処理が実行できるように、各々を制御する。
読み出し処理時には、制御部３５は、ラスタースキャンを行って、画像記憶部２から原画像データｓｒｃを読み出し、これをスケーリング部３１に出力する制御を行う。
【００３７】
［画像回転部３２の構成例］
画像回転部３２の構成例を図４および図５に関連づけて説明する。この説明に当たり、図２も適宜参照する。
図４は、本発明の実施形態に係る画像回転部の構成例を示すブロック図である。図５は、本発明の実施形態に係る回転処理を説明するための図である。図５には、図３（Ｂ）に図示する画像ｄｅｓｔの座標Ｐ２（ｘ２，ｙ２）の周辺部分のみが図示されている。
【００３８】
図４に図示する画像回転部３２は、走査カウンタ３２１、座標演算部３２２、アドレス制御部３２３および演算部３２４を有する。
【００３９】
走査カウンタ３２１は、スケーリング部３１から１画素ずつ入力されてくる原画像データｓｒｃ１の画素数をカウントする。換言すれば、走査カウンタ３２１は、原画像ｓｒｃ１に対して、１行１列の画素からｍ行ｎ列の画素まで順にカウントする。カウントは、例えば、アップカウントである。この場合、最大カウント数は、ｍ×ｎである。なお、カウント数は、記憶部３３のリセットと共に、０にリセットされる。
このように、カウントを行うことで、スキャン対象の画素を把握することができる。なお、図３（Ａ）には、カウントする順番が矢印Ｖで図示されている。
【００４０】
そして、走査カウンタ３２１は、カウントごとに、その画素の座標を取得し、これを座標Ｐ１として座標演算部３２２に出力する。例えば、カウント数がｋ（ｋは任意の正の整数）のとき、走査カウンタ３２１は、図３（Ａ）に図示する画素ＰＩＸ１の座標Ｐ１を取得する。
【００４１】
座標演算部３２２は、走査カウンタ３２１から入力された座標Ｐ１および回転角Ａを基に、下記の（１．１）〜（１．２）式を使用し、座標Ｐ１に対する回転処理後の座標Ｐ２（ｘ２，ｙ２）を演算する。ただし、回転処理後の画像ｄｅｓｔの中心点は、図３（Ｂ）に図示するように、ｃｄ（ｃｄｘ，ｃｄｙ）である。
【００４２】
（数１）
ｘ２＝（ｘ１−ｃｓｘ）×cos（Ａ）−（ｙ１−ｃｓｙ）×sin（Ａ）＋ｃｄｘ
…（１．１）
ｙ２＝（ｘ１−ｃｓｘ）×sin（Ａ）−（ｙ１−ｃｓｙ）×cos（Ａ）＋ｃｄｙ
…（１．２）
【００４３】
（１．１）〜（１．２）式は、回転処理前の座標Ｐ１（ｘ１，ｙ１）を、座標ｃｓ（ｃｓｘ，ｃｓｙ）を中心として反時計方向に角Ａ°回転させることを表す。座標演算部３２２は、上式により取得した（ｘ２，ｙ２）をアドレス制御部３２３に出力する。なお、座標Ｐ２は、画像ｄｅｓｔの画素ＰＩＸ２上に位置する。
【００４４】
更に、座標演算部３２２は、回転処理後の座標Ｐ２が位置する画素ＰＩＸ２を取り囲む近接した画素ＰＩＸ３１〜ＰＩＸ３２の座標を取得するため、座標Ｐ２（ｘ２，ｙ２）の整数部（ｘ３，ｙ３）および小数部（Δｘ，Δｙ）を演算により取得する。即ち、アドレス制御部３２３は、ｘ２≒［ｘ３］＋Δｘ、ｙ２≒［ｙ３］＋Δｙを取得する。
ただし、記号「［  ］」は、ガウス記号を表す。小数部Δｘは、図５に図示するように、座標Ｐ２および座標Ｐ３１間の差分のｘ軸方向（列方向）成分を表す。小数部Δｙは、座標Ｐ２および座標Ｐ３１間の差分のｙ軸方向（行方向）成分を表す。なお、座標Ｐ２および座標Ｐ３１間の差分は、これら２点間の直線距離であると捉えることもできる。
【００４５】
小数部を取得した結果、図５に図示するように、座標Ｐ２の周囲に、整数部の値と小数部の値とに応じた４点の座標、Ｐ３１（ｘ３，ｙ３）、Ｐ３２（ｘ３＋１，ｙ３）、Ｐ３３（ｘ３，ｙ３＋１）、Ｐ３４（ｘ３＋１，ｙ３＋１）が求まる。したがって、座標Ｐ３１〜Ｐ３４における画素ＰＩＸ３１〜ＰＩＸ３４の輝度値Ｙ３１、Ｙ３２、Ｙ３３、Ｙ３４も各々取得することができる。
そして、座標演算部３２２は、取得した小数部（Δｘ，Δｙ）および輝度値Ｙ３１〜Ｙ３４も演算部３２４に出力する。
【００４６】
アドレス制御部３２３は、座標演算部３２２から入力された整数部（ｘ３，ｙ３）および小数部（Δｘ，Δｙ）を基に、演算部３２４が４点の座標Ｐ３１〜Ｐ３４の画素における輝度値Ｙ３１〜Ｙ３４を記憶部３３から読み出すためのアドレス演算を行う。
このアドレス演算は、アドレス制御部３２３のランダムアクセスにより、記憶部３３に格納されている輝度値Ｙ３１〜Ｙ３４のアドレスを指定する演算である。詳細については後述するが、これらの輝度値Ｙ３１〜Ｙ３４は、演算部３２４による以前の演算時に、記憶部３３に格納されたものである。
【００４７】
演算部３２４は、輝度値Ｙ３１〜Ｙ３４を用いて座標Ｐ２における画素ＰＩＸ２の輝度値をバイリニア補間する代わりに、下記の（２．１）〜（２．４）式を用いた演算による補間を行う。この演算による補間を「重み付け分配」ともいう。重み付け分配の際に、演算部３２４は、座標Ｐ１（ｘ１，ｙ１）の輝度値Ｙ１、輝度値Ｙ３１〜Ｙ３４、小数部（Δｘ，Δｙ）、輝度値Ｙ３１＊〜Ｙ３４＊を用いる。
なお、輝度値Ｙ１は、スケーリング部３１から入力されたものである。輝度値Ｙ３１〜Ｙ３４および小数部（Δｘ，Δｙ）は、座標演算部３２２から入力されたものである。輝度値Ｙ３１＊〜Ｙ３４＊は、演算部３２４がアドレス制御部３２３のアドレス演算によって記憶部３３から読み出したものである。
【００４８】
（数２）
Ｙ３１＝Ｙ３１＊＋Ｙ１×（１−Δｘ）×（１−Δｙ）                …（２．１）
Ｙ３２＝Ｙ３２＊＋Ｙ１×Δｘ×（１−Δｙ）                        …（２．２）
Ｙ３３＝Ｙ３３＊＋Ｙ１×（１−Δｘ）×Δｙ                        …（２．３）
Ｙ３４＝Ｙ３４＊＋Ｙ１×Δｘ×Δｙ                                …（２．４）
【００４９】
（２．１）〜（２．４）式は、代入式を表している。左辺の輝度値Ｙ３１〜Ｙ３４は、新たに求めるべき輝度値である。右辺の輝度値Ｙ３１＊〜Ｙ３４＊は、既に求められた輝度値である。輝度値Ｙ３１＊〜Ｙ３４＊は、以前の演算、例えば、座標Ｐ１（ｘ１、ｙ１）に近接した座標Ｐ１（ｘ１＋１，ｙ１）に対する演算を行ったときに取得され、既に記憶部３３に格納されている。
【００５０】
（２．１）式によれば、演算部３２４は、左辺の輝度値Ｙ３１を求めるに際し、座標Ｐ２および座標Ｐ３４間の差分のｘ軸方向成分（１−Δｘ）と、この差分のｙ軸方向成分（１−Δｙ）との積（１−Δｘ）×（１−Δｙ）に、回転すべき座標Ｐ１における輝度値Ｙ１を乗じる。
回転処理後の座標Ｐ２における輝度値Ｙ２が座標Ｐ２に近接した座標Ｐ３１〜Ｐ３４の輝度値Ｙ３１〜Ｙ３４と似た値をとるため、積（１−Δｘ）×（１−Δｙ）を算出し、この積に輝度値Ｙ１を乗じることで、座標Ｐ２における輝度値Ｙ２に対する重みづけ分配率を高めることができる。換言すれば、積（１−Δｘ）×（１−Δｙ）は、重みづけ量を表す、輝度値Ｙ１の寄与率Ａであると捉えることができる。なお、寄与率Ａ（（２．１）式の場合、積（１−Δｘ）×（１−Δｙ））がとる値の範囲は、０＜Ａ＜１である。
そして、演算部３２４は、積Ｙ１×（１−Δｘ）×（１−Δｙ）に、既に記憶部３３に格納されているＹ３１＊を加算する。
【００５１】
（２．２）〜（２．４）式に示す演算も、（２．１）式に示す演算と同様の理由に基づく。
（２．２）式によれば、演算部３２４は、座標Ｐ２および座標Ｐ３３間の差分のｘ軸方向成分Δｘと、この差分のｙ軸方向成分（１−Δｙ）との積Δｘ×（１−Δｙ）（＝寄与率Ａ）に、回転すべき座標Ｐ１における輝度値Ｙ１を乗じ、これに輝度値Ｙ３２＊を加算する。
（２．３）式によれば、演算部３２４は、座標Ｐ２および座標Ｐ３２間の差分のｘ軸方向成分（１−Δｘ）と、この差分のｙ軸方向成分Δｙとの積（１−Δｘ）×Δｙ（＝寄与率Ａ）に、回転すべき座標Ｐ１における輝度値Ｙ１を乗じ、これに輝度値Ｙ３３＊を加算する。
（２．４）式によれば、演算部３２４は、座標Ｐ２および座標Ｐ３１間の差分のｘ軸方向成分Δｘと、この差分のｙ軸方向成分Δｙとの積Δｘ×Δｙ（＝寄与率Ａ）に、回転すべき座標Ｐ１における輝度値Ｙ１を乗じ、これに輝度値Ｙ３４＊を加算する。
【００５２】
以上、要約すれば、演算部３２４は、輝度値Ｙ３１〜Ｙ３４を求めるに際し、座標Ｐ２の画素ＰＩＸ２を取り囲む画素ＰＩＸ３１〜３４の内、求める対象の画素の対極に位置する、対角線上の画素の座標と座標Ｐ２間の差分のｘ軸方向成分とｙ軸方向成分とを、各々輝度値Ｙ１に乗算する。そして、演算部３２４は、これらの乗算結果に輝度値Ｙ３１＊〜Ｙ３４＊を各々加算する。
【００５３】
図６は、本発明の実施形態に係る回転処理後の画像の一例を示す図である。図６に図示する濃淡は寄与率Ａを表し、色が濃いほど、寄与率Ａが高い。ここでは、小数部がΔｘ＝Δｙであるものと仮定する。
寄与率Ａが最も高い画素は、（２．４）式から明らかなように、座標Ｐ２に最も近接した位置にある座標Ｐ３４の画素ＰＩＸ３４である。次いで、寄与率Ａが高い画素は、（２．２）、（２．３）式に示すように、寄与率Ａが同一の画素ＰＩＸ３２、ＰＩＸ３３である。そして、寄与率Ａが最も低い画素は、（２．１）式に示すように、座標Ｐ２から最も遠い位置にある座標Ｐ３１の画素ＰＩＸ３１である。即ち、座標Ｐ２に近い座標の画素ほど、寄与率Ａが高い。
上述の重み付け分配を行うことで、一般的な画像回転装置のように入力画像を線分群に変換することなく、座標Ｐ２が属する画素ＰＩＸ２の輝度値が、その周囲の画素ＰＩＸ３１〜ＰＩＸ３４の輝度値Ｙ３１〜Ｙ３４で補間され、回転処理後の画像に歪みが低減される。
【００５４】
［画像処理装置１の動作例］
先ず、画像処理装置１全体の動作例を図７に関連づけて説明する。図７は、本発明の実施形態に係る画像処理装置１の動作例を示すフローチャートである。
【００５５】
始めに、画像記憶部２に原画像データｓｒｃを格納する（ＳＴ１）。
原画像データｓｒｃの格納終了後、記憶部３３の全てのアドレスの値を０にリセットする（ＳＴ２）。これは、演算部３２４が、（２．１）〜（２．４）式を用いた演算を行う際に、異なる画像ｄｅｓｔにおける新たな輝度値Ｙ３１〜Ｙ３４が、既に求められた輝度値として使用されるのを回避するためである。
【００５６】
記憶部３３のリセット後、読み出し処理を行う（ＳＴ３）。工程ＳＴ３においては、処理部３は、ラスタースキャンを行って、原画像ｓｒｃを構成するｍ×ｎ個の画素における画素データ値を順番に読み出す。
【００５７】
読み出し処理後、拡大／縮小処理を行う（ＳＴ４）。工程ＳＴ４においては、処理部３は、原画像ｓｒｃの大きさが認識処理可能な大きさとなるように、これを拡大／縮小する。
拡大／縮小処理後、回転処理を行う（ＳＴ５）。工程ＳＴ５においては、処理部３は、座標ｃｓ（ｃｓｘ，ｃｓｙ）を中心として、原画像ｓｒｃ１を反時計方向に角Ａ°回転させる。
回転処理後、認識処理を行う（ＳＴ６）。工程ＳＴ６においては、回転処理後の画像データｄｅｓｔを基に、顔の認識処理を行う。
【００５８】
ラスタースキャンが未完了の場合、即ち、読み出すべき画素がある場合には、（ＳＴ７：ＮＯ）、工程ＳＴ１に戻る。一方、ラスタースキャンが完了した場合には、（ＳＴ７：ＹＥＳ）、１枚の原画像データｓｒｃに対する一連の処理を終了する。
【００５９】
［画像回転部３２の動作例］
次に、図７に図示する回転処理の詳細を図８に関連づけて説明する。図８は、本発明の実施形態に係る画像回転部の動作例を示すフローチャートである。
【００６０】
先ず、走査カウンタ３２１が、スケーリング部３１から入力された原画像データｓｒｃ１の画素数をラスタースキャン順にカウントする（ＳＴ５１）。例えば、カウントがｋのとき、走査カウンタ３２１は、画素ＰＩＸ１の座標Ｐ１（ｘ１，ｙ１）を取得する。
【００６１】
次に、座標演算部３２２が、走査カウンタ３２１から入力された座標Ｐ１および回転角Ａを基に、座標Ｐ１に対する回転処理後の座標Ｐ２（ｘ２，ｙ２）を演算する（ＳＴ５２）。
更に、座標演算部３２２は、座標Ｐ２に対する整数部（ｘ３，ｙ３）と小数部（Δｘ，Δｙ）とを演算により取得する（ＳＴ５３）。
【００６２】
次に、アドレス制御部３２３は、座標演算部３２２から入力された座標Ｐ２に対する整数部（ｘ３，ｙ３）および小数部（Δｘ，Δｙ）を基に、演算部３２４が輝度値Ｙ３１〜Ｙ３４を記憶部３３から読み出すためのアドレス演算を行う（ＳＴ５４）。
このアドレス演算に従って、演算部３２４は、記憶部３３から（２．１）〜（２．４）式の右辺に示す輝度値Ｙ３１＊〜Ｙ３４＊を読み出す。
【００６３】
次に、演算部３２４は、座標Ｐ１（ｘ１，ｙ１）の輝度値Ｙ１、輝度値Ｙ３１〜Ｙ３４、小数部（Δｘ，Δｙ）、輝度値Ｙ３１＊〜Ｙ３４＊を用いて、（２．１）〜（２．４）式に示す演算、即ち、重み付け分配を行う（ＳＴ５５）。
【００６４】
ラスタースキャンが完了するまで、上記工程ＳＴ５１〜ＳＴ５５を繰り返すことにより、１枚の原画像データｓｒｃの全画素の座標に対する回転処理が終了する。
【００６５】
以下、図９を参照しながら、回転処理後の座標Ｐ２の輝度値Ｙ２に対してバイリニア補間を行い、この輝度値Ｙ２を画像ｄｅｓｔとする場合について述べる。
【００６６】
上述の場合、画像回転部は、図９に図示するように構成される。図９に図示する画像回転部６は、中間バッファ６１、座標演算部６２、走査カウンタ６３、演算部６４および記憶部６５を有する。
この画像回転部６は、ラスタースキャンにより原画像ｓｒｃを不図示の記憶部から読み出して、原画像ｓｒｃ１に回転処理を施し、回転処理後の画像ｄｅｓｔにバイリニア補間を施す。なお、座標演算部６２による座標の回転自体は（１．１）、（１．２）式を用いた同様の手法である。このバイリニア補間は、下記の式を用いて行われる。
【００６７】
（数３）
Ｙ２＝Ｙ３１×（１−Δｘ）×（１−Δｙ）＋
Ｙ３２×Δｘ×（１−Δｙ）＋
Ｙ３３×（１−Δｘ）×Δｙ＋
Ｙ３４×Δｘ×Δｙ                                            …（３）
【００６８】
（３）式において、Ｙ２は、座標Ｐ２（ｘ２，ｙ２）の輝度値を示す。図５を参照すれば、画像回転部６が行うバイリニア補間では、座標Ｐ２の輝度値Ｙ２が、小数部（Δｘ，Δｙ）の値で決まる面積比に応じて、輝度値Ｙ３１〜Ｙ３４が重み付けされる。
（３）式によれば、バイリニア補間を行うためには、４つの座標Ｐ３１〜Ｐ３４が必要である。したがって、（３）式を用いたバイリニア補間を行う限り、画像回転部６に入力された原画像ｓｒｃを中間バッファ６１に一旦格納する必要がある。
【００６９】
中間バッファ６１は、原画像ｓｒｃを構成する全画素データがラスタースキャン順に入力されると、入力された全ての画素データを一旦格納する。輝度値Ｙ３１〜Ｙ３４を得るためには、座標演算部６２が、中間バッファ６１に対して４画素分のランダムアクセスを行い、輝度値Ｙ３１〜Ｙ３４を取得しなければならない。座標演算部６２がこのランダムアクセスを行うことにより、演算部６４は、中間バッファ６１から輝度値Ｙ３１〜Ｙ３４を読み出し、（３）式を用いて座標Ｐ２の輝度値Ｙ２を補間した後、輝度値Ｙ２を画像ｄｅｓｔとして記憶部６５に格納する。
なお、座標演算部３２２が中間バッファ６１から読み出すべき輝度値Ｙ３１〜Ｙ３４のアドレスは、走査カウンタ６３によって指定される。
【００７０】
上述した観点から、回転処理後の座標Ｐ２に対してバイリニア補間を行い、この補間後の座標Ｐ２の輝度値Ｙ２を画像ｄｅｓｔとする場合には、原画像ｓｒｃを構成する全画素データを一旦格納するための中間バッファ６１が必要となる。
【００７１】
これに対し、図４に図示する画像回転部３２は、座標演算部３２２が原画像ｓｒｃ１の全画素の座標を１画素ずつ入力し、この入力順に回転後の座標Ｐ２を取得する。そして、演算部３２４が重み付け分配を行った後に、記憶部３３が重み付け分配後の輝度値Ｙ３１〜Ｙ３４を格納するので、画像回転部３２は、中間バッファ６１を必要としない。
そのため、回路基板上のメモリの占有面積の縮小化を図ることができる。延いては、画像処理装置の小型化を図ることができるため、デジタルカメラのように、小型化が著しい電子機器に搭載することが容易となる。更には、中間バッファ６１に対するランダムアクセスが不要な分、画像処理自体が容易になるという効果も得る。
【００７２】
一般的な画像処理装置として、入力画像の線分群を、全ての線分が同一の傾きを取り、ｙ切片だけが各々異なる線分群に変換し、スキャン対象の画素の座標における画素データ値を、回転後の線分群の座標の画素データ値とするものがある。このような画像処理装置を用いて入力画像に回転処理を施す例を、図１０（Ａ）、（Ｂ）に示す。
【００７３】
図１０（Ａ）には、Ｘ軸と平行な水平線Ｈに対してＡ°傾いている四角形の画像が例示されている。この画像を、座標ｃｓを中心に反時計回りにＡ°回転させた場合、回転処理後の画像に示す四角形に、図１０（Ｂ）に図示するような画像の歪みが生じやすい。
しかしながら、本実施形態によれば、（２．１）〜（２．４）式を用いた演算による補間を行うことから、図１０（Ｂ）に図示するような画像の歪みが発生しにくいという、顕著な効果を得ることができる。
【００７４】
本実施形態では、処理部３はハードウェアで構成されているが、処理部３が行う処理の全てあるいはその一部を、ソフトウェアを用いて実現することもできる。
本実施形態では、認識処理において人物の顔の認識が行われるが、認識対象およびその認識処理はどのようなものであってもよい。例えば、認識対象が指紋の場合、画像回転部３２が指紋の画像を好適に回転させ、画像認識部３４が回転処理後の指紋の画像を用いて指紋の認証を行えばよい。この場合、画像処理装置１は、例えば、指紋認証を行う装置に搭載される。
本実施形態では、拡大／縮小処理の終了後に回転処理が行われるが、拡大／縮小処理を行いながら回転処理を行うこともできる。
本実施形態では、画像処理装置１がデジタルカメラに搭載される例を挙げたが、これは、パーソナルコンピュータ、テレビジョン、防犯カメラシステム等、画像データを扱う種々の電子機器に搭載可能である。
【符号の説明】
【００７５】
１…画像処理装置、２…画像記憶部、３…処理部、４…ＣＰＵ、５…内部バス、３１…スケーリング部、３２…画像回転部、３３…記憶部、３４…画像認識部、３５…制御部、３２１…走査カウンタ、３２２…座標演算部、３２３…アドレス制御部、３２４…演算部
【図１】
2011076539.tif 000003
【図２】
2011076539.tif 000004
【図３】
2011076539.tif 000005
【図４】
2011076539.tif 000006
【図５】
2011076539.tif 000007
【図６】
2011076539.tif 000008
【図７】
2011076539.tif 000009
【図８】
2011076539.tif 000010
【図９】
2011076539.tif 000011
【図１０】
2011076539.tif 000012