(57)【要約】【課題】アフィン変換における整数化処理時のまるめ（整数化）誤差によって、変換画像に空白のまま画素の投影が行われない不都合を解消し、短い処理時間で高品質の画像処理を行う画像処理装置及び画像処理方法を提供すること。【解決手段】原画像のアフィン変換時、変換後の画像が投影される範囲の画素を逆アフィン変換して原画像に投影し、投影した座標の座標値を整数化してまるめ処理し、このまるめた座標値に対応する原画像の画素値を求め、この画素値を変換画像の画素値とする処理を行う。【選択図】図１
2008107981.tif 000002
【特許請求の範囲】
【請求項１】
原画像のアフィン変換時、変換後の画像が投影される範囲の画素を逆アフィン変換して原画像に投影し、投影した座標の座標値を整数化してまるめ処理し、このまるめた座標値に対応する原画像の画素値を求め、この画素値を変換画像の画素値とする処理を行うことを特徴とする画像処理装置。
【請求項２】
上記逆アフィン変換が存在しないときには、該逆アフィン変換の代わりに、順方向のアフィン変換を行うことを特徴とする請求項１記載の画像処理装置。
【請求項３】
原画像を読み込み、この原画像をアフィン変換して変換画像を得、この変換画像の輪郭内に画素が入っている変換画素の座標値を逆アフィン変換し、この逆アフィン変換した座標値を小数点以下を切り上げ又は切り下げて整数化し、この整数化した座標値に対応する原画像の座標の画素の画素値を、対応する変換画素の画素値とすることを特徴とする請求項１記載の画像処理装置。
【請求項４】
上記逆アフィン変換が存在しないときには、該逆アフィン変換の代わりに、順方向のアフィン変換を行う手段としたことを特徴とする請求項３記載の画像処理装置。
【請求項５】
原画像を読み込む手順、原画像をアフィン変換し変換画像を得る手順、変換画像の輪郭内に画素が入っている変換画素の座標値を逆アフィン変換する手順、逆アフィン変換した座標値を小数点以下を切り上げ又は切り下げて整数化する手順、整数化した座標値に対応する原画像の座標の画素の画素値を、対応する変換画素の画素値とする手順を有することを特徴とする画像処理方法。
【請求項６】
上記逆アフィン変換が存在しないときには、該逆アフィン変換の手順の代わりに、順方向のアフィン変換を行う手順としたことを特徴とする請求項５記載の画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビデオゲームなどに使われる画像処理技術に関し、より詳細には、原画像に対してアフィン変換を行う画像処理装置及び画像処理方法に関する。
【背景技術】
【０００２】
今日、ビデオゲームは、室内型、持ち運び型の専用ゲーム機だけでなく、通信回線を介してソフトウエアをダウンロードする携帯電話機等に広く普及している。
このうち携帯電話機では、処理能力が制限されていることから、浮動小数演算のアクセラレータがサポートされることは少なく、すべての処理を演算処理能力の小さいＣＰＵで行わなければならないので、簡単で高速な処理が行えるアルゴリズムが必要とされている。
【０００３】
例えば、ビデオゲームでは、ディスプレイに表示されるキャラクターを移動したり、変形させたりすることが行われるが、その際、アフィン変換が使われる（例えば、特許文献１参照）。
アフィン変換とは、拡大，縮小，回転，反転を実現する線形変換と平行移動を合成したものである。変換前の点の座標（ｘ，ｙ）、変換後の点の座標（ｘ’，ｙ’）とし、３行３列の行列を使うと以下の一般式で表すことができる。
【０００４】
【数１】
2008107981.tif 000003
【０００５】
なお、画像は有限の画素からなるから、ｘ，ｙ，ｘ’，ｙ’は０以上の整数値で表される。
ここで、上記式（１）を以下のように
【０００６】
【数２】
2008107981.tif 000004
【０００７】
とすると、以下の式２で表される。
【０００８】
【数３】
2008107981.tif 000005
【特許文献１】特開平１１−２３８１２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
図２は、拡大を含むアフィン変換の説明図である。左の原画像をアフィン変換して右の変換先に投影すると、原画像の画素も同じく投影された画素にアフィン変換され、位置座標は整数ではなく実数になる。なお、図２では、投影された画素は点線で表されている。
しかし、実際に目に見えるようにするには、座標を整数にしなければならない。また、画素の大きさも原画像と変わらないので、実際に描画されるときは、まばらに配置されてしまう。すなわち、点線内に空白のまま投影されない画素（隙間）が発生してしまう。
【００１０】
このように、従来の単に原画像の画素を変換後の画像に投影する方法では、隙間を生じてしまうという欠点がある。
また、変換画像に隙間を生じさせないようにするには、補間する必要があるが、原画像を変換先に投影した画素の座標は実数であらわされるため、変換画素の近傍の原画素を探すには、整数演算と比較して処理時間を必要とする実数演算をしなればならないため、処理時間が長くなると云う欠点がある。
【００１１】
さらに、変換画像の画素値を求めるには、原画像の画素に対してＤＣＴ変換（離散コサイン変換）を行いＤＣＴ係数を求め、このＤＣＴ係数を用いて逆ＤＣＴ変換（逆離散コサイン変換）を行い、変換画像の画素値を補間によって求めるため、処理時間が長くなる。
本発明の目的は、上記欠点に鑑み、アフィン変換における整数化処理時のまるめ（整数化）誤差によって、変換画像に空白のまま画素の投影が行われない不都合を解消し、短い処理時間で高品質の画像処理を行う画像処理装置及び画像処理方法を提供することにある。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、本発明の第１の技術手段は、原画像のアフィン変換時、変換後の画像が投影される範囲の画素を逆アフィン変換して原画像に投影し、投影した座標の座標値を整数化してまるめ処理し、このまるめた座標値に対応する原画像の画素値を求め、この画素値を変換画像の画素値とする処理を行うことを特徴としたものである。
【００１３】
第２の技術手段は、第１の技術手段において、上記逆アフィン変換が存在しないときには、該逆アフィン変換の代わりに、順方向のアフィン変換を行うことを特徴としたものである。
【００１４】
第３の技術手段は、第１の技術手段において、原画像を読み込み、この原画像をアフィン変換して変換画像を得、この変換画像の輪郭内に画素が入っている変換画素の座標値を逆アフィン変換し、この逆アフィン変換した座標値を小数点以下を切り上げ又は切り下げて整数化し、この整数化した座標値に対応する原画像の座標の画素の画素値を、対応する変換画素の画素値とすることを特徴としたものである。
【００１５】
第４の技術手段は、第３の技術手段において、上記逆アフィン変換が存在しないときには、該逆アフィン変換の代わりに、順方向のアフィン変換を行う手段としたことを特徴としたものである。
【００１６】
第５の技術手段は、原画像を読み込む手順、原画像をアフィン変換し変換画像を得る手順、変換画像の輪郭内に画素が入っている変換画素の座標値を逆アフィン変換する手順、逆アフィン変換した座標値を小数点以下を切り上げ又は切り下げて整数化する手順、整数化した座標値に対応する原画像の座標の画素の画素値を、対応する変換画素の画素値とする手順を有することを特徴としたものである。
【００１７】
第６の技術手段は、第５の技術手段において、上記逆アフィン変換が存在しないときには、該逆アフィン変換の手順の代わりに、順方向のアフィン変換を行う手順としたことを特徴としたものである。
【発明の効果】
【００１８】
本発明の画像処理装置及び画像処理方法は、アフィン変換処理時のまるめ（整数化）誤差によって、変換画像に空白のまま画素の投影が行われない不都合を解消し、短い処理時間で高品質の画像処理を行うことができる。
【００１９】
本発明の画像処理装置及び画像処理方法は、浮動小数演算のアクセラレータをサポートせず演算処理能力の小さいＣＰＵが搭載されている携帯電話機等の携帯端末でも、十分に実時間で処理をすることができる。また、整数演算のみで高速アフィン変換を実現することができる。
【発明を実施するための最良の形態】
【００２０】
本発明の実施形態について図に基づいて詳細に説明する。
【実施例１】
【００２１】
まず、原画像を読み込み、アフィン変換の変換係数を表す行列式Ｍを読み込む。
次に、上記（２）式で表されるアフィン変換の行列式Ｍの値Δによって逆行列が存在するかを判断する。この判断は行列式Ｍを読み込んだ段階で予め判断する。
【００２２】
【数４】
2008107981.tif 000006
【００２３】
Δ＝０であれば、逆行列が存在せず、逆アフィン変換を求めることはできない。このときは、順方向のアフィン変換より変換画像を求める。
Δ≠０であれば、逆行列Ｍ-1が存在するので、以下の手順により、逆アフィン変換から変換画像を求める。
まず、図１の原画像の角（隅）の４点の座標をアフィン変換した座標において、逆アフィン変換をする最低限の矩形範囲をもとめる。
【００２４】
原画像の幅をＸピクセル、高さをＹピクセルとすると、原画像の４点の画素の座標は以下のようになる。
【００２５】
【数５】
2008107981.tif 000007
【００２６】
変換先の４点の座標は、原画像の４点の画素それぞれの座標を（１）式に代入したものになる。ここでは、変換の前後でそれぞれ対応する４点を行列Ｍで変換したことから、以下のようにあらわす。
【００２７】
【数６】
2008107981.tif 000008
【００２８】
アフィン変換は線形変換のため、変換先の４点からなる画像は一般的に図１のように平行四辺形になる。
この平行四辺形の４点のＸ座標の最小値をｘ’min、最大値をｘ’max、Ｙ座標の最小値をｙ’min、最大値をｙ’maxとすると、
【００２９】
【数７】
2008107981.tif 000009
【００３０】
となる。
【００３１】
ここで、（Ｍ（０，０）x又はＭ（０，０）y，Ｍ（Ｘ−１，０）x又はＭ（Ｘ−１，０）y，Ｍ（０，Ｙ−１）x又はＭ（０，Ｙ−１）y，Ｍ（Ｘ−１，Ｙ−１）x又はＭ（Ｘ−１，Ｙ−１）y）を（ａ，ｂ，ｃ，ｄ）と表記すると、ｍｉｎ（ａ，ｂ，ｃ，ｄ）、ｍａｘ（ａ，ｂ，ｃ，ｄ）はそれぞれａ，ｂ，ｃ，ｄのうちの最小値と最大値を意味する。
以上を踏まえると、逆アフィン変換に必要な最小の矩形の座標は、次のようになる。
【００３２】
【数８】
2008107981.tif 000010
【００３３】
ここで、ｘ’min、ｘ’max、ｙ’min、ｙ’maxは実数であり、［ｘ］はｘを超えない最大の整数を表す。
このアフィン変換座標系における矩形範囲内の画素を、下記の
【００３４】
【数９】
2008107981.tif 000011
【００３５】
（５）式により、逆アフィン変換して原画像に投影させる。
【００３６】
このとき、最も簡単な原画像への投影処理は、近傍に原画像の画素があった場合は、その画素を変換画像の画素とするものである。
近傍の画素を見つける方法は、投影させる座標を整数にまるめるだけでよい。このことを、図を用いて説明する。
【００３７】
図３は逆アフィン変換したキャンバスと原画像の一部を取り出したものである。白丸は原画素を、黒丸は変換画素をあらわしている。白丸の座標は整数値で大きさ１の間隔で並んでおり、点線は原画素間の中間の位置（境界）をあらわしている。
【００３８】
まず、Ｘ方向についてまるめる処理をする。左２つの原画素のＸ座標を３、右２つの原画素のＸ座標を４とする。変換画素のＸ座標は３.５以上で４以下であるから、四捨五入すると４になる。Ｙ方向についても同様にまるめ処理を行い、四捨五入するとＹ座標が求まる。このようにしてＸＹの座標が求まる。それは最近傍の原画素と同じになる。
ここで、逆アフィン変換後の実数の座標を（ｘinv，ｙinv）とすると、最近近傍点は、（［ｘinv＋０.５］，［ｙinv＋０.５］）となる。
【００３９】
四捨五入により、一画素だけを求める他に、原画像に投影したＸ座標、Ｙ座標それぞれを切り上げまたは切り捨てをして、４点をもとめこの４点の原画像の値を使って補間した値をアフィン変換の画素値とする方法もある。
この近傍の４点を記号で表せば
（［ｘinv］，［ｙinv］），（［ｘinv］＋１，［ｙinv］），（［ｘinv］，［ｙinv］＋１），（［ｘinv］＋１，［ｙinv］＋１）
となり、（ｘinv，ｙinv）を取り囲んだものとなる。
【００４０】
座標をまるめた結果、座標が原画像の４点（０，０）、（Ｘ−１，０）、（０，Ｙ−１）、（Ｘ−１，Ｙ−１）で囲まれる矩形内になければ、つまり、
［ｘinv＋０.５］  ＜  ０  または  ［ｘinv＋０.５］  ＞  Ｘ−１  または  ［ｙinv＋０.５］  ＜  ０  または  ［ｙinv＋０.５］  ＞  Ｘ−１
であれば、対応する原画像の画素がないと判断され、変換画像の画素値は下地の画素値のままとする。
【００４１】
以上の処理について、本発明の画像処理装置は、一般的な機能のマイクロコンピュータで構成することができる。このマイクロコンピュータは、記憶しているプログラム叉は記憶媒体に記録されているプログラムにより、上で述べた原画像のアフィン変換、このアフィン変換画像を含む矩形領域の画素（変換画素）の座標算出、変換画素およびその座標の逆アフィン変換、座標の整数化等の処理を実行する。
この処理のフローチャートを示す。なお、ステップ（手順）はＳｎと表記する。但し、ｎは任意の整数とする。
【００４２】
（変換処理）
ＳＴＡＲＴ
（１）原画像（座標値と濃淡値を有する）を読み込む（ステップＳ１）。
（２）原画像をアフィン変換し変換画像を得る（ステップＳ２）。
（３）変換画像の輪郭内に画素が入っている変換画素の座標値を逆アフィン変換する（ステップＳ３）。
（４）逆アフィン変換した座標値を小数点以下を切り上げ（又は切り下げ）整数化する（ステップＳ４）。
（５）整数化した座標値に対応する原画像の座標の画素の画素値を、対応する変換画素の画素値とする（ステップＳ５）。
ＥＮＤ
【００４３】
上記の処理において、原画像が白黒の２値画像の場合には、画素値を空間密度で表すこともできる。また、変換時の拡大率が１倍以下のときは、１変換画素に対して複数の原画像の画素が対応することになるので、原画像の複数の画素の画素値を平均化した値等を用いることもできる。
なお、上記以外の矩形の４隅の点を確定する方法としては、まず原画像を２値化してノイズを除去し、次に、最小二乗法により４角フレームの四辺の一次式を求め、次に、得られた一次式の相関係数から直線性の最も高い辺を基準に回転角を求め、得られた回転角から四隅の点の座標を求める方法も採りうる。
【００４４】
上記ステップを記録したプログラムおよびこのプログラムを記録した記録媒体は、コンピュータを画像処理装置の機能を実行する手段として機能させることができるので、アフィン変換処理時のまるめ（整数化）誤差によって、変換画像に空白のまま画素の投影が行われない不都合を解消し、短い処理時間で高品質の画像処理を行うことができる。
【００４５】
（その他の例１）
従来、原画像をアファイン変換した画像は、図２の右側のように画素がまばらになって、空白が存在する。実施例１は、このまばらの画素の画素値を用いずに、さらに変換画像を逆アフィン変換した原画像上の画素の画素値を用いるようにしている。ここでは、図２の右側の画像の空白でない画素の画素値を用いて空白の画素を補間する方法を採る。図２の例で説明する。
【００４６】
図２の空白の画素領域は、変換した画素の実数の座標値を、図３に示すようにまるめ処理したときに発生した誤差によるものと考えられる。
そこで、図２において、両側の黒く表示された１対の画素の間に１つの空白の画素を挟む構造の場合に、両側の画素値を加算し、２で割った値を当てはめる。これは変換倍率にもよるが、この構造の条件を当てはめると、画像を構成する画素を空白でない画素値で埋めることができる。変換画像は原画像に比べ全体的に濃度が濃くなる傾向を有するが、誤差平均化法と同様に変化の少ない画像となり、違和感は生じない。
【００４７】
（その他の例２）
アフィン変換の変換倍率に応じて、逆アフィン変換して原画像に投影した逆変換画像の１画素領域に係わる原画像の画素の画素値を平均化し、その平均化した画素値を対応するアフィン変換画像の該当画素の画素値とする。これにより、変換画像はなだらかな変化を含む画像にすることができる。
【００４８】
（その他の例３）
変換画像の座標でスキャンし、原画像の座標を逆アフィン変換で求めて画素値を求める画像処理を擬似Ｊａｖａコードで記述することができる。図４にＪａｖａアプリサーバ１から携帯電話機２へダウンロードして使う例を示す。
【００４９】
（その他の例４）
実施例１では、逆アフィン変換時のまるめ処理（整数化処理）のとき、図３に示されるように、黒丸の実数の座標を白丸の整数の座標にまるめる処理を行った。ここでは、次のように、まるめ処理を行う。図３において、Ｘ軸の座標だけを例にとって説明する。Ｘ軸上の３と４の間に、３.２５と３.７５をとり、３から３.２５までの範囲（１）、３.２５から３.７５までの範囲（２）、３.７５から４までの範囲（３）を設定し、アフィン変換画像をさらに逆アフィン変換して原画像上へ投影した画像の画素の座標が、例えば図３の３.２５から３.７５までの範囲（２）内の黒丸の座標であるとき、この座標での画素値を原画像のＸ軸上の座標３と４の画素の平均値としてまるめる。また、図３の黒丸がＸ３から３.２５までの範囲（１）内の黒丸の座標であるとき、この座標での画素値を原画像のＸ座標３の画素の画素値としてまるめる。Ｙ軸についてもＸ軸と同様に処理し、座標（Ｘ、Ｙ）として処理する。
平均値でまるめる補間処理範囲は、上記の範囲に限らず、任意に設定できるが、画像の空間密度や変換倍率等により決めることが好ましい。
これにより、強制的に整数座標のみをとることによる弊害を抑制できる。
【図面の簡単な説明】
【００５０】
【図１】本発明の逆アフィン変換を原画像に投影することを説明した図である。
【図２】アフィン変換で隙間が生じることを説明した図である。
【図３】四捨五入で整数にまるめるだけで、最近傍の画素の座標を求めることができることを説明した図である。
【図４】本発明の画像処理装置を搭載した携帯電話にＪａｖａアプリをダウンロードすることを説明した図である。
【符号の説明】
【００５１】
１…Ｊａｖａアプリサーバ、２…携帯電話機。
【図１】
2008107981.tif 000012
【図２】
2008107981.tif 000013
【図３】
2008107981.tif 000014
【図４】
2008107981.tif 000015