(57)【特許請求の範囲】
【請求項１】
画素が直交するｘ方向及びｙ方向に格子状に配置されたドットマトリクスで表現された入力画像を中心画素を中心にして回転角度θで回転し、前記ｘ方向及び前記ｙ方向に格子状に画素が配置されたドットマトリクスで表現された出力画像に展開する画像回転方法において、
前記入力画像に、前記ｘまたはｙ方向に対して正の（θ／２）の角度をなす第１の勾配の方向を、行方向とする行列をなし、前記入力画像を分割する複数の入力分割ブロックを設定し、前記出力画像に、前記ｘまたはｙ方向に対して負の（−θ／２）の角度をなす第２の勾配の方向を、行方向とする行列をなし、前記各入力分割ブロックにそれぞれ対応して前記出力画像を分割する複数の出力分割ブロックを設定するブロック分割処理と、
前記各入力分割ブロックの画素を前記対応する各出力分割ブロックにそれぞれコピーすることによって前記展開を行う画素コピー処理と、
を有することを特徴とする画像回転方法。
【請求項２】
前記ブロック分割処理は、
前記第１及び第２の勾配に基づき前記各入力分割ブロック及び前記各出力分割ブロックの幅をそれぞれ計算する幅計算処理と、
前記幅を用いて前記各入力分割ブロック及び前記各出力分割ブロックの前記入力画像及前記出力画像における座標位置をそれぞれ求める座標位置計算処理とを有し、
前記画素コピー処理は、前記座標位置計算で求めた前記各入力分割ブロックの座標位置の画像を、対応する前記各出力分割ブロックの前記座標位置にそれぞれコピーすることを特徴とする請求項１記載の画像回転方法。
【請求項３】
前記幅計算処理は、前記第１及び第２の勾配の前記ｘ方向の変化量を前記ｙ方向の変化量で整数除算し該整数除算の結果を前記各入力分割ブロック及び前記各出力分割ブロックのそれぞれ幅として順に決定し、前記各整数除算で余りが生じた場合には次の整数除算で用いるｘ方向の変化量に該余りを加えた上で前記整数除算を行い前記幅を決定することを特徴とする請求項２記載の画像回転方法。
【請求項４】
前記各入力分割ブロック及び前記各出力分割ブロックは、矩形ブロックをそれぞれ持つと共に、前記入力画像の背景色により前記出力画像を初期化することによって、周囲の前記入力分割ブロック及び前記出力分割ブロック中の前記矩形ブロックとの間を前記背景色で補間して埋める１画素相当のサイズの補間ブロックをそれぞれ持つことを特徴とする請求項１、２または３記載の画像回転方法。
【請求項５】
前記座標位置計算処理は、
前記入力画像及び前記出力画像における前記中心画像の座標と前記各入力分割ブロック及び前記各出力分割ブロックの幅から前記各入力分割ブロック及び前記各出力分割ブロックの座標位置を計算し、前記各入力分割ブロックとそれに対応する前記各出力分割ブロックとが前記入力画像及び前記出力画像の領域内にあるかどうかをそれぞれ判断すると共に、前記各入力分割ブロック及びこれに対応する前記各出力分割ブロックの一部分が前記領域から外れるブロックは前記幅を変更して前記領域内になるように設定し、
前記画素コピー処理は、
前記座標位置計算で前記入力画像の領域内であると判断した前記入力分割ブロック及び前記幅を変更した前記入力分割ブロックの画像のみを、前記出力画像で対応する前記出力分割ブロックにコピーすることを特徴とする請求項４記載の画像回転方法。
【請求項６】
前記幅計算処理は、前記回転角度θから前記第１及び第２の勾配と前記入力分割ブロック及び前記出力分割ブロックの数と前記入力分割ブロック及び前記出力分割ブロックの幅とを計算し、これらをテーブルとして格納し、
前記座標位置計算処理は、前記テーブルに基づき前記各入力分割ブロック及び前記各出力分割ブロックの前記入力画像及び出力画像における座標位置をそれぞれ求めることを特徴とする請求項２、３、４または５記載の画像回転方法。
【請求項７】
前記各入力分割ブロック及び前記各出力分割ブロックは、複数の矩形ブロックで構成されて概ね矩形の形状をそれぞれ有することを特徴とする請求項１、２または３記載の画像回転方法。
【請求項８】
前記幅計算処理は、
前記第１及び第２の勾配の前記ｘ方向の変化量を前記ｙ方向の変化量で整数除算し該整数除算の結果を前記各入力分割ブロック及び前記各出力分割ブロックのそれぞれ幅として順に決定し、前記各整数除算で余りが生じた場合には次の整数除算で用いるｘ方向の変化量に前記余りを加えた上で前記整数除算を行い前記幅を決定する処理と、
前記決定された幅に基づき前記各入力分割ブロック及び前記各出力分割ブロックをさらに前記複数の矩形ブロックに分割する幅を計算する処理とを行い、
前記画素コピー処理は、前記各入力分割ブロックの画素を前記対応する各出力分割ブロックに前記各矩形ブロック単位にそれぞれコピーすることを特徴とする請求項７記載の画像回転方法。
【請求項９】
前記座標位置計算処理は、
前記入力画像及び前記出力画像における前記中心画素の座標と前記各入力分割ブロック及び前記各出力分割ブロックの幅と前記各矩形ブロックの幅から前記各矩形ブロックの座標位置を計算し、前記各矩形ブロックが前記入力画像にあり、かつ前記コピーを行ったときに前記出力画像の領域内にあるかどうかをそれぞれ判断し、
前記画素コピー処理は、
前記座標位置計算で前記入力画像及び前記出力画像の領域内であると判断した前記矩形ブロックの画像のみを、前記入力画像から前記出力画像にコピーすることを特徴とする請求項８記載の画像回転方法。
【請求項１０】
前記幅計算処理は、前記回転角度θから前記第１及び第２の勾配と前記入力分割ブロック及び前記出力分割ブロックの数と前記入力分割ブロック及び前記出力分割ブロックの幅と前記矩形ブロックの情報とを求めてテーブルとして格納し、
前記座標位置計算処理は、前記テーブルに基づき前記各矩形ブロックの前記入力画像及び前記出力画像における座標位置をそれぞれ求めることを特徴とする請求項７、８または９記載の画像回転方法。
【請求項１１】
画素コピー処理は、
前記回転前の前記入力画像の領域内に存在する前記入力分割ブロック内の画素のみを前記出力画像にコピーする入力画像領域内画素コピー処理と、
前記回転後に前記出力画像の領域内に存在する画素に対応する前記入力分割ブロック内の画素のみを前記出力画像にコピーする出力画像領域内画素コピー処理とを行うことを特徴とする請求項１、２、３、４または６記載の画像回転方法。
【請求項１２】
前記入力画像の背景色により前記出力画像を初期化することによって、前記入力画像に対して前記回転角度θで回転させて前記出力画像にコピーすることで、前記出力画像に生じる欠落部分を前記背景色により補間する補間処理を行うことを特徴とする請求項１、２、３、４、５、６、７、８、９、１０または１１記載の画像回転方法。
【請求項１３】
前記補間処理は、前記コピーを行う前に、前記入力画像の背景色を判定して前記出力画像を前記背景色に初期化しておき、
前記コピーを行うときにきは、前記背景色以外の色を持つ画素のみコピーすることを特徴とする請求項１２記載の画像回転方法。
【請求項１４】
画素が直交するｘ方向及びｙ方向に格子状に配置されたドットマトリクスで表現された入力画像をある画素を中心にして回転角度θで回転し、前記ｘ方向及び前記ｙ方向に格子状に画素が配置されたドットマトリクスで表現された出力画像に展開する画像回転装置において、
前記入力画像に、前記ｘまたはｙ方向に対して正の（θ／２）の角度をなす第１の勾配の方向を、行方向とする行列をなし、前記入力画像を分割する複数の入力分割ブロックを設定し、前記出力画像に、前記ｘまたはｙ方向に対して負の（−θ／２）の角度をなす第２の勾配の方向を、行方向とする行列をなし、前記各入力分割ブロックにそれぞれ対応して前記出力画像を分割する複数の出力分割ブロックを設定するブロック分割設定手段と、
前記各入力分割ブロックの画素を前記対応する各出力分割ブロックにそれぞれコピーすることによって前記展開を行う画素コピー手段と、
を備えたことを特徴とする画像回転装置。
【請求項１５】
前記ブロック分割設定手段は、
メモリと、
前記回転角度θから前記第１の勾配及び前記第２の勾配の方向を求め、前記第１及び第２の勾配の方向から前記各入力分割ブロックの幅及び前記各出力分割ブロックの幅を求めて前記メモリにテーブル化して格納するテーブル作成部と、
前記メモリに格納された前記各入力分割ブロックの幅及び前記各出力分割ブロックの幅から、前記各入力分割ブロック及び前記各出力分割ブロックの位置座標をそれぞれ求めるブロック分割部とを備え、
前記画素コピー手段は、前記各位置座標に基づき前記各入力分割ブロックの画素を前記対応する各出力分割ブロックにそれぞれコピーする構成にしたことを特徴とする請求項１４記載の画像回転装置。
【請求項１６】
前記展開を行うときに前記出力画像に発生する欠落部分を、前記入力画像の背景色により前記出力画像を初期化することによって、前記背景色により補間する背景補間手段を設けたことを特徴とする請求項１４または１５記載の画像回転装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、画素が格子状に配置されたドットマトリクスで表現された入力画像を任意角度θで回転させて、出力画像にコピーする画像回転方法及び画像回転装置に関するものである。
【０００２】
【従来の技術】
図２は、従来の画像回転方法を示す図である。
従来の画像回転方法には、アフィン変換を用いる方法がある。アフィン変換を用いる画像回転方法では、マトリクス状に画素が割当てられた入力画像１に対し、ある座標を中心として各画素の座標をそれぞれ回転角度θで回転させ、該回転した座標に各画素をコピーすることにより、入力画像１を出力画像２に写像する。
このアフィン変換を用いる画像回転方法では、次の（１）及び（２）式により、入力画像１の画素の座標（ｘ，ｙ）を、出力画像２の座標（Ｘ，Ｙ）に変換する。
Ｘ＝ｘ・ｃｏｓθ＋ｙ・ｓｉｎθ          ・・・（１）
Ｙ＝−ｘ・ｓｉｎθ＋ｙ・ｃｏｓθ        ・・・（２）
入力画像１のすべての画素の座標に対して、（１），（２）式の計算が行われて座標が変換され、出力画像２の座標（Ｘ，Ｙ）に、入力画像１の各画素がそれぞれコピーされる。
【０００３】
【発明が解決しようとする課題】
しかしながら、従来のアフィン変換を利用した画像回転方法及び画像回転装置においては、次のような課題があった。
入力画像１の各画素に対して前記（１）及び（２）式の変換を行うが、これらの各（１），（２）式には三角関数が含まれるので、処理速度が遅くなるという課題があった。また、（１），（２）式を計算して座標（ｘ，ｙ）を座標（Ｘ，Ｙ）に変換するときに各画素の計算結果を整数値化するので、異なる座標値に対して出力座標が同じになる部分が発生し、入力画像１の座標（ｘ，ｙ）と出力画像２の座標（Ｘ，Ｙ）とは、必ずしも１: １にはならない。そのため、可逆性が損なわれ、一旦角度θで回転させて生成した出力画像２を、角度（−θ）で回転せても、画像の欠落部分は別にしても、完全に元の入力画像１に戻すことができないという課題もあった。
【０００４】
【課題を解決するための手段】
前記課題を解決するために、本発明のうちの第１の発明は、画素が直交するｘ方向及びｙ方向に格子状に配置されたドットマトリクスで表現された入力画像を中心画素を中心にして回転角度θで回転し、前記ｘ方向及び前記ｙ方向に格子状に画素が配置されたドットマトリクスで表現された出力画像に展開する画像回転方法において、ブロック分割処理と、画素コピー処理とを有している。
前記ブロック分割処理では、前記入力画像に、前記ｘまたはｙ方向に対して正の（θ／２）の角度をなす第１の勾配の方向を、行方向とする行列をなし、前記入力画像を分割する複数の入力分割ブロックを設定し、前記出力画像に、前記ｘまたはｙ方向に対して負の（−θ／２）の角度をなす第２の勾配の方向を、行方向とする行列をなし、前記各入力分割ブロックにそれぞれ対応して前記出力画像を分割する複数の出力分割ブロックを設定する。さらに、前記画素コピー処理では、前記各入力分割ブロックの画素を前記対応する各出力分割ブロックにそれぞれコピーすることによって前記展開を行う。
このような構成を採用したことにより、ブロック分割処理によって設定した入力分割ブロック及び出力分割ブロックの単位で入力画像が、画素コピー処理によって出力画像にコピーされる。ここで、入力分割ブロックと出力分割ブロックとは、第１及び第２の勾配によって角度θだけずれているので、入力画像が角度θ回転して出力画像に展開されることになる。
【０００５】
特に、第１の発明において、前記第１の勾配の方向は、前記ｘまたはｙ方向に対して正の（θ／２）の角度をなし、前記第２の勾配は該ｘまたはｙ方向に対して負の（−θ／２）の角度をなすようにしている。これにより、ｘまたはｙ方向に対して入力画像の入力分割ブロックと、これに対応する出力画像の出力分割ブロックとが対称となり、展開によって生じる回転の中心からの距離の変化が出力画像に表れなくなる。
【０００６】
第２の発明では、第１の発明の画像回転方法において、前記ブロック分割処理は、前記第１及び第２の勾配に基づき前記各入力分割ブロック及び前記各出力分割ブロックの幅をそれぞれ計算する幅計算処理と、前記幅を用いて前記各入力分割ブロック及び前記各出力分割ブロックの前記入力画像及前記出力画像における座標位置をそれぞれ求める座標位置計算処理とを有している。さらに、前記画素コピー処理は、前記座標位置計算で求めた前記各入力分割ブロックの座標位置の画像を、対応する前記各出力分割ブロックの前記座標位置にそれぞれコピーする。
このような構成を採用したことにより、第１及び第２の勾配から各入力分割ブロック及び出力分割ブロックの幅が幅計算処理によって計算され、これらの幅から、コピーに必要な入力分割ブロック及び出力分割ブロックの座標位置がそれぞれ求められる。
【０００７】
第３の発明では、第２の発明の画像回転方法において、前記幅計算処理は、前記第１及び第２の勾配の前記ｘ方向の変化量を前記ｙ方向の変化量で整数除算し該整数除算の結果を前記各入力分割ブロック及び前記各出力分割ブロックのそれぞれ幅として順に決定し、前記各整数除算で余りが生じた場合には次の整数除算で用いるｘ方向の変化量に該余りを加えた上で前記整数除算を行い前記幅を決定する。
このような構成を採用したことにより、入力分割ブロックと出力分割ブロックとが第１及び第２の勾配をそれぞれ行方向とするように並ぶ。
【０００８】
第４の発明によれば、第１〜第３の発明のうちのいずれか１つの発明の画像回転方法において、前記各入力分割ブロック及び前記各出力分割ブロックは、矩形ブロックをそれぞれ持つと共に、前記入力画像の背景色により前記出力画像を初期化することによって、周囲の前記入力分割ブロック及び前記出力分割ブロック中の前記矩形ブロックとの間を前記背景色で補間して埋める１画素相当のサイズの補間ブロックをそれぞれ持つ。
このような構成を採用したことにより、入力分割ブロックと出力分割ブロックとが第１及び第２の勾配をそれぞれ行方向とするように並ぶと共に、入力画像及び出力画像におけるすべての画素が入力分割ブロックと出力分割ブロックとに含まれるようになる。
【０００９】
第５の発明によれば、第４の発明の画像回転方法において、前記座標位置計算処理は、前記入力画像及び前記出力画像における前記中心画像の座標と前記各入力分割ブロック及び前記各出力分割ブロックの幅から前記各入力分割ブロック及び前記各出力分割ブロックの座標位置を計算し、前記各入力分割ブロックとそれに対応する前記各出力分割ブロックとが前記入力画像及び前記出力画像の領域内にあるかどうかをそれぞれ判断すると共に、前記各入力分割ブロック及びこれに対応する前記各出力分割ブロックの一部分が前記領域から外れるブロックは前記幅を変更して前記領域内になるように設定する。そして、前記画素コピー処理は、前記座標位置計算で前記入力画像の領域内であると判断した前記入力分割ブロック及び前記幅を変更した前記入力分割ブロックの画像のみを、前記出力画像で対応する前記出力分割ブロックにコピーする。
このような構成を採用したことにより、回転前の入力画像の領域内及び回転後の出力画像の領域内の画像のみが、画素コピー処理のコピーに供せられる。
【００１０】
第６の発明では、第２〜第５の発明のうちのいずれか１つの発明の画像回転方法において、前記幅計算処理は、前記回転角度θから前記第１及び第２の勾配と前記入力分割ブロック及び前記出力分割ブロックの数と前記入力分割ブロック及び前記出力分割ブロックの幅とを計算し、これらをテーブルとして格納する。そして、前記座標位置計算処理は、前記テーブルに基づき前記各入力分割ブロック及び前記各出力分割ブロックの前記入力画像及び出力画像における座標位置をそれぞれ求める。
このような構成を採用したことにより、テーブルに基づき各入力分割ブロック及び出力分割ブロックの座標位置が求められる。
【００１１】
第７の発明では、第１〜第３の発明のうちのいずれか１つの発明の画像回転方法において、前記各入力分割ブロック及び前記各出力分割ブロックは、複数の矩形ブロックで構成されて概ね矩形の形状をそれぞれ有している。
このような構成にしたことにより、入力分割ブロックと出力分割ブロックとが第１及び第２の勾配をそれぞれ行方向とするように並ぶと共に、入力画像及び出力画像におけるすべての画素が入力分割ブロックと出力分割ブロックとに含まれるようになる。
【００１２】
第８の発明では、第７の発明の画像回転方法において、前記幅計算処理は、前記第１及び第２の勾配の前記ｘ方向の変化量を前記ｙ方向の変化量で整数除算し該整数除算の結果を前記各入力分割ブロック及び前記各出力分割ブロックのそれぞれ幅として順に決定し、前記各整数除算で余りが生じた場合には次の整数除算で用いるｘ方向の変化量に前記余りを加えた上で前記整数除算を行い前記幅を決定する処理と、前記決定された幅に基づき前記各入力分割ブロック及び前記各出力分割ブロックをさらに前記複数の矩形ブロックに分割する幅を計算する処理とを行う。そして、前記画素コピー処理は、前記各入力分割ブロックの画素を前記対応する各出力分割ブロックに前記各矩形ブロック単位にそれぞれコピーする。
このような構成を採用したことにより、入力分割ブロックと出力分割ブロックが第１及び第２の勾配を行方向して並ぶと共に、入力分割ブロックと出力分割ブロックとにおける矩形ブロック単位で、画像のコピーが行われる。
【００１３】
第９の発明では、第８の発明の画像回転方法において、前記座標位置計算処理は、前記入力画像及び前記出力画像における前記中心画素の座標と前記各入力分割ブロック及び前記各出力分割ブロックの幅と前記各矩形ブロックの幅から前記各矩形ブロックの座標位置を計算し、前記各矩形ブロックが前記入力画像にあり、かつ前記コピーを行ったときに前記出力画像の領域内にあるかどうかをそれぞれ判断する。さらに、前記画素コピー処理は、前記座標位置計算で前記入力画像及び前記出力画像の領域内であると判断した前記矩形ブロックの画像のみを、前記入力画像から前記出力画像にコピーする。
このような構成を採用したことにより、中心画素の座標と各入力分割ブロック及び各出力分割ブロックの幅と各矩形ブロックの幅とから該各矩形ブロックの座標位置が計算される。そして、回転前の入力画像及び回転後の出力画像の領域内であると判断した矩形ブロックの画像のみが、コピーに供せられる。
【００１４】
第１０の発明では、第７〜第９の発明のうちのいずれか１つの発明の画像回転方法において、前記幅計算処理は、前記回転角度θから前記第１及び第２の勾配と前記入力分割ブロック及び前記出力分割ブロックの数と前記入力分割ブロック及び前記出力分割ブロックの幅と前記矩形ブロックの情報とを求めてテーブルとして格納する。そして、前記座標位置計算処理は、前記テーブルに基づき前記各矩形ブロックの前記入力画像及び前記出力画像における座標位置をそれぞれ求める。
このような構成を採用したことにより、各矩形ブロックの座標位置がテーブルから求められる。
【００１５】
第１１の発明では、第１〜第４または第６の発明のうちのいずれか１つの発明画像回転方法において、画素コピー処理は、前記回転前の前記入力画像の領域内に存在する前記入力分割ブロック内の画素のみを前記出力画像にコピーする入力画像領域内画素コピー処理と、前記回転後に前記出力画像の領域内に存在する画素に対応する前記入力分割ブロック内の画素のみを前記出力画像にコピーする出力画像領域内画素コピー処理とを行う。
このような構成を採用したことにより、回転の前後で入出力画像の領域内に存在する画素のみが、コピーに供せられる。
第１２の発明では、第１〜第１１の発明のうちのいずれか１つの発明画像回転方法において、前記入力画像の背景色により前記出力画像を初期化することによって、前記入力画像に対して前記回転角度θで回転させて前記出力画像にコピーすることで、前記出力画像に生じる欠落部分を前記背景色により補間する補間処理を行う。
このような構成を採用したことにより、コピーで欠落する部分が補間される。
【００１６】
第１３の発明では、第１２の発明の画像回転方法において、前記補間処理は、前記コピーを行う前に、前記入力画像の背景色を判定して前記出力画像を前記背景色に初期化しておき、前記コピーを行うときにきは、前記背景色以外の色を持つ画素のみコピーする。
このような構成を採用したことにより、コピーで欠落する部分が背景色で自動的に補間されると共に、コピーされる画素は、背景色とは異なる色の画素のみとなる。
【００１７】
第１４の発明では、画素が直交するｘ方向及びｙ方向に格子状に配置されたドットマトリクスで表現された入力画像をある画素を中心にして回転角度θで回転し、前記ｘ方向及び前記ｙ方向に格子状に画素が配置されたドットマトリクスで表現された出力画像に展開する画像回転装置において、ブロック分割設定手段と、画素コピー手段とを備えている。前記ブロック分割設定手段は、前記入力画像に、前記ｘまたはｙ方向に対して正の（θ／２）の角度をなす第１の勾配の方向を、行方向とする行列をなし、前記入力画像を分割する複数の入力分割ブロックを設定し、前記出力画像に、前記ｘまたはｙ方向に対して負の（−θ／２）の角度をなす第２の勾配の方向を、行方向とする行列をなし、前記各入力分割ブロックにそれぞれ対応して前記出力画像を分割する複数の出力分割ブロックを設定するものである。前記画素コピー手段は、前記各入力分割ブロックの画素を前記対応する各出力分割ブロックにそれぞれコピーすることによって前記展開を行うものである。
第１５の発明では、第１４の発明の画像回転装置において、前記ブロック分割設定手段は、メモリと、前記回転角度θから前記第１の勾配及び前記第２の勾配の方向を求め、前記第１及び第２の勾配の方向から前記各入力分割ブロックの幅及び前記各出力分割ブロックの幅を求めて前記メモリにテーブル化して格納するテーブル作成部と、前記メモリに格納された前記各入力分割ブロックの幅及び前記各出力分割ブロックの幅から、前記各入力分割ブロック及び前記各出力分割ブロックの位置座標をそれぞれ求めるブロック分割部とを備えている。さらに、前記画素コピー手段は、前記各位置座標に基づき前記各入力分割ブロックの画素を前記対応する各出力分割ブロックにそれぞれコピーする構成になっている。
第１６の発明では、第１４または第１５の発明の画像回転装置において、前記展開を行うときに前記出力画像に発生する欠落部分を、前記入力画像の背景色により前記出力画像を初期化することによって、前記背景色により補間する背景補間手段を設けている。
このように、第１４〜第１６の発明の構成を採用したことにより、ブロック分割設定手段により、入力画像及び出力画像が、複数の入力分割ブロックと複数の出力分割ブロックに分割される。画素コピー手段により、分割入力ブロック及び出力分割ブロックの単位で入力画像が出力画像にコピーされる。ここで、入力分割ブロックと出力分割ブロックとは、第１及び第２の勾配によって、角度がθだけずれているので、入力画像が角度θ回転して出力画像に展開されたことになる。
【００１８】
【発明の実施の形態】
（第１の実施形態）
図１は、本発明の第１の実施形態を示す画像回転方法の概要のフローチャートであり、図３は、図１の画像回転方法で用いる画像回転装置を示す構成図である。
この第１の実施形態の画像回転方法は、図１のステップＳＴ１１〜ＳＴ３１を行うことにより、入力画像１を回転角度θで回転させて出力画像２に展開する方法であり、図３のような画像回転装置を用いる。
画像回転装置は、メモリ及び中央処理装置等で構成された情報処理装置によって構成されており、入力画像１及び出力画像２をブロックに分割するブロック分割設定手段４０と、ブロック単位に複写を行う画素コピー手段５０と、出力画像２の背景を入力画像１の背景で補間する背景補間手段６０とを備えている。
ブロック分割設定手段４０は、回転角度θが入力されるテーブル作成部４１と、該テーブル作成部４１に接続れた傾きテーブルメモリ４２と、該傾きテーブルメモリ４２に接続されたブロック分割部４３とを有している。ブロック分割部４３の出力側が、画素コピー手段５０に接続されている。
【００１９】
次に、図３で行う図１の画像回転方法の概要を説明する。
この画像回転方法では、入力画像１の画像を出力画像２にコピーするに際し、該入力画像１及び出力画像２をそれぞれ複数のブロックが敷き詰められたものと想定し、ブロック単位で実施する。そのために、入力画像１を複数の入力分割ブロックＢＬＩで分割し、出力画像２を該各入力分割ブロックＢＬＩに対応する複数の出力分割ブロックＢＬＯで分割する。
図４（ａ），（ｂ）は、図１で行うブロック分割の説明図である。
垂直なｘ方向及びｙ方向に格子状にドットが並んだ入力画像１は、ｘ方向に対して回転角度θの１／２の角度（θ／２）に相当する第１の勾配ＫＩが行の方向となるような行列をなす入力分割ブロックＢＬＩに分割される。出力画像２は、ｘ方向に対して負の角度（−θ／２）に相当する第２の勾配ＫＯが行方向になる行列をなすような、出力分割ブロックＢＬＯに分割される。ここで、勾配ＫＩ，ＫＯを０からθに対応するものではなく、（θ／２）及び（−θ／２）に設定する理由は、写像を行ったときに、入力画像１と出力画像２における長さが狂って画像が歪むことを防止するためである。
例えば、図４（ａ）のように入力画像１の分割ブロックＢＬＩが水平に並び、全体の長さがＬであるとすると、角度θで回転させた写像を行うことにより、全体の長さがＬ／ｃｏｓθになる。これに対し、図４（ｂ）のように、入力画像１の分割ブロックＢＬＩが角度（−θ／２）で並び全体の長さがＭのものを角度θで回転させた写像を行うと、出力画像２での分割ブロックＢＬＯは、角度（θ／２）で並ぶことなり、全体の長さＭは不変となる。そのため、勾配ＫＩ，ＫＯを（θ／２）及び（−θ／２）に設定する。
【００２０】
図５は、図１の画像回転方法で用いる入力分割ブロックの例を示す図であり、図６は、図１の画像回転方法で用いる出力分割ブロックの例を示す図である。図７は、図１中のステップＳＴ２６の概要を示すフローチャートであり、図８は、図７中のステップＳＴ２６ｃの詳細を示すフローチャートである。これらの図５〜図８及び図１と以下の図９〜図１１を用い、この第１の実施形態の画像回転方法の処理手順の説明を行う。
まず、図１の最初のステップＳＴ１１において、背景補間手段６０により、入力画像１の背景の色をチェックする。このチェックにより、入力画像１が例えば白黒の２値画像の場合、背景が白か黒かが判断される。ステップＳＴ１１によって背景が黒と判断された場合には、続くステップＳＴ１２において、背景補間手段６０は、後のコピーで用いるための、白画素を黒に変換するコピー関数を選択し、ステップＳＴ１３において、該出力画像２全体を黒に初期化する。ステップＳＴ１１によって背景が白と判断された場合には、ステップＳＴ１４において、背景補間手段６０は、黒画素を白に変換するコピー関数を選択し、ステップＳＴ１５において出力画像２を白に初期化する。但し、ステップＳＴ１１によって背景が白または黒と判断できなかった場合には、ステップＳＴ１６でエラーが発生したものとして画像回転方法を終了する。このようなステップＳＴ１１〜ＳＴ１６は、補間処理である背景補間処理１０のフローであり、入力画像１の背景により、出力画像２を初期化することにより、入力画像１を回転させてコピーすることによって発生する入力画像１と出力画像２との間の欠落部分が背景色で補間されることになる。
【００２１】
背景補間処理１０の次に行われるステップＳＴ２１〜ステップＳＴ２７は、ブロック分割処理２０Ａ及び画素コピー処理２０Ｂを行う処理２０のフローであり、該ステップＳＴ２１では、テーブル作成部４１を用いて、回転角θから第１の勾配Ｋ１と第２の勾配Ｋ２とを計算し、入力画像１及び出力画像２を分割ブロックに分割するために、例えば図５及び図６のような入力分割ブロックＢＬＩ及び出力分割ブロックＢＬＯを想定した場合の、各分割ブロックＢＬＩ及びＢＬＯの縦方向（ｙ方向）の幅ｈと横方向（ｘ方向）の幅ｗとを幅計算によって計算し、これらをテーブル化して傾きテーブルメモリ４２に格納する。このステップＳＴ２１における傾きテーブルを作成する手順等は、後の第２の実施形態で詳細に説明する。図５及び図６のブロック分割を行う例は、後の第３の実施形態で詳細に説明する。
例えば、図５及び図６の分割例では、各入力分割ブロックＢＬＩ及び各出力ブロックＢＬＯは、それぞれ矩形ブロックＢij（ｉ，ｊ＝０，１，２，…）と該矩形ブロックＢij間を埋める補間ブロックＡijとで構成されている。矩形ブロックＢijは、回転角度θに応じて幅計算された縦方向の幅ｈと横方向の幅ｗとを持つ正方形または長方形であり、補間ブロックＡijは１×１画素のサイズである。
【００２２】
ステップＳＴ２１の次のステップＳＴ２２では、エラー判定を行い、傾きテーブルが作成できなかつた場合（Ｔ）に、ステップＳＴ２３で処理を終了する。傾テーブルが作成できた場合（Ｆ）には、処理をステップＳＴ２４に進める。
ステップＳＴ２４では、回転角度θが０度か否かを判定し、判定の結果が０度以外であれば（Ｆ）、ステップＳＴ２５で傾きテーブルを参照して回転方向の判断を行う。この回転方向の判断により、右回転（時計回り）か左回転（反時計回り）かを判断し、右回転のときには処理をステップＳＴ２６に移し、左回転のときには処理をステップＳＴ２７に移す。
ステップＳＴ２６は右回転処理であり、ステップＳＴ２７は左回転処理である。右回転処理ＳＴ２６では、入力画像１の図５の（−θ／２）で右上がりに敷き詰めれた各ブロックＢＬＩの画像を、出力画像２の図６の（θ／２）に右下りに敷き詰められたブロックＢＬＯにコピーする。左回転処理は、右回転処理とは逆に、入力画像１の（−θ／２）で右下りに敷き詰めれた各ブロックＢＬＩの画像を、出力画像２のに右上がりに敷き詰められたブロックＢＬＯに写像する。
【００２３】
ここで、右回転処理ＳＴ２６の詳細を説明する。なお、左回転処理ＳＴ２７は、右回転処理ＳＴ２６と同様の処理となる。
ステップＳＴ２６の右回転処理では、次のように図７のステップＳＴ２６ａ〜ＳＴ２６ｄを繰り返して行い、象限ｎ毎に画像の写像を行う。
図９は、右回転処理で処理を分ける図７中の象限ｎの説明図である。
入力画像１及び出力画像２は、回転の各中心座標（ｉｃｘ，ｉｃｙ）及び（ｏｃｘ，ｏｃｙ）を基準として、図９のように４つの象限ｎ（ｎ＝１，２，３，４）に分けることができる。
まず、ブロック分割部４３は、ステップＳＴ２６ａで象限ｎに１を設定する。ステップＳＴ２６ｂ及びステップＳＴ２６ｄは、象限ｎをインクリメントするステップであり、該ステップＳＴ２６ｂで、ｎが４を越えて４以下でない（Ｎ）と判断されたときには、処理を図１のステップＳＴ３１に処理を進める。ステップＳＴ２６ｂでｎが４以下（Ｙ）と判断したときには、ブロック分割部４３及び画素コピー手段５０は、ステップＳＴ２６ｃのｎ毎の右回転写像を実施する。
ステップＳＴ２６ｃの右回転写像は、図８のステップＳＴ２６−１及びＳＴ２６−２と、繰り返し行われるステップＳＴ２６−３〜ＳＴ２６−１４とからなっている。
【００２４】
最初のステップＳＴ２６−１では、ブロック分割部４３が、入力分割ブロックＢＬＩ及び出力分割ブロックＢＬＯに関するｙ軸方向のブロックインデックスｊに０を代入して初期化する。ステップＳＴ２６−２では入力画像１及び出力画像２の回転の中心座標（ｉｃｘ，ｉｃｙ），（ｏｃｘ，ｏｃｙ）を設定する。この中心座標を（ｉｃｘ，ｉｃｙ），（ｏｃｘ，ｏｃｙ）を基準として、４つの象限にそれぞれ図５及び図６の入力分割ブロックＢＬＩ及び出力分割ブロックＢＬＯが、行列状にそれぞれ敷き詰められたものと考える。
ステップＳＴ２６−３では、ブロック分割部４３を用い、各分割ブロックＢＬＩ及び各分割ブロックＢＬＯの幅として、傾きテーブルメモリ４２から図５の縦方向の幅ｈを読出しておく。ステップＳＴ２６−３に続くステップＳＴ２６−４は、行列状の分割ブロックＢＬＩ，ＢＬＯの行の先頭の分割ブロック内の矩形ブロックＢ0j（Ｂ00，Ｂ01，Ｂ02，…）の始端（例えば左上の画素）の座票（ｉｘ，ｉｙ），（ｏｘ，ｏｙ）を計算するステップであり、繰り返しの最初の１行目の矩形ブロックＢ00では、中心座標（ｉｃｘ，ｉｃｙ），（ｏｃｘ，ｏｃｙ）をそのまま設定する。他の矩形ブロックＢ0jでは、ｘ座標のずれ分を補正して始端の座標を設定する。
【００２５】
ステップＳＴ２６−４の次のステップＳＴ２６−５において、ブロック分割部４３は、ｘ方向のブロックインデックスｉの値を０にして初期化する。ステップＳＴ２６−６では、ブロック分割部４３は、傾きテーブルメモリ４２から入力分割ブロックＢＬＩ及び出力分割ブロックＢＬＯの幅ｗを読出す。ステップＳＴ２６−７において、画素コピー手段５０は、始端の座標を参照し、入力画像１中の補間ブロックＡijの画素を出力画像２中の対応する補間ブロックＡijにコピーする。このとき、各補間ブロックＡijが入力画像１及び出力画像２に含まれているかどうかの判断も行う。
ステップＳＴ２６−８において、ブロック分割部４３は座標位置計算を行い、コピーを行う矩形ブロックＢijの座標位置を、始端の座標及び幅ｗ，ｈから計算し、さらに、ステップＳＴ２６−９において、コピーを行う矩形ブロックＢijの範囲が入力画像１及び出力画像２に含まれるか否かを、判断する。この判断により、矩形ブロックＢijが、（ｉ）入力画像１及び出力画像２に完全に含まれる、（ii）部分的に含まれる、或いは、（iii)入力画像１または出力画像２のまったく含まれない、の３通りの判断結果が得られる。判断結果が（ｉ）のときには、処理をステップＳＴ２６−１０に進め、判断結果が（ii）のときには、矩形ブロックＢijの幅ｗを変更して該矩形ブロックＢijの範囲を確定した上で処理をステップＳＴ２６−１０に進める。判断結果が（iii)のときには、処理をステップＳＴ２６−１２へ進める。ステップＳＴ２１−１〜ＳＴ２６−９までが、ブロック分割処理２０Ａであり、コピーすべき分割ブロックの座標位置が確定する。
【００２６】
ステップＳＴ２６−１０は、画素コピー処理２０Ｂであり、画素コピー手段５０が、入力画像１の矩形ブロックＢijの画素を出力画像２の対応する矩形ブロックＢijにコピーする。このときのコピーは、背景色とは異なる色の画素のみに対して行い、該ステップＳＴ１２またはステップＳＴ１４で選択されたコピー関数が使用される。
ステップＳＴ２６−１０に続くステップＳＴ２６−１１では、次にコピーを行う同じ行の隣の分割ブロックＢＬＩ，ＢＬＯの始端の座標（ｉｘ，ｉｙ），（ｏｘ，ｏｙ）を求めるために、ステップＳＴ２６−４で求めた始端のｘ座標に幅ｗを加算し、ｙ座標を１ドット分ずらす。ステップＳＴ２６−１１が終了したら、処理をステップＳＴ２６−６に戻し、ブロックインデックスｉをインクリメントした上で、ステップＳＴ２６−６〜ＳＴ２６−１１を繰り返す。
ステップＳＴ２６−９で矩形ブロックＢijの範囲に対する判断結果が（iii)となったときには、ステップＳＴ２６−１２で該矩形ブロックＢijを含む分割ブロックＢＬＩ，ＢＬＯ中の補間ブロックＡijの写像を行う。
【００２７】
図１０は、補間ブロックＡijのコピーの説明図である。
ステップＳＴ２６−１２のコピーを行うことにより、図１０のように、補間ブロックＡijが入力画像１或いは出力画像２の領域内にあっても矩形ブロックＢijが該領域にない分割ブロックＢＬＩ，ＢＬＯに対しても、補間ブロックＡijが写像される。
ステップＳＴ２６−１２の次のステップＳＴ２６−１３では、次の分割ブロックＢＬＩ，ＢＬＯの写像を行うために、中心座標の変更を行う。ここでの「次のブロック」とは、それまで、例えば矩形ブロックＢ0jに対する写像が行われていたのであれば、次の行の矩形ブロックＢ1jのことを示し、座標の変更は、中心座標のｙ座標値に幅ｈを加算することで行う。
ステップＳＴ２６−１３が終了すると、ステップＳＴ２６−１４で、変更された中心座標のｙ座標値が入力画像１及び出力画像２の領域範囲に入っているか否かを判断し、領域内（Ｙ）であれば、処理をステップＳＴ２６−６に移し、領域外（Ｎ）であれば、ステップＳＴ２６ｃの第１象限に対する処理を終了し、図７のステップＳＴ２６ｄに処理を進める。
【００２８】
図１１は、図７による写像結果の説明図である。
図１１には、番号１〜９が付された入力画像１及び出力画像２中の矩形ブロックＢijと、文字ａ〜ｉが付された補間ブロックＡijとが示されている。ステップＳＴ２６ｃの、ステップＳＴ２６−６〜ＳＴ２６−１４を繰り返すことにより、入力画像１の矩形ブロックＢij及び補間ブロックＡijの画像が、出力画像２の同じ番号または文字が付された矩形ブロックＢij及び補間ブロックＡijに、番号１〜９及び文字ａ〜ｉの順に複写される。
図１のステップＳＴ３１は、ステップＳＴ２６，ＳＴ２７が終了したとき、及びステップＳＴ２４の判定で傾きの回転角度θが０度と判定されたときとに行われる処理であり、このステップＳＴ３１では、傾きテーブルメモリ４２の格納情報を削除し、一連の画像回転方法を終了する。
【００２９】
以上のように、この第１の実施形態では、次のような利点を有している。
（ｉ）  入力画像１を、勾配ＫＩを行方向とする行列状の複数の入力分割ブロックＢＬＩが敷き詰められたものと想定し、出力画像２を、勾配ＫＯを行方向とする行列状の複数の出力分割ブロックＢＬＯが敷き詰められたものと想定し、各入力分割ブロックＢＬＩの画像を出力分割ブロックＢＬＯにそれぞれコピーすることで、入力画像１を回転せて出力画像２に複写するので、画素毎に三角関数を用いずに回転ができ、計算量が減少するため処理が高速化できる。
（ii）  勾配ＫＩ及び勾配ＫＯを、ｘ方向に対して角度が（θ／２）及び（−θ／２）に相当するように設定したので、回転後の出力画像２における長さが狂わず、歪みの少ない回転画像が得られる。
（iii)  三角関数を用いるアフィン変換とは異なり、入力画像１の画素と出力画像２の画素が１：１になり、画像間に可逆性がある。
【００３０】
（iｖ)  ステップＳＴ１１〜ＳＴ１６の背景補間処理１０を施し、ステップＳＴ２６−１０のコピー処理では、背景と異なる色の画素のみのコピーを行うので、該コピー処理での負担が減じられ、処理の高速化が可能になる。
（ｖ）  ステップＳＴ１１〜ＳＴ１６の背景補間処理１０を先に施すので、座標の回転を行ってコピーするときに発生する欠落部分を、自動的に背景色で補間することができる。
（ｖi）  ステップＳＴ２６−９の判断と幅の変更を行うことにより、入力画像１及び出力画像２の領域に含まれる画像のみコピーされるようにしたので、無駄なコピーを省略できる。
【００３１】
（第２の実施形態）
図１２は、本発明の第２の実施形態を示す画像回転方法の要部のフローチャートである。
この第２の実施形態の画像回転方法は、第１の実施形態におけるステップＳＴ２１で傾きテーブルを作成する処理を、次のような図１２のステップＳＴ２１−１〜ＳＴ２１−６を、テーブル作成部４１を用いて行うことによって実現する方法であり、他の処理は、図１と同様に行われる。
まず、ステップＳＴ２１−１において、第１の実施形態の図３中のテーブル作成部４１は、回転角度θの勾配、つまりｔａｎ（θ）＝ｄｙ／ｄｘとなる、ｘ方向の変化量ｄｘとｙ方向の変化量ｄｙとを初期値として入力する。これらの変化量ｄｘ及び変化量ｄｙの値は、別ルーチンにて計算されたものである。ステップＳＴ２１−１に続くステップＳＴ２１−２において、テーブル作成部４１は、初期値に基づき、ｔａｎ（θ／２）に相当する変化量ｄｙ，ｄｘを計算する。ステップＳＴ２１−３において、テーブル作成部４１は、ステップＳ２１−２で計算された変化量ｄｙ，ｄｘから、第１の勾配ＫＩ及び第２の勾配ＫＯを算出し、ステップＳＴ２１−４において、該ステップＳ２１−２で計算された変化量ｄｙ，ｄｘの値と、入力画像１及び出力画像２の領域の大きさとに基づき、入力分割ブロックＢＬＩ及び出力分割ブロックＢＬＯの数（配列要素数）の計算を行う。ステップＳＴ２１−５において、テーブル作成部４１は、図３中の傾きテーブルメモリ４２に傾きテーブルの領域を取得し、そこに、勾配ＫＩ及びＫＯと配列要素数とを格納する。ステップＳＴ２１−５の次のステップＳＴ２１−６において、テーブル作成部４１は幅計算を行い、ステップＳＴ２１−２で計算された変化量ｄｙ，ｄｘに対応する入力分割ブロックＢＬＩ及び出力分割ブロックＢＬＯ中の各矩形ブロックＢijの幅をそれぞれ計算し、傾きテーブルにおける各矩形ブロックＢij毎のブロック幅に格納する。
【００３２】
図１３は、図１２で作成された傾きテーブルの概念を示す図である。
ステップＳＴ２１−１〜ステップＳＴ２１−６を行うことにより、図１３のように、勾配の方向と配列要素数と、各矩形ブロックＢijの幅の配列とが、傾きテーブルメモリ４２に格納される。
以上のように、この第２の実施形態では、第１の実施形態におけるステップＳＴ２１を、図１２のようなステップＳＴ２１−１〜ＳＴ２１−６で構成したので、入力分割ブロックＢＬＩ及び出力分割ブロックＢＬＯ中の各矩形ブロックＢijの幅を傾きテーブルとして格納することができる。この傾きテーブルを利用することにより、入力画像１及び出力画像２の領域内で、各矩形ブロックＢijの座標位置を算出する際に、ｘ座標及びｙ座標をそれぞれ計算する必要がなくなり、処理が高速化できる。
【００３３】
（第３の実施形態）
図１４は、本発明の第３の実施形態を示す画像回転方法の要部のフローチャートである。
この第３の実施形態の画像回転方法は、第２の実施形態におけるステップＳＴ２１−６で行う幅計算を、次のような図１４のステップＳＴ２１−６ａ〜ＳＴ２１−６ｇをテーブル作成部４１を用いて実現する方法であり、他の処理は、第１及び第２の実施形態と同様に行われる。
回転処理のための分割ブロックＢＬＩ，ＢＬＯの幅を計算する場合、所望の回転角度θの半分の角度θ／２に相当する勾配から、該入力分割ブロックＢＬＩ及び出力分割ブロックＢＬＯのブロック幅を求める。即ち、ｔａｎ（θ／２）を整数比で表したものから、整数で平準化した階段の幅を表す数列を作る。各分割ブロックＢＬＩ，ＢＬＯを階段状に組合わせる場合は、ブロック間での変化量ｄｙの方向のずれは、１画素分しか起こらない、よって、変化量ｄｘを変化量ｄｙで等分することにより、ｔａｎ（θ／２）に相当する勾配ＫＩ及びＫＯの値が表現できる。
【００３４】
図１５は、勾配と分割ブロックＢＬＩ，ＢＬＯの幅の関係を示す図である。この図１５を参照しつつ、幅計算の手順を説明する。
まず、ステップＳＴ２１−６ａでは、テーブル作成部４１が角度（θ／２）の勾配を表すｘ方向の変化量ｄｘと、ｙ方向の変化量ｄｙとを入力し、ステップＳＴ２１−６ｂでは、変化量ｄｙの値が０か否かをチェックする。変化量ｄｙの値が０のとき（Ｙ）には、処理を中断して終了する。変化量ｄｙの値が０でない（Ｎ）ときには、処理をステップＳＴ２１−６ｃに進める。
ステップＳＴ２１−６ｃでは、テーブル作成部４１が変化量ｄｘの値を変数Ｓに代入すると共に、最初の分割ブロックの番号を設定し、ステップＳＴ２１−６ｄにおいて、配列数が配列要素数を越えていないかを確認し、越えていないとき（Ｙ）には、処理をステップＳＴ２１−６ｅに進める。越えたとき（Ｎ）には、幅計算を中断して終了する。
ステップＳＴ２１−６ｅにおいて、テーブル作成部４１は、変数Ｓを変化量ｄｙで整数除算する。整数除算によって、少数点以下が切り捨てられた分割ブロックＢＬＩ，ＢＬＯの幅ｗ（またはｈ）が求められる。この幅がｉ番目の分割ブロックＢＬＩ，ＢＬＯの幅として、ステップＳＴ２１−６ｆで、傾きテーブルに格納される。
【００３５】
ステップＳＴ２１−６ｆの後のステップＳＴ２１−６ｇにおいて、テーブル作成部４１は、変数Ｓの値を更新する。この変数Ｓの更新では、変化量ｄｘに対して直前の整数除算で発生した余りを加算する。そして、分割ブロックの番号をインクリメントして処理をＳ２１−６ｄに戻す。ここで、変数Ｓの更新で変化量ｄｘに対して直前の整数除算で発生した余り（Ｓ％ｄｙ）を加算することで、以降に該余りが累積されたうえでの、整数除算が行われるようになり、結果的にｄｘがｄｙで等分されることになる。
例えば、ｄｘ＝２２及びｄｙ＝３として、ステップＳＴ２１−６ｄ〜ＳＴ２１
−６ｇを繰り返すことにより、７，７，８，７，７，７，８，７，…の数列が得られる。この数列７，７，８，７…を階段状のブロックの組合わせとすると、図１５のようになる。また、例えば、これらの数列の幅を持つ分割ブロックＢＬＩを用いて入力画像１を分割すると図５のようになり、これらの数列の幅を持つ分割ブロックＢＬＯを用いて出力画像２を分割すると図６のようになる。
【００３６】
以上のように、この第３の実施形態は、所望の角度（θ／２）に対応する勾配を表す変化量ｄｘ，ｄｙを用い、ステップＳＴ２１−６ｅでｄｘをｄｙで整数除算し、かつ、余りが有れば次の整数除算におけるｄｘにその余りを累積加算して整数除算するようにしたので、所望の角度（θ／２）に対応する勾配を、図１５のように、ブロック幅とブロックの段数とで容易に表すことができる。これらののブロックを第１の実施形態の入力画像１或いは出力画像２に適用すると、図５及び図６のように、所望の角度（θ／２）に対応する幅を持つ矩形ブロックＢijが行列を成して階段状に並び、その間を１×１画素サイズの補間ブロックＡijが埋めるようになり、入力画像１と出力画像２との間のコピーに使用される分割ブロックＢＬＩ，ＢＬＯが形成できる。
【００３７】
（第４の実施形態）
図１６は、本発明の第４の実施形態を示す画像回転方法の要部のフローチャートである。
第２及び第３の実施形態では、画像に所望の回転を与えるための分割ブロックの幅や位置を決定する方法を中心に説明したが、実際には、回転処理を行うことで、画像領域外にはみ出すことも考えられ、コピーができなかったり、無駄なコピーが発生することがある。そこで、分割ブロックの大きさを入力画像１と出力画像２の領域に収まるように変更する必要がある。この第４の実施形態は、次のように図１６のステップＳＴ２６−１０ａ〜ＳＴ２６−１０ｇを順に行うことにより、無駄なコピーのない画素コピーを実現する。
まず、ステップＳＴ２６−１０ａでは、入力画像１及び出力画像２の分割ブロックＢＬＩ，ＢＬＯの左上端（始端）の座標（ｉｘｓ０，ｉｙｓ０），（ｏｘｓ０，ｏｙｓ０）を計算する。そして、ステップＳＴ２６−１０ｂでは、分割ブロックＢＬＩ，ＢＬＯの右下端（終端）の座標（ｉｘｅ０，ｉｙｅ０），（ｏｘｅ０，ｏｙｅ０）を計算する。ステップＳＴ２６−１０ｂの後のステップＳＴ２６−１０ｃでは、次の図１７にように、入力画像１においてコピー行うブロックの範囲を計算する。
【００３８】
図１７は、コピー範囲の説明図である。
計算された始端及び終端座標から、コピーすべき分割ブロックが入出力画像１，２の領域からはみ出していることを検出した場合、領域内に存在する部分のみのコピーを行うために、例えば、部分的にはみ出した図１７のブロック７０の領域内の部分７０ａのみをコピー対象とするように、始端の座標を（ｉｘｓ１，ｉｙｓ１）に変更する。また、入力画像１には収まっているが、回転を行うことより、部分的に出力画像２の領域からはみ出す分割ブロック７１には、分割ブロック７１の領域内となる部分７１ａのみをコピー対象とするように、始端の座標を（ｉｘｓ１，ｉｙｓ１）に変更すると共に終端の座標を（ｉｘｅ１，ｉｙｅ１）に変更する。
【００３９】
ステップＳＴ２６−１０ｃに続くステップＳＴ２６−１０ｄでは、コピーすべきブロックの幅ｗ１，ｈ１を計算する。ステップＳＴ２６−１０ｅでは、出力画像２の領域におけるコピーされる分割ブロックの左上端の座標の計算を行う。ステップＳＴ２６−１０ｆでは、分割ブロックの幅ｗ１，ｈ１によって画素のコピーの実行を決定する。幅ｗ１，ｈ１が負となる場合には、画素のコピーを実行しない。
ステップＳＴ２６−１０ｇにおいて、ステップＳＴ２６−１０ｃ〜ＳＴ２６−１０ｅによって求められた分割ブロックの範囲内の画素のコピーを実行する。但し、ここでのコピーは、背景色とは異なる色の画素のみをコピーする。
【００４０】
以上のように、この第４の実施形態では、ステップＳＴ２６−１０ａ〜ＳＴ２６−１０ｇにより、回転前の入力画像１の領域内に存在する入力分割ブロックＢＬＩ内の画素のみを出力画像１にコピーする入力画像領域内画素コピー処理と、回転後に出力画像２の領域内に存在する画素に対応する入力分割ブロックＢＬＩ内の画素のみを出力画像２にコピーする出力画像領域内画素コピー処理とを行うことになり、無駄なコピーを省略できる。
その上、入力画像１から出力画像２へコピーする際、入出力画像領域内に含まれるように、分割ブロックＢＬＩの大きさを変更するので、画素１つ１つに対して、入出力画像領域内であるかどうかの判断をする必要がなく、処理時間の短縮が図れる。さらに、入出力画像領域内に含まれるように、分割ブロックＢＬＩの大きさを変更するので、入力画像１と出力画像２の大きさや形状が異なっていても、画像回転を実行できる。
【００４１】
（第５の実施形態）
図１８は、本発明の第５の実施形態を示す画像回転方法の要部のフローチャートである。図１９は、図１８で用いる入力分割ブロックＢＬＩを示す図であり、図２０は、図１８で用いる出力分割ブロックＢＬＯを示す図である。
第１の実施形態では、入力分割ブロックＢＬＩ及び出力分割ブロックＢＬＯを、矩形ブロックＢijと補間ブロックＡijでそれぞれ形成して画像の回転を行ったが、この第５の実施形態では、図１９及び図２０のように、分割ブロックＢＬＩ，ＢＬＯをｎ個の例えば４個の矩形ブロックＡij〜Ｄijで構成される概ね矩形の分割ブロックでそれぞれ構成する。第１の実施形態の画像回転方法の処理とこの第５の実施形態の処理とでは、図１のフローにおけるステップＳＴ２６，ＳＴ２７が変わるだけで他は同じであり、画像回転装置も第１の実施形態と同様の構成で画像回転を行うことができる。そこで、第１の実施形態の図８に相当する図１８を用いて、右回転を第１象限に対して行う場合についての画像回転方法を説明する。
【００４２】
この第５の実施形態では、ブロック分割設定手段４０及び画素コピー手段５０を用いて次のような図１８のステップＳＴ５１〜ＳＴ６１を行うことにより、第１の実施形態の分割ブロックの形状では、大きかった変換誤差を小さくする。なお、分割ブロックの幅の設定は、第１の実施形態と同様である。
まず、ステップＳＴ５１において、ｙ方向のステップ数（分割ブロックの番号）を表す変数ｊに初期値の０を設定し、ステップＳＴ５２において、入力画像１の中心座標ｉｃｘ，ｉｃｙと出力画像２の中心座標ｏｃｘ，ｏｃｙを設定する。ステップＳＴ５２の後のステップＳＴ５３において、傾きテーブルに格納された分割ブロックＢＬＩ，ＢＬＯの幅を高さｈに代入する。４つの矩形ブロックＡij〜Ｄijの高さｈａと分割ブロックＢＬＩ，ＢＬＯの高さとの関係は、図１９及び図２０に示されている。ステップＳＴ５４において、ｘ方向のステップ数を表す変数ｉに初期値の００を設定し、ステップＳＴ５５において、傾きテーブルの分割ブロックＢＬＩ，ＢＬＯの幅を幅ｗに代入する。４つの矩形ブロックＡij〜Ｄijの幅ｗａと分割ブロックＢＬＩ，ＢＬＯの幅との関係は、図１９及び図２０に示されている。
【００４３】
ステップＳＴ５５の後のステップＳＴ５６において、中心座標ｉｃｘ，ｉｃｙ及びｏｃｘ，ｏｃｙと、高さｈと幅ｗとを用い、分割ブロックＢＬＩ，ＢＬＯ内の各矩形ブロックＡij〜Ｄijの始端の座標をそれぞれ計算する。ステップＳＴ５７において、各矩形ブロックＡij〜Ｄijの幅をそれぞれ計算する。各矩形ブロックＡij〜Ｄij  のｘ方向の幅をｗａ，ｗｂ，ｗｃ，ｗｄ、及びｙ方向の幅をｈａ，ｈｂ，ｈｃ，ｈｄとすると、これらは、
ｗａ＝（ｗ＋２）／２
ｗｂ＝（ｗ−１）／２
ｗｃ＝ｗ／２
ｗｄ＝（Ｗ＋１）／２
ｈａ＝（ｈ＋２）／２
ｈｂ＝（ｈ−１）／２
ｈｃ＝ｈ／２
ｈｄ＝（ｈ＋１）
となる。続く、ステップＳＴ５８では、コピー可能なブロック範囲を選択する。この選択の処理内容はステップＳＴ２６−９と同様であるが、４つの矩形ブロックＡij〜Ｄijのすべてに対して処理を行う。
【００４４】
ステップＳＴ５８の次のステップＳＴ５９において、選択されたブロックが画像領域の範囲内であるかどうかをｘ方向に調査し、領域内であれば（Ｙ）、処理をステップＳＴ６０に進め、領域外であれば（Ｎ）、処理をステップＳＴ６１に進める。
ステップＳＴ６０では、入力分割ブロックＢＬＩの４つの矩形ブロックＡij〜Ｄijのすべての画素を、出力分割ブロックＢＬＯの対応する４つの矩形ブロックＡij〜Ｄijにコピーする。ステップＳＴ６１では、選択されたブロックの範囲が画像領域の範囲内であるかどうかをｙ方向に調査し、範囲内（Ｙ）であれば、ステップＳＴ５３に処理を進め、範囲外であれば、画像回転の処理を終了する。
【００４５】
以上のように、この第５の実施形態では、分割ブロックＢＬＩ，ＢＬＯを４つの矩形ブロックＡij〜Ｄijで構成し、各矩形ブロックＡij〜Ｄijについて座標計算とブロック幅の計算とを行い、画素のコピーを行うので、２つのブロックで分割ブロックＢＬＩ，ＢＬＯを構成した第１の実施形態よりも、変換誤差が小さくなる。
つまり、図５及び図６では、回転前に隣接した２画素が、距離が２ドット以上に離れることがあったが、この第５の実施形態では、図１９及び図２０のように、最大でもルート２（斜めとなり）になるだけである。よって、回転の後の画像品質が改善できる。
なお、本発明は、上記実施形態に限定されず種々の変形が可能である。
例えば、第１の実施形態では、回転角度θに対して（θ／２）及び（−θ／２）の角度を設定しているが、出力画像２における長さの変化が許される場合には、（θ／２）及び（−θ／２）を設定しなくてもよい。また、第５の実施形態では、４個の矩形ブロックＡij〜Ｄijを用いているが、さらに、矩形ブロックＡij〜Ｄijの数を増加させてもよい。
【００４６】
【発明の効果】
以上詳細に説明したように、第１の発明によれば、第１の勾配の方向を行方向とする複数の入力分割ブロックを設定し、第２の勾配の方向を行方向とする複数の出力分割ブロックを設定するブロック分割処理と、各入力分割ブロックの画素を対応する各出力分割ブロックにそれぞれコピーする画素コピー処理とを行うので、計算量が減少して処理が高速化できる。その上、三角関数を用いるアフィン変換とは異なり、入力画像の画素と出力画像の画素が１：１になり、画像間に可逆性ができる。特に、この第１の発明では、ｘ方向に対して角度が（θ／２）及び（−θ／２）に相当する勾配を設定するので、回転後の出力画像における長さが狂わず、歪みの少ない回転画像が得られる。
第２及び第３の発明によれば、ブロック分割処理で、幅計算処理と座標位置計算処理を行うので、コピー時に要する計算時間が短縮できる。
第４の発明によれば、矩形ブロックと補間ブロックとで、回転角度θに適するような入力分割ブロック及び出力分割ブロックを構成できる。
第５の発明によれば、入出力画像の領域に応じて、入力分割ブロックあるいは出力分割ブロックの幅を変更するので、無駄なコピーが予防できる。
第６の発明によれば、テーブルを使用するので、座標位置の計算の処理が高速化できる。
【００４７】
第７〜第９の発明によれば、入力分割ブロック及び出力分割ブロックを複数の矩形ブロックで構成したので、該矩形ブロック単位での細かなコピーが可能になり、出力画像の品質が改善できる。
第１０の発明によれば、テーブルを使用するので、座標位置の計算の処理が高速化できる。
第１１の発明によれば、回転前の入力画像の領域内に存在する画素のみをコピーする入力画像領域内画素コピー処理と、回転後に出力画像の領域内に存在する画素に対応する入力分割ブロック内の画素のみを出力画像にコピーする出力画像領域内画素コピー処理とを行うので、無駄なコピーを省略できる。
第１２の発明によれば、補間処理によって、回転で欠落する部分が補間できる。
【００４８】
第１３の発明によれば、出力画像を入力画像の背景色で初期化しておくので、簡単に第１２の発明の補間処理が実現できる。
第１４〜第１６の発明によれば、入力画像に第１の勾配の方向を行方向とする複数の入力分割ブロックを設定し、出力画像に第２の勾配の方向を行方向とする複数の出力分割ブロックを設定するブロック分割設定手段と、各入力分割ブロックの画素を対応する各出力分割ブロックにそれぞれコピーする画素コピー手段とを設けたので、画像回転装置が、画像回転を行う際の計算量が減少し、処理の高速化が可能になる。その上、三角関数を用いるアフィン変換を行わないので、入力画像及び出力画像の画素の関係が１：１になり、画像間に可逆性ができる。
【図面の簡単な説明】
【図１】  本発明の第１の実施形態を示す画像回転方法の概要のフローチャートである。
【図２】  従来の画像回転方法を示す図である。
【図３】  図１の画像回転方法で用いる画像回転装置を示す構成図である。
【図４】  図１で行うブロック分割の説明図である。
【図５】  図１の画像回転方法で用いる入力分割ブロックの例を示す図である。
【図６】  図１の画像回転方法で用いる出力分割ブロックの例を示す図である。
【図７】  図１中のステップＳＴ２６の概要を示すフローチャートである。
【図８】  図７中のステップＳＴ２６ｃの詳細を示すフローチャートである。
【図９】  図７中の象限ｎの説明図である。
【図１０】  補間ブロックＡijのコピーの説明図である。
【図１１】  図７による写像結果の説明図である。
【図１２】  本発明の第２の実施形態を示す画像回転方法の要部のフローチャートである。
【図１３】  図１２で作成された傾きテーブルの概念を示す図である。
【図１４】  本発明の第３の実施形態を示す画像回転方法の要部のフローチャートである。
【図１５】  勾配と分割ブロックＢＬＩ，ＢＬＯの幅の関係を示す図である。
【図１６】  本発明の第４の実施形態を示す画像回転方法の要部のフローチャートである。
【図１７】  コピー範囲の説明図である。
【図１８】  本発明の第５の実施形態を示す画像回転方法の要部のフローチャートである。
【図１９】  図１８で用いる入力分割ブロックＢＬＩを示す図である。
【図２０】  図１８で用いる出力分割ブロックＢＬＯを示す図である。
【符号の説明】
１    入力画像
２    出力画像
ＢＬＩ    入力分割ブロック
ＢＬＯ    出力分割ブロック
θ    回転角度
Ｂij    矩形ブロック
Ａij    補間ブロック
【図１】
0003647273.tif 000002
【図２】
0003647273.tif 000003
【図３】
0003647273.tif 000004
【図４】
0003647273.tif 000005
【図５】
0003647273.tif 000006
【図６】
0003647273.tif 000007
【図７】
0003647273.tif 000008
【図８】
0003647273.tif 000009
【図９】
0003647273.tif 000010
【図１０】
0003647273.tif 000011
【図１１】
0003647273.tif 000012
【図１２】
0003647273.tif 000013
【図１３】
0003647273.tif 000014
【図１４】
0003647273.tif 000015
【図１５】
0003647273.tif 000016
【図１６】
0003647273.tif 000017
【図１７】
0003647273.tif 000018
【図１８】
0003647273.tif 000019
【図１９】
0003647273.tif 000020
【図２０】
0003647273.tif 000021