JPH03216771A - 画像の任意角回転方法および装置 - Google Patents
画像の任意角回転方法および装置Info
- Publication number
- JPH03216771A JPH03216771A JP2013164A JP1316490A JPH03216771A JP H03216771 A JPH03216771 A JP H03216771A JP 2013164 A JP2013164 A JP 2013164A JP 1316490 A JP1316490 A JP 1316490A JP H03216771 A JPH03216771 A JP H03216771A
- Authority
- JP
- Japan
- Prior art keywords
- axis
- row
- matrix
- block
- line
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/60—Rotation of whole images or parts thereof
- G06T3/602—Rotation of whole images or parts thereof by block rotation, e.g. by recursive reversal or rotation
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
産業上の利用分野
本発明は、文字や図形などの画像データを任意角回転さ
せる画像データの回転方法および装置に関する。
せる画像データの回転方法および装置に関する。
従来の技術
従来、画像の90度回転方法については多くの技術が開
示されているが、任意角の回転方法については次の方法
が用いられている。
示されているが、任意角の回転方法については次の方法
が用いられている。
ソース画像(元画像)の1画素をX座標とY座標でSX
I SYと表現し、回転角をaとし、回転後のディス
トネーション画像(目的画像)の対応するX座標,Y座
標をDx,DYとすると、DxfDYを、 DX = SXCOS a − Sy S IN aD
y ”” Sy S IN a 十Sy COS aの
式により計算し、ディストネーション画像の対応する位
置にビット単位で順次書き込むことが行われていた。
I SYと表現し、回転角をaとし、回転後のディス
トネーション画像(目的画像)の対応するX座標,Y座
標をDx,DYとすると、DxfDYを、 DX = SXCOS a − Sy S IN aD
y ”” Sy S IN a 十Sy COS aの
式により計算し、ディストネーション画像の対応する位
置にビット単位で順次書き込むことが行われていた。
発明が解決しようとする課題
しかし上記方法によれば、1画素当たり、4回の掛け算
と2回の足し算と、ディストネーション画像の対応する
位置にビット単位で順次書き込むことが必要となる。こ
のため、回転する画像の大きさが大きくなると計算量が
大きさの自乗に比例して増大し、計算時間が長くなると
いう問題点があった。
と2回の足し算と、ディストネーション画像の対応する
位置にビット単位で順次書き込むことが必要となる。こ
のため、回転する画像の大きさが大きくなると計算量が
大きさの自乗に比例して増大し、計算時間が長くなると
いう問題点があった。
本発明は上述の問題点に鑑みてなされたもので、画像の
任意角を各画素毎に処理することなく、元画像を所定の
画素からなる大きさのブロックに分割し、このブロック
を行単位で処理することにより高速な処理を可能とする
画像の任意角回転方法および装置を提供することを目的
とする。
任意角を各画素毎に処理することなく、元画像を所定の
画素からなる大きさのブロックに分割し、このブロック
を行単位で処理することにより高速な処理を可能とする
画像の任意角回転方法および装置を提供することを目的
とする。
課題を解決するだめの手段
上記目的を達成するため、元画像を所定の画素からなる
大きさのブロックに分割し、このプロンクについて、シ
フト,縮小,拡大, 90度回転,ローティト等操作
をブロックを構成する行列の行単位で行うようにすれば
よく、本発明の画像の任意角回転方法は、基準座標軸上
の基準点に対し元画像を任意角θ回転し目的画像を作成
するに際し、前記元画像をN×Nの画素よりなり前記基
準座標軸に対し−θ回転した軸に1辺が平行な正方形よ
りなる基準ブロックの集合体として表し、前記各基準ブ
ロックの頂点の1つを回転頂点とし、これを中心に前記
各基準ブロックをθ回転して回転ブロックを作成し、こ
の回転ブロックの前記回転頂点を前記基準点を中心とし
てθ回転した時生じる前記基準座標軸方向の移動量を△
Y,前記基準座標軸に直角方向の移動量をΔYとし、前
記回転ブロックを前記基準座標軸方向に△Y,前記基準
座標軸に直角方向にΔXそれぞれ平行移動することによ
り目的画像を得ることを特徴とするものである。また、
前記基準ブロックより前記回転ブロックを作成するに際
し、前記回転頂点を通り前記基準座標軸に平行な軸をY
軸としこれを直交し前記回転頂点を通る軸をX軸とし前
記基準ブロックを構成する要素のX軸,Y軸の座標を(
x,y)として前記要素のX座標を x − y * tanθとなるようX軸方向にシフト
し、更にX軸方向にcosθ倍して x cosθ−y*sinθとし八 次にy座標をY軸方向に1/cosθ倍しy / c+
)sθとして ( x cosθ−y * sinθe y / co
sθ)座標に移動することにより前記基準ブロックを前
記回転ブロックのX軸,Y軸方向の長さと同じでかつY
軸方向に三角形状に前記回転ブロックより一方がはみ出
し、他方が凹んだ平行四辺形に形成し、この三角形状に
はみ出した部分ではX軸に平行な行ビット並びごとに読
み出し、はみ出しだ三角形状部が凹んだ三角形状部に重
なるように、この読み出しだ行ピット並びと凹んだ三角
形状部の対応する行ビット並びとの論理和をとって前記
回転ブロックの形状に合致したN行×N列よりなる行列
とし、このN行×N列の行列の転置行列を求め、この転
置行列の各行につき前記三角形状にはみ出した部分のビ
ットが行の左端より右端に向かって並んでいる行につい
てはその並んでいるはみ出したビット数だけ左ローティ
トを行ってローティト画像を得、このローティト画像の
転置行列を演算し、この転置行列を前記回転ブロックと
するようにするとよい。そして、前記転置行列を求める
にあたシ、対象とする行列をN行×N列とし、この行列
の変換モード数Mを M = ( 1og2 N ) (但し〔 〕は内部の数値が整数のときはその整数を、
少数点以下の数値を含むときは切り上げた整数)によっ
て求め、前記N行を0〜N−1と付番し、変換モードL
(=1〜M)ごとに、A番行とB番行を、 A=k*2〜k$2 +2 −1 B=A+2L−1 k=0〜(N/2L) −1 によって求め、A番行とB番行の行ピット並びをA(j
), B(j)で表し、−1A′(j), B’(j
)を−1A′(j)=A(j) j=k*2L=kネ2L+ 2L−” − 1−1A′
(j)一B (j−2 ) j=kネ2L+2L−1〜k$2L+2L−1B ’(
j) = B (j) j=kネ2L+ 2L−”〜k$2L+2L−1B ’
(j)−4 ( j + 2L−1)?=k*2 〜k
!2 +2 −1k=0〜(N/2 )−1 によって求め、A(j)を−1A′(j)にB (j)
をB ’ (j)に変換し、Lを1からMまで変化させ
ることによりN行×N列の行列を求め、この行列を前記
転置行列とするとよい。また、前記基準ブロックより前
記回転ブロックを作成するに際し、前記回転頂点を通り
前記基準座標軸に平行な軸をY軸としこれを直交し前記
回転頂点を通る軸をX軸とし前記基準ブロックを構成す
る要素のX軸,Y軸の座標を(x,y)として前記要素
のX座標をx−3’*tanθとなるようX軸方向にシ
フトし、更にX軸方向にcosθ倍して x cosθ−y*sioθとし1 次にy座標をY軸方向に1 / c■sθ倍しy/co
sθとして ( X cOsθ−y*sinθ,y/COSθ)座標
に移動することにより前記基準ブロックを前記回転ブロ
ックのX軸,Y軸方向の長さと同じでかつ前記回転ブロ
ックより三角形状にY軸下方にはみ出し、上方が凹んだ
平行四辺形を形成し、この三角形がX軸に平行な行ビッ
ト並びn行で形成される場合、n+N行で形成される前
記平行四辺形の各行を0〜n + N−1と付番し、n
+1行×N列よりなシ前記三角形状に凹んだ範囲を0,
他を1とするマスク行列を作成し、第0行を求めるに当
たり、まず第0行〜第n行と前記マスク行列との論理積
により第0′行〜第n′行を作成し、第1′行を、第0
′行のビットがOでない部分をマスクしてこのマスク部
分をθピットとし、このマスクした行と第0′行との論
理和をとって第0′修正行を作り、第2′行を第0′修
正行のビットが0でない部分をマスクしてこのマスク部
分を0ビットとし、このマスクした行と第0′修正行と
の論理和をとって第1′修正行を作り、第3′行を第1
′修正行のビットがOでない部分をマスクしてこのマス
ク部分を0ピットとし、このマスクした行と第1′修正
行との論理和をとって第2′修正行を作り、以下同様に
して第n′行を第(n−2)’ 修正行のビットが0で
ない部分をマスクしてこのマスクした部分をθピットと
し、このマスクした行と第(n−2)’修正行との論理
和をとって第(n−1)′修正行を作り、この第(n−
1)’修正行を第0行とし、以下同様にしてN−1行ま
で求めてN行×N列の行列を求め、この行列を前記回転
ブロックとするとよい。また、本発明の画像の任意角回
転装置は、元画像を基準座標軸に対して−θ回転した軸
に一辺が平行なN×Nの画素の正方形よりなる基準ブロ
ックの集合体として表す基準ブロック生成手段と、前記
基準ブロックをθ回転して回転ブロックを作成するに際
し、回転中心となる萌記基準ブロックの頂点の1つを回
転頂点としこの回転頂点を通多前記基準座標軸に平行な
軸をY軸としこれと直交し前記頂点を通る軸をX軸とし
前記基準ブロックを構成する要素のX軸.Y軸の座標を
x、yとし、前記要素のX座標をX一y * tanθ
となるようX軸方向にシフトするX軸方向シフト手段と
、このX軸方向シフト手段の出力をX軸方向にcosθ
倍するX軸方向縮小手段と、y座標をl/cosθ倍す
るY軸方向拡大手段と、前記X軸方向縮小手段と前記Y
軸方向拡大手段の出力により形成されるY軸方向に平行
な2辺を有する平行四辺形を形成する行列の各列をY軸
方向にシフトして回転ブロックを作成する回転プロンク
作成手段と、前記回転ブロックの前記回転頂点を、前記
元画像を回転する回転中心となる前記基準座標軸上の基
準点を中心としてθ回転する時の前記基準座標軸方向の
移動量と前記基準座標軸に直角方向の移動量を算出し、
前記回転ブロックを移動する移動手段とを備えたことを
特徴とするものである。また、前記回転ブロック作成手
段を、前記平行四辺形の前記回転ブロックよりはみ出し
た三角形状部分をX軸に平行な行ビット並びごとに読み
出し、はみ出した三角形状部がこれに対応して前記回転
ブロックより凹んだ三角形状部に重なるようにこの読み
出した行ビット並びと、凹んだ三角形状部の対応する行
ビット並びとの論理和をとって前記回転ブロックの形状
に合致した行列を生成する行列生成手段と、行列の各行
について行のローティトを行うローティト手段と、行列
の転置行列を作成する転置行列作成手段とを備え、前記
行列生成手段の出力を前記転置行列作成手段に入力して
転置行列を出力し、この行列を前記ローティト手段で各
行について前記三角形状にはみ出した部分のビットが行
の左端より右端に向かって並んでいる行についてはその
並んでいるはみ出したビット数だけ左ローティトを行い
、これにより作成した行列を前記転置行列作成手段に入
力して転置行列を出力し、この行列を前記回転ブロック
の値とするようにするとよい。さらに、前記転置行列作
成手段を、画像データを記憶する画像データ記憶手段と
、N行×N列の画像データの変換モード数Mを M=(log2N) (但し〔 〕は内部の数値が整数のときはその整数を、
少数点以下の数値を含むときは切り上げた整数)によっ
て求め変換モードL(=1〜M)を出力する変換モード
演算手段と、前記N行を1〜N−1と付番し、前記変換
モードLに応じて前記N行よりA番行とB番行を A=k本2 〜k$2 +2 −1B=A+2L
−1 k=0〜(N/2L) −1 により演算し、このA番行とB番行の行ビソト並びA(
j), B(j)を選択する行選択手段と、前記A(
j), B(j)を入力し、−1A′(j), B’(
j)をA ’ (j) = A (j)J=kネ2 〜
kネ2+2 −1 −1A′(j)= B ( j−2L−” )j=k*
2 +2 〜k$2 +2 −1n’(j)一B(j
) J二k申2+2 〜kネ2 +2 −1B’(j)一A
(j+2L) j=k*2 〜k本2+2 −1k=0〜(N/
2L) −1 によって演算し、前記画像データのA(j), B(j
)をそれぞれ−1A′(j), B’(j)に変換し、
この操作をLを1からMまで変化させることによりN行
×N列の行列を求める画像変換手段とからなるようにす
るとよい。また、前記回転ブロック作成手段として、前
記平行四辺形が前記回転ブロックより三角形状にY軸下
方にはみ出し、上方が凹んだ平行四辺形であυ、この三
角形がX軸に平行なビット並びn行で形成される場合、
n+N行で形成される前記平行四辺形の各行を0−n+
N 1と付番し、n千1行×N列よりなり前記三角形
状に凹んだ範囲を0,他を1とするマスク行列とk行か
らk + n行までのn + 1行×N列との論理積に
より第k′行〜第(k+n)’ 行を作成するマスク手
段と、第(k+1)’行を第(k−1)’修正行のビッ
トが0でない部分をマスクしてこのマスク部分を0ビッ
トとし、このマスクした行と第(k−1)’修正行との
論理和をとって第k′修正行を作る修正行作成手段とを
備え、第k行を求めるにあたシ、前記マスク手段により
第k′行〜第(k+n)’行を求め、前記修正行作成手
段により第k′修正行から順次第(k+n−1)’修正
行を求めこの第(k+n 1)’修正行を第k行とし
、θ行よりN−1行まで求めてN行×N列の行列を求め
この行列を回転ブロックとするようにするとよい。
大きさのブロックに分割し、このプロンクについて、シ
フト,縮小,拡大, 90度回転,ローティト等操作
をブロックを構成する行列の行単位で行うようにすれば
よく、本発明の画像の任意角回転方法は、基準座標軸上
の基準点に対し元画像を任意角θ回転し目的画像を作成
するに際し、前記元画像をN×Nの画素よりなり前記基
準座標軸に対し−θ回転した軸に1辺が平行な正方形よ
りなる基準ブロックの集合体として表し、前記各基準ブ
ロックの頂点の1つを回転頂点とし、これを中心に前記
各基準ブロックをθ回転して回転ブロックを作成し、こ
の回転ブロックの前記回転頂点を前記基準点を中心とし
てθ回転した時生じる前記基準座標軸方向の移動量を△
Y,前記基準座標軸に直角方向の移動量をΔYとし、前
記回転ブロックを前記基準座標軸方向に△Y,前記基準
座標軸に直角方向にΔXそれぞれ平行移動することによ
り目的画像を得ることを特徴とするものである。また、
前記基準ブロックより前記回転ブロックを作成するに際
し、前記回転頂点を通り前記基準座標軸に平行な軸をY
軸としこれを直交し前記回転頂点を通る軸をX軸とし前
記基準ブロックを構成する要素のX軸,Y軸の座標を(
x,y)として前記要素のX座標を x − y * tanθとなるようX軸方向にシフト
し、更にX軸方向にcosθ倍して x cosθ−y*sinθとし八 次にy座標をY軸方向に1/cosθ倍しy / c+
)sθとして ( x cosθ−y * sinθe y / co
sθ)座標に移動することにより前記基準ブロックを前
記回転ブロックのX軸,Y軸方向の長さと同じでかつY
軸方向に三角形状に前記回転ブロックより一方がはみ出
し、他方が凹んだ平行四辺形に形成し、この三角形状に
はみ出した部分ではX軸に平行な行ビット並びごとに読
み出し、はみ出しだ三角形状部が凹んだ三角形状部に重
なるように、この読み出しだ行ピット並びと凹んだ三角
形状部の対応する行ビット並びとの論理和をとって前記
回転ブロックの形状に合致したN行×N列よりなる行列
とし、このN行×N列の行列の転置行列を求め、この転
置行列の各行につき前記三角形状にはみ出した部分のビ
ットが行の左端より右端に向かって並んでいる行につい
てはその並んでいるはみ出したビット数だけ左ローティ
トを行ってローティト画像を得、このローティト画像の
転置行列を演算し、この転置行列を前記回転ブロックと
するようにするとよい。そして、前記転置行列を求める
にあたシ、対象とする行列をN行×N列とし、この行列
の変換モード数Mを M = ( 1og2 N ) (但し〔 〕は内部の数値が整数のときはその整数を、
少数点以下の数値を含むときは切り上げた整数)によっ
て求め、前記N行を0〜N−1と付番し、変換モードL
(=1〜M)ごとに、A番行とB番行を、 A=k*2〜k$2 +2 −1 B=A+2L−1 k=0〜(N/2L) −1 によって求め、A番行とB番行の行ピット並びをA(j
), B(j)で表し、−1A′(j), B’(j
)を−1A′(j)=A(j) j=k*2L=kネ2L+ 2L−” − 1−1A′
(j)一B (j−2 ) j=kネ2L+2L−1〜k$2L+2L−1B ’(
j) = B (j) j=kネ2L+ 2L−”〜k$2L+2L−1B ’
(j)−4 ( j + 2L−1)?=k*2 〜k
!2 +2 −1k=0〜(N/2 )−1 によって求め、A(j)を−1A′(j)にB (j)
をB ’ (j)に変換し、Lを1からMまで変化させ
ることによりN行×N列の行列を求め、この行列を前記
転置行列とするとよい。また、前記基準ブロックより前
記回転ブロックを作成するに際し、前記回転頂点を通り
前記基準座標軸に平行な軸をY軸としこれを直交し前記
回転頂点を通る軸をX軸とし前記基準ブロックを構成す
る要素のX軸,Y軸の座標を(x,y)として前記要素
のX座標をx−3’*tanθとなるようX軸方向にシ
フトし、更にX軸方向にcosθ倍して x cosθ−y*sioθとし1 次にy座標をY軸方向に1 / c■sθ倍しy/co
sθとして ( X cOsθ−y*sinθ,y/COSθ)座標
に移動することにより前記基準ブロックを前記回転ブロ
ックのX軸,Y軸方向の長さと同じでかつ前記回転ブロ
ックより三角形状にY軸下方にはみ出し、上方が凹んだ
平行四辺形を形成し、この三角形がX軸に平行な行ビッ
ト並びn行で形成される場合、n+N行で形成される前
記平行四辺形の各行を0〜n + N−1と付番し、n
+1行×N列よりなシ前記三角形状に凹んだ範囲を0,
他を1とするマスク行列を作成し、第0行を求めるに当
たり、まず第0行〜第n行と前記マスク行列との論理積
により第0′行〜第n′行を作成し、第1′行を、第0
′行のビットがOでない部分をマスクしてこのマスク部
分をθピットとし、このマスクした行と第0′行との論
理和をとって第0′修正行を作り、第2′行を第0′修
正行のビットが0でない部分をマスクしてこのマスク部
分を0ビットとし、このマスクした行と第0′修正行と
の論理和をとって第1′修正行を作り、第3′行を第1
′修正行のビットがOでない部分をマスクしてこのマス
ク部分を0ピットとし、このマスクした行と第1′修正
行との論理和をとって第2′修正行を作り、以下同様に
して第n′行を第(n−2)’ 修正行のビットが0で
ない部分をマスクしてこのマスクした部分をθピットと
し、このマスクした行と第(n−2)’修正行との論理
和をとって第(n−1)′修正行を作り、この第(n−
1)’修正行を第0行とし、以下同様にしてN−1行ま
で求めてN行×N列の行列を求め、この行列を前記回転
ブロックとするとよい。また、本発明の画像の任意角回
転装置は、元画像を基準座標軸に対して−θ回転した軸
に一辺が平行なN×Nの画素の正方形よりなる基準ブロ
ックの集合体として表す基準ブロック生成手段と、前記
基準ブロックをθ回転して回転ブロックを作成するに際
し、回転中心となる萌記基準ブロックの頂点の1つを回
転頂点としこの回転頂点を通多前記基準座標軸に平行な
軸をY軸としこれと直交し前記頂点を通る軸をX軸とし
前記基準ブロックを構成する要素のX軸.Y軸の座標を
x、yとし、前記要素のX座標をX一y * tanθ
となるようX軸方向にシフトするX軸方向シフト手段と
、このX軸方向シフト手段の出力をX軸方向にcosθ
倍するX軸方向縮小手段と、y座標をl/cosθ倍す
るY軸方向拡大手段と、前記X軸方向縮小手段と前記Y
軸方向拡大手段の出力により形成されるY軸方向に平行
な2辺を有する平行四辺形を形成する行列の各列をY軸
方向にシフトして回転ブロックを作成する回転プロンク
作成手段と、前記回転ブロックの前記回転頂点を、前記
元画像を回転する回転中心となる前記基準座標軸上の基
準点を中心としてθ回転する時の前記基準座標軸方向の
移動量と前記基準座標軸に直角方向の移動量を算出し、
前記回転ブロックを移動する移動手段とを備えたことを
特徴とするものである。また、前記回転ブロック作成手
段を、前記平行四辺形の前記回転ブロックよりはみ出し
た三角形状部分をX軸に平行な行ビット並びごとに読み
出し、はみ出した三角形状部がこれに対応して前記回転
ブロックより凹んだ三角形状部に重なるようにこの読み
出した行ビット並びと、凹んだ三角形状部の対応する行
ビット並びとの論理和をとって前記回転ブロックの形状
に合致した行列を生成する行列生成手段と、行列の各行
について行のローティトを行うローティト手段と、行列
の転置行列を作成する転置行列作成手段とを備え、前記
行列生成手段の出力を前記転置行列作成手段に入力して
転置行列を出力し、この行列を前記ローティト手段で各
行について前記三角形状にはみ出した部分のビットが行
の左端より右端に向かって並んでいる行についてはその
並んでいるはみ出したビット数だけ左ローティトを行い
、これにより作成した行列を前記転置行列作成手段に入
力して転置行列を出力し、この行列を前記回転ブロック
の値とするようにするとよい。さらに、前記転置行列作
成手段を、画像データを記憶する画像データ記憶手段と
、N行×N列の画像データの変換モード数Mを M=(log2N) (但し〔 〕は内部の数値が整数のときはその整数を、
少数点以下の数値を含むときは切り上げた整数)によっ
て求め変換モードL(=1〜M)を出力する変換モード
演算手段と、前記N行を1〜N−1と付番し、前記変換
モードLに応じて前記N行よりA番行とB番行を A=k本2 〜k$2 +2 −1B=A+2L
−1 k=0〜(N/2L) −1 により演算し、このA番行とB番行の行ビソト並びA(
j), B(j)を選択する行選択手段と、前記A(
j), B(j)を入力し、−1A′(j), B’(
j)をA ’ (j) = A (j)J=kネ2 〜
kネ2+2 −1 −1A′(j)= B ( j−2L−” )j=k*
2 +2 〜k$2 +2 −1n’(j)一B(j
) J二k申2+2 〜kネ2 +2 −1B’(j)一A
(j+2L) j=k*2 〜k本2+2 −1k=0〜(N/
2L) −1 によって演算し、前記画像データのA(j), B(j
)をそれぞれ−1A′(j), B’(j)に変換し、
この操作をLを1からMまで変化させることによりN行
×N列の行列を求める画像変換手段とからなるようにす
るとよい。また、前記回転ブロック作成手段として、前
記平行四辺形が前記回転ブロックより三角形状にY軸下
方にはみ出し、上方が凹んだ平行四辺形であυ、この三
角形がX軸に平行なビット並びn行で形成される場合、
n+N行で形成される前記平行四辺形の各行を0−n+
N 1と付番し、n千1行×N列よりなり前記三角形
状に凹んだ範囲を0,他を1とするマスク行列とk行か
らk + n行までのn + 1行×N列との論理積に
より第k′行〜第(k+n)’ 行を作成するマスク手
段と、第(k+1)’行を第(k−1)’修正行のビッ
トが0でない部分をマスクしてこのマスク部分を0ビッ
トとし、このマスクした行と第(k−1)’修正行との
論理和をとって第k′修正行を作る修正行作成手段とを
備え、第k行を求めるにあたシ、前記マスク手段により
第k′行〜第(k+n)’行を求め、前記修正行作成手
段により第k′修正行から順次第(k+n−1)’修正
行を求めこの第(k+n 1)’修正行を第k行とし
、θ行よりN−1行まで求めてN行×N列の行列を求め
この行列を回転ブロックとするようにするとよい。
作用
まず本発明の基本的な考え方を第1図を用いて説明する
。
。
元画像100を基準座標軸101上の基準点102のま
わりに任意角θ回転して破線で示す目的画像103を得
るものとする。
わりに任意角θ回転して破線で示す目的画像103を得
るものとする。
まず、元画像100を、基準座標軸101を−θ回転し
た軸に一辺が平行な正方形でN×Nの画素からなる基準
ブロック104の集合体として表す。
た軸に一辺が平行な正方形でN×Nの画素からなる基準
ブロック104の集合体として表す。
次に各基準ブロック104をその頂点の1つを回転頂点
106として、これを中心にθ回転し、回転ブロック1
05を作成する。
106として、これを中心にθ回転し、回転ブロック1
05を作成する。
次にこの回転ブロック105の回転頂点106を基準点
102を中心としてθ回転した時生じる基準座標軸10
1方向の移動量△Y,基準座標軸101に直角方向の移
動量△Xを算出し、回転ブロック105を基準座標軸1
01方向に△Y,基準座標軸101に直角方向に△X1
それぞれ平行移動する。
102を中心としてθ回転した時生じる基準座標軸10
1方向の移動量△Y,基準座標軸101に直角方向の移
動量△Xを算出し、回転ブロック105を基準座標軸1
01方向に△Y,基準座標軸101に直角方向に△X1
それぞれ平行移動する。
このようにすると回転頂点106は点107に移動する
。このように各基準ブロック104が移動した集合体が
破線で示す目的画像103を構成するので元画像100
を任意角θ回転することができる。次に基準ブロック1
04を回転して回転ブロック105を作成する方法につ
いて第2図〜第7図を用いて説明する。
。このように各基準ブロック104が移動した集合体が
破線で示す目的画像103を構成するので元画像100
を任意角θ回転することができる。次に基準ブロック1
04を回転して回転ブロック105を作成する方法につ
いて第2図〜第7図を用いて説明する。
第2図において、正方形の基準ブロック104内のすべ
ての点を、正方形の1辺である直線01Kl上の点をX
軸に平行に移動(シフト)シて直線0+ K2上に移
すように移動する。
ての点を、正方形の1辺である直線01Kl上の点をX
軸に平行に移動(シフト)シて直線0+ K2上に移
すように移動する。
回転角をθ,基準ブロック104内の任意の点の座標X
+ yy移動後の座標をX,YとするとX,Y=x−y
*TANθ,y 以上の変換を実施すると基準ブロック104は第3図に
示す平行四辺形Aとなる。
+ yy移動後の座標をX,YとするとX,Y=x−y
*TANθ,y 以上の変換を実施すると基準ブロック104は第3図に
示す平行四辺形Aとなる。
次に第3図において平行四辺形Aの1辺m1が回転ブロ
ック105の1辺m2と重なるように平行四辺形A内の
各点をX軸方向に圧縮する。これにより各点の座標X,
Yは、 X,Y= (x y*’rANθ>COSθ,yx*
cosθ−yネSINθ,y 以上の変換を実行すると平行四辺形Aは第4図に示す平
行四辺形Bに変形する。
ック105の1辺m2と重なるように平行四辺形A内の
各点をX軸方向に圧縮する。これにより各点の座標X,
Yは、 X,Y= (x y*’rANθ>COSθ,yx*
cosθ−yネSINθ,y 以上の変換を実行すると平行四辺形Aは第4図に示す平
行四辺形Bに変形する。
次に第4図において平行四辺形BoP点がQ点と重なる
ように平行四辺形Bt−Y軸方向に拡大する。これによ
り各点の座標X,Yは、 X,Y=x*COSθ−y*SINθ,3’/COSθ
以上の変換を実行すると平行四辺形Bは第5図に示す平
行四辺形Cに変形する。
ように平行四辺形Bt−Y軸方向に拡大する。これによ
り各点の座標X,Yは、 X,Y=x*COSθ−y*SINθ,3’/COSθ
以上の変換を実行すると平行四辺形Bは第5図に示す平
行四辺形Cに変形する。
第5図において、b点がC点,f点がg点に重なるよう
に平行四辺形C内のすべての点をY軸方向に移動(シフ
ト)すると回転ブロック105の位置に回転が完了する
。
に平行四辺形C内のすべての点をY軸方向に移動(シフ
ト)すると回転ブロック105の位置に回転が完了する
。
各点の座標X,Yは、
X=x*COSθ一y*SINθ
Y=y*/COSo十(XネCOSθ−y*SINθ)
*TANθ =x*SINθ+y*cosθ となり、これは従来の技術の項で説明した式と一致する
。
*TANθ =x*SINθ+y*cosθ となり、これは従来の技術の項で説明した式と一致する
。
ところで、通常のメモリの構造はX軸方向つまシ行方向
のビット並びはワード単位などで一緒に読み込んだシ書
き込んだシすることができるが、Y軸方向つまり列方向
のビット並びは、1ビットづつでないと読み出し、書き
込みができない。特別なメモリ構造を採用すれば列方向
も複数ビット単位の処理ができるがそのようにすると回
路構成が大きく複雑になる。このようなメモリの特性か
ら考えると第5図に示す平行四辺形Cの作成までは、シ
フトと拡大,縮小処理なので通常のメモリで行単位での
ビット処理が可能であるが、平行四辺形CをY軸に平行
にシフトして回転ブロック105に合致される処理は1
ビット処理となシ、迅速な処理ができない。そこで本発
明は、通常のメモリを用いてこの平行四辺形CをY軸に
平行にシフトする方法を次に示すように2通りの方法で
実施する。
のビット並びはワード単位などで一緒に読み込んだシ書
き込んだシすることができるが、Y軸方向つまり列方向
のビット並びは、1ビットづつでないと読み出し、書き
込みができない。特別なメモリ構造を採用すれば列方向
も複数ビット単位の処理ができるがそのようにすると回
路構成が大きく複雑になる。このようなメモリの特性か
ら考えると第5図に示す平行四辺形Cの作成までは、シ
フトと拡大,縮小処理なので通常のメモリで行単位での
ビット処理が可能であるが、平行四辺形CをY軸に平行
にシフトして回転ブロック105に合致される処理は1
ビット処理となシ、迅速な処理ができない。そこで本発
明は、通常のメモリを用いてこの平行四辺形CをY軸に
平行にシフトする方法を次に示すように2通りの方法で
実施する。
まず一方の方法を第6図を用いて説明する。
第6図においてステップ1は第5図の状態と同じである
。平行四辺形Cの三角形abcを上方の三角形部に移動
する。移動は行単位で行いO行を0′行へ2行を2′行
へと移動すると、三角形abeは上部に移システップ2
に示すように正方形の行列となる。次にステップ20行
列の転置行列をとったのがステップ3である。ステップ
3において三角形の部分は図示した位置に移動する。次
に左ローティトシフトを行い三角形abcの部分をすべ
て右側にくるようにするとステップ4が得られる。この
ステップ4の行列の転置行列をとるとステップ5に示す
状態となる。この時の三角形部は図示するようにbの位
置がステップIのCの位置に移動している。
。平行四辺形Cの三角形abcを上方の三角形部に移動
する。移動は行単位で行いO行を0′行へ2行を2′行
へと移動すると、三角形abeは上部に移システップ2
に示すように正方形の行列となる。次にステップ20行
列の転置行列をとったのがステップ3である。ステップ
3において三角形の部分は図示した位置に移動する。次
に左ローティトシフトを行い三角形abcの部分をすべ
て右側にくるようにするとステップ4が得られる。この
ステップ4の行列の転置行列をとるとステップ5に示す
状態となる。この時の三角形部は図示するようにbの位
置がステップIのCの位置に移動している。
つまシすべての図形がY軸方向に平行移動した図形とな
シ、回転ブロック105が得られたことになる。
シ、回転ブロック105が得られたことになる。
他の方法を第7図を用いて説明する。
本方法は平行四辺形Cの行列を正方形の行列にする処理
を表すもので、k行をA×××よりABCDの行に変換
する方法を示したものである。
を表すもので、k行をA×××よりABCDの行に変換
する方法を示したものである。
ステップ1において、三角形部の大きさより定まるマス
ク1をk行よりマスク1の大きさにより決まる行までか
け右端の行列を得る。ステンプ2では、マスク2を(k
+1)’ 行にかぶせ右端の行を得る。ステップ3でk
′行とステップ2で得た行との論理和をとシ右端の行を
得る。ステップ4でマスク3を(k+2)’行にかぶせ
右端の行を得、ステップ5でこの行とステノプ3で得た
行との論理和をとり右端の行を得る。ステップ6でマス
ク4を(k+3)’行にかぶせ右端の行を得、ステップ
7てこの行とステップ5で得た行との論理和をとり、求
める行ABCDを得る。このような処理を各行について
行うことにより、平行四辺形CをY軸に平行移動したと
同じ結果が得られ回転ブロック105が得られる。
ク1をk行よりマスク1の大きさにより決まる行までか
け右端の行列を得る。ステンプ2では、マスク2を(k
+1)’ 行にかぶせ右端の行を得る。ステップ3でk
′行とステップ2で得た行との論理和をとシ右端の行を
得る。ステップ4でマスク3を(k+2)’行にかぶせ
右端の行を得、ステップ5でこの行とステノプ3で得た
行との論理和をとり右端の行を得る。ステップ6でマス
ク4を(k+3)’行にかぶせ右端の行を得、ステップ
7てこの行とステップ5で得た行との論理和をとり、求
める行ABCDを得る。このような処理を各行について
行うことにより、平行四辺形CをY軸に平行移動したと
同じ結果が得られ回転ブロック105が得られる。
実施例
以下本発明の一実施例を第1図〜第16図を用いて説明
する。
する。
第8図は本発明の実施例の構成を示すブロック図である
。
。
基準ブロック生成手段1は元画像100を第1図で説明
したように基準座標軸101に対して−θ(ここでθと
は元画像100をθ回転して目的画像103を作成する
場合の回転角)回転した軸に一辺が平行なN×Nの画素
からなる基準ブロック104の集合として構成するよう
、この構成要素たる基準ブロック104を生成する手段
である。X軸方向シフト手段2は、第1図で説明したよ
うに基準ブロック104の頂点の1つを回転頂点106
とし、この回転頂点106を通り基準座標軸101に平
行な軸をY軸とし、これを直交し、回転頂点106を通
る軸をX軸とし、基準ブロック104を構成する要素の
X軸,Y軸の座標をxe’lとし、第2図で説明したよ
うに基準ブロック104の1辺である直線01−Kl上
の点をX軸に平行に移動してY軸上の直線01−K2に
移すよう、基準ブロック104内のすべての点を移動し
第3図に示す平行四辺形Aを作成する手段である。この
とき基準ブロック104内の点X+yはX, Yで表さ
れ X,Y=x*TANθ,yとなる。
したように基準座標軸101に対して−θ(ここでθと
は元画像100をθ回転して目的画像103を作成する
場合の回転角)回転した軸に一辺が平行なN×Nの画素
からなる基準ブロック104の集合として構成するよう
、この構成要素たる基準ブロック104を生成する手段
である。X軸方向シフト手段2は、第1図で説明したよ
うに基準ブロック104の頂点の1つを回転頂点106
とし、この回転頂点106を通り基準座標軸101に平
行な軸をY軸とし、これを直交し、回転頂点106を通
る軸をX軸とし、基準ブロック104を構成する要素の
X軸,Y軸の座標をxe’lとし、第2図で説明したよ
うに基準ブロック104の1辺である直線01−Kl上
の点をX軸に平行に移動してY軸上の直線01−K2に
移すよう、基準ブロック104内のすべての点を移動し
第3図に示す平行四辺形Aを作成する手段である。この
とき基準ブロック104内の点X+yはX, Yで表さ
れ X,Y=x*TANθ,yとなる。
X軸方向縮小手段3は第3図で示した平行四辺形Aを第
4図で示す平行四辺形BになるようX軸方向に縮小する
手段である。
4図で示す平行四辺形BになるようX軸方向に縮小する
手段である。
これにより縮小後の座標X,Yは、
X.Y=x*COSθ−y*SINθ,yとなる。
このX軸方向への縮小の具体例を第9図に示す。
第9図において、ソーヌデータは縮小前の行データであ
り、縮小率が2/3であるとすると、縮小処理後データ
に示すようにソースデータの9ビットのうち3ビットを
間引いた6ビットの行データとなる。
り、縮小率が2/3であるとすると、縮小処理後データ
に示すようにソースデータの9ビットのうち3ビットを
間引いた6ビットの行データとなる。
Y軸方向拡大手段4は、第4図の平行四辺形BをY軸方
向に拡大し第5図に示す平行四辺形Cにする手段である
。これにより拡大後の座標X,YはX,Y=x*COS
θ−y*SINθ,y/COSθとなる。
向に拡大し第5図に示す平行四辺形Cにする手段である
。これにより拡大後の座標X,YはX,Y=x*COS
θ−y*SINθ,y/COSθとなる。
第lO図はY軸方向への拡大処理の具体例を示す。
第10図において、ソースデータは拡大前の各行を示し
、拡大率を1.5倍とすると、ンースデータの4行に0
ラインと2ラインを追加して、6行のデータとし拡大処
理後データに示すようにしたものである。
、拡大率を1.5倍とすると、ンースデータの4行に0
ラインと2ラインを追加して、6行のデータとし拡大処
理後データに示すようにしたものである。
回転ブロック作成手段5は第5図で示した平行四辺形C
を形成する行列の各列をY軸方向にシフトして第1図に
示す回転ブロック105を作成する手段であシ、詳細は
後述する。
を形成する行列の各列をY軸方向にシフトして第1図に
示す回転ブロック105を作成する手段であシ、詳細は
後述する。
移動手段6は、第1図に示すように回転ブロック105
0回転頂点106を、元画像100を回転する回転中心
となる基準点102を中心としてθ回転する時の基準座
標軸101方向の移動量ΔY,基準座標軸101に直角
方向の移動量ΔXを算出し、各回転ブロック105を移
動する手段で、これにより元画像100はθ回転され目
的画像103となる。次に回転ブロック生成手段5の詳
細について説明する。
0回転頂点106を、元画像100を回転する回転中心
となる基準点102を中心としてθ回転する時の基準座
標軸101方向の移動量ΔY,基準座標軸101に直角
方向の移動量ΔXを算出し、各回転ブロック105を移
動する手段で、これにより元画像100はθ回転され目
的画像103となる。次に回転ブロック生成手段5の詳
細について説明する。
本発明では回転ブロック生成手段5について2つの方法
の技術を開示する。まず第1の方法を第11図〜第13
図を用いて説明する。
の技術を開示する。まず第1の方法を第11図〜第13
図を用いて説明する。
第11図は回転ブロック生成手段5の構成を示すブロッ
ク図で、行列生成手段51は第5図で示したように平行
四辺形Cの回転ブロック105よりはみ出した三角形状
部分abcをX軸に平行な行ビット並びごとに読み出し
、回転ブロック105より凹んだ三角形状部分efgに
重なるよう、この読み出した行ビット並びを凹んだ三角
形状部に書き込む手段である。第12図(a). (b
)はこの具体例を表したものでこれについて説明する。
ク図で、行列生成手段51は第5図で示したように平行
四辺形Cの回転ブロック105よりはみ出した三角形状
部分abcをX軸に平行な行ビット並びごとに読み出し
、回転ブロック105より凹んだ三角形状部分efgに
重なるよう、この読み出した行ビット並びを凹んだ三角
形状部に書き込む手段である。第12図(a). (b
)はこの具体例を表したものでこれについて説明する。
(a)図は平行四辺形Cを表す行列である。下線のつい
たビットがはみ出した三角形を構成するビットである。
たビットがはみ出した三角形を構成するビットである。
(a)図の行列に対して次の操作を行う。
■ アンダーラインを付加された第8行の行データ(
震一互坦−6L竺一旺)を読み出す。次にこの行データ
を書き込むべき場所のデータ第0行(0001
)を読み出し、この2つの行データの
論理和をとシ第0行に書き込む。
震一互坦−6L竺一旺)を読み出す。次にこの行データ
を書き込むべき場所のデータ第0行(0001
)を読み出し、この2つの行データの
論理和をとシ第0行に書き込む。
■ 次に第9行データ( 74 75
呈)を読み出し、この行データを書き込むべき第1行の
データ(1o 11 02 03 )を
読み出し、この2つの行データの論理和をとシ第1行に
書き込む。
呈)を読み出し、この行データを書き込むべき第1行の
データ(1o 11 02 03 )を
読み出し、この2つの行データの論理和をとシ第1行に
書き込む。
■ 第io行データ( 工IO
を読み出し、この行データを書き込べき第2行のデータ
(20 21 12 13 04 05
)を読み出し、この2つの行データの論理和をと
9第2行に書き込む。
を読み出し、この行データを書き込べき第2行のデータ
(20 21 12 13 04 05
)を読み出し、この2つの行データの論理和をと
9第2行に書き込む。
以上の処理によ原b)図の行列ができる。
次に転置行列作成手段52によ,? (b)図の転置行
列を作成すると(c)図のようになる。転置行列の作成
については第13図を用いて後述する。次に(c)図に
おいて下線のついたビットを有する行について、ローテ
ィト手段53により、下線の付いたビットがすべて右側
にゆくまで左ローティトを行う。この結果(ω図が得ら
れる。この処理は次の手順で行われる。(e)図Kおい
て、 ■ 第2行のデータ(一η02 12 22 32 4
2 5262)を読み出す。下線のついたビットの数で
ある1ビットだけ左ローティトを行いこの結果(021
2 22 32 42 52 62ヱυを元の第2行に
書き込む。
列を作成すると(c)図のようになる。転置行列の作成
については第13図を用いて後述する。次に(c)図に
おいて下線のついたビットを有する行について、ローテ
ィト手段53により、下線の付いたビットがすべて右側
にゆくまで左ローティトを行う。この結果(ω図が得ら
れる。この処理は次の手順で行われる。(e)図Kおい
て、 ■ 第2行のデータ(一η02 12 22 32 4
2 5262)を読み出す。下線のついたビットの数で
ある1ビットだけ左ローティトを行いこの結果(021
2 22 32 42 52 62ヱυを元の第2行に
書き込む。
■ 第3行のデータ(ユ03 13 23 33 34
4353 63)を読み出し、1ビット左ローテイ
トし、その結果(03 13 23 33 43 53
63 73)を元の第3行に書き込む。
4353 63)を読み出し、1ビット左ローテイ
トし、その結果(03 13 23 33 43 53
63 73)を元の第3行に書き込む。
以下第4行〜第6行まで同様に行う。
■ 第7行のデータ(且恒−77 07 17 27
3747)を読み出し下線のついだビット数である3ビ
ット左ローティトしその結果(07 17 27 37
47 57 67 77 )を第7行に書き込む。
3747)を読み出し下線のついだビット数である3ビ
ット左ローティトしその結果(07 17 27 37
47 57 67 77 )を第7行に書き込む。
次に(d)図の行列を再び転置行列作成手段52で転置
行列とすると(e)図が得られる。この(e)図に示す
行列が(a)図をY軸方向に各列毎にシフトして得られ
る行列であシ、回転ブロック105を表している。
行列とすると(e)図が得られる。この(e)図に示す
行列が(a)図をY軸方向に各列毎にシフトして得られ
る行列であシ、回転ブロック105を表している。
次に13図を用いて転置行列を作成する方法について説
明する。
明する。
画像データ記憶手段521は画像データを記憶する。変
換モード演算千段522は画像データ記憶千段521に
N行×N列の画像データが記憶されている場合、この変
換モード数Mを次の式で算出する。
換モード演算千段522は画像データ記憶千段521に
N行×N列の画像データが記憶されている場合、この変
換モード数Mを次の式で算出する。
M = ( logz N )
但し〔 〕は内部の数値が整数のときはその整数を、少
数点以下の数値を含むときは切り上げた整数を表す。変
換モード数Mを求めた後、変換モードLの値を1からM
まで出力する。
数点以下の数値を含むときは切り上げた整数を表す。変
換モード数Mを求めた後、変換モードLの値を1からM
まで出力する。
行選択手段523は変換モード演算手段522の出力す
る変換モードLの値に応じて、前記N行×N列の行番を
0〜N−1と付番するとして、N行の中からA番行とB
番行とを次の式により定める。
る変換モードLの値に応じて、前記N行×N列の行番を
0〜N−1と付番するとして、N行の中からA番行とB
番行とを次の式により定める。
A=k本2 〜k*2 +2 −1B=A+2L
−1k=0〜(N/2)−1
このA番行とB番行のビット並びをA(j), B(j
)(ここでj=o〜N−1)を選択する。
)(ここでj=o〜N−1)を選択する。
画像変換手段524はこのA(j). B(j)を入力
し、A′(j), B’(j)を次の式で求める。
し、A′(j), B’(j)を次の式で求める。
A ′(j) = A (j)
L L−1
j=k寧2 〜k率2+2 −I
−1A′(j)=B (j−2 )L L
−I L Lj=kネ2 +
2 〜k$2 +21 B’(j)=B(j) j=k*2 千2 〜k本2+2 B’(j)=A (j+2 ) 1 j=k$2〜k$2 +2 −1 k=0〜(N/2)−1 そして、画像データA(j), B(j)をそれぞれ
A ’ (j),B’(j)に変換する。この操作を変
換モードLを1からMtで変化させて行うことによりN
行×N列の行列が求まる。この行列が転置行列である。
−I L Lj=kネ2 +
2 〜k$2 +21 B’(j)=B(j) j=k*2 千2 〜k本2+2 B’(j)=A (j+2 ) 1 j=k$2〜k$2 +2 −1 k=0〜(N/2)−1 そして、画像データA(j), B(j)をそれぞれ
A ’ (j),B’(j)に変換する。この操作を変
換モードLを1からMtで変化させて行うことによりN
行×N列の行列が求まる。この行列が転置行列である。
なお、転置行列を求める方法は多くの技術が公開されて
いるので、これらの方法を用いてもよい。
いるので、これらの方法を用いてもよい。
次に回転ブロック生成手段5の第2方法について第14
図〜第16図を用いて説明する。
図〜第16図を用いて説明する。
第14図は回転プロンク生成手段5を構成するフロック
図である。マスク十段54は、第5図に示した平行四辺
形Cが三角形状にY軸下方にはみ出している部分abc
がX軸に平行な行ビット並びでn行で形成され、回転ブ
ロック105がN行×N列で形成される場合、n+N行
で形成される平行四辺形Cの各行を0 − n + N
− 1と付番し、n + 1行×N列よりなり三角形
abcの部分を0,他を1とするマスク行列を作成し、
平行四辺形COk行からk+n行までのn+1行×N列
との論理積により第k′行〜第(k+n)’行を作成す
る。これを第15図の具体例で説明する。第15図のス
テソプ1において、左端の行列は、第5図の平行四辺形
Cを表している。回転ブロック105は8行×8列の行
列であシ三角形部abcは3行×8列の行列である。故
にマスク行列は中央のマスク1に示すように4行×8列
のようになる。そして、このマスク1を、平行四辺形C
の第3行〜第7行に対して適用したのがステップ1であ
り、右端に示すように三角形部分に相幽するところが0
となる4行×8列の行列が得られる。修正行作成千段5
5はマスク千段54によって得られた第(k+1)’を
、第(k−1)’修正行(これは第k′行に等しい)の
ビットが0でない部分をマスクして、このマスクした部
分を0ビットとし、このマスクした行と第1−1)’
修正行との論理和をとって第k′修正行を算出し、これ
を用いて順次第(k+n−1)’修正行を求め、この第
(k+n−1)’修正行をk行とし、0行よりN−1行
まで求めてN行×N列の行列を求める。この行列が回転
ブロック105となる。
図である。マスク十段54は、第5図に示した平行四辺
形Cが三角形状にY軸下方にはみ出している部分abc
がX軸に平行な行ビット並びでn行で形成され、回転ブ
ロック105がN行×N列で形成される場合、n+N行
で形成される平行四辺形Cの各行を0 − n + N
− 1と付番し、n + 1行×N列よりなり三角形
abcの部分を0,他を1とするマスク行列を作成し、
平行四辺形COk行からk+n行までのn+1行×N列
との論理積により第k′行〜第(k+n)’行を作成す
る。これを第15図の具体例で説明する。第15図のス
テソプ1において、左端の行列は、第5図の平行四辺形
Cを表している。回転ブロック105は8行×8列の行
列であシ三角形部abcは3行×8列の行列である。故
にマスク行列は中央のマスク1に示すように4行×8列
のようになる。そして、このマスク1を、平行四辺形C
の第3行〜第7行に対して適用したのがステップ1であ
り、右端に示すように三角形部分に相幽するところが0
となる4行×8列の行列が得られる。修正行作成千段5
5はマスク千段54によって得られた第(k+1)’を
、第(k−1)’修正行(これは第k′行に等しい)の
ビットが0でない部分をマスクして、このマスクした部
分を0ビットとし、このマスクした行と第1−1)’
修正行との論理和をとって第k′修正行を算出し、これ
を用いて順次第(k+n−1)’修正行を求め、この第
(k+n−1)’修正行をk行とし、0行よりN−1行
まで求めてN行×N列の行列を求める。この行列が回転
ブロック105となる。
次に、これを第15図、第16図により具体的に説明す
る。
る。
第15図のステノプ2において、マスク2は第(3−1
)′修正行、っまシステノプ1の右端行列の第3′行の
ビントが0でない部分を0とし他を1としたマスクであ
り、これを第4′行にマスクした結果が右端に示す行列
となる。ステップ3において、第(3−1)’ 修正行
とステップ2において得られた行との論理和を求め、得
られた行が第3′修正行である。ステップ4では第3′
修正行のビットが0でない部分を01他を1とするマス
ク3で第5′行をマスクしこれによって得られた行をス
テップ5で第3′修正行と論理和をとると第4′修正行
が得られる。そしてステノプ6で第4′修正行のビット
が0でない部分を01他を1とするマスク4で第6′行
をマスクし、これによって得られた行をステノプ7で第
4′修正行と論理和をとると第5′修正行が得られる。
)′修正行、っまシステノプ1の右端行列の第3′行の
ビントが0でない部分を0とし他を1としたマスクであ
り、これを第4′行にマスクした結果が右端に示す行列
となる。ステップ3において、第(3−1)’ 修正行
とステップ2において得られた行との論理和を求め、得
られた行が第3′修正行である。ステップ4では第3′
修正行のビットが0でない部分を01他を1とするマス
ク3で第5′行をマスクしこれによって得られた行をス
テップ5で第3′修正行と論理和をとると第4′修正行
が得られる。そしてステノプ6で第4′修正行のビット
が0でない部分を01他を1とするマスク4で第6′行
をマスクし、これによって得られた行をステノプ7で第
4′修正行と論理和をとると第5′修正行が得られる。
この第5′修正行をステップ1に示す第3行とする。こ
のような操作をステップ1の0−N−1行まで行うこと
により、ステップ8に示す8行×8列の行列が得られ、
この行列が回転ブロック105である。
のような操作をステップ1の0−N−1行まで行うこと
により、ステップ8に示す8行×8列の行列が得られ、
この行列が回転ブロック105である。
なお、回転ブロック生成千段5として、第1の方法を用
いるか第2の方法を用いるかの判断基準として、1度に
回転するビント数が少ない場合や、回転角θが小さい場
合は第2の方法の方が高速に実行でき、他の場合は第1
の方法を用bた方が高速に実行できる。
いるか第2の方法を用いるかの判断基準として、1度に
回転するビント数が少ない場合や、回転角θが小さい場
合は第2の方法の方が高速に実行でき、他の場合は第1
の方法を用bた方が高速に実行できる。
発明の効果
以上の説明から明らかなように、本発明は元画像を所定
の大きさのブロックに分割し、このブロックについてシ
フト,縮小,拡大,行の入れ換え,90度回転,ローテ
ィトなど、行単位しての操作を行うことにより、通常の
構造のメモリを用いて、画像の任意角回転を迅速に行う
ことができる。
の大きさのブロックに分割し、このブロックについてシ
フト,縮小,拡大,行の入れ換え,90度回転,ローテ
ィトなど、行単位しての操作を行うことにより、通常の
構造のメモリを用いて、画像の任意角回転を迅速に行う
ことができる。
第1図は本発明の原理を示す図、第2図はX軸方向シフ
ト手段の説明図、第3図はX軸方向縮小手段の説明図、
第4図はY軸方向拡大手段の説明図、第5図は第2〜第
4図に示す手段で処理した結果を示す図、第6図は平行
四辺形をY軸方向にシフトして正方形とする第1の方法
を示す図、第7図は平行四辺形をY軸方向にシフトして
正方形とする第2の方法を示す図、第8図は本発明の実
施例の構成を示すブロック図、第9図はX軸方向縮小手
段によるX軸方向の縮小の具体例を示す図、第lO図は
Y軸方向拡大手段によるY軸方向の拡大の具体例を示す
図、第11図は回転ブロック作成手段の第1の装置を示
すブロック図、第12図は第11図に示す装置の動作例
を示す図、第13図は第11図の転置行列作成手段の詳
細を示すブロック図、第14図は回転ブロック生成手段
の第2の装置を示すブロック図、第15図、第16図は
第14図に示す装置の動作例を示す図である。 1・・・基準ブロック生成手段、2・・・X軸方向シフ
ト手段、3・・・X軸方向縮小手段、4・・・Y軸方向
拡大手段、5・・・回転ブロック作成手段、51・・・
行列生成手段、52・・・転置行列作成手段、521・
・・画像データ記憶手段、522・一・変換モード演算
手段、523・・・行選択手段、524・・・画像変換
手段、553・・・ローティト手段、54・・・マスク
手段、55・・・修正行作成手段、6・・・移動手段。
ト手段の説明図、第3図はX軸方向縮小手段の説明図、
第4図はY軸方向拡大手段の説明図、第5図は第2〜第
4図に示す手段で処理した結果を示す図、第6図は平行
四辺形をY軸方向にシフトして正方形とする第1の方法
を示す図、第7図は平行四辺形をY軸方向にシフトして
正方形とする第2の方法を示す図、第8図は本発明の実
施例の構成を示すブロック図、第9図はX軸方向縮小手
段によるX軸方向の縮小の具体例を示す図、第lO図は
Y軸方向拡大手段によるY軸方向の拡大の具体例を示す
図、第11図は回転ブロック作成手段の第1の装置を示
すブロック図、第12図は第11図に示す装置の動作例
を示す図、第13図は第11図の転置行列作成手段の詳
細を示すブロック図、第14図は回転ブロック生成手段
の第2の装置を示すブロック図、第15図、第16図は
第14図に示す装置の動作例を示す図である。 1・・・基準ブロック生成手段、2・・・X軸方向シフ
ト手段、3・・・X軸方向縮小手段、4・・・Y軸方向
拡大手段、5・・・回転ブロック作成手段、51・・・
行列生成手段、52・・・転置行列作成手段、521・
・・画像データ記憶手段、522・一・変換モード演算
手段、523・・・行選択手段、524・・・画像変換
手段、553・・・ローティト手段、54・・・マスク
手段、55・・・修正行作成手段、6・・・移動手段。
Claims (8)
- (1)基準座標軸上の基準点に対し元画像を任意角θ回
転し目的画像を作成するに際し、前記元画像をN×Nの
画素よりなり前記基準座標軸に対し−θ回転した軸に1
辺が平行な正方形よりなる基準ブロックの集合体として
表し、前記各基準ブロックの頂点の1つを回転頂点とし
、これを中心に前記各基準ブロックをθ回転して回転ブ
ロックを作成し、この回転ブロックの前記回転頂点を前
記基準点を中心としてθ回転した時生じる前記基準座標
軸方向の移動量をΔY、前記基準座標軸に直角方向の移
動量をΔYとし、前記回転ブロックを前記基準座標軸方
向にΔY、前記基準座標軸に直角方向にΔXそれぞれ平
行移動することにより目的画像を得ることを特徴とする
画像の任意角回転方法。 - (2)前記基準ブロックより前記回転ブロックを作成す
るに際し、前記回転頂点を通り前記基準座標軸に平行な
軸をY軸としこれを直交し前記回転頂点を通る軸をX軸
とし前記基準ブロックを構成する要素のX軸、Y軸の座
標を(x、y)として前記要素のx座標を x−y*tanθとなるようX軸方向にシフトし、更に
X軸方向にcosθ倍して xcosθ−y*sinθとし、 次にy座標をY軸方向に1/cosθ倍し y/cosθとして (xcosθ−y*sinθ、y/cosθ)座標に移
動することにより前記基準ブロックを前記回転ブロック
のX軸、Y軸方向の長さと同じでかつY軸方向に三角形
状に前記回転ブロックより一方がはみ出し、他方が凹ん
だ平行四辺形に形成し、この三角形状にはみ出した部分
ではX軸に平行な行ビット並びごとに読み出し、はみ出
した三角形状部が凹んだ三角形状部に重なるように、こ
の読み出した行ビット並びと凹んだ三角形状部の対応す
る行ビット並びとの論理和をとって前記回転ブロックの
形状に合致したN行×N列よりなる行列とし、このN行
×N列の行列の転置行列を求め、この転置行列の各行に
つき前記三角形状にはみ出した部分のビットが行の左端
より右端に向かって並んでいる行についてはその並んで
いるはみ出したビット数だけ左ローティトを行ってロー
ティト画像を得、このローティト画像の転置行列を演算
し、この転置行列を前記回転ブロックとすることを特徴
とする請求項1記載の画像の任意角回転方法。 - (3)前記転置行列を求めるにあたり、対象とする行列
をN行×N列とし、この行列の変換モード数Mを M=〔log_2N〕 (但し〔〕は内部の数値が整数のときはその整数を、少
数点以下の数値を含むときは切り上げた整数)によって
求め、前記N行を0〜N−1と付番し、変換モードL(
=1〜M)ごとに、A番行とB番行を、 A=k*2^L〜k*2^L+2^L^−^1−1B=
A+2^L^−^1 k=0〜(N/2^L)−1 によって求め、A番行とB番行の行ビット並びをA(j
)、B(j)で表し、A′(j)、B′(j)をA′(
j)=A(j) j=k*2^L〜k*2^L+2^L^−^1−1A′
(j)=B(j−2^L^−^1) j=k*2^L+2^L^−^1〜k*2^L+2^L
−1B′(j)=B(j) j=k*2^L+2^L^−^1〜k*2^L+2^L
−1B′(j)=A(j+2^L^−^1) j=k*2^L〜k*2^L+2^L^−^1−1k=
0〜(N/2^L)−1 によって求め、A(j)をA′(j)にB(j)をB′
(j)に変換し、Lを1からMまで変化させることによ
りN行×N列の行列を求め、この行列を前記転置行列と
することを特徴とする請求項2記載の画像の任意角回転
方法。 - (4)前記基準ブロックより前記回転ブロックを作成す
るに際し、前記回転頂点を通り前記基準座標軸に平行な
軸をY軸としこれを直交し前記回転頂点を通る軸をX軸
とし前記基準ブロックを構成する要素のX軸、Y軸の座
標を(x、y)として前記要素のx座標を x−y*tanθとなるようX軸方向にシフトし、更に
X軸方向にcosθ倍して xcosθ−y*sinθとし、 次にy座標をY軸方向に1/cosθ倍し y/cosθとして (xcosθ−y*sinθ、y/cosθ)座標に移
動することにより前記基準ブロックを前記回転ブロック
のX軸、Y軸方向の長さと同じでかつ前記回転ブロック
より三角形状にY軸下方にはみ出し、上方が凹んだ平行
四辺形を形成し、この三角形がX軸に平行な行ビット並
びn行で形成される場合、n+N行で形成される前記平
行四辺形の各行を0〜n+N−1と付番し、n+1行×
N列よりなり前記三角形状に凹んだ範囲を0、他を1と
するマスク行列を作成し、第0行を求めるに当たり、ま
ず第0行〜第n行と前記マスク行列との論理積により第
0′行〜第n′行を作成し、第1′行を、第0′行のビ
ットが0でない部分をマスクしてこのマスク部分を0ビ
ットとし、このマスクした行と第0′行との論理和をと
って第0′修正行を作り、第2′行を第0′修正行のビ
ットが0でない部分をマスクしてこのマスク部分を0ビ
ットとし、このマスクした行と第0′修正行との論理和
をとって第1′修正行を作り、第3′行を第1′修正行
のビットが0でない部分をマスクしてこのマスク部分を
0ビットとし、このマスクした行と第1′修正行との論
理和をとって第2′修正行を作り、以下同様にして第n
′行を第(n−2)′修正行のビットが0でない部分を
マスクしてこのマスクした部分を0ビットとし、このマ
スクした行と第(n−2)′修正行との論理和をとって
第(n−1)′修正行を作り、この第(n−1)′修正
行を第0行とし、以下同様にしてN−1行まで求めてN
行×N列の行列を求め、この行列を前記回転ブロックと
することを特徴とする請求項1記載の画像の任意角回転
方法。 - (5)元画像を基準座標軸に対して−θ回転した軸に一
辺が平行なN×Nの画素の正方形よりなる基準ブロック
の集合体として表す基準ブロック生成手段と、前記基準
ブロックをθ回転して回転ブロックを作成するに際し、
回転中心となる前記基準ブロックの頂点の1つを回転頂
点としこの回転頂点を通り前記基準座標軸に平行な軸を
Y軸としこれと直交し前記頂点を通る軸をX軸とし前記
基準ブロックを構成する要素のX軸、Y軸の座標をx、
yとし、前記要素のx座標をx−y*tanθとなるよ
うX軸方向にシフトするX軸方向シフト手段と、このX
軸方向シフト手段の出力をX軸方向にcosθ倍するX
軸方向縮小手段と、y座標を1/cosθ倍するY軸方
向拡大手段と、前記x軸方向縮小手段と前記Y軸方向拡
大手段の出力により形成されるY軸方向に平行な2辺を
有する平行四辺形を形成する行列の各列をY軸方向にシ
フトして回転ブロックを作成する回転ブロック作成手段
と、前記回転ブロックの前記回転頂点を、前記元画像を
回転する回転中心となる前記基準座標軸上の基準点を中
心としてθ回転する時の前記基準座標軸方向の移動量と
前記基準座標軸に直角方向の移動量を算出し、前記回転
ブロックを移動する移動手段とを備えたことを特徴とす
る画像の任意角回転装置。 - (6)前記回転ブロック作成手段が、前記平行四辺形の
前記回転ブロックよりはみ出した三角形状部分をX軸に
平行な行ビット並びごとに読み出し、はみ出した三角形
状部がこれに対応して前記回転ブロックより凹んだ三角
形状部に重なるようにこの読み出した行ビット並びと、
凹んだ三角形状部の対応する行ビット並びとの論理和を
とって前記回転ブロックの形状に合致した行列を生成す
る行列生成手段と、行列の各行について行のローティト
を行うローティト手段と、行列の転置行列を作成する転
置行列作成手段とを備え、前記行列生成手段の出力を前
記転置行列作成手段に入力して転置行列を出力し、この
行列を前記ローティト手段で各行について前記三角形状
にはみ出した部分のビットが行の左端より右端に向かっ
て並んでいる行についてはその並んでいるはみ出したビ
ット数だけ左ローティトを行い、これにより作成した行
列を前記転置行列作成手段に入力して転置行列を出力し
、この行列を前記回転ブロックの値とすることを特徴と
する請求項5記載の画像の任意角回転装置。 - (7)前記転置行列作成手段が、画像データを記憶する
画像データ記憶手段と、N行×N列の画像データの変換
モード数Mを M=〔log_2N〕 (但し〔〕は内部の数値が整数のときはその整数を、少
数点以下の数値を含むときは切り上げた整数)によって
求め変換モードL(=1〜M)を出力する変換モード演
算手段と、前記N行を1〜N−1と付番し、前記変換モ
ードLに応じて前記N行よりA番行とB番行を A=k*2^L〜k*2^L+2^L^−^1−1B=
A+2^L^−^1 k=0〜(N/2^L)−1 により演算し、このA番行とB番行の行ビット並びA(
j)、B(j)を選択する行選択手段と、前記A(j)
、B(j)を入力し、A′(j)、B′(j)をA′(
j)=A(j) j=k*2^L〜k*2^L+2^L^−^1−1A′
(j)=B(j−2^L^−^1) j=k*2^L+2^L^−^1〜k*2^L+2^L
−1B′(j)=B(j) j=k*2^L+2^L^−^1k*2^L+2^L−
1B′(j)=A(j+2^L^−^1) j=k*2^L〜k*2^L+2^L^−^1−1k=
0〜(N/2^L)−1 によって演算し、前記画像データのA(j)、B(j)
をそれぞれA′(j)、B′(j)に変換し、この操作
をLを1からMまで変化させることによりN行×N列の
行列を求める画像変換手段とからなることを特徴とする
請求項6記載の画像の任意角回転装置。 - (8)前記回転ブロック作成手段として、前記平行四辺
形が前記回転ブロックより三角形状にY軸下方にはみ出
し、上方が凹んだ平行四辺形であり、この三角形がX軸
に平行なビット並びn行で形成される場合、n+N行で
形成される前記平行四辺形の各行を0〜n+N−1と付
番し、n+1行×N列よりなり前記三角形状に凹んだ範
囲を0、他を1とするマスク行列とk行からk+n行ま
でのn+1行×N列との論理積により第k′行〜第(k
+n)′行を作成するマスク手段と、第(k+1)′行
を第(k−1)′修正行のビットが0でない部分をマス
クしてこのマスク部分を0ビットとし、このマスクした
行と第(k−1)′修正行との論理和をとって第k′修
正行を作る修正行作成手段とを備え、第k行を求めるに
あたり、前記マスク手段により第k′行〜第(k+n)
′行を求め、前記修正行作成手段により第k′修正行か
ら順次第(k+n−1)′修正行を求めこの第(k+n
−1)′修正行を第k行とし、0行よりN−1行まで求
めてN行×N列の行列を求めこの行列を回転ブロックと
することを特徴とする請求項5記載の画像の任意角回転
装置。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2013164A JP2695266B2 (ja) | 1990-01-22 | 1990-01-22 | 画像の任意角回転方法および装置 |
| US08/227,088 US5412768A (en) | 1990-01-22 | 1994-04-13 | Method and apparatus for rotating an image |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2013164A JP2695266B2 (ja) | 1990-01-22 | 1990-01-22 | 画像の任意角回転方法および装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH03216771A true JPH03216771A (ja) | 1991-09-24 |
| JP2695266B2 JP2695266B2 (ja) | 1997-12-24 |
Family
ID=11825534
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2013164A Expired - Fee Related JP2695266B2 (ja) | 1990-01-22 | 1990-01-22 | 画像の任意角回転方法および装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2695266B2 (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5838837A (en) * | 1995-04-10 | 1998-11-17 | Sharp Kabushiki Kaisha | Image synthesizing device |
| WO2004057530A1 (ja) * | 2002-12-20 | 2004-07-08 | Jicoux Datasystems, Inc. | 画像変換装置、画像変換方法、及びプログラム |
| JP2005539323A (ja) * | 2002-09-18 | 2005-12-22 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 任意形状画像のブロック単位の回転 |
-
1990
- 1990-01-22 JP JP2013164A patent/JP2695266B2/ja not_active Expired - Fee Related
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5838837A (en) * | 1995-04-10 | 1998-11-17 | Sharp Kabushiki Kaisha | Image synthesizing device |
| JP2005539323A (ja) * | 2002-09-18 | 2005-12-22 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 任意形状画像のブロック単位の回転 |
| WO2004057530A1 (ja) * | 2002-12-20 | 2004-07-08 | Jicoux Datasystems, Inc. | 画像変換装置、画像変換方法、及びプログラム |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2695266B2 (ja) | 1997-12-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5412768A (en) | Method and apparatus for rotating an image | |
| JPS60239796A (ja) | デイスプレイメモリ中のデータを変更する回路と方法 | |
| JPH0572626B2 (ja) | ||
| JPH03216771A (ja) | 画像の任意角回転方法および装置 | |
| JPS6158037B2 (ja) | ||
| JPH0887596A (ja) | イメージを高速に180度回転及び反転する方法 | |
| JPH0481231B2 (ja) | ||
| JP3449563B2 (ja) | 画像データ編集方法 | |
| JPS6217236B2 (ja) | ||
| JP3055024B2 (ja) | 画像デ―タの転送装置 | |
| JP2899838B2 (ja) | 記憶装置 | |
| JPH0785266A (ja) | 画像回転装置 | |
| JP2553726B2 (ja) | 画像90度回転方法及び装置 | |
| JPS6125192B2 (ja) | ||
| JP3057208B2 (ja) | 回転対称図形描画方法及びその装置 | |
| JP2605609B2 (ja) | ドット表示処理装置 | |
| JP2713938B2 (ja) | 表示制御装置 | |
| JP2803235B2 (ja) | ディジタル画像処理方法 | |
| JP2548286B2 (ja) | イメージデータ処理装置 | |
| JPH026106B2 (ja) | ||
| JP2967228B2 (ja) | 画像データ転送装置 | |
| JP2512252B2 (ja) | 画像拡大縮小装置 | |
| JP2658864B2 (ja) | 文字処理装置 | |
| JPH0395687A (ja) | 画像縮小装置 | |
| JPS6350714B2 (ja) |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |