(58)【調査した分野】(Int.Cl.,DB名)
原点、前記原点を通る第1軸、前記原点を通り且つ前記第1軸に垂直であるとされる第2軸、前記第1軸に対応する単位で表現される第1の数値rと前記第2軸に対応する単位で表現される第2の数値iの関係を示す関係点、前記第1の数値rの取り得る範囲の上限を示す前記第1軸における第1の上限点および前記第2の数値iの取り得る範囲の上限を示す前記第2軸における第2の上限点が図示されたシートを撮像することにより当該シートの画像を生成する画像生成部と、
前記画像を表示画面に表示する画像表示部と、
前記表示画面で前記原点に位置合わせしたポインタの位置について、前記表示画面のビット構成を定める右方向に向かうX軸および前記表示画面の下方向に向かうY軸を有するビットマップでの当該位置のビットの座標(0X、0Y)を取得する原点座標取得部と、
式(1)により、前記座標(0X、0Y)を、前記表示画面の右方向に向かうx軸および前記表示画面の上方向に向かうy軸を有する座標系での座標(0x、0y)に変換する原点座標変換部と、
(0x、0y)=(0X/W、−0Y/H+1) (1)
ただし、Wは、前記表示画面のX軸方向のビット数、Hは、前記表示画面のY軸方向のビット数
前記表示画面で前記第1軸に含まれる点に位置合わせしたポインタの位置について、前記ビットマップでの当該位置のビットの座標(KX、KY)を取得する第1軸上点座標取得部と、
式(2)により、角度θを計算する角度計算部と、
θ=atan{(KY−0Y)/(KX−0X)} (2)
前記表示画面で前記第1の上限点に位置合わせしたポインタの位置について、前記ビットマップでの当該位置のビットの座標(RMX、RMY)を取得し、前記表示画面で前記第2の上限点に位置合わせしたポインタの位置について、前記ビットマップでの当該位置のビットの座標(IMX、IMY)を取得する上限点座標取得部と、
式(3)により、前記座標(RMX、RMY)を、前記座標系での座標(RMx、RMy)に変換し、式(4)により、前記座標(IMX、IMY)を、前記座標系での座標(IMx、IMy)に変換する上限点座標変換部と、
(RMx、RMy)=(RMX/W、−RMY/H+1) (3)
(IMx、IMy)=(IMX/W、−IMY/H+1) (4)
ただし、Wは、前記表示画面のX軸方向のビット数、Hは、前記表示画面のY軸方向のビット数
式(5)により、前記座標(0x、0y)と前記座標(RMx、RMy)の距離|R|を計算し、式(6)により、前記座標(0x、0y)と前記座標(IMx、IMy)の距離|I|を計算する距離計算部と、
|R|={(0x−RMx)2+(0y−RMy)2}1/2 (5)
|I|={(0x−IMx)2+(0y−IMy)2}1/2 (6)
前記第1の数値rの取り得る範囲の上限を示すものとして入力される第1の上限数値Rmaxと、前記第2の数値iの取り得る範囲の上限を示すものとして入力される第2の上限数値Imaxを取得する上限数値取得部と、
前記表示画面で前記関係点に位置合わせしたポインタの位置について、前記ビットマップでの当該位置のビットの座標(X、Y)を取得する関係点座標取得部と、
式(7)により、前記座標(X、Y)を、前記座標系での座標(x、y)に変換する関係点座標変換部と、
(x、y)=(X/W、−Y/H+1) (7)
ただし、Wは、前記表示画面のX軸方向のビット数、Hは、前記表示画面のY軸方向のビット数
式(8)、(9)により、前記第1の数値rと前記第2の数値iとを計算する数値計算部と
r=−(x−0x)×Imax/|I|×sinθ+
(y−0y)×Imax/|I|×cosθ (8)
i= (x−0x)×Rmax/|R|×cosθ+
(y−0y)×Rmax/|R|×sinθ (9)
を備えることを特徴とする数値計算装置。
前記表示画面で前記第2軸に含まれる点に位置合わせしたポインタの位置について、前記ビットマップでの当該位置のビットの座標を取得し、当該座標を使用して前記角度を計算することを特徴とする請求項1または2記載の数値計算装置。
前記第1軸に含まれる点に位置合わせしたポインタの位置のビットの前記座標または前記第2軸に含まれる点に位置合わせしたポインタの位置のビットの前記座標を前記座標系での座標に変換し、当該座標を使用して前記角度を計算することを特徴とする請求項1ないし3のいずれかに記載の数値計算装置。
【背景技術】
【0002】
近年においては、データファイルで情報を受け取ることが多いが、慣例などにより、紙など(シート)で受け取る場合がある。
【0003】
例えば、シートには、2つの軸ならびに各軸に対応する単位で表現される2つの数値の関係を示す曲線などが示され、線上の点を各軸に投影して読めば、その点における数値がわかる。しかし、この方法では、例えば線が急激に曲がっている箇所の点については、読み取りの精度が劣化する。
【0004】
一方、シートをスキャナ等で画像に変換すれば、このような作業の自動化が可能である。つまり、上記2つの数値は、画像において、上記線上の点と原点間の横方向、縦方向の距離を求めれば、これらの距離から換算できる。
【0005】
しかし、シートにおいて軸が傾いて印刷されていたり、シートがスキャナに斜めに挿入され、そのため、画像において軸が傾いていることがある。軸が傾いている場合には、正確な数値を計算できない。
【0006】
傾きを補正するには、原点を中心に画像を回転させるといった処理が必要であるが、回転量によって、数値が大きく異なってしまう。よって、正確な数値を計算できない。
【発明の概要】
【発明が解決しようとする課題】
【0008】
本発明は、上記の課題に鑑みてなされたものであり、その目的とするところは、2軸のそれぞれに対応する単位で表現される2つの数値の関係が示されたシートを用いて軸の傾きによらず2つの数値を計算できる数値計算装置を提供することにある。
【課題を解決するための手段】
【0009】
上記の課題を解決するために、本発明に係る数値計算装置は、原点、前記原点を通る第1軸、前記原点を通り且つ前記第1軸に垂直であるとされる第2軸、前記第1軸に対応する単位で表現される第1の数値rと前記第2軸に対応する単位で表現される第2の数値iの関係を示す関係点、前記第1の数値rの取り得る範囲の上限を示す前記第1軸における第1の上限点および前記第2の数値iの取り得る範囲の上限を示す前記第2軸における第2の上限点が図示されたシートを撮像することにより当該シートの画像を生成する画像生成部と、前記画像を表示画面に表示する画像表示部と、前記表示画面で前記原点に位置合わせしたポインタの位置について、前記表示画面のビット構成を定める右方向に向かうX軸および前記表示画面の下方向に向かうY軸を有するビットマップでの当該位置のビットの座標(0X、0Y)を取得する原点座標取得部と、式(1)により、前記座標(0X、0Y)を、前記表示画面の右方向に向かうx軸および前記表示画面の上方向に向かうy軸を有する座標系での座標(0x、0y)に変換する原点座標変換部と、
(0x、0y)=(0X/W、−0Y/H+1) (1)
ただし、Wは、前記表示画面のX軸方向のビット数、Hは、前記表示画面のY軸方向のビット数
前記表示画面で前記第1軸に含まれる点に位置合わせしたポインタの位置について、前記ビットマップでの当該位置のビットの座標(KX、KY)を取得する第1軸上点座標取得部と、式(2)により、角度θを計算する角度計算部と、
θ=atan{(KY−0Y)/(KX−0X)} (2)
前記表示画面で前記第1の上限点に位置合わせしたポインタの位置について、前記ビットマップでの当該位置のビットの座標(RMX、RMY)を取得し、前記表示画面で前記第2の上限点に位置合わせしたポインタの位置について、前記ビットマップでの当該位置のビットの座標(IMX、IMY)を取得する上限点座標取得部と、式(3)により、前記座標(RMX、RMY)を、前記座標系での座標(RMx、RMy)に変換し、式(4)により、前記座標(IMX、IMY)を、前記座標系での座標(IMx、IMy)に変換する上限点座標変換部と、
(RMx、RMy)=(RMX/W、−RMY/H+1) (3)
(IMx、IMy)=(IMX/W、−IMY/H+1) (4)
ただし、Wは、前記表示画面のX軸方向のビット数、Hは、前記表示画面のY軸方向のビット数
式(5)により、前記座標(0x、0y)と前記座標(RMx、RMy)の距離|R|を計算し、式(6)により、前記座標(0x、0y)と前記座標(IMx、IMy)の距離|I|を計算する距離計算部と、
|R|={(0x−RMx)
2+(0y−RMy)
2}
1/2 (5)
|I|={(0x−IMx)
2+(0y−IMy)
2}
1/2 (6)
前記第1の数値rの取り得る範囲の上限を示すものとして入力される第1の上限数値Rmaxと、前記第2の数値iの取り得る範囲の上限を示すものとして入力される第2の上限数値Imaxを取得する上限数値取得部と、前記表示画面で前記関係点に位置合わせしたポインタの位置について、前記ビットマップでの当該位置のビットの座標(X、Y)を取得する関係点座標取得部と、式(7)により、前記座標(X、Y)を、前記座標系での座標(x、y)に変換する関係点座標変換部と、
(x、y)=(X/W、−Y/H+1) (7)
ただし、Wは、前記表示画面のX軸方向のビット数、Hは、前記表示画面のY軸方向のビット数
式(8)、(9)により、前記第1の数値rと前記第2の数値iとを計算する数値計算部と
r=−(x−0x)×Imax/|I|×sinθ+
(y−0y)×Imax/|I|×cosθ (8)
i= (x−0x)×Rmax/|R|×cosθ+
(y−0y)×Rmax/|R|×sinθ (9)
を備えることを特徴とする。
【発明の効果】
【0010】
本発明によれば、2軸のそれぞれに対応する単位で表現される2つの数値の関係が示されたシートを用いて軸の傾きによらず2つの数値を計算することができる。
【発明を実施するための形態】
【0012】
以下、本発明の実施の形態について図面を参照して説明する。
【0013】
図1は、本実施の形態に係る数値計算装置の概略構成を示す機能ブロック図である。
【0014】
数値計算装置1は、2軸のそれぞれに対応する単位で表現される2つの数値の関係が示されたシート100を用いて2つの数値を計算する装置である。数値計算装置1は、この計算のための画像生成部101、画像表示部103、原点座標取得部105、原点座標変換部107、第1軸上点座標取得部109、角度計算部111、上限点座標取得部113、上限点座標変換部115、距離計算部117、上限数値取得部119、関係点座標取得部121、関係点座標変換部123、数値計算部125、画像部分拡大表示部127、表示画面座標取得部129、関係点座標取得部131および関係点座標変換部133を備える。数値計算装置1は、表示装置2、マウス等の入力装置3、キーボード等の入力装置4に対し、接続ケーブルなどを介して接続される。
【0015】
(数値計算装置1の動作)
図2は、数値計算装置1の動作を示すフローチャートである。
【0016】
ステップS1:まず、画像生成部101が、シート100を撮像することによりシート100の画像IMGを生成し、画像表示部103が、画像IMGを表示装置2に表示する。
【0017】
図3は、画像IMGが表示された表示画面とその表示に用いられるビットマップを示す図である。
【0018】
ステップS1で画像表示部103は、画像IMGを表示装置2の表示画面Cに表示する。表示画面Cは、シート100に図示された内容を反映している。
【0019】
つまり、シート100には、原点0、原点0を通る第1軸(以下、r軸)、原点0を通り且つr軸に垂直であるとされる第2軸(以下、i軸)、r軸に対応する単位で表現される第1の数値rとi軸に対応する単位で表現される第2の数値iの関係を示す関係点Pの集合である曲線、第1の数値rの取り得る範囲の上限を示すr軸における第1の上限点Prmaxおよび第2の数値iの取り得る範囲の上限を示すi軸における第2の上限点Pimaxが図示されている。つまり、シート100は、いわゆる線グラフを記載したものである。
【0020】
また、ビットマップBMは、この表示画面Cのビット構成を定めるものであり、表示画面Cの右方向に向かうX軸(プラス方向が右方向である軸)および表示画面Cの下方向に向かうY軸(プラス方向が下方向である軸)を有する。
【0021】
ステップS3:次に、原点座標取得部105が、表示画面Cで原点0に位置合わせしたポインタの位置について、ビットマップBMでの当該位置のビットの座標(0X、0Y)を取得する。ここでは、例えば、ユーザが入力装置3を動かし、
図3に示すような、表示画面Cに表示されたポインタPtを原点0に位置合わせし、クリック操作するので、原点座標取得部105は、ポインタPtの位置にあるビットのX座標0X、Y座標0Yを取得する。X座標、Y座標は、ビットマップの座標なので、整数である。
【0022】
ステップS5:次に、原点座標変換部107が、式(1)により、座標(0X、0Y)を、表示画面Cの右方向に向かうx軸および表示画面Cの上方向に向かうy軸を有する座標系での座標(0x、0y)に変換する。
【0023】
(0x、0y)=(0X/W、−0Y/H+1) (1)
ただし、Wは、
図3に示す表示画面CのX軸方向のビット数(幅)、Hは、表示画面CのY軸方向のビット数(高さ)
図4は、座標(0x、0y)などを定める座標系を示す図である。
【0024】
座標系Zは、表示画面Cの右方向に向かうx軸(プラス方向が右方向である軸)および表示画面Cの上方向に向かうy軸(プラス方向が上方向である軸)を有する。座標系Zがビットマップの座標ではないので、x座標、y座標は、整数には限定されない。具体的には、x座標、y座標は、0から1までの数となる。
【0025】
ステップS7:次に、第1軸上点座標取得部109が、表示画面Cでr軸に含まれる点に位置合わせしたポインタの位置について、ビットマップBMでの当該位置のビットの座標(KX、KY)を取得する。ここでは、例えば、ユーザが入力装置3を動かし、
図3に示すようなポインタPtを、例えば第1の上限点Prmaxに位置合わせし、クリック操作するので、原点座標取得部105は、ポインタPtの位置にあるビットのX座標KX、Y座標KYを取得する。
【0026】
ステップS9:次に、角度計算部111が、式(2)により、
図3に示す角度θを計算する。角度θは、X軸やY軸に対するr軸やi軸の傾きの大きさを示す角度である。
【0027】
θ=atan{(KY−0Y)/(KX−0X)} (2)
ステップS11:次に、上限点座標取得部113が、表示画面Cで第1の上限点Prmaxに位置合わせしたポインタの位置について、ビットマップBMでの当該位置のビットの座標(RMX、RMY)を取得し、表示画面Cで第2の上限点Pimaxに位置合わせしたポインタの位置について、ビットマップBMでの当該位置のビットの座標(IMX、IMY)を取得する。
【0028】
ここでは、例えば、ユーザが入力装置3を動かし、
図3に示すようなポインタPtを、第1の上限点Prmaxに位置合わせし、クリック操作するので、上限点座標取得部113は、ポインタPtの位置にあるビットのX座標RMX、Y座標RMYを取得する。
【0029】
また、ユーザが入力装置3を動かし、ポインタPtを、第2の上限点Pimaxに位置合わせし、クリック操作するので、上限点座標取得部113は、ポインタPtの位置にあるビットのX座標IMX、Y座標IMYを取得する。
【0030】
ステップS13:次に、上限点座標変換部115が、式(3)により、座標(RMX、RMY)を、
図4に示す座標系Zでの座標(RMx、RMy)に変換し、式(4)により、座標(IMX、IMY)を、
図4に示す座標系Zでの座標(IMx、IMy)に変換する。
【0031】
(RMx、RMy)=(RMX/W、−RMY/H+1) (3)
(IMx、IMy)=(IMX/W、−IMY/H+1) (4)
ステップS15:次に、距離計算部117が、式(5)により、
図4に示す座標(0x、0y)と座標(RMx、RMy)の距離|R|を計算し、式(6)により、
図4に示す座標(0x、0y)と座標(IMx、IMy)の距離|I|を計算する。
【0032】
|R|={(0x−RMx)
2+(0y−RMy)
2}
1/2 (5)
|I|={(0x−IMx)
2+(0y−IMy)
2}
1/2 (6)
ステップS17:次に、上限数値取得部119が、第1の数値rの取り得る範囲の上限を示すものとして入力される第1の上限数値Rmaxと、第2の数値iの取り得る範囲の上限を示すものとして入力される第2の上限数値Imaxを取得する。
【0033】
ここでは、例えば、ユーザが入力装置4を操作し、表示装置2に表示される、
図5に示すような入力エリアAR1、AR2の中に第1の上限数値Rmax、第2の上限数値Imaxを入力するので、上限数値取得部119は、これを取得する。
【0034】
図5は、r軸に対応する単位が、距離の単位である「km」であり、一方、i軸に対応する単位が、電流の単位である「kA(キロアンペア)」である場合の例を示すものである。
【0035】
ステップS19:次に、関係点座標取得部121が、表示画面Cで関係点Pに位置合わせしたポインタPtの位置について、ビットマップBMでの当該位置のビットの座標(X、Y)を取得する。ここでは、例えば、ユーザが入力装置3を動かし、
図3に示すようなポインタPtを関係点Pに位置合わせし、クリック操作するので、関係点座標取得部121は、ポインタPtの位置にあるビットのX座標X、Y座標Yを取得する。
【0036】
ステップS21:次に、関係点座標変換部123が、式(7)により、座標(X、Y)を、
図4に示す座標系Zでの座標(x、y)に変換する。
【0037】
(x、y)=(X/W、−Y/H+1) (7)
ただし、Wは、前記表示画面のX軸方向のビット数(幅)、Hは、前記表示画面のY軸方向のビット数(高さ)
ステップS23:次に、数値計算部125が、式(8)、(9)により、第1の数値rと第2の数値iを計算し、表示装置2に表示する。
【0038】
r=−(x−0x)×Imax/|I|×sinθ+
(y−0y)×Imax/|I|×cosθ (8)
i= (x−0x)×Rmax/|R|×cosθ+
(y−0y)×Rmax/|R|×sinθ (9)
ここでは、数値計算部125は、表示装置2に表示された、
図6に示すような空白の表示エリアAR11の1つに第1の数値rを表示させ、その横の表示エリアAR12に第2の数値iを表示する。
【0039】
図6は、
図5と同様に、距離の単位「km」、電流の単位「kA(キロアンペア)」を用いる場合の例を示すものである。
【0040】
ステップS23が終わると、制御はステップS19に戻る。
【0041】
例えば、ユーザが入力装置3を動かし、
図3に示すようなポインタPtを曲線に含まれる別な関係点に位置合わせし、クリック操作するので、その関係点についても、関係点Pと同様な処理がなされる。以降、例えば、ユーザが明示的に処理を終わらせるまで、処理が継続する。
【0042】
また、例えば、ユーザが所定の操作を行うと、画像部分拡大表示部127は、画像IMGの一部分を表示画面Cに対して横および縦方向それぞれのビット数換算でM倍に拡大したものを第2の表示画面に表示する。
【0043】
図7は、第2の表示画面とその表示に用いられるビットマップを示す図である。
【0044】
画像部分拡大表示部127は、
図3に符号T2で示す画像IMGの部分を、
図7に示すように表示画面C2(第2の表示画面)に表示する。例えば、ユーザが入力装置3を操作し、
図3に示すようなポインタPtを動かすと、画像部分拡大表示部127は、画像IMGにおけるポインタPtの周囲の部分をポインタPtを含めて拡大したものを表示画面C2に表示する。
【0045】
第2のビットマップBM2は、この表示画面C2のビット構成を定めるものであり、表示画面C2の右方向に向かうX’軸および表示画面C2の下方向に向かうY’軸を有する。
【0046】
ここで、関係点座標取得部131が、表示画面C2で関係点Pを拡大した部分に位置合わせしたポインタPtの位置について、ビットマップBM2での当該位置のビットの座標(X’、Y’)を取得する。ここでは、例えば、ユーザが入力装置3を動かし、
図3に示すようなポインタPtを、関係点Pを拡大した部分に位置合わせし、クリック操作するので、関係点座標取得部131は、ポインタPtの位置にあるビットのX座標X’、Y座標Y’を取得する。
【0047】
座標(X’、Y’)が取得されると、表示画面座標取得部129は、表示画面C2の左端の位置について、
図3に示すように、ビットマップBMでの当該位置のビットのX座標Lを取得し、表示画面C2の上端の位置について、ビットマップBMでの当該位置のビットのY座標Tを取得する。
【0048】
次に、関係点座標変換部133が、式(10)、(11)により、座標(X’、Y’)を、
図4に示す座標系Zでの座標(x、y)に変換する。
【0049】
(X、Y)=(X’/M+L、Y’/M+T) (10)
(x、y)=(X/W、−Y/H+1) (11)
この座標(x、y)は、関係点座標変換部123により変換された座標(x、y)と同様に処理される。つまり、関係点Pに対応する第1、第2の数値が計算され、表示される。
【0050】
しかも、この場合には、表示画面Cを用いる場合よりも、数値の精度を高めることができる。
【0051】
図8に示すように、例えば、表示画面Cでの縮尺が、シートで1mmの長さが4ピクセルに相当する場合、M(拡大率)が4なら、表示画面C2での縮尺は、シートで1mmの長さが16(4×M)ピクセルに相当する。つまり、表示画面Cでは、1/4mm刻みでしか、位置を指定できないので、所望の位置に対する誤差が大きいのに対し、表示画面C2では、1/160mm刻みで位置を指定できるので、誤差が小さくなる。すなわち、表示画面Cを使用する場合の座標x、yには多くの誤差が含まれているのに対し、表示画面C2を使用する場合の座標x、yに含まれる誤差は少ない。よって、表示画面C2を用いることで、数値の精度を高めることができる。
【0052】
以上のように、本実施の形態に係る数値計算装置1によれば、2つの軸(r軸、i軸)のそれぞれに対応する単位で表現される2つの数値r、iの関係が示されたシート100を用いて軸の傾きによらず2つの数値r、iを計算することができる。
【0053】
また、画像の部分を拡大したものにおいて位置を指定することで、数値r、iの精度を高めることができる。なお、例えば、表示画面Cの縮尺が十分高い(シートでの長さあたりのピクセル数が十分多い)場合などにおいては、表示画面Cでも十分な精度が得られるので、表示画面C2を使用しなくてもよい。つまり、この場合、画像部分拡大表示部127、表示画面座標取得部129、関係点座標取得部131および関係点座標変換部133は不要となる。
【0054】
なお、数値計算装置1においては、表示画面Cで第2軸(i軸)に含まれる点に位置合わせしたポインタの位置について、ビットマップBMでの当該位置のビットの座標(以下、座標(LX、LY)という)を取得し、座標(LX、LY)を使用して角度θを計算してもよい。
【0055】
この場合、角度θは、
θ=atan{(LX−0X)/(LY−0Y)}
で計算することができる。
【0056】
また、座標(KX、KY)または座標(LX、LY)を座標系Zでの座標に変換し、当該座標を使用して角度を計算してもよい。
【0057】
座標(KX、KY)の変換後の座標を座標(Kx、Ky)とすると、角度θは、
θ=atan{(Ky−0y)/(Kx−0x)}
で計算することができる。
【0058】
また、座標(LX、LY)の変換後の座標を座標(Lx、Ly)とすると、角度θは、
θ=atan{(Lx−0x)/(Ly−0y)}
で計算することができる。
【0059】
また、本実施の形態では、シート100は線グラフをを記載したものであり、線で示された関係点の数値を計算したが、シート100は、例えば、棒グラフなどを記載したものでもよい。この場合、棒の頂点を関係点とすれば、その関係点の数値を計算することができる。