(57)【特許請求の範囲】
【請求項１】
伝達位置を変えながらエネルギーを伝達して媒体に可視情報を形成させる装置に、前記伝達位置の位置情報を提供する情報処理装置であって、
領域の形状情報を取得する形状情報取得手段と、
前記領域の外接矩形を生成する外接矩形生成手段と、
少なくとも前記領域の一方の端から他方の端まで到達する任意の方向の平行線分を所定間隔で生成する平行線分生成手段と、
前記形状情報から生成された前記領域を区画する複数の外枠線のそれぞれと、平行線分と、の交点を算出する交点算出手段と、
ａ）前記交点で平行線分を分割し、分割後に前記外接矩形と重複している平行線分を除去することで平行線分データ群を生成する第一のデータ群生成手段と、
又は、
ｂ）前記交点よりも前記外接矩形側の平行線分の端点を前記交点まで短縮して平行線分データ群を生成する第二のデータ群生成手段と、
を有する情報処理装置。
【請求項２】
前記平行線分生成手段は、前記外接矩形の一方の端の外から他方の端の外まで到達する平行線分を所定間隔で生成し、
前記第一のデータ群生成手段は、分割後の平行線分の端点が前記外接矩形の外側にある平行線分を除去することで平行線分データ群を生成する、
ことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記交点算出手段は、
前記領域の第一の最外点と、該第一の最外点がある前記外接矩形の辺と対向した辺にある前記領域の第二の最外点とを抽出し、前記第一の最外点と前記第二の最外点を結ぶ線分と、平行線分の第２の交点を検出し、
前記第二のデータ群生成手段は、前記交点の座標と前記第２の交点の座標を比較して、平行線分の端点の短縮方向を決定する、
ことを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記交点算出手段は、
前記領域をｘｙ平面の第1象限に配置した場合、
高さ方向の第一の最外点、該第一の最外点がある前記外接矩形の辺と対向した辺にある前記領域の第二の最外点とを抽出し、
前記第一の最外点及び前記第二の最外点よりもｘ座標が大きな頂点があるか否かを判定し、
ｘ座標が大きな頂点がない場合、
前記第一の最外点と前記第二の最外点を結ぶ線分と、平行線分の第２の交点を検出し、
前記第二のデータ群生成手段が、前記交点の座標と前記第２の交点の座標を比較して、
前記交点のｘ座標が前記第２の交点のｘ座標より小さい場合、平行線分のｘ座標が小さい方の端点を前記交点まで短縮し、前記交点のｘ座標が前記第２の交点のｘ座標より小さくない場合、平行線分のｘ座標が大きい方の端点を前記交点まで短縮し、
ｘ座標が大きな頂点がある場合、
前記第一の最外点と前記第二の最外点を結ぶ線分と、平行線分の第２の交点を検出し、
前記第二のデータ群生成手段が、前記交点の座標と前記第２の交点の座標を比較して、
前記交点のｘ座標が前記第２の交点のｘ座標より小さいか又は等しい場合、平行線分のｘ座標が小さい方の端点を前記交点まで短縮し、前記交点のｘ座標が前記第２の交点のｘ座標より大きい場合、平行線分のｘ座標が大きい方の端点を前記交点まで短縮する、
ことを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記交点算出手段は、
前記第一の最外点と前記第二の最外点を結ぶ線分が、前記領域の外枠線のいずれかと一致する場合にのみ、前記第一の最外点及び前記第二の最外点よりもｘ座標が大きな頂点があるか否かを判定する、
ことを特徴とする請求項４記載の情報処理装置。
【請求項６】
前記交点算出手段は、前記領域の外枠線を１つずつ抽出し、取り出した外枠線の最小高さと最大高さに入る平行線分のみと、取り出した外枠線の交点を求める、
ことを特徴とする請求項１〜５いずれか１項記載の情報処理装置。
【請求項７】
伝達位置を変えながらエネルギーを伝達して媒体に可視情報を形成させる装置に、前記伝達位置の位置情報を提供する情報処理装置の情報処理方法であって、
形状情報取得手段が、領域の形状情報を取得するステップと、
外接矩形生成手段が、前記領域の外接矩形を生成するステップと、
平行線分生成手段が、前記外接矩形の少なくとも一方の端から他方の端まで到達する任意の方向の平行線分を所定間隔で生成するステップと、
交点算出手段が、平行線分と、前記形状情報から特定される前記領域の外枠線との交点を算出するステップと、
ａ）第一のデータ群生成手段が、前記交点で平行線分を分割し、分割後に前記外接矩形と重複している平行線分を除去することで平行線分データ群を生成するステップと、
又は、
ｂ）第二のデータ群生成手段が、前記平行線分が前記外接矩形と重畳している側の平行線分の端点を前記交点まで短縮して平行線分データ群を生成するステップと、
を有する情報処理方法。
【請求項８】
伝達位置を変えながらエネルギーを伝達して媒体に可視情報を形成させるシステムであって、
領域の形状情報を取得する形状情報取得手段と、
前記領域の外接矩形を生成する外接矩形生成手段と、
前記外接矩形の少なくとも一方の端から他方の端まで到達する任意の方向の平行線分を所定間隔で生成する平行線分生成手段と、
前記形状情報から生成された前記領域を区画する複数の外枠線のそれぞれと、平行線分と、の交点を算出する交点算出手段と、
ａ）前記交点で平行線分を分割し、分割後に前記外接矩形と重複している平行線分を除去することで平行線分データ群を生成する第一のデータ群生成手段と、
又は、
ｂ）前記交点よりも前記外接矩形側の平行線分の端点を前記交点まで短縮して平行線分データ群を生成する第二のデータ群生成手段と、
平行線分データ群から、エネルギーの伝達開始位置及び伝達終了位置を含む制御データを生成する制御データ生成手段と、
前記制御データに基づきエネルギー照射装置を制御する制御装置と、
を有するシステム。
【請求項９】
伝達位置を変えながらエネルギーを伝達して媒体に可視情報を形成させる装置に、前記伝達位置の位置情報を提供する情報処理装置に、
領域の形状情報を取得する形状情報取得ステップと、
前記領域の外接矩形を生成する外接矩形生成ステップと、
前記外接矩形の少なくとも一方の端から他方の端まで到達する任意の方向の平行線分を所定間隔で生成する平行線分生成ステップと、
前記形状情報から生成された前記領域を区画する複数の外枠線のそれぞれと、平行線分と、の交点を算出する交点算出ステップと、
ａ）前記交点で平行線分を分割し、分割後に前記外接矩形と重複している平行線分を除去することで平行線分データ群を生成する第一のデータ群生成ステップと、
又は、
ｂ）前記交点よりも前記外接矩形側の平行線分の端点を前記交点まで短縮して平行線分データ群を生成する第二のデータ群生成ステップと、
を実行させるプログラム。
【請求項１０】
請求項９記載のプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レーザを照射されることで記録媒体に可視情報を形成させる装置に、可視情報を形成するための制御データを提供する情報処理装置に関する。
【背景技術】
【０００２】
レーザで文字や記号を紙のようなシート上の媒体に書き込む技術が実用化されている。シート上の媒体に文字等の描画が可能になったことで、物流などでコンテナ等の容器のラベルに文字等を描画することが容易になった。コンテナのラベルであれば、例えば、物品のあて先や物品名が印字され、コンテナ等の容器のラベルを張り替えるなどの人為的又は機械的な作業を減らすことができる（例えば、特許文献１参照。）。特許文献１には、フレキシブルジョイントにより構成された複数のレンズ系の一端から入射したレーザ光による画像を他端まで伝達するリレーレンズ系が記載されている。
【０００３】
さらに、描画と消去を繰り返し行えるリライタブルタイプの感熱紙も実用化されつつある。例えば、物流で利用されるコンテナを想定すると、同じコンテナの宛先が毎回、同じとは限らないので、コンテナに貼られたままのラベルから文字等を消去し、新しい文字等の描画ができれば、ラベル交換の必要性を大幅に低減できる。
【０００４】
図１は、ラベルの描画例を示す図の一例である。このラベルには、複数の数字、文字、図形、バーコード等が描画されている。文字等の描画の際、複雑な文字等にも対応できるようにレーザはレンズにより集光されスポット光になる。このため、レーザで文字等を描画する場合、文字等のストロークをレーザのスポット光で描画するようにレーザの照射位置が制御される。
【０００５】
図２は、感熱紙に描画される「Ｔ」という文字の描画例を説明する図の一例である。図２（ａ）はプリンタなど印刷装置の印字例である。「Ｔ」は横線と縦線の２つのストロークから形成されている。レーザで「Ｔ」を描画する場合、このストロークを描画する。
【０００６】
図２（ｂ）はストロークの始点と終点の組（ｓ１、ｅ１）、（ｓ２、ｅ２）の一例を示す図である。レーザの照射位置を制御する書込制御装置は、例えばガルバノミラーでスポット光の位置を調整するなどして、レーザを照射せずに照射位置をs1に移動させる。続いて、レーザの照射を開始して（以下、単に"レーザＯＮ"と記載する場合がある)、スポット光をｓ１からｅ１まで移動させる。
【０００７】
次に、書込制御装置は、レーザの照射を止め（以下、単に"レーザＯＦＦ"と記載する場合がある)、レーザを照射せずに照射位置をｓ２に移動させる。次に、レーザの照射を開始して、スポット光をｓ２からｅ２まで移動させる。これにより、２本のストロークが描画され、感熱紙上に「Ｔ」という文字が描画される。すなわち、伝達位置が連続的に変わりながらレーザのエネルギーが感熱紙に伝達され可視情報が形成される。
【０００８】
このように、感熱紙に対し、意図した文字等を形成する際、書込制御装置は、「どの位置からこの位置までレーザＯＮにしてスポット光を移動させる」といった命令で制御を行う。
【０００９】
図３（ａ）は描画対象の文字と図形の一例を、図３（ｂ）は書込制御装置が使用する走査命令の一例をそれぞれ示す。走査命令は、左から順に以下の内容を意味している。
ln：行番号（ストローク番号）
W：レーザのON/OFF（"１"がＯＮ、"０"がＯＦＦ）
Sp：始点の座標
Ep：終点の座標
なお、座標は、横の位置を指定するものをX, 縦の位置を指定するものをYとして扱い、(X, Y)で示す。Xは右に位置するほど値が増加し、Yは上に行くほど値が増加するものとする。座標点の取り方は一例である。
【００１０】
したがって、感熱紙に文字等を描画する場合、描画対象の文字等（以下、描画対象オブジェクトという場合がある）からスポット光の走査命令を生成しなければならない。また、元の文字等を回転させたり、線と線の重なっている部分を除去したり、その他の情報を設定する、といった処理を行うことも想定される。このため、スポット光の走査命令に変換される、描画対象オブジェクトのデータは、ベクトルデータ形式であることが望ましい。
【００１１】
図４は、感熱紙に三角形を描画させる場合の、描画対象オブジェクトのデータを説明する図の一例である。ベクトルデータ又は走査命令を生成する装置を「画像処理装置」と呼ぶことにする。
【００１２】
図４（ａ）は、ユーザが画像処理装置に与えるデータである。ユーザは、画像処理装置に対し、描画させたい図形の各頂点の座標を指定する。座標はアプリケーションが作成するファイルなどで与えられることも多い。三角形では３つの座標vｐが指定される。
【００１３】
図４（ｂ）は、画像処理装置が生成するベクトルデータを説明する図の一例である。すなわち、頂点間を結ぶ３つのベクトル（stS，stE）が生成されている。ベクトルの向きは例えば時計回りであるが、制約はない。ベクトル化することで、内部処理(回転や拡大、塗りつぶし、描画順の設定等)が容易になる。なお、これらのストロークは単純に座標データだけでなく、描画パワー、太さ等、図示しない情報も合せて構成できるものとする。図では１つのベクトルは始点(stS)と終点(stE)から構成される。
【００１４】
図４（ｃ）は、画像処理装置が生成した走査命令の一例を示す。画像処理装置は、ベクトルデータに内部処理を施し、最適な処理を行った後、レーザの走査命令を生成する。この後、書込制御装置は、走査命令を読み出して、ユーザが指定した図形を感熱紙へ描画する。
【００１５】
ここで、ユーザとしては、感熱紙に、図形の外枠（外縁）だけを描画するのでなく、図形の内部を塗りつぶすことで描画したい場合もある（以下、単に"塗りつぶし図形"と記載する場合がある）。この場合も、一度、描画対象オブジェクトをベクトルデータとして取得し、任意の画像処理を行った後、レーザの走査命令を生成するという作業が行われる。
【００１６】
図５は、塗りつぶし図形の描画を説明する図の一例である。図５（ａ）に示すように、ユーザは５角形を構成している頂点Ａ〜Ｅの座標を入力する。図５（ｂ）に示すように、画像処理装置は、頂点Ａ〜Ｅの座標を利用して、一辺から他方の辺まで到達する水平線を抽出することでベクトルデータを生成する。ベクトルとベクトルの間には一定の間隔（ピッチＰｈ）がある。
【００１７】
図５（ｃ）に示すように、画像処理装置は、走査命令に従ってスポット光の位置を制御することで、塗りつぶし画像を生成する。
【００１８】
従来から、このような閉塞部を塗りつぶす技術が知られている（例えば、特許文献２参照。）。特許文献２には、凹多角形から複数の凸多角形を抽出して、凸多角形の塗りつぶしを行うディスプレイ装置が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【００１９】
しかしながら、特許文献２に開示された塗りつぶし手法は、塗りつぶしデータの生成に時間がかかるという問題がある。特許文献２には具体的にどのように塗りつぶしデータを生成するかについて記載がないが、単純に、横方向のベクトルと辺との交点を探しながら塗りつぶしデータを生成すると、処理に時間がかかることが予想される。
【００２０】
本発明は、上記課題に鑑み、塗りつぶし図形を高速に描画可能な走査命令を生成する情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００２１】
本発明は、伝達位置を変えながらエネルギーを伝達して媒体に可視情報を形成させる装置に、可視情報を形成するための制御データを提供する情報処理装置であって、領域の形状情報を取得する形状情報取得手段と、前記領域の外接矩形を生成する外接矩形生成手段と、前記外接矩形の少なくとも一方の端から他方の端まで到達する任意の方向の平行線分を所定間隔で生成する平行線分生成手段と、前記形状情報から生成された前記領域を区画する複数の外枠線のそれぞれと、平行線分と、の交点を算出する交点算出手段と、
ａ）前記交点で平行線分を分割し、分割後に前記外接矩形と重複している平行線分を除去することで平行線分データ群を生成する第一のデータ群生成手段と、
又は、
ｂ）前記交点よりも前記外接矩形側の平行線分の端点を前記交点まで短縮して平行線分データ群を生成する第二のデータ群生成手段と、を有する。
【発明の効果】
【００２２】
塗りつぶし図形を高速に描画可能な走査命令を生成する情報処理装置を提供することができる。
【図面の簡単な説明】
【００２３】
【図１】ラベルの描画例を示す図の一例である。
【図２】感熱紙に描画される「Ｔ」という文字の描画例を説明する図の一例である。
【図３】描画対象の文字と図形、走査命令の一例を示す図である。
【図４】感熱紙に三角形を描画させる場合の、描画対象オブジェクトのデータを説明する図の一例である。
【図５】塗りつぶし図形の描画を説明する図の一例である。
【図６】レーザ書込システムの概略を説明する図の一例である。
【図７】書込制御装置と接続されるレーザ照射装置のハードウェア構成図の一例を示す。
【図８】画像処理装置がベクトルデータを作成する手順を模式的に説明する図の一例である。
【図９】画像処理装置、書込制御装置のハードウェアブロック図の一例である。
【図１０】画像処理装置の機能ブロック図の一例である。
【図１１】多角形を指定する頂点座標から走査命令を生成するまでの処理手順を示すフローチャート図の一例である（従来図）。
【図１２】図１１のステップS0−11の処理を説明する図の一例である。
【図１３】円から生成された直線を説明する図の一例である。
【図１４】画像処理装置が塗りつぶしデータを生成する手順を示すフローチャート図の一例である（実施例１）。
【図１５】図１４の分割処理を詳細に説明する図の一例である。
【図１６】塗りつぶしデータの生成を模式的に説明する図の一例である。
【図１７】画像処理装置がベクトルデータを作成する手順を模式的に説明する図の一例である（実施例２）。
【図１８】画像処理装置の機能ブロック図の一例である（実施例２）。
【図１９】画像処理装置が塗りつぶしデータを生成する手順を示すフローチャート図の一例である（実施例２）。
【図２０】図１９の短縮処理を詳細に説明する図の一例である。
【図２１】塗りつぶしデータの生成を模式的に説明する図の一例である。
【図２２】実施例２の方法では正常に塗りつぶしデータを生成できない図形を説明する図の一例である。
【図２３】画像処理装置が塗りつぶしデータを生成する手順を示すフローチャート図の一例である（実施例３）。
【図２４】図２３の短縮処理を詳細に説明する図の一例である。
【発明を実施するための形態】
【００２４】
以下、本発明を実施するための形態について図面を参照しながら説明する。
【００２５】
〔システム構成例〕
図６は、レーザ書込システム１２の概略を説明する図の一例である。図示するように、コンベア１１上をコンテナ１３が移動している。コンテナ１３にはリライタブルペーパ１４が装着（固定）、貼付、又は、着脱可能に保持されている。コンベア１１が形成する搬送経路には、リライタブルペーパ１４と対面する位置にレーザ書込システム１２が配置されている。レーザ書込システム１２はコンテナ１３の通過をセンサなどで検出し、ラベルであるリライタブルペーパ１４に図１のような文字、数字、記号、図形等（以下、単に文字等という場合がある）を描画する。
【００２６】
レーザ書込システム１２は、レーザ照射装置３０、書込制御装置２０及び画像処理装置１００を有する。書込制御装置２０は、走査命令に基づきレーザの照射位置を制御しながらレーザを照射して、リライタブルペーパ１４に文字等を描画する。画像処理装置１００は、文字等の座標データから走査命令を生成する。なお、書込制御装置２０と画像処理装置１００は接続されている必要はなく、画像処理装置１００が生成したベクトルデータ又は走査命令を、記憶媒体を介して取得できればよい。
【００２７】
また、画像処理装置１００がベクトルデータまで生成し、書込制御装置２０がベクトルデータから走査命令を生成するという形態も可能である。このように画像処理装置１００と書込制御装置２０の役割は必ずしも明確でなくてよい。また、書込制御装置２０と画像処理装置１００が一体の装置として構成されてもよく、図示する形態は一例である。
【００２８】
図７は、書込制御装置２０と接続されるレーザ照射装置３０のハードウェア構成図の一例を示す。レーザ照射装置３０は、レーザを照射するレーザ発振器２１、レーザの照射方向を変える方向制御ミラー２４、方向制御ミラー２４を駆動する方向制御モータ２３、スポット径調整レンズ２２、及び、焦点距離調整レンズ２５、を有する。
【００２９】
レーザ発振器２１は、半導体レーザ（LD（Laser  Diode））であるが、気体レーザ、固体レーザ、液体レーザ等でもよい。方向制御モータ２３は、方向制御ミラー２４の反射面の向きを２軸に制御する例えばサーボモータである。方向制御モータ２３と方向制御ミラー２４とによりガルバノミラーを構成する。スポット径調整レンズ２２は、レーザ光のスポット径を調整するレンズであり、焦点距離調整レンズ２５はレーザ光を収束させて焦点距離を調整するレンズである。
【００３０】
書込制御装置２０が走査命令に含まれるレーザ出力の制御値に基づくデューティ比のＰＷＭ信号、制御値に基づく電圧又は電流をレーザ発振器２１に与えると、制御値に応じた強さのスポット光が照射される。また、描画速度の場合、書込制御装置２０は、まず、レーザの走査角度を求める。レーザ照射装置３０からリライタブルペーパ１４までの距離は一定であるので、方向制御ミラー２４がストローク又は単位線分の始点にレーザを照射するための方向、及び、終点にレーザを照射するための方向を決定できる。書込制御装置２０は、方向制御ミラー２４のレーザの照射位置を、始点の方向から終点の方向まで、走査命令に含まれる描画速度の制御値に基づき変化させる。例えば、ガルバノミラーの場合、磁界中のコイルに印加する電圧により方向制御ミラー２４の方向が制御される。Ｘ軸方向とＹ軸方向でそれぞれ方向を電圧に変換する変換テーブルなどを用意しておき、始点の方向の電圧から終点の方向の電圧まで、描画速度の制御値に基づき等角速度で変化させる。
【００３１】
このリライタブルペーパ１４は、表面から深さ方向に向かって、保護層、熱可逆性フィルムで構成された記録層、基材層、バックコート層という４層をもって構成されている。リライタブルペーパ１４は、柔軟性と同時にある程度の強度特性を有するように構成され、繰り返し使用することができる。 "ペーパ"と呼ばれても植物繊維のみから作成されるものではなく、植物繊維を一切含まない場合もある。
【００３２】
リライタブルペーパ１４は、その一部に書き換え可能な可逆表示領域としてのリライタブル表示領域が設けられている。リライタブル表示領域は、熱可逆性（Thermo-Chromic）フィルム等の可逆性感熱記録媒体により構成される。 この可逆性感熱記録媒体には、温度に依存して透明度が可逆的に変化する態様と、温度に依存して色調が可逆的に変化する態様とがある。
【００３３】
本実施形態では、温度に依存して色調が可逆的に変化する可逆記録媒体で、記録層にロイコ染料と顕色剤を含むことで、リライタブル特性を実現する熱可逆性フィルムを使用する。
【００３４】
すなわち、発色は、消色状態から融点以上（例えば約１８０℃）に加熱し、ロイコ染料と顕色剤とが混合した溶融状態から急冷することによって行なう。 この場合、染料と顕色剤が結合したまま凝集し、ある程度規則的に集合した状態を形成して発色状態が固定される。
【００３５】
一方、消色は、発色状態を溶融しない温度（例えば１３０から１７０℃）に再加熱することにより行なう。この場合、発色の集合状態が崩れ、顕色剤が単独で結晶化して分離することによって消色状態になる。
【００３６】
ロイコ染料は、無色又は淡色の染料前駆体であり、特に制限はなく、従来公知のものの中から適宜選択することができる。
【００３７】
なお、本実施形態の画像処理装置１００はリライタブルな記録媒体に良好な発色品質で描画することができるが、リライタブルでなく描画内容が消去困難な記録媒体（ライトワンス（Write Once）記録媒体）にも描画可能である。描画速度やレーザ出力は記録媒体の感度などに応じて設定される。リライタブルな記録媒体に対しても適切な描画速度やレーザ出力があり、リライタブルでない記録媒体対しても適切な描画速度やレーザ出力がある。リライタブルでない記録媒体対して適切な描画速度やレーザ出力の範囲で、本実施形態の制御命令の設定方法を好適に適用できる。また、記録媒体がなくてもレーザを照射すること自体は可能である。
【実施例１】
【００３８】
図８は、画像処理装置１００がベクトルデータを作成する手順を模式的に説明する図の一例である。図８（ａ）は、目的の塗りつぶし図形を示す図である。ここでは三角形を例に説明する。
図８（ｂ）：ユーザは三角形の３つの頂点の座標データを画像処理装置１００に入力する。
図８（ｃ）：画像処理装置１００は座標点から、図形の外接矩形を生成する。図形を塗りつぶすためのベクトルデータはこの外接矩形内に含まれる。
図８（ｄ）：画像処理装置１００は外接矩形内を塗りつぶす、仮のベクトルデータを生成する（以下、仮ベクトルデータという）。
図８（ｅ）：画像処理装置１００は、仮ベクトルデータを１つずつ取り出し、三角形の辺（後述する図形枠線分）との交点を求める。仮ベクトルデータのうち、三角形の内側の部分が求めるベクトルデータである。
図８（ｆ）：画像処理装置１００は、仮ベクトルデータを交点で分割する。
図８（ｇ）：画像処理装置１００は、３つに分割された仮ベクトルデータのうち、図形外の仮ベクトルデータを除去する。残ったベクトルが目的のベクトルデータである。
図８（ｈ）：このような処理を全ての仮ベクトルデータに施すことで、塗りつぶしデータが得られる。
【００３９】
本実施例の処理によれば、従来と比べて、多角形を塗りつぶすベクトルデータを効率的に生成することができる。
【００４０】
〔構成例〕
図９（ａ）は、画像処理装置１００のハードウェアブロック図の一例を示す。画像処理装置１００は、一般的な情報処理装置を利用することができる。情報処理装置は、パソコン、ワークステーション、タブレットＰＣ等が知られているが、どのような呼称でもよい。
【００４１】
画像処理装置１００は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、ＨＤＤ１０４、ネットワークＩ／Ｆ１０５、グラフィックボード１０６、キーボード１０７、マウス１０８、メディアドライブ１０９、及び、光ディスクドライブ１１０を有する。ＣＰＵ１０１は、ＨＤＤ１０４に記憶されたプログラム１３０を実行して画像処理装置１００の全体の動作を制御する。ＲＯＭ１０２は、ＩＰＬ（Initial Program Loader）や静的なデータを記憶している。ＲＡＭ１０３は、ＣＰＵ１０１がプログラム１３０を実行する際のワークエリアとして使用される。
【００４２】
ＨＤＤ１０４にはＣＰＵ１０１が実行するプログラム１３０やＯＳが記憶される。プログラム１３０は、画像処理装置１００が図形の頂点、枠線などの形状情報から走査命令を生成するためのプログラムである。ネットワークＩ／Ｆ１０５はネットワークに接続するための例えばイーサネットカード（登録商標）であり、主にレイヤ１、２の処理を提供する。レイヤ３以上の処理は、ＯＳに含まれるＴＣＰ／ＩＰのプロトコルスタックやプログラムが提供する。
【００４３】
グラフィックボード１０６は、ＣＰＵ１０１が不図示のビデオＲＡＭに書き込んだ描画コマンドを解釈してディスプレイ１２０にウィンドウ、メニュー、カーソル、文字又は画像などの各種情報を表示する。
【００４４】
キーボード１０７は、文字、数値、各種指示などのための複数のキーを備え、ユーザの操作を受け付けＣＰＵ１０１に通知する。同様に、マウス１０８はカーソルの移動、メニューなどの処理対象の選択、処理内容などのユーザの操作を受け付ける。
【００４５】
メディアドライブ１０９は、フラッシュメモリ等の記録メディア１２１に対するデータの読み出し又は書き込み（記憶）を制御する。光ディスクドライブ１１０は、着脱可能な記録媒体の一例としてのBlu-rayディスク、コンパクトディスク、ＤＶＤ（Digital Versatile Disk）等の光メディア１２２に対する各種データの読み出し又は書き込みを制御する。また、上記各構成要素を電気的に接続するためのアドレスバスやデータバス等のバスライン１１２を備えている。
【００４６】
プログラム１３０は、インストール可能な形式又は実行可能な形式のファイルで、コンピュータで読み取り可能な記録メディア１２１や光メディア１２２に記録して配布される。また、プログラム１３０は、不図示のサーバからインストール可能な形式又は実行可能な形式のファイルで画像処理装置１００に配布されてもよい。
【００４７】
図９（ｂ）は、書込制御装置２０のハードウェア構成図の一例を示す。図９（ｂ）は、主にソフトウェアによって書込制御装置２０を実装する場合のハードウェア構成図であり、コンピュータを実体としている。コンピュータを実体とせず書込制御装置２０を実現する場合、ＡＳＩＣ（Application Specific Integrated Circuit）等の特定機能向けに生成されたＩＣを利用する。
【００４８】
書込制御装置２０は、ＣＰＵ２０１、メモリ２０２、記憶媒体Ｉ／Ｆ２０３、通信装置２０４、ハードディスク２０５、入力装置２０６、及び、ディスプレイ２０７を有する。ハードディスク２０５には、図形を塗りつぶす走査命令や文字、数字、記号を描画する走査命令が登録された走査命令ＤＢ２１０、走査命令に基づきレーザ発振器２１や方向制御モータ２３を制御する制御プログラム２２０が記憶されている。
【００４９】
ＣＰＵ２０１は、ハードディスク２０５から制御プログラム２２０を読み出し実行し、リライタブルペーパ１４に文字を描画する。メモリ２０２は、ＤＲＡＭなどの揮発性メモリで、ＣＰＵ２０１が制御プログラム２２０を実行する際の作業エリアとなる。入力装置２０６は、マウスやキーボードなどレーザ照射装置３０を制御する指示をユーザが入力するための装置である。ディスプレイ２０７は、例えば制御プログラム２２０が指示する画面情報に基づき所定の解像度や色数で、ＧＵＩ（Graphical User Interface）画面を表示するユーザインターフェイスとなる。例えば、リライタブルペーパ１４に描画する文字の入力欄が表示される。
【００５０】
記憶媒体Ｉ／Ｆ２０３は、記憶媒体２３０を脱着可能に構成され、記憶媒体からデータを読み出し、また、記憶媒体２３０にデータを書き込む際に利用される。制御プログラム２２０及び走査命令ＤＢ２１０は、記憶媒体２３０に記憶された状態で配布され、記憶媒体２３０から読み出されハードディスク２０５にインストールされる。なお、制御プログラム２２０及び走査命令ＤＢ２１０は、ネットワークを介して接続した所定のサーバからダウンロードすることができる。
【００５１】
記憶媒体２３０は、Blu-rayディスク、コンパクトディスク、ＤＶＤ、ＳＤカード、マルチメディアカード、ｘＤカード等、着脱可能な可搬型の不揮発性のメモリである。通信装置２０４は、例えばイーサネットカードや、シリアル通信装置（ＵＳＢ（Universal Serial Bus）、ＩＥＥＥ１３９４、Ｂｌｕｅｔｏｏｔｈ（登録商標）等）であり、レーザ発振器２１や方向制御モータ２３に走査命令を送信するために使用される。
【００５２】
図１０は、画像処理装置１００の機能ブロック図の一例を示す。画像処理装置１００は、外接矩形生成部４１、仮ベクトル生成部４２、交点算出部４３、ベクトル分割部４４、及び、走査命令生成部４５を有する。これらの機能ブロックはＣＰＵ１０１がプログラム１３０を実行し、ハードウェアと協働することで実現される。
【００５３】
外接矩形生成部４１は、ユーザが入力した多角形の頂点座標を取得して、多角形を内包する外接矩形を生成する。多角形の頂点の座標データは、ユーザがキーボードやマウスを操作して入力してもよいし、頂点の座標データが記述されたテキストファイルを読み出すことで入力してもよい。なお、外接矩形生成部４１は、ビットマップデータに画像処理を施し頂点座標を抽出することもできる。
【００５４】
仮ベクトル生成部４２は、生成された外接矩形内を塗りつぶす仮ベクトルデータ（特許請求の範囲の平行線分に相当する）を生成する。詳しくは後述するが、仮ベクトルデータのピッチ（垂直方向の間隔）は、スポット光の径、レーザ出力、及び、リライタブルペーパ１４の発色性能などにより予め決定されているものとする（したがって、ピッチ自体は可変である）。１つの図形においてピッチは一定であるとするが、１つの図形に対し仮ベクトルデータ同士のピッチを変えることも困難ではない。
【００５５】
交点算出部４３は、多角形の辺と仮ベクトルデータの交点を算出する。交点の算出方法としては、辺の直線と仮ベクトルデータを直線の方程式に変換して、公知の公式を使用する方法がある。
【００５６】
ベクトル分割部４４は仮ベクトルデータを１つめの交点で分割した後、別の辺との交点でさらに分割する。これにより、１本の仮ベクトルデータが３本（又は頂点と通過する場合は２本）に分割されるので、ベクトル分割部４４は、図形外にある仮ベクトルデータを消去する。よって、図形内を塗りつぶすベクトルデータが生成される。仮ベクトルデータが何本に分割されるかは図形の形状によるので、３本（又は２本）に限らないが、本実施例では仮ベクトルデータは３本（又は２本）に分割されるとする。
【００５７】
走査命令生成部４５は、ベクトルデータから走査命令を生成する。走査命令は、書込制御装置２０の仕様やリライタブルペーパ１４の発色性能に応じて最適化された制御命令である。例えば、ベクトルデータが全て一方向を向いていても、交互に方向を変えることなども走査命令の生成時に行われる。
【００５８】
〔従来例〕
まず、本実施例の画像処理装置と比較するため、従来技術について説明する。本実施例の画像処理装置１００は従来のベクトルデータの生成機能をも有している。
【００５９】
図１１、１２は、従来技術において、多角形を指定する頂点座標から走査命令を生成するまでの処理手順を示すフローチャート図の一例である。なお、描画対象の多角形としては図５の図形を使用する。
【００６０】
まず、画像処理装置１００はユーザ等から描画させたい塗りつぶし図形の形状を指定する入力データを受け付ける（S0-1）。入力データは、例えば多角形を構成する各頂点（Ａ〜Ｅ）の座標等である。
【００６１】
続いて、画像処理装置１００は受け付けた座標データから各頂点を結ぶ線分郡を生成する（S0-2）。この線分は「辺」と呼ばれるものだが、以下、「図形枠線分」と称する。図形枠線分は、例えば少なくともその線分の始点座標と終点座標を有するものとする。
【００６２】
次に、画像処理装置１００は、座標データのうち、例えば、もっとも高さが低い頂点を選び出し、その頂点を端点とする２つの図形枠線分（図５のＡＥ、ＡＢが該当)を選び出す（S0-3)。この処理は、塗りつぶしデータの生成を開始する箇所を決定するためのものである。図１１のフローの中では、２つの線分は、図５のＡＥがＬＬ、図５のＡＢがＲＬに相当する。フローチャート図でＬＬ，ＲＬとしたのは、他の図形枠線分も処理対象となるためである。なお、ここでは高さが低い点を基準としたが、逆に高い点にする等、基準点は低い点に限るものではない。
【００６３】
次に、画像処理装置１００は現在、着目している高さcyが、頂点の座標データのうち最も高い点maxP(図５ではＤ)を超えているか否かを判定する（S0-4）。この判定は、図１１のフローチャート図の終了条件を判定するものである。なお、処理開始直後の着目している高さcyは、もっとも高さが低い頂点のY座標である。従来技術では、ピッチ毎に１本ずつベクトルデータを作成するので、着目している高さcyにはまだ、ベクトルデータは存在しない。
【００６４】
また、ステップS0−3で、二線分を選び出した基準点がもっとも高い頂点であった場合は、S0−4で判定の対象となる点は最も低い点となる。
【００６５】
ステップS0−4の判定がＮｏの場合、画像処理装置１００は、着目している高さcyが線分ＬＬ（線分ＡＥ)の高い方の端点(図５でいえばＥ)を越えているか否かを判定する（S0−５）。
【００６６】
着目している高さcyが線分ＬＬの高い方の端点Ｅを超えていた場合（S0-5のＹｅｓ）、画像処理装置１００は参照線分を切り替える（S0-11）。
【００６７】
着目している高さcyが線分ＬＬの高い方の端点Ｅを超えていない場合（S0−５のＮｏ）、画像処理装置１００は、着目している高さcyが線分ＲＬ(線分ＡＢ)の高い方の端点（Bが該当）を超えているか否かを判定する（S0-6）。
【００６８】
着目している高さcyが線分ＲＬ(線分ＡＢ)の高い方の端点（Ｂが該当）を超えている場合、画像処理装置１００は参照線分を切り替える（S0−１１）。
【００６９】
着目している高さcyが線分ＲＬ(線分ＡＢ)の高い方の端点（Ｂが該当）を超えていない場合（S0−６のＮｏ）、画像処理装置１００は、線分ＬＬ(線分ＡＥ)の直線の式を求め、高さcyにおけるベクトルデータのX座標Ｌｘを求める（S0−７）。これが着目している高さcyで生成するベクトルデータの一方の端点の座標となる。
【００７０】
同様に、画像処理装置１００は、線分ＲＬ(線分ＡＢ)の直線の式を求め、高さcyにおけるX座標Ｒｘを求める（S0−８）。これが高さcyで生成するベクトルデータの他方の端点座標となる。
【００７１】
Ｌｘ、Ｒｘを取得することができたら、画像処理装置１００は、着目している高さcyにおいてLxとRxを結ぶ水平線分を生成する（S0−９）。この水平線分は、例えば、端点(Lx, cy)と(Rx, cy)を結ぶベクトルデータとして扱われる。
【００７２】
cyの高さにベクトルデータを生成したら、ピッチ分だけ着目する高さcyを大きくして、cyを更新する（S0−１０）。
【００７３】
以降、再び、ステップS0−4から一連の動作を繰り返すことで多角形を塗りつぶすためのベクトルデータを生成していく。
【００７４】
また、ステップS0−4において、着目している高さcyの値が座標データの一番高い高さＤに到達した場合は、画像処理装置１００は、多角形を塗りつぶすベクトルデータの生成が完了したとみなし処理を完了する。
【００７５】
ところで、ステップS0−7〜S0−9ではＬＬ，ＲＬそれぞれの線分が高さcyの時のX座標を元に水平線分を生成している。これは、図形外枠に沿った位置、長さの水平線分を形成するためである。このため、例えばcyがＬＬ(線分ＡＥ)の範囲を超えた場合、すなわちＬＬの高い方の端点を越えた場合、続く高さに位置する次の線分、すなわち図５でいえば線分ＥＤを、水平線分を生成する上での参照対象としなければならない（S0−11）。
【００７６】
図１２は、ステップS0−11の処理を説明する図の一例である。ここで、olはステップS0−5又はステップS0−6の判定でＹｅｓとなり、S0−11の処理に移行した際に参照されていた線分、すなわちcyが線分高さを超えた時に着目していた線分である。具体的には、例えば線分ＡＥである。
【００７７】
まず、画像処理装置１００は、ol以外の線分を一つ選び出す。ここで選び出された線分をclとする（S0'-11)。例えばolが図５の線分ＡＥであったとすれば、線分ＥＤ、線分ＤＣ、線分ＣＢ、線分ＢＡのうちどれか一つを選ぶ処理が行われる。
【００７８】
線分clを選び出したら、画像処理装置１００はolの高い方の端点(図５のＥ)とclの端点(clがＥＤであった場合は、ＥとＤ)の座標を比較する（S0'-12）。
【００７９】
clのどちらか一方の端点がolの高い方の端点と一致した場合、olとclがつながっているので、clを次の参照対象として設定する（S0'-13）。
【００８０】
また、clの端点がどちらも一致しなかった場合、ステップS0'-1に戻り、残る線分(線分ＤＣ, 線分ＣＢ, 線分ＢＡ)から1つの線分をclに設定し、ステップS0'-1以下の処理を続行する。このように、接続先が見つかるまで図形枠線分を1本1本参照し、次の線分を探す必要がある。
【００８１】
また、ステップS0'-3により新しい参照線分が決定した場合は、処理が図１１のS0−5、S0−6に戻る。画像処理装置１００は高さcyが、参照対象として新たに設定した線分の範囲内にあるか否か判定を再度、行う。範囲内にあれば、以降の処理を続行する。
【００８２】
以上、示したステップを経ることで、画像処理装置１００は一定のピッチ毎に水平線分を生成し、塗りつぶしデータを得ることができる。
【００８３】
しかしながら、このような従来の手法では、塗りつぶしデータを生成する際に不得意な図形が存在する。そのような図形の一例は、座標数が多い図形である。
【００８４】
「図形を構成する座標数が多い」図形としては、例えば円やハートマークなど、曲線を多用した図形が挙げられる。これは、レーザ照射装置３０は直線しか描画できないためである。このため、画像処理装置１００は、円や曲線を描画する場合、画像処理装置１００は、円の外枠を短い直線の集まりに置き換える。
【００８５】
図１３は、円から生成された直線を説明する図の一例である。書込制御装置２０は、円や曲線を直接、描画できないため、画像処理装置１００が予め円や曲線を短い直線(線分AB, 線分BC,…)の集まりに変換しておく。したがって、円も多角形と同様に、各線分の端点はその円の外枠を構成する頂点となる。このように、データ上、円は頂点数の多い多角形として扱われるため、より滑らかな円を描画する場合、頂点数及び円を構成する線分数がより多くなる傾向となる。
【００８６】
このように多くの頂点や線分があることは、図１１，１２のアルゴリズムと相性が悪い。すなわち、入力データとして、非常に滑らかな円が指定された場合においては、上述のアルゴリズムでは、２線分(図１１のＬＬ,ＲＬ)の端点を外れたか否かの判定と参照線分の切り換え処理が増大する。１つの線分の端点に現在の高さcyが到達した場合、その都度その線分とつながる次の線分を、他の全ての線分の中から検索しなければならない。このため、滑らかな円や曲線では、頻繁に次の線分を探す処理(図１２のS0−11)が必要になり、処理が遅くなる。
【００８７】
また、実際に描画される円のサイズが小さいケースが考えられる。塗りつぶしデータは一定のピッチで生成されるので、サイズが小さいと生成されるベクトルデータの数も少なくなる。これは、図形枠線分のうち、ベクトルデータを生じない図形枠線分も存在するということを意味する。すなわちS0−11で新しい参照線分を設定した後、S0−7からS0−9の処理が行われず、すぐにS0−5又はS0−6の判定が行われ、次の線分を探す処理に移行する。
【００８８】
このことは、塗りつぶしデータを生成しない(塗りつぶしデータを作るうえで水平線分と交わる)図形枠線分を、参照線分に設定する処理（S0-11）が行われ、非常に無駄な処理を多く行うことを意味している。
【００８９】
なお、塗りつぶしデータを生成する前に図形枠線分を、例えば接続順になるように並び替えておけば、処理数を軽減する事ができるが、別途ソート処理等を行う必要が生じてしまう。
【００９０】
このように、水平方向の線と図形枠線分の交点を単純に探すというアルゴリズムでは、塗りつぶしデータの生成に最適とはいえない。
【００９１】
〔本実施例のアルゴリズム〕
そこで、本実施例では、順番に図形枠線分に着目して、図形枠線分と交差する仮ベクトルデータのみを処理対象とすることで、処理を効率化する。
【００９２】
図１４、１５は、本実施例の画像処理装置１００が塗りつぶしデータを生成する手順を示すフローチャート図の一例である。図１６は、塗りつぶしデータの生成を模式的に説明する図の一例である。
【００９３】
S1-1：画像処理装置１００は、ユーザやファイルから入力として座標データを取得する。図１６（ａ）のＡ〜Ｅが頂点である。
【００９４】
S1-2：外接矩形生成部４１は、取得した各頂点の座標のデータに基づいて、図形を構成する枠線群（ＡＥ、ＥＤ、ＤＣ、ＣＢ、ＢＡ）を生成する。図１６（ｂ）は得られた枠線分の一例を示す。具体的には、例えば、１つの頂点（例えばＡ）から他の頂点（Ｂ、Ｃ、Ｄ、Ｅ）と接続する直線を求め、２つの直線の組（ＡＥとＡＢ、ＡＥとＡＤ、ＡＥとＡＣ）を取り出し、最も大きいなす角が得られる組（この場合はＡＥとＡＢ）の直線の端点（すなわち、Ｅ，Ｂ）と接続する。しかし、同じ座標データから異なる図形の形状を得ることも可能なので、より好ましくは、ユーザが座標データと接続順を入力する。または、ユーザは、線分（端点の組として）を入力データとしてもよい。このようにして該図形は閉塞領域を区画する。
【００９５】
S1-3：次に、外接矩形生成部４１は、ステップS1-1で取得した各頂点座標から、図形を囲む外接矩形を求める。外接矩形は例えば次のようにして求める。Ａ〜Ｅの頂点の座標において、X座標の最大値を通過する縦線ｈ１、X座標の最小値を通過する縦線ｈ２、Y座標の最大値を通過する横線ｖ１、Y座標の最小値を通過する横線ｖ２、を求める。そして、縦線ｈ１，ｈ２の高い方の端点を、Ａ〜Ｅの座標の高さ方向の最大値に、縦線ｈ１，ｈ２の低い方向の端点を、Ａ〜Ｅの座標の高さ方向の最小値にそれぞれ設定する。また、横線ｖ１，ｖ２のX座標が大きい側の端点を、Ａ〜Ｅの座標のX座標の最大値に、横線ｖ１，ｖ２のX座標が小さい側の端点を、Ａ〜Ｅの座標のX座標の最小値にそれぞれ設定する。
【００９６】
S1-4：次に、仮ベクトル生成部４２は、ステップS1-3で求めた外接矩形の高さｈ内で、最小高さから一定の間隔（ピッチph）毎に仮ベクトルデータを生成する。これにより、仮ベクトルデータの集合として仮ベクトルデータ群が生成される。図１６（ｃ）は仮ベクトルデータ群の一例を示す。一定の間隔ｐｈは、書込制御装置２０の仕様、感熱紙の発色性能等から任意で定められる。
【００９７】
また、生成する仮ベクトルデータの長さは、少なくとも外接矩形の幅ｗを超える長さとなるようにする。すなわち、仮ベクトルの両端点ss,seが外接矩形を超えるように生成される。どの程度超えるかについては、任意で決めてよい。このように外接矩形をはみ出すように仮ベクトル群を生成するのは、分割後の仮ベクトルデータの除去を外接矩形を基準に行うからである。また、仮ベクトルデータを高さ方向のどこまで生成するかについては任意でよいが、ステップS1‐3で求めた外接矩形の最大値maxH迄生成することが好ましい。
【００９８】
S1-5：次に、交点算出部４３は、ステップS1−2で生成した図形枠線分とステップS1-4で生成した仮ベクトルデータとを１本ずつ比較し、仮ベクトルデータと１つの図形枠線分の交点cpを求める。図１６（ｄ）は交点cpの一例を示す。仮ベクトルデータと図形枠線分を１つずつ取り出すので、一度に得られる交点cpは１つである。
【００９９】
ベクトル分割部４４は、求めた交点cpで仮ベクトルを分割する。すなわち、１本の仮ベクトルデータが２本の仮ベクトルデータに分割される。
【０１００】
図１５によりこの分割処理をより詳細に説明する。ここでは各図形枠線分に順番に着目して処理を行う。
【０１０１】
まず、交点算出部４３は、図形枠線分を全て参照したかを判断する（S1-51）。この判定は、分割処理の終了判定処理となる。
【０１０２】
まだ参照していない図形枠線分があった場合（S1-51のＮｏ）、図形枠線分からまだ参照していない線分を一つ参照対象として選び出す（S1-52）。図形枠線分を選び出す順序は任意でよい。
【０１０３】
参照対象の図形枠線分が選び出されたら、交点算出部４３は、選び出した図形枠線分が水平線かどうかを判断する（S1-53）。該図形枠線分が水平線であった場合（S1-53のＹｅｓ）、処理はステップS1-51に戻り、次の図形枠線分を参照する。ステップS1-53の判定を行うのは、図形枠線分が水平である場合、ベクトルデータと平行となるため、交点を求めたり分割する必要がないためである。この水平な図形枠線分と重なるベクトルデータはここで処理をしなくても、図形枠線分の両端から伸びる図形枠線分を後に参照した際に、その図形枠線分との交点によって分割される（塗りつぶしデータを構成する上で必要な仮ベクトルデータの場合）。また、塗りつぶしデータを構成する上で必要な仮ベクトルデータでない場合、後の外接矩形外の仮ベクトルデータを除去する段階で取り除かれる。
【０１０４】
現在着目している図形枠線分が水平でない場合（S1-53のＮｏ）、交点算出部４３は、仮ベクトルデータ群のうち、現在着目している図形枠線分に対し、未参照の仮ベクトルデータが存在するか否かを判定する（S1-54）。
【０１０５】
未参照の仮ベクトルデータが存在しない場合（S1-54のＹｅｓ）、処理はステップS1−51に戻り、次の図形枠線分が選択される。
【０１０６】
未参照の仮ベクトルデータが存在する場合（S1-54のＮｏ）、交点算出部４３は、分割対象の候補として1つの仮ベクトルデータを選び出す（S1-55）。仮ベクトルデータを選び出す順序は、下から順番であるとするが、上から順番としても後の処理で整合をとることができる。
【０１０７】
次いで、分割対象の仮ベクトルデータを選び出したら、交点算出部４３は、現在参照している仮ベクトルデータが現在、参照している図形枠線分よりも高い位置にあるか否かを判定する（S1-56）。すなわち、現在参照している図形枠線分を構成する両端点よりも仮ベクトルデータが高い位置にあるかどうかが判定される。
【０１０８】
高い位置にあった場合（S1-56のＹｅｓ）、それ以降、現在着目している図形枠線分に対する分割対象の仮ベクトルデータは存在しないことになるので、処理はS1−51に戻り、次の図形枠線分が選択される。
【０１０９】
仮ベクトルデータが図形枠線分より高い位置になかった場合（S1-56のＮｏ）、交点算出部４３は仮ベクトルデータが図形枠線分より低い位置にあるか否かを判定する（S1-57）。ステップS1-56,1-57により、図形枠線分の最小高さと最大高さに入る仮ベクトルデータのみと、図形枠線分の交点が求められる。
【０１１０】
現在着目している図形枠線分より低い位置に仮ベクトルデータが位置していた場合（S1-57）、まだ、着目している図形枠線分に仮ベクトルデータが到達していないので、処理はステップS1-54に戻る。すなわち、交点算出部４３は、次の仮ベクトルデータがあるか否かを判定し、あれば次の仮ベクトルデータを選び出す。
【０１１１】
ステップS1-56、S1-57により、現在着目している図形枠線分の上下範囲に位置する仮ベクトルデータが取り出される。交点算出部４３は、現在着目している図形枠線分と現在参照している仮ベクトルデータの交点を求める。そして、ベクトル分割部４４は、交点で仮ベクトルデータを分割する（S1-58）。
【０１１２】
分割したら、ステップS1−54以降の処理が実行され、まだ参照していない仮ベクトルデータの分割を継続する。
【０１１３】
図形枠線分により仮ベクトルデータが１回、分割されることで、各仮ベクトルデータは図１６（ｄ）の状態になる。図１６（ｄ）では１本の仮ベクトルデータがds1,ds2の２本の仮ベクトルデータに分割されている。分割の際、ds1とds2をどの程度はなすか、つまりds1の端点とds2の端点をどこからにするかは、任意で決めてよいものとする。
【０１１４】
また、図形枠線分によりds1とds2に分割される仮ベクトルデータのうち、ds2は図形枠線分ＡＢによっても分割される。このように、１本の仮ベクトルデータは、原則的に３本のベクトルデータに分割される。なお、頂点を通過する仮ベクトルデータは２本のベクトルデータに分割される。
【０１１５】
全ての図形枠線分と全ての仮ベクトルデータの比較が終わると、仮ベクトルデータ群の分割が終了する。これにより、仮ベクトルデータ群は図１６（ｅ）に示すように分割される。
【０１１６】
S1-6:  図１４に戻り、ベクトル分割部４４は、図形の外接矩形から全体又は一方の端点がはみ出している分割後の仮ベクトルデータを除去する（S1-6）。すなわち、図形の外接矩形と重複している分割後の仮ベクトルデータを除去する。外接矩形と仮ベクトルデータの座標はＸ座標だけ比較すればよいので、外接矩形から全体又は一方の端点がはみ出している仮ベクトルデータは容易に特定できる。
【０１１７】
図１６（ｆ）に示すように、仮ベクトルデータ群は、図形内のものだけが残る。すなわち、除去することによって、図形枠線外の余分な仮ベクトルデータが消去され、元の図形内を塗りつぶすような塗りつぶしデータが生成できる。
【０１１８】
ところで、図形枠線分と仮ベクトルデータとの交点で、仮ベクトルデータを分割する際、分割後の仮ベクトルデータの距離を大きくはなすと、図形の外枠よりも、描画後の図形が小さくなるおそれがある。
【０１１９】
これに対応するため、分割後の仮ベクトルデータの両端点を、指定された図形の外枠と重なるように、一定量延長してもよい。この延長量も書込制御装置２０の仕様やリライタブルペーパ１４の発色性能を加味し任意で決めることができる。
【０１２０】
また、図１４、１５では、図形枠線分と仮ベクトルデータとの交点を求めて分割する処理において、仮ベクトルデータを下から参照しているが、上から、又は、それ以外の方向から行ってもよい。この場合、全体の整合性が取れるよう各ステップを修正する。
【０１２１】
さらに、本実施例では塗りつぶしデータを水平方向の仮ベクトルデータで構成したが、水平方向でなく、垂直方向、又は、それ以外の方向の仮ベクトルデータでも構成できる。
【０１２２】
図１４，１５のようなアルゴリズムにより、図形枠線分がどのように繋がっているかや、図形枠線分の参照順に依存することなく、単純に図形枠線分とベクトルデータを順番に参照していくだけで処理することができる。
【０１２３】
すなわち、従来技術のように、図形枠線分の切り替えを行う必要がないため、頂点数の多い円等を含めた如何なる図形の入力に対しても、頻繁な図形枠線分の切り替え処理（S0-11)を行う必要がない。よって、処理速度を向上させることができる。
【実施例２】
【０１２４】
図１７は、本実施例の画像処理装置１００がベクトルデータを作成する手順を模式的に説明する図の一例である。図１７（ａ）は、目的の塗りつぶし図形を示す図である。
図１７（ｂ）：ユーザは三角形の３つの頂点の座標データを画像処理装置１００に入力する。
図１７（ｃ）：画像処理装置１００は座標点から、図形の外接矩形を生成する。塗りつぶすためのベクトルデータはこの外接矩形内に含まれる。
図１７（ｄ）：画像処理装置１００は外接矩形内を塗りつぶす、仮ベクトルデータを生成する。
図１７（ｅ）：画像処理装置１００は、仮ベクトルデータを順番に取り出し、三角形の辺を構成する図形枠線分との交点を求める。仮ベクトルデータのうち、三角形の内側が求めるベクトルデータである。
図１７（ｆ）：画像処理装置１００は、交点よりも外接矩形側の仮ベクトルデータの２つの端点を交点まで短縮する。すなわち、交点まで短くする。これにより目的のベクトルデータが得られる。
図１７（ｇ）：このような処理を全ての仮ベクトルデータに施すことで、塗りつぶしデータが得られる。
【０１２５】
本実施例の処理によれば、従来技術と比べて実施例１と同様の効果を有する。また、実施例１と比べ、分割する必要がないため、図形が外枠線よりも小さくなったり、３本分の仮ベクトルデータを記憶しておくメモリなどの資源を確保する必要がない。
【０１２６】
〔構成例〕
図１８は、本実施例の画像処理装置１００の機能ブロック図の一例を示す。図１８において図１０と同一部の説明は省略する。画像処理装置１００は、外接矩形生成部４１、仮ベクトル生成部４２、ベクトル短縮部４６、及び、走査命令生成部４５を有する。したがって、機能ブロックとしては、ベクトル短縮部４６のみが異なっている。
【０１２７】
ベクトル短縮部４６は、仮ベクトルデータが図形の内側に入るように仮ベクトルデータを短縮する。これによりベクトルデータが生成される。
【０１２８】
〔本実施例のアルゴリズム〕
図１９、２０は、本実施例の画像処理装置１００が塗りつぶしデータを生成する手順を示すフローチャート図の一例である。図２１は、塗りつぶしデータの生成を模式的に説明する図の一例である。なお、ステップS1-1、S1-2、S1-3、S1-4は実施例１と同様である。一方、本実施例では、ステップS1-6の、図形枠線外の余分な仮ベクトルデータを除去するステップが不要となる。
S1-1：画像処理装置１００は、ユーザやファイルから入力として座標データ（Ａ〜Ｅ）を取得する。
S1-2：外接矩形生成部４１は、取得した各頂点の座標のデータに基づいて、図形を構成する枠線群（ＡＥ、ＥＤ、ＤＣ、ＣＢ、ＢＡ）を生成する。求め方は実施例１と同様なので説明は省略する。この処理を省略するため、線分として（端点の組として）入力データを取得してもよい。
S2-1：次に、交点算出部４３は、ステップS1-1で取得した図形を構成する各頂点の座標データから、最もY座標が高い位置の頂点maxHPと、最もY座標が低い位置の頂点minHPを選び出し、その２点を結ぶ直線dlを求める（この２点が特許請求の範囲の最外点に相当する）。図２１（ａ）は線分dlの一例を示す。最もY座標が低い位置の頂点minHPは、最もY座標が高い位置の頂点maxHPがある外接矩形の辺と対向した辺にある。
S1-3：次に、外接矩形生成部４１は、ステップS1-1で取得した各頂点座標から、図形を囲む外接矩形を求める。外接矩形の求め方は実施例１と同様なので省略する。
S1-4：次に、仮ベクトル生成部４２は、ステップS1-3で求めた外接矩形の高さ方向内で、最小高さから一定の間隔（ピッチph）毎に仮ベクトルデータを生成する。これにより、仮ベクトルデータの集合として仮ベクトルデータ群が生成される。一定の間隔ｐｈは、書込制御装置２０の仕様、感熱紙の発色性能等から任意で定められる。ただし、実施例１では、図形枠線外の仮ベクトルデータの除去のため、外接矩形の外に端点がある仮ベクトルデータ群を生成したが、本実施例では、外接矩形にぴったりと収まる仮ベクトルデータ群を生成してもよい。
S2-2：交点算出部４３は、ステップS1-2で生成した図形枠線分とステップS1-4で生成した仮ベクトルデータとを１本ずつ比較し、仮ベクトルデータと１つの図形枠線分の交点cpを求める。図２１（ｂ）の交点cp１が求める交点である。交点cp２については次述する。また、ベクトル短縮部４６は、求めた交点cp１まで仮ベクトルデータを短縮する。すなわち、分割することなく、１本の仮ベクトルデータのまま短くする。
【０１２９】
図２０によりこの短縮処理をより詳細に説明する。図２０において図１５と同一ステップには同一のステップを付してその説明は簡略化する。図２０ではS1-51〜S1-57まで図１５と同様である。
【０１３０】
ベクトル短縮部４６は、全ての図形枠線分を参照したか否かを判定する（S1-51）。まだ未参照の図形枠線分が存在した場合、図形枠線分からまだ参照していない線分を一つ参照対象として選び出す（S1-52）。
【０１３１】
次に、ベクトル短縮部４６は、現在、着目している図形枠線分が水平線か否かを判定する（S1-53）。水平線でない場合、現在着目している図形枠線分に対して、未参照の仮ベクトルデータがあるか否かを判定する（S1-54）。
【０１３２】
まだ、未参照の仮ベクトルデータがあった場合、未参照の仮ベクトルデータを１つ選び出し（S1-55）、現在参照中の仮ベクトルデータが、着目している図形枠線分よりも高い位置か否かを判定する（S1-56）。
【０１３３】
高い位置でなければ、現在参照中の仮ベクトルデータが現在着目している図形枠線分より低い位置か否かを判定する（S1-57）。
【０１３４】
ここまでで、現在着目している図形枠線分に対して、短縮する必要がある可能性のある仮ベクトルデータが選び出される。
【０１３５】
次に、交点算出部４３は、現在着目している図形枠線分と、現在参照している仮ベクトルデータとの交点cp１を求める（S2-11）。この交点が図２１（ｂ）の交点cp１である。
【０１３６】
交点cp１を求めたら、次に、交点算出部４３はステップS2-1で求めた直線dlと現在参照している仮ベクトルデータとの交点cp2を求める（S2-12）。ここで求めた交点cp2が、仮ベクトルデータのどちらの端点を短縮するかを判定する基準となる。
【０１３７】
交点cp1と交点cp2を算出したら、ベクトル短縮部４６は交点cp1と交点cp2のX座標の値を比較し、交点cp1が直線dlとの交点である交点cp2に対し、左にあるか、右にあるかを判定する（S2-13）。図２１（ｂ）によれば、交点cp1は交点cp2よりも左にある。
【０１３８】
交点cp1が交点cp2に対して左側に位置していた場合、現在着目している図形枠線分は、描画させる図形の左部分に位置していると判定できる。
【０１３９】
図形の左側に位置する図形枠線分に対して、仮ベクトルデータの該図形枠線分よりも左側は図形の外であり、仮ベクトルデータの図形枠線分よりも右側は図形の中である。塗りつぶし図形を形成するためには、図形の中のみに仮ベクトルデータが存在していることが好ましいため、現在、着目している図形枠線分に対し、外側に存在する仮ベクトルデータを図形枠線分の交点cp1まで短縮する必要がある。
【０１４０】
すなわち、ベクトル短縮部４６は、ステップS2-13によって、交点cp1が交点cp2より左側に位置していた場合、仮ベクトルデータの左側の端点を交点cp1まで短縮する（S2-14）。図２１（ｃ）は仮ベクトルデータの左側の端点の短縮を説明する図の一例である。
【０１４１】
交点cp1が交点cp2より右側に位置していた場合は、仮ベクトルデータの右側の端点を交点cp1まで短縮する（S2-15）。図２１（ｃ）では、図形枠線分と仮ベクトルデータの交点を交点cp１´とした。
【０１４２】
図２１（ｄ）は仮ベクトルデータの右側の端点の短縮を説明する図の一例である。仮ベクトルデータの短縮には、例えば、仮ベクトルデータの外の方向に位置した端点の値を交点cp1の値に設定する方法がある。
【０１４３】
また、塗りつぶしデータを形成するベクトルデータ群を全て左から右に向いたベクトルとした場合、ベクトルデータの始点ssが左側で、終点seが右側となる。このため、仮ベクトルデータの２つの端点が、交点cp2の左右のどちらに位置するかを簡単に判定することができる。
【０１４４】
また、塗りつぶしデータを形成する仮ベクトルデータの始点と終点の方向が、ベクトル間で一致していない場合でも、仮ベクトルデータの両端のX座標の値を比較する等の方法等で、端点が交点cp2の左右のどちらに位置するかを判定することができる。
【０１４５】
ベクトル短縮部４６はステップS2−14又はS2−15により、現在着目している仮ベクトルデータの短縮を行ったら、ステップS1-54に戻り、処理を実行する。これにより、図２１（ｅ）に示す塗りつぶしデータを形成することができる。
【０１４６】
なお、本実施例においても、仮ベクトルデータの参照を上から又は上下以外の方向から行ってもよい。また、塗りつぶしデータは、水平方向でなく垂直やそれ以外の方向のベクトルで構成することもできる。
【０１４７】
本実施例の画像処理装置１００は、実施例１と同様の効果を有すると共に、内外判定用の直線dlを用いることで、塗りつぶしデータを構成する仮ベクトルデータを分割する必要がない。すなわち、仮ベクトルデータの分割を行う場合は、分割した結果、仮ベクトルデータの数が一時的に増えてしまう。しかし、本実施例では分割でなく短縮するため、仮ベクトルデータの数が増えることがない。よって、メモリなどの資源を浪費することを抑制でき、処理速度の面では実施例１よりも向上可能であることが期待できる。
【実施例３】
【０１４８】
実施例２では仮ベクトルデータを短縮することで塗りつぶしデータを生成した。
しかし、実施例２の方法では正常に塗りつぶしデータを生成できないケースが存在する。
【０１４９】
図２２は、実施例２の方法では正常に塗りつぶしデータを生成できない図形を説明する図の一例である。図２２（ａ）〜（ｄ）にはＰ１〜Ｐ４の多角形が図示されている。しかし、これらの図形は、図形を構成する頂点の最小点と最大点を結ぶ線分dlが図形枠線と一致してしまう図形である。Ｐ１〜Ｐ４の太線l1〜l4の辺が線分dlと一致している辺である。
【０１５０】
このような図はステップS2−13の判定では不十分になり、仮ベクトルデータを適切に短縮することができない。例えば、交点cp1とcp2が一致してしまうので、２つの交点のX座標を比較できない。そこで、本実施例では一部の処理を変更することでＰ１〜Ｐ４の図に対応する。
【０１５１】
なお、本実施例の機能ブロック図は実施例２の図１８と同様である。
【０１５２】
図２３、２４は、本実施例の画像処理装置１００が塗りつぶしデータを生成する手順を示すフローチャート図の一例である。
【０１５３】
図２３のステップS1-1，S1-2，S2-1，S1-3，S1-4、S2-2は図１９と同様である。
【０１５４】
ステップS1-4に次いで、ベクトル短縮部４６は、ステップS2−1で生成した線分dlが、図形枠線分群のいずれかと一致するかを判定する（S3-1）。この判定によって、図２２の太線l1〜l4のような線分と線分dlが一致することを検出する。
【０１５５】
ステップS2-1で生成した線分dlがいずれかの図形枠線分と一致しない場合（S2-1のＮｏ）、実施例２と同様の処理を行えばよい（S2-2）。
【０１５６】
なお、ステップS1-4の後にステップS3-1の判定を行ったが、この判定は他のタイミングで行ってもよい。また、実施例２の存在を考慮せず、本実施を採用するのであれば、ステップS3−1の判定を省くこともできる。
【０１５７】
ステップS2-1で生成した線分dlがいずれかの図形枠線分と一致した場合（S2-1のＹｅｓ）、ベクトル短縮部４６はS2−1で生成した線分dlの端点、すなわち、ステップS1-1で取得した頂点のうちY座標が最大の点及び最小の点よりも、X座標が大きな頂点があるか否かを判定する（S3-2）。図２２のＰ１でいえば、Y座標が最大の点及び最小の点は頂点ｂ、ａであり、それよりもX座標が大きな点は頂点c,dとなる。
【０１５８】
この判定を行うのは、ステップS2-1で生成した線分dlが、図形枠線分のX座標が大きな側の線分であった場合（図２２ではＰ２）は、実施例２のまま塗りつぶしデータを生成できるためである。換言すると、図２２のＰ１のような図形では、実施例２のまま塗りつぶしデータを生成できない。
【０１５９】
そのため、ステップS3-2の判定において、ステップS2-1で生成した線分dlの端点よりも、X座標が大きな頂点がなかった場合（S3-2のNo）、図２２のＰ２のような図形であるといえるので、実施例２と同様に塗りつぶしデータを生成して処理を完了する。
【０１６０】
ステップS3-2の判定において、ステップS2-1で生成した線分dlの端点よりもX座標が大きな頂点があった場合（S3-2のYes）、ベクトル短縮部４６は図形枠線分と仮ベクトルデータとの交点を求め、交点まで仮ベクトルデータを短縮させる処理を行う（S3-3）。
【０１６１】
図２４を用いて、ステップS3-3の処理を詳細に説明する。図２４のフローチャート図は、実施例２の図２０とほぼ同じである。異なっているのは、図２０のステップS2-13が、図２４ではステップS3-11となっている点である。
【０１６２】
ステップS2-13、S3-11の判定では、仮ベクトルデータのどちらの端点を短縮するかの判定が行われる。本実施例では、ベクトル短縮部４６は、図形枠線分と仮ベクトルデータの交点cp1と、ステップS2-12で求めた交点cp2のX座標を比較し、交点cp1の方が交点cp2よりも小さいか又は同じであるかを判定する（S3-11）。
【０１６３】
交点cp1の方が交点cp2よりも小さいか又は同じであった場合（S3-11のYes）、仮ベクトルデータのX座標の小さい方の端点を交点cp1まで短縮させる（S2-14）。図２２のＰ１で図形枠線分abに着目している場合、交点cp1は、cp2と一致するので、S3-11でYesと判定され、仮ベクトルデータのX座標の小さい方の端点を交点cp1まで短縮させることができる。
【０１６４】
交点cp1の方が交点cp2よりも小さいか又は同じでない場合（S3-11のNo）、仮ベクトルデータのX座標の大きい方の端点を交点cp2まで短縮させる（S2-15）。図２２のＰ１で図形枠線分adに着目している場合、交点cp1のX座標は、cp2よりも大きいので、S3-11でNoと判定され、仮ベクトルデータのX座標の大きい方の端点を交点cp1まで短縮させることができる。
【０１６５】
ステップS２−１４又はS2-15の処理を終えた後は、画像処理装置１００は、ステップS１-５４に戻り、以降の処理を実行することで、塗りつぶしデータを生成する。
【０１６６】
なお、図２２のＰ３の図形においては、Y座標が最小の座標が２点（A,C）あるが、どちらの点を選び線分dlを生成しても、処理に変更なく対応できる。また、図２２のＰ４の図形においては、Y座標が最大の座標が2点（A、C）あるが、同様に、どちらを選択して線分dlを生成しても、処理に変更なく対応できる。
【０１６７】
また、図２０のS2-13の判定が「よりも小さい」では、本実施例のように図形Ｐ１に本実施例の対応が必要になるが、図２０のS2-13の判定が「よりも大きい」では、本実施例のように図形Ｐ１に本実施例の対応が必要になるが、図形Ｐ２に本実施例の対応が必要になる。つまり、実施例２を含め、ステップS2-13の判定が「よりも大きい」の場合、ステップS2-14にて「X座標より大きいほうの短点を短縮し、ステップS2-15で「X座標より小さいほうの短点を短縮する」とする、ことでベクトルデータを短縮できる。この場合は、ステップS3-2のYesとNoの判定が逆になる。また、図２４のS3-11で「小さいか等しい」を「大きいか等しい」とすればよい。
【０１６８】
以上の処理により、図形として、図２２のＰ１〜Ｐ４で示すような図形が指定された場合も、塗りつぶしデータを生成することができる。
【０１６９】
以上、本願の好適な実施形態を説明した。実施例では、具体例を示して説明したが、特許請求の範囲に記載された本発明の範囲から逸脱することなく、これらの実施形態に様々な修正および変更を加えることができる事は明らかである。
【０１７０】
特に、各実施形態で使用したフローチャートやステップの解説においては、ステップの順序を入れ替える、一部のステップを追加する、除くことは本実施形態の範囲内である。例えば、判定の基準をX座標としていた所をY座標に変更する、塗りつぶしデータを構成するベクトルデータを水平でなく垂直又は斜めとする、座標データを入力するのでなく各構成線分又はその他のデータにする等は、設計的な事項に過ぎない。すなわち、実施形態の詳細及び添付の図面により特許請求の範囲が限定されることはない。
【符号の説明】
【０１７１】
１１    コンベア
１２    レーザ書込システム
１３    コンテナ
１４    リライタブルペーパ
２０    書込制御装置
２１    レーザ発振器
２２    スポット径調整レンズ
２３    方向制御用モータ
２４    方向制御ミラー
２５    焦点距離調整レンズ
３０    レーザ照射装置
４１    外接矩形生成部
４２    仮ベクトル生成部
４３    交点算出部
４４    ベクトル分割部
４５    走査命令生成部
４６    ベクトル短縮部
４７    線分探索部
４８    アルゴリズム選択部
１００  画像処理装置
【先行技術文献】
【特許文献】
【０１７２】
【特許文献１】特開２００４−９００２６号公報
【特許文献２】特開昭６１-５２７３７号公報
【図１】
0006011271.tif 000002
【図２】
0006011271.tif 000003
【図３】
0006011271.tif 000004
【図４】
0006011271.tif 000005
【図５】
0006011271.tif 000006
【図６】
0006011271.tif 000007
【図７】
0006011271.tif 000008
【図８】
0006011271.tif 000009
【図９】
0006011271.tif 000010
【図１０】
0006011271.tif 000011
【図１１】
0006011271.tif 000012
【図１２】
0006011271.tif 000013
【図１３】
0006011271.tif 000014
【図１４】
0006011271.tif 000015
【図１５】
0006011271.tif 000016
【図１６】
0006011271.tif 000017
【図１７】
0006011271.tif 000018
【図１８】
0006011271.tif 000019
【図１９】
0006011271.tif 000020
【図２０】
0006011271.tif 000021
【図２１】
0006011271.tif 000022
【図２２】
0006011271.tif 000023
【図２３】
0006011271.tif 000024
【図２４】
0006011271.tif 000025