以下、本発明の第1〜3の実施形態について、図面を参照して順に説明する。なお、これらの図面は、本発明が採用しうる技術的特徴を説明するために用いられるものであり、記載されている装置の構成、各種処理のフローチャート等は、それのみに限定する趣旨ではなく、単なる説明例である。
まず、第1〜3の実施形態に共通する刺繍データ作成装置1の構成について、図1及び図2を参照して説明する。刺繍データ作成装置1は、後述の刺繍ミシン3によって縫製される刺繍模様のデータを作成する装置である。特に、刺繍データ作成装置1は、写真やイラスト等の画像から取得した画像データに基づき、その画像を表現する刺繍模様を縫製するための刺繍データを作成することができる。図1に示すように、刺繍データ作成装置1は、例えば、所謂パーソナルコンピュータ等の汎用型の装置である。刺繍データ作成装置1は、装置本体10と、装置本体10に接続されたキーボード21,マウス22,ディスプレイ24及びイメージスキャナ装置25を備えている。
次に、図2を参照して刺繍データ作成装置1の電気的構成について説明する。図2に示すように、刺繍データ作成装置1は、刺繍データ作成装置1の制御を司るコントローラであるCPU11を備えている。CPU11には、各種のデータを一時的に記憶するRAM12と、BIOS等を記憶したROM13と、データの受け渡しの仲介を行う入出力(I/O)インタフェイス14とが接続されている。I/Oインタフェイス14には、ハードディスク装置(HDD)15,入力機器であるマウス22,ビデオコントローラ16,キーコントローラ17,CD−ROMドライブ18,メモリカードコネクタ23,及びイメージスキャナ装置25が接続されている。また、図2には図示されていないが、刺繍データ作成装置1は、外部機器やネットワークとの接続のための外部インタフェイスを備えていてもよい。
HDD15は、刺繍データ記憶エリア160及びプログラム記憶エリア161を含む複数の記憶エリアを備える。刺繍データ記憶エリア160には、CPU11が実行する刺繍データ作成プログラムによって作成された刺繍データが記憶される。刺繍データは、刺繍ミシン3で刺繍を行う際に使用されるデータであり、縫製順序、針落ち点データ、及び糸色データが含まれる。プログラム記憶エリア161には、CPU11によって実行される刺繍データ作成プログラムを含む複数のプログラムが記憶されている。なお、刺繍データ作成装置1がHDD15を備えていない専用機である場合は、ROM13に刺繍データ作成プログラムが記憶される。
HDD15には、上記の記憶エリアの他、刺繍データ作成プログラムに従いメイン処理が実行される過程で得られるデータが記憶される記憶エリアが複数設けられている。具体的には、HDD15は、画像データ記憶エリア151,角度特徴データ記憶エリア152,線分データ記憶エリア153,及び分割領域記憶エリア154を備える。またHDD15は、代表色記憶エリア155,対応記憶エリア156,使用糸色記憶エリア157,領域糸色記憶エリア158,及び刺繍糸色記憶エリア159を備える。さらにHDD15は、刺繍データ作成装置1で使用されるその他のデータが記憶されるその他のデータ記憶エリア162を備える。その他のデータ記憶エリア162には、例えば、各種パラメータの初期値や設定値等が記憶されている。
ビデオコントローラ16には、情報を表示するディスプレイ24が接続され、キーコントローラ17には入力機器であるキーボード21が接続されている。CD−ROMドライブ18には、CD−ROM114を挿入することができる。例えば、刺繍データ作成プログラムの導入時には、刺繍データ作成装置1の制御プログラムである刺繍データ作成プログラムを記憶するCD−ROM114がCD−ROMドライブ18に挿入される。そして、刺繍データ作成プログラムがセットアップされ、HDD15のプログラム記憶エリア161に記憶される。また、メモリカードコネクタ23には、メモリカード115を接続して、情報の読み取りや書き込みを行うことができる。
次に、図3を参照して、刺繍データ作成装置1で作成された刺繍データに基づいて刺繍模様を縫製する刺繍ミシン3について、簡単に説明する。
図3に示すように、刺繍ミシン3は、縫製者に対して左右方向に長いミシンベッド30,ミシンベッド30の右端部から上方へ立設された脚柱部36,脚柱部36の上端から左方へ延びるアーム部38,及びアーム部38の左端に連結する頭部39を有する。ミシンベッド30上には、刺繍が施される加工布(図示せず)を保持する刺繍枠41が配置される。そして、Y方向駆動部42及び本体ケース43内に収容されたX方向駆動機構(図示せず)が刺繍枠41を装置固有のX・Y座標系で示される所定位置に移動させる。刺繍枠41が移動されるのと合わせて、縫い針44が装着された針棒35及び釜機構(図示せず)が駆動されることにより、加工布上に刺繍模様が形成される。なお、Y方向駆動部42,X方向駆動機構、針棒35等は、刺繍ミシン3に内蔵されたマイクロコンピュータ等から構成される制御装置(図示せず)によって制御される。
刺繍ミシン3の脚柱部36の側面には、メモリカード115を着脱可能なメモリカードスロット37が搭載されている。例えば、刺繍データ作成装置1で作成された刺繍データは、メモリカードコネクタ23を介してメモリカード115に記憶される。そして、メモリカード115がメモリカードスロット37に装着され、記憶された刺繍データが読み出されて、刺繍ミシン3に刺繍データが記憶される。刺繍ミシン3の制御装置(図示せず)は、メモリカード115から供給された刺繍データに基づいて、上記の要素による刺繍模様の縫製動作を制御する。このようにして、刺繍データ作成装置1で作成された刺繍データに基づき、刺繍ミシン3を用いて刺繍模様を縫製することができる。
次に、第1の実施形態の刺繍データ作成装置1が画像データから刺繍データを作成する処理手順を、図4〜図13を参照して説明する。図4に示す刺繍データ作成のメイン処理は、HDD15のプログラム記憶エリア161に記憶された刺繍データ作成プログラムに従って、CPU11が実行する。なお、説明を簡単にするため、従来技術(例えば、特開2001−259268号公報参照)と同様の処理については、説明を簡略化する。また、本実施形態では、各種色をRGB値で表す。
図4に示すように、第1の実施形態のメイン処理では、まず画像データが取得され、画像データ記憶エリア151に記憶される(S10)。S10で取得される画像データは、刺繍データを作成する対象となる画像を表すデータである。画像データは、複数の画素データから構成されている。各画素データは、画像を構成する2次元マトリクス状に配置された画素に対応している。画像データは、いかなる方法によって取得されてもよい。例えば、イメージスキャナ装置25によって画像を読み込むことで、画像データが取得されてもよい。また例えば、メモリカード等の外部記憶媒体に記憶されているファイルが画像データとして取得されてもよい。S10において、例えば、図5に示す写真の画像データが取得される。図5は白黒で示しているが、青色の帽子をかぶった金髪の少女の写真である。
次に、S10において取得された画像データが表す画像(以下、単に「元画像」と言う。)について、注目画素の角度特徴及び角度特徴の強度が算出され、角度特徴データとして角度特徴データ記憶エリア152に記憶される(S20)。注目画素は、画像を構成する画素の中から、選択された1つの画素である。なお、隣接する複数の画素を注目画素としてもよい。角度特徴は、注目画素における明るさの変化の方向を示す。角度特徴の強度は、注目画素における明るさの変化の大きさを示す。角度特徴及びその強度の算出方法としては、公知の各種手法を採用することができ、その詳細な説明は省略する。S20において、元画像に含まれるすべての画素が注目画素として順に取得され、角度特徴及び角度特徴の強度が算出される。
次に、S20で算出された角度特徴データに基づいて、なるべく画像全体を埋めるように線分データが作成され、線分データ記憶エリア153に記憶される(S30)。線分データは、注目画素を中心に、設定された角度成分及び長さ成分を有する線分を表す。詳細には、S20にて算出された角度特徴が、線分データの角度成分に設定される。また、あらかじめ設定された固定値、又はユーザが入力した値が、線分データの長さ成分に設定される。線分データの作成方法としては、公知の各種手法を採用することができ、その詳細な説明は省略する。
次に、使用糸色が取得され、使用糸色記憶エリア157に記憶される(S40)。使用糸色は、S10で取得された画像データに基づき刺繍データ作成装置1で作成された刺繍データに従って、刺繍ミシン3を用いて刺繍模様を縫製する際に使用する予定の糸の色である。本実施形態では、画素データに基づき、使用可能な糸色の中から、n色の糸色が使用糸色として取得される。使用可能な糸色とは、縫製に用いる糸色として、ユーザが準備可能な糸色であり、あらかじめ設定した固定値又はユーザが入力した値により表される。例えば、使用可能な糸色として30色が設定されているとする。S40において、まず、元画像の色が使用糸色の数nに減色される。減色方法としては、例えば、メディアンカット法が用いられる。この処理において、例えば、図5に示す元画像の色が、図6のNo.1〜10に示す10色に減色される。続いて、30色の使用可能な糸色の中から、図6のNo.1〜10で示される各色に近い糸色が、使用糸色として取得される。この処理において、例えば、図7に示すNo.1〜10の糸色が使用糸色として取得される。このように使用糸色を決定すれば、糸替えの回数と画像の色とを考慮して、使用可能な糸色の中から適切な使用糸色を決定することができる。なお、あらかじめ設定した固定値又はユーザが入力した値をそのまま使用糸色として決定してもよい。
次に、画素データに基づいて元画像を分割するためのm色が決定され、RAM12に記憶される(S50)。m色は、元画像を色数が数mとなるように減色処理されることにより決定される。減色処理としては、例えば、メディアンカット法が用いられる。m色は、画素データに基づき元画像を領域分割する際に用いられる。数mは、あらかじめ設定した固定値又はユーザが入力した値である。第1の実施形態では、数mは分割領域の代表色の数となる。代表色の数は、元画像の色数、及び使用糸色の数を考慮して定められるのが好ましい。使用糸色の数に比べ、代表色の数が過剰に多い場合には、異なる代表色と対応する分割領域に対して、異なる使用糸色が領域糸色として割り当てられる可能性が低くなる。すなわち、同一の使用糸色が領域糸色として異なる分割領域に割り当てられる事態が発生することになり、刺繍糸色を決定する処理が複雑になるのに見合った効果が得られない。一方、使用糸色の数に比べ、代表色の数が過剰に少ない場合には、すべての使用糸色がいずれかの分割領域に対して割り当てられる可能性が低くなる。よって、代表色の数は、使用糸色の数と同程度であることが好ましい。S50の処理において、例えば、図5に示す元画像が減色処理され、図8のNo.1〜12に示す12色が決定される。
次に、画素データに基づき元画像が領域分割され、変換された画像データが分割領域記憶エリア154に記憶される(S60)。具体的には、画素データに基づき、S50で決定されたm色に元画像の色が減色されることにより、元画像が複数の領域に分割される。減色処理は、例えば、メディアンカット法を用いて行われる。減色処理により元画像に微小領域ができる場合には、例えば、ノイズリダクションにより微小領域が他の分割領域に統合される。説明を簡単にするために、第1の実施形態では、減色された結果同じ色となった領域を同じ分割領域とする。S60の処理において、例えば、図5に示す元画像が図9に示す画像のように領域分割される。
次に、S60において作成された分割領域の代表色が決定され、分割領域と対応付けて代表色記憶エリア155に記憶される(S65)。第1の実施形態では、S50で決定したm色がそのまま代表色として決定される。S65の処理において、例えば、図8のNo.1〜12に示す12色が代表色として決定される。第1の実施形態では、減色された結果同じ色となった領域を同じ分割領域としているので、図8のNoは、代表色のNoと、代表色と対応する分割領域のNoとの双方を表す。なお、S60において、ノイズリダクションが実行されない場合には、例えば、S50の処理において、元画像を色数が数mとなるように減色処理することにより、領域分割と代表色の決定とが実行され、S60及びS65の処理は省略されてもよい。
次に、S30で作成されたすべての線分データについて、線分データとS60で作成された分割領域とが対応付けられ、対応関係が対応記憶エリア156に記憶される(S70)。具体的には、線分データによって特定される線分の中心に対応する画素、すなわち線分データに対応する注目画素が、どの分割領域に含まれるかに基づいて、線分データがどの分割領域に対応するかが決定される。例えば、図10に示すように、S60において元画像が3つの分割領域V1,V2,及びV3に変換されたとする。また、S30で作成された線分データによって線分L1,L2,及びL3が表されるものとする。この場合、線分L1の中心は分割領域V1に位置しているため、S70において、線分L1は分割領域V1と対応付けられる。同様に、線分L2は分割領域V2と、線分L3は分割領域V3と、それぞれ対応付けられる。
次に、領域糸色割当処理が実行される(S80)。領域糸色割当処理では、分割領域毎に領域糸色を決定する処理が実行される。領域糸色は、分割領域内の画素に対応する線分データに割り当てる候補となる使用糸色である。
第1の実施形態の領域糸色割当処理では、2つの条件に従い、分割領域に領域糸色が割り当てられる。第1の条件は、分割領域の代表色と使用糸色との色差が、閾値r1より小さい場合に、その使用糸色を領域糸色として分割領域に割り当てる条件である。第2の条件は、第1の条件に従って1つの分割領域に対して割り当てられた領域糸色の数が1より小さい場合に、分割領域の代表色と使用糸色との色差が最小値となる使用糸色を領域糸色として分割領域に割り当てる条件である。以下、第1の実施形態の領域糸色割当処理の詳細について図11を参照して説明する。
図11に示すように、領域糸色割当処理ではまず、閾値r1が取得されRAM12に記憶される(S82)。閾値r1は、第1の条件に従い分割領域に領域糸色を割り当てる処理に用いられる。閾値r1は、あらかじめ設定した固定値又はユーザが入力した値である。S82において、例えば、閾値r1として90が取得される。
次に、代表色記憶エリア155に記憶されているNo.iの代表色Aiが読み出され、RAM12に記憶される(S84)。iには1から代表色の数mまでの整数が順に設定される。iの初期値は1であり、S84の処理が繰り返し実行される場合に、iはインクリメントされる。例えば、iが1の場合、図8のNo.1の代表色A1(R,G,B)=(253,251,251)が読み出される。
次に、dminに∞が、Tminに−1がそれぞれ設定され、RAM12に記憶される(S86)。dminは、代表色と使用糸色との色差の最小値を示す。本実施形態では、色差を、RGB値で示される代表色と使用糸色との距離で表す。Tminは、dminの値をとる使用糸色のNoを表す。
次に、使用糸色記憶エリア157に記憶されているj番目の使用糸色Tjが読み出され、RAM12に記憶される(S88)。jには、1から使用糸色の数nまでの整数が順に設定される。jの初期値は1であり、S88の処理が繰り返し実行される場合に、jはインクリメントされる。例えば、jが1の場合、図7のNo.1の使用糸色T1(R,G,B)=(240,240,240)が読み出される。
次に、S84で読み出された代表色Aiと、S88で読み出された使用糸色Tjとの色差dijが計算され、RAM12に記憶される(S90)。具体的には、RGB値に基づき、代表色Aiと使用糸色Tjとの距離が計算される。例えば、代表色A1と、使用糸色T1との色差d11は、式√{(253−240)2+(251−240)2+(251−240)2}から20.273と計算される。
次に、S90で計算された色差dijが、dminよりも小さいか否かが判断される(S92)。S90で計算された色差dijが、dminよりも小さい場合には(S92:Yes)、dminにdijが、TminにTjがそれぞれ設定され、RAM12に記憶される(S94)。
S90で計算された色差dijが、dminよりも小さくはない場合(S92:No)、又はS94に続いて、S90で計算された色差dijがS82で取得された閾値r1よりも小さいか否かが判断される(S100)。色差dijが閾値r1よりも小さい場合には(S100:Yes)、使用糸色Tjが、代表色Aiに対応する分割領域Viの領域糸色として領域糸色記憶エリア158に記憶される(S102)。S102の処理により、第1の条件を満たす使用糸色が領域糸色として分割領域Viに割り当てられる。例えば、r1が90,d11が20.273である場合(S100:Yes)、代表色A1に対応する分割領域V1の領域糸色としてT1が割り当てられる(S102)。
S90で計算された色差dijが閾値r1よりも小さくはない場合(S100:No)、又はS102に続いて、代表色Aiについて、すべての使用糸色Tjが読み出されたか否かが判断される(S104)。読み出されていない使用糸色Tjがある場合(S104:No)、jがインクリメントされ、処理はS88に戻る。
すべての使用糸色Tjが読み出された場合には(S104:Yes)、領域糸色記憶エリア158が参照され、代表色Aiと対応付けられた領域糸色の数が1より小さいか否かが判断される(S106)。領域糸色の数が0である場合には(S106:Yes)、代表色Aiに対応する分割領域Viの領域糸色としてTminが領域糸色記憶エリア158に記憶される(S108)。S108の処理は、第2の条件に従い、1つの分割領域に対して、1以上の使用糸色を領域糸色として割り当てる処理である。
領域糸色の数が1以上である場合(S106:No)、又はS108に続いて、すべての代表色Aiが読み出されたか否かが判断される(S125)。読み出されていない代表色Aiがある場合には(S125:No)、iがインクリメントされ、処理はS84に戻る。すべての代表色Aiが読み出された場合には(S125:Yes)、領域糸色割当処理は終了し、処理は図4に示すメイン処理に戻る。図12に、第1の実施形態の領域糸色割当処理により決定された領域糸色の一例を示す。図12において、1番左の列の数字は図8に示す代表色及び分割領域のNoを示し、1番上の行の数字は図7に示す使用糸色のNoを示す。また図12において、s行t列の数字は、No.sの代表色とNo.tの使用糸色との色差を示している。図12において、S100において閾値r1よりも小さいと判断された色差には斜線を付与し、S108において代表色と領域糸色との色差の最小値であるとされた色差には縦線を付与している。s行t列の数字に斜線又は縦線が付与されている場合、No.sの分割領域に対して、No.tの使用糸色が領域糸色として割り当てられたことを示している。図12に示すように、1つの分割領域に対して、1以上の領域糸色が割り当てられる。
引き続き図4を参照してメイン処理を説明する。S80に続いて、S30で作成されたすべての線分データについて、刺繍糸色が決定され、刺繍糸色記憶エリア159に記憶される(S130)。具体的には、まず、線分データ記憶エリア153が参照され、線分データが順に読み出される。次に、対応記憶エリア156が参照され、読み出された線分データ(以下、「注目線分データ」と言う。)と対応付けられた分割領域が取得される。次に、領域糸色記憶エリア158が参照され、取得された分割領域と対応付けられた領域糸色が取得される。次に、画像データ記憶エリア151が参照され、注目線分データと対応する画素データに基づき、取得された領域糸色の中から注目線分データに割り当てる刺繍糸色が決定される。例えば、注目線分データが図12のNo.1の分割領域と対応付けられている場合、No.1又は3の領域糸色のいずれかが、刺繍糸色として決定される。領域糸色の中から刺繍糸色が決定される処理は、公知技術に従って実行されればよい。例えば、S30において線分データを作成するのに用いた注目画素の色との色差が最も小さい領域糸色が、注目線分データの色成分として設定されてもよい。また例えば、注目線分データにと対応付けられた分割領域に対応する縫製領域内の他の縫目の色を考慮して、領域糸色の中から注目線分データの色成分が設定されてもよい。
次に、線分データ記憶エリア153及び刺繍糸色記憶エリア159が参照され、同じ刺繍糸色が割り当てられた複数の線分データを接続するための接続線分データが作成され、線分データ記憶エリア153に記憶される(S140)。接続線分データは、2つの線分データによって表される線分を接続した線分(接続線分)を表すデータである。線分データを接続する方法としては、公知の各種手法を採用すればよい。例えば、k番目の線分データの一端を開始点とし他端を終了点とする。線分データの終了点に最も近接する端点を有する他の線分データが検索される。検索された線分データをk+1番目の線分データとする。そして、k番目の線分データと、k+1番目の線分データとを接続するための接続線分データが作成される。以上の処理が、同一糸色に対応するすべての線分データについて実行され、各線分データが互いに近接する端点同士で接続されるような接続順序が設定されればよい。
次に、線分データ記憶エリア153に記憶されている線分データ及び接続線分データと、刺繍糸色記憶エリア159に記憶されている刺繍糸色とに基づいて、刺繍ミシン3で使用される刺繍データが作成され、刺繍データ記憶エリア160に記憶される(S150)。刺繍データは、縫製順序、糸色データ、及び針落ち点データを有する。刺繍データの作成は、公知の各種手法を採用すればよい。例えば、同一刺繍糸色毎に線分データによって特定される線分の始点、及び終点が、縫目(ステッチ)の始点、及び終点に変換される。縫目の始点、及び終点は、縫製順に糸色と対応付けて記憶される。また、接続線分データによって特定される接続線分の始点、及び終点が、走り縫い又は渡り糸の始点及び終点に変換する接続線分処理が実行される。走り縫い又は渡り糸の縫目の始点及び終点は、縫製順に糸色と対応付けて記憶される。S150に続いて、メイン処理は終了する。例えば、図5に示す画像を元画像として作成された刺繍データに従って刺繍模様を形成すれば、図13に示す刺繍模様が得られる。
以上説明したように、第1の実施形態の刺繍データ作成装置1は、メイン処理を実行する。なお、図4に示すメイン処理のS40において、刺繍模様の縫製に用いる糸の色を使用糸色として取得するCPU11は、本発明の糸色取得手段として機能する。また、画素データに基づき角度特徴データを求め(S20)、角度特徴データに基づき線分データを作成する(S30)CPU11は、本発明の線分データ作成手段として機能する。S60において、画素データに基づいて、元画像を複数の分割領域に分割するCPU11は、本発明の分割手段として機能する。S65において、分割領域毎に代表色を決定するCPU11は、本発明の決定手段として機能する。図11に示す領域糸色割当処理において、使用糸色の中から、代表色との色差が閾値r1より小さい使用糸色を(S100:Yes)、領域糸色として分割領域に割り当てる(S102)CPU11は、本発明の割当手段として機能する。第1の条件に従い分割領域に領域糸色を割り当てた結果、領域糸色の数が1よりも小さい場合に(S106:Yes)、代表色との色差が最小となる使用糸色を領域糸色として分割領域に割り当てる(S108)CPU11は、本発明の割当手段として機能する。第1の条件、及び第2の条件はともに、本発明の所定条件に相当する。閾値r1は、本発明の第一閾値に相当する。図4に示すメイン処理のS70において、線分データと、分割領域とを対応付けるCPU11は、本発明の対応付け手段として機能する。S130において、領域糸色の中から、注目画素の色を表現する糸色を刺繍糸色として線分データに割り当てるCPU11は、本発明の配色手段として機能する。S140において、刺繍糸色が同じである複数の線分データを接続する接続線分データを作成するCPU11は、本発明の接続線分データ作成手段として機能する。S150において、線分データ、刺繍糸色、及び接続線分データに基づいて、縫製順序、糸色データ、及び針落ち点データを含む刺繍データを作成するCPU11は、本発明の刺繍データ作成手段として機能する。
第1の実施形態の刺繍データ作成装置1では、代表色と使用糸色との色差に基づき分割領域に割り当てられた領域糸色の中から、元画像の色を表現する刺繍糸色が決定される。第1の条件に従い、図11のS100の処理において色差dijが閾値r1より小さい場合に(S100:Yes)使用糸色Tjが領域糸色と決定されている(S102)ので、原則として代表色とかけ離れた色は領域糸色として設定されない。したがって、刺繍データ作成装置1によれば、元画像の色とはかけ離れた不自然な色が刺繍糸色として線分データに割り当てられることを回避することができ、元画像の色をより的確に表現した刺繍模様を形成する刺繍データを作成することができる。また、図11のS106,及びS108の処理において、1つの分割領域に対して、1以上の領域糸色が確実に決定されている。このため、第1の実施形態の刺繍データ作成装置1によれば、領域糸色が全く決定されていないという事態を回避することができる。なお、S106において、領域糸色の数と比較する数は、決定したい領域糸色の数に応じて適宜変更可能である。領域糸色の数と比較する数を2以上にした場合には、1つの分割領域に対して複数の領域糸色が確実に割り当てられるので、混色表現をするのが困難なほど領域糸色の数が少ないという事態を確実に回避することができる。
ところで、第1の実施形態では、1つの分割領域に対し、1つの領域糸色のみが割り当てられる場合がある。分割領域の色が変化していない場合には、領域糸色と画像の色との色差が十分に小さければ、1色の糸色で画像の色を表現することが可能である。しかし、領域糸色と画像の色との色差が大きい場合には、分割領域の色が変化していない場合であっても、1色の糸色で画像の色を表現することができない。そこで、第2の実施形態のようにメイン処理を実行してもよい。
以下、第2の実施形態の刺繍データ作成装置1のメイン処理について説明する。第2の実施形態の刺繍データ作成装置のメイン処理は、図4に示す第1の実施形態のメイン処理と、S80の領域糸色割当処理において異なり、他の処理は同様である。よって、第1の実施形態のメイン処理と同様の処理については説明を省略し、第2の実施形態の領域糸色割当処理について、図14を参照して説明する。図14において、図11に示す第1の実施形態の領域糸色割当処理と同様の処理には、同じステップ番号を付与している。
第2の実施形態の領域糸色割当処理では、第1の条件、第2の条件及び第3の条件に従って、分割領域に領域糸色を割り当てる。第1の条件及び第2の条件は、第1の実施形態の領域糸色割当処理の第1の条件及び第2の条件と同様である。第3の条件は、第1の条件及び第2の条件に従い既に分割領域に割り当てた領域糸色の数が2より小さく、かつ、既に割り当てられた領域糸色と、代表色との色差が閾値r2より大きい場合に、新たな領域糸色を分割領域に割り当てる条件である。第3の条件では、領域糸色として割り当てられていない使用糸色の中で、代表色との色差が最小となる使用糸色が、新たな領域糸色として分割領域に割り当てられる。
図14に示すように、第2の実施形態の領域糸色割当処理は、S82,S86,S92S,S94,S106及びS108に代えて、S83,S87,S96〜S99,及びS110〜S118が実行される点で、第1の実施形態の領域糸色割当処理と異なる。第1の実施形態の領域糸色割当処理と同様の処理については説明を省略し、S83,S87,S96〜S99,及びS110〜S118で実行される処理について説明する。なお、図11に示す第2の実施形態の領域糸色割当処理は、HDD15のプログラム記憶エリア161に記憶された刺繍データ作成プログラムに従って、CPU11が実行する。
S83において、閾値r1,r2が取得されRAM12に記憶される(S83)。閾値r2は、第3の条件に従い領域糸色を分割領域に割り当てる処理に用いられる。より具体的には、閾値r2は、1つの分割領域に対し、1つの領域糸色のみが割り当てられる場合に、その領域糸色により画像の色を十分に表現できるか否かを判断する処理に用いられる。よって、閾値r2は、閾値r1よりも小さい値とする。閾値r1,r2は、あらかじめ設定した固定値又はユーザが入力した値である。例えば、r1として90,r2として50が取得される。
S87において、dmin1及びdmin2に∞が、Tmin1及びTmin2に−1がそれぞれ設定され、RAM12に記憶される(S87)。dmin1は、代表色と使用糸色との色差の最小値を示し、dmin2は、代表色と使用糸色との色差の中で2番目に小さい値を示す。Tmin1は、dmin1の値をとる使用糸色のNoを表し、Tmin2は、dmin2の値をとる使用糸色のNoを表す。
S96において、S90で計算された色差dijが、dmin1よりも小さいか否かが判断される(S96)。色差dijが、dmin1よりも小さい場合には(S96:Yes)、dmin2にdmin1が、Tmin2にTmin1が、dmin1にdijが、Tmin1にTjがそれぞれ設定され、RAM12に記憶される(S97)。
色差dijが、dminよりも小さくはない場合(S96:No)、色差dijが、dmin2よりも小さいか否かが判断される(S98)。色差dijが、dmin1よりも小さい場合には(S98:Yes)、dmin2にdijが、Tmin2にTjがそれぞれ設定され、RAM12に記憶される(S99)。色差dijが、dmin1よりも小さくはない場合(S98:No)、S97又はS99に続いて、第1の実施形態と同様のS100が実行される。
S110において、領域糸色記憶エリア158が参照され、分割領域Vi(代表色Ai)と対応付けられた領域糸色の数が1より小さいか否かが判断される(S110)。領域糸色の数が1より小さい場合には(S110:Yes)、領域糸色としてTmin1が領域糸色記憶エリア158に記憶される(S112)。S112の処理は、第2の条件に従って分割領域Viに領域糸色を割り当てる処理である。
領域糸色の数が1以上の場合(S110:No)、又はS112に続いて、領域糸色記憶エリア158が参照され、分割領域Vi(代表色Ai)と対応付けられた領域糸色の数が2より小さいか否かが判断される(S114)。領域糸色の数が1である場合には(S114:Yes)、dminが閾値r2よりも大きいか否かが判断される(S116)。dminが閾値r2よりも大きい場合(S116:Yes)、分割領域Viの領域糸色としてTmin2が領域糸色記憶エリア158に記憶される(S118)。S118の処理は、第3の条件に従って分割領域Viに領域糸色を割り当てる処理である。S114で領域糸色の数が2以上の場合(S114:No)、S116でdminが閾値r2よりも大きくはない場合(S116:No)、又はS118に続いて、第1の実施形態と同様のS125が実行される。
以上のように第2の実施形態の刺繍データ作成装置1はメイン処理を実行する。図15を参照して、第2の実施形態の領域糸色割当処理により決定された領域糸色の一例について説明する。図15の表記方法は、図12と同様である。ただし、図15において、図14のS112の処理により代表色と領域糸色との色差の最小値であるとされた色差には縦線を付与し、S118において代表色と領域糸色との色差が2番目に小さいとされた色差には横線を付与している。s行t列の数字に斜線,縦線,又は横線が付与されている場合、No.sの分割領域に対して、No.tの使用糸色が領域糸色として割り当てられたことを示している。r1=90,r2=50の条件では、NO.5,8,10の分割領域に対しては(S114:Yes,S116:Yes)、S118において新たな領域糸色(図15において横線を付与)が割り当てられる。しかし、No.4の分割領域に対しては(S114:Yes,S116:No)、新たな領域糸色が割り当てられない。
図14のS116において他の条件に従い分割領域に割り当てた領域糸色と、代表色との色差が閾値r2より大きいとき(S116:Yes)、代表色との色差が2番目に大きい使用糸色を領域糸色として分割領域に割り当てるCPU11は、本発明の割当手段として機能する。第1〜第3の条件は、本発明の所定条件に相当する。閾値r2は、本発明の第二閾値に相当する。
第2の実施形態の領域糸色割当処理では、第1及び第2の条件に基づいて分割領域に割り当てられた領域糸色の数が1であり、その領域糸色と分割領域の代表色との色差がr2より大きい場合には、さらに領域糸色の数を増やす処理が実行される。ここで、領域糸色と領域の代表色との色差がr2より大きい場合とは、既に決定された領域糸色のみでは分割領域内の画素の色を表現できない場合を想定している。このように決定された領域糸色を用いて刺繍糸色を決定することにより、画像の色をより的確に表現した刺繍模様を形成する刺繍データを作成することができる。
ところで、第1及び第2の実施形態のメイン処理では、図4のS150において接続線分間を渡り糸、又は走り縫いに変換する接続線分処理が実行される。接続線分処理では、通常、接続線分の長さが所定長さよりも短い場合には、接続線分間に走り縫いを形成させる針落ち点データが作成される。また、接続線分上に縫目を形成した場合に、その縫目が後から縫製される縫目により覆われる場合にも、接続線分間に走り縫いを形成させる針落ち点データが作成される。後者の場合、走り縫いを覆う縫目の間から、走り縫いの縫目が透けて見えることがある。走り縫いの縫目と、走り縫いを覆う縫目との色とがかけ離れている場合には、刺繍模様の見栄えを悪化させるおそれがある。そこで、第3の実施形態のように、刺繍模様の見栄えと縫製時間とを考慮し、接続線分間を渡り糸とするか、又は走り縫いとするかが判断されてもよい。
以下、第3の実施形態のメイン処理について説明する。第3の実施形態のメイン処理は、図4のS150において実行される接続線分間を渡り糸とするか、又は走り縫いとするかを判断する接続線分処理において、第1及び第2の実施形態のメイン処理と異なり、他の処理は同様である。第1及び第2の実施形態と同様の処理については説明を省略し、以下、第3の実施形態の接続線分処理について図16を参照して説明する。なお、図16に示す接続線分処理は、HDD15のプログラム記憶エリア161に記憶された刺繍データ作成プログラムに従って、CPU11が実行する。
図16に示す接続線分処理は、刺繍データが作成される過程で、刺繍糸色毎に縫製順序が決定された後に実行される。また、接続線分処理は、線分データ記憶エリア153に記憶されているすべての接続線分データについて、接続線分データが接続する線分データに対応付けられた刺繍糸色(以下、「注目糸色」と言う。)毎に順次実行される。
図16に示すように、まず、接続線分データ、及び閾値αが取得され、RAM12に記憶される(S200)。閾値αは、接続線分間を走り縫いとするか、又は渡り糸とするかを決定する処理に用いられる。S200において、例えば、図17に示す線分L11と線分L12とを接続する接続線分D11を表す接続線分データが取得される。閾値αは、あらかじめ設定した固定値又はユーザが入力した値である。
次に、S200において取得された接続線分データによって表される接続線分の始点P1と終点P2までの距離dが計算されRAM12に記憶される(S210)。次に、cに0がセットされ、RAM12に記憶される(S220)。cは、接続線分のうち、領域糸色として注目糸色が含まれる縫製領域を通過する部分の長さをカウントするための変数である。次に、接続線分データの始点P1と終点P2までの経路のうち、始点P1からの距離がθからθ+βまでの経路が注目経路として取得される(S230)。θの初期値は0である。βは、あらかじめ設定した固定値又はユーザが入力した値である。
次に、線分データ記憶エリア153が参照され、S230において取得された注目経路上に縫目(以下、「部分縫目」と言う。)を形成する刺繍データが作成された場合に、その部分縫目が他の縫目によりが覆われるか否かが判断される(S240)。具体的には、S200で取得した接続線分データにより接続される線分データが表す縫目を注目縫目とする。注目縫目と、部分縫目と交差する縫目の縫製順序とが比較される。そして、部分縫目と交差する縫目の方が注目縫目よりも後に縫製される場合に、他の縫目により部分縫目が覆われると判断される。
他の縫目により部分縫目が覆われる場合には(S240:Yes)、対応記憶エリア156及び領域糸色記憶エリア158が参照され、部分縫目を覆う縫目に対応する分割領域の領域糸色に、注目糸色が含まれるか否かが判断される(S250)。注目糸色が含まれる場合には(S250:Yes)、cがβだけ増加され、RAM12に記憶される(S260)。S260の処理は、接続線分のうち、領域糸色として注目糸色が含まれる縫製領域を通過する部分の長さをカウントする処理である。部分縫目を覆う縫目に対応する分割領域の領域糸色に、注目糸色が含まれる場合には、その縫製領域内には注目糸色の縫目が形成される可能性がある。よって、注目経路上に注目糸色の縫目が形成されても、刺繍模様の見栄えに悪影響を与えないと想定される。上記のようにcを求めれば、接続線分上に走り縫いを形成させた場合に、その走り縫いの縫目が刺繍模様の見栄えに悪影響を与えないと想定され部分の長さが求められる。例えば、図17に示す例では、接続線分D11が通過する領域を通過領域Xとする。通過領域Xには、縫製領域W1,W2及びW3が含まれる。接続線分D11上に縫目が形成された場合、その縫目は縫製領域W1,W2及びW3内に形成される縫目により覆われるものとする(S240:Yes)。縫製領域W1,及びW3に対応する分割領域の領域糸色には、注目糸色が含まれるが、縫製領域W2に対応する分割領域の領域糸色には、注目糸色が含まれない場合には、cは、接続線分D11のうち、縫製領域W1,及びW3を通過する部分の長さを表す。
S240において、他の縫目により部分縫目が覆われない場合(S240:No)、S250において注目糸色が含まれない場合(S250:No)、又はS260に続いて、S270が実行される。S270では、接続線分データの始点P1から終点P2までが注目経路として取得されたか否かが判断される(S270)。取得されていない場合には(S270:No)、θがβだけ増加されRAM12に記憶され、処理はS230に戻る。取得された場合には(S270:Yes)、αよりもc/dの方が大きいか否かが判断される(S280)。αよりもc/dの方が大きい場合(S280:Yes)、S200において取得された接続線分データによって表される接続線分上に走り縫いを形成させる針落ち点データが作成され、刺繍データ記憶エリア160に記憶される(S290)。αよりもc/dの方が大きくはない場合(S280:No)、S200において取得された接続線分データによって表される接続線分上に渡り糸を形成させる針落ち点データが作成され、刺繍データ記憶エリア160に記憶される(S300)。S300の処理は、本発明の「それ以外の場合」に実行される処理に相当する。S290又はS300に続いて、接続線分処理は終了する。
以上説明した第3の実施形態の接続線分処理において、接続線分データによって表される接続線分が通過する通過領域に含まれる縫目の内、所定割合の縫目が注目縫目よりも後に縫製されるか否かを判断する(S280)CPU11は、本発明の判断手段として機能する。領域糸色として注目糸色が含まれる縫製領域を通過する部分の接続線分の長さcに応じて(S280)、接続線分上を走り縫い(S290)又は渡り糸(S300)を形成させる針落ち点データを作成するCPU11は、本発明の針落ち点作成手段として機能する。
第3の実施形態の接続線分処理によれば、注目糸色が接続線分を覆う領域の領域糸色として含まれている部分の長さcの、接続線分の長さdに対する割合に応じて、その接続線分上を走り縫いさせる刺繍データが作成される。接続線分上を走り縫いさせる閾値αは、縫製時間や刺繍模様の品質を考慮して適宜定められる。よって、接続線分を覆う縫目の間から、画像の色からかけ離れた不自然な色が透けて見えることが刺繍模様の見栄えに与える影響を考慮して、刺繍データを作成することができる。
なお、本発明の刺繍データ作成装置は、上記した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加えてもよい。例えば、以下の(A)〜(I)の変形を適宜加えてもよい。
(A)上記実施形態では、パーソナルコンピュータを刺繍データ作成装置1としているが、刺繍データ作成プログラムをミシン(例えば、刺繍ミシン3)に記憶させ、ミシン(例えば、刺繍ミシン3)において刺繍データを作成してもよい。
(B)上記実施形態では、図4のメイン処理において、画素データから計算された角度特徴データに基づいて線分データを作成していたが、他の公知の線分データ作製方法に従い作成されてもよい。例えば、特開2000−288275号公報に記載された縫目データを線分データとしてもよい。
(C)上記実施形態では、RGBの色空間における距離を色差としていたが、「HSI」、「HSV」、又は「Lab」等のその他の色空間を用いて求めてもよい。色空間における距離以外の値を色差としてもよい。例えば、HSV空間における色相(Hue)を0〜360度の範囲で表現した角度を、色差としてもよい。
(D)上記実施形態では、元画像を減色処理することにより、分割領域の代表色を決定していた。減色方法としては、メディアンカット法を一例として挙げたが、例えば、均等量子化法、細分化量子化法等が採用されてもよい。また、他の方法で代表色を決定してもよい。例えば、RGB値の平均値に基づき代表色を決定してもよい。また例えば、分割領域内に最も多く含まれる色を代表色としてもよい。同様に、上記実施形態では、説明を簡単にするために、同じ色に減色された画素は同じ分割領域に属するとしていたが、これに限定されない。例えば、同じ色に減色された画素が連続している領域を同じ分割領域としてもよい。
(E)第2の実施形態では、第3の条件に従い領域糸色と領域の代表色との色差の最小値がr2より大きい場合に(図14のS116:Yes)、代表色との色差が2番目に小さい使用糸色を領域糸色に追加する処理を実行していた(S118)。しかし、新たな領域糸色の決定条件は適宜変更可能である。例えば、第4の条件として、既に決定された領域糸色が既に1以上ある場合、代表色に加え、既に決定された領域糸色を考慮して領域糸色を決定する条件を採用してもよい。より具体的には、既に決定された領域糸色と、新たに決定する領域糸色とで混色表現することにより、代表色に近い色を表現できるように、新たな領域糸色が決定されてもよい。同様に、新たな領域糸色を分割領域に割り当てるか否かの判断基準は適宜変更可能である。例えば、第5の条件として、分割領域の色の変化の度合いが閾値r3よりも大きい場合に、新たな領域糸色を決定させる処理を実行させてもよい。変形例(E)では、例えば次のような手順で新たな領域糸色を決定することができる。
変形例(E)の一例として、第1,4,及び5の条件に従い、分割領域に領域糸色を割り当てる変形例の領域糸色割当処理を、図18を参照して説明する。図18において、図11に示す第1の実施形態の領域糸色割当処理、又は図14に示す第2の実施形態の領域糸色割当処理と同様の処理には、同じステップ番号を付与している。図18に示すように、変形例(E)の領域糸色割当処理は、S82,S106及びS108に代えて、S81,及びS110〜S121が実行される点で、第1の実施形態の領域糸色割当処理と異なる。また、第1の実施形態の領域糸色割当処理と異なる処理のうち、S110〜S114は第2の実施形態の領域糸色割当処理と同様である。第1又は第2の実施形態の領域糸色割当処理と同様の処理については説明を省略し、S81及びS115〜S121で実行される処理について説明する。なお、図18に示す変形例(E)の領域糸色割当処理は、HDD15のプログラム記憶エリア161に記憶された刺繍データ作成プログラムに従って、CPU11が実行する。
S81では、閾値r1,r3が取得されRAM12に記憶される。閾値r3は、第5の条件に従い新たな領域糸色を決定させるか否かを判断するのに用いられる。閾値r3は、あらかじめ設定した固定値又はユーザが入力した値である。
S115では、SumRGBが計算されRAM12に記憶される(S115)。SumRGBは、分割領域の代表色と、その分割領域に含まれる画素(以下、「対応画素」と言う。)の色とについて計算された、RGB値の差の絶対値の和である。SumRGBが大きいほど、SumRGBが小さい場合に比べ、分割領域の代表色と対応画素との色の差が大きい。SumRGBは以下の手順で計算される。例えば、代表色を(R,G,B)=(Ra,Ga,Ba)、対応画素がz個あり、各画素の色を(R,G,B)=(Rg1,Gg1,Bg1),(Rg2,Gg2,Bg2),・・・,(Rgz,Ggz,Bgz)とする。RGBのそれぞれについて、代表色と対応画素の色との差の絶対値の和を以下のように求める。例えばRについて、SumR=|Ra−Rg1|+|Ra−Rg2|+・・・+|Ra−Rgz|により、代表色と対応画素の色の差の絶対値の和が求められる。B,Gについても同様に和が求められる。次にRBGのそれぞれについて計算された代表色と対応画素の色の差の絶対値の和SumRGB=SumR+SumG+SumBが合計される。
S117では、S115で計算された合計値SumRGBが、S81で取得された閾値r3より大きいか否かが判断される(S117)。SumRGBが閾値r3より大きい場合には(S117:Yes)、分割領域に新たな領域糸色が割り当てられる処理が実行される。具体的には、まず、d2minが計算されRAM12に記憶される(S119)。d2minとは、色(Rx,Gx,Bx)と、領域糸色として割り当てられていない使用糸色との色差の最小値である。色(Rx,Gx,Bx)は、代表色と、既に決定された領域糸色とから以下のように計算される。代表色(R,G,B)=(Ra,Ga,Ba)、既に決定された領域糸色(R,G,B)=(Rt,Gt,Bt)とする。色(Rx,Gx,Bx)は、Rx=Ra×2−Rt,Gx=Ga×2−Gt,Bx=Ba×2−Btより計算される。次に、d2minをとる使用糸色が、No.iの分割領域の領域糸色として領域糸色記憶エリア158に記憶される(S121)。SumRGBが閾値r3以下の場合(S117:No)、又はS121に続いて、第1の実施形態と同様のS125が実行される。
以上のように、変形例(E)の領域糸色割当処理が実行される。なお、SumRGBがr3より大きい場合に(S117:Yes)、(Rx,Gx,Bx)との色差が最も小さい使用糸色を新たな領域糸色として分割領域に割り当てる(S121)CPU11は、本発明の割当手段として機能する。第1,4,及び5の条件は、本発明の所定条件に相当する。変形例(E)において、既に決定された領域糸色が複数の場合も同様な手順で新たな領域糸色を決定すればよい。変形例(E)では、既に決定された領域糸色を考慮して領域糸色が決定されるので、領域糸色を組み合わせることにより、画像の色をより的確に表現することが可能な刺繍模様を形成する刺繍データを作成することができる。また、同じ分割領域内で対応画素の色が変化している場合に、領域糸色の数が少ないためにその変化を刺繍模様で十分に表現できないという事態を回避することができる。なお、分割領域の色の変化の度合いを判断する特徴量は、適宜変更可能であり、上記SumRGBの他、例えば、空間周波数を用いた値としてもよい。
(F)第2又は第3の実施形態では、図14又は図18のS114において領域糸色の数が1の場合に(S114:Yes)、2つめの領域糸色を分割領域に割り当てる処理を実行させていたが、これに限定されない。領域糸色の数がkだった場合に、k+1色目の領域糸色を分割領域に割り当てる処理が実行されてもよい。
(G)領域糸色決定処理に用いる所定条件は、適宜変更可能である。例えば、上述の第1〜第5の条件を適宜組み合わせてもよい。例えば、2つ目以降の領域糸色は、第1の条件と第4の条件とを組み合わせて決定されてもよい。また、他の条件を用いて領域糸色決定処理が実行されてもよい。他の条件としては、例えば、代表色と使用糸色との色差が小さい順に所定数の使用糸色を領域糸色として、その代表色に対応する分割領域に割り当てる条件が挙げられる。
(H)第3の実施形態では、通過領域内の縫目の内、所定割合の縫目が注目縫目よりも後に縫製されるか否かを判断する処理と、接続線分の長さの内、注目糸色が、通過領域を縫製する糸色に含まれる部分の割合を判断する処理との双方が、S280で行われていた。しかし、これらの処理は別々に実行されてもよい。例えば次のようにしてもよい。まず、通過領域内の縫目の内、所定割合の縫目が注目縫目よりも後に縫製されるか否かが判断される。所定割合の縫目が注目縫目よりも後に縫製される場合に、接続線分の長さの内、注目糸色が、通過領域を縫製する糸色に含まれる部分の割合が、閾値αよりも大きいか否かが判断される。閾値αよりも大きい場合には、接続線分上に走り縫いを形成させる針落ち点が作成され、それ以外の場合には、接続線分上に渡り糸を形成させる針落ち点が作成される。それ以外の場合とは、所定割合の縫目が注目縫目よりも後に縫製されない場合、及び所定割合の縫目が注目縫目よりも後に縫製され、かつ、接続線分の長さに対する、注目糸色が通過領域を縫製する糸色に含まれる部分の割合が、閾値α以下の場合である。その他の処理は、例えば、第3の実施形態と同様に実行されるようにすればよい。
(I)第3の実施形態では、接続線分のうち、領域糸色として注目糸色が含まれる縫製領域を通過する部分の長さcに応じて(図16のS280:Yes)、接続線分上を走り縫いさせるための針落ち点データを作成させていたが(S290)、これに限定されない。例えば、接続線分が領域糸色として注目糸色が含まれる縫製領域のみを通過する場合に、接続線分上を走り縫いさせるための針落ち点データを作成させてもよい。一方、注目糸色が含まれない縫製領域を通過する場合には渡り糸を形成させるための針落ち点データを作成させてもよい。また、第3の実施形態では、S280において、c/dと閾値αとが比較されていたが(S280:Yes)、cと閾値αとの比較結果に応じて、接続線分上に走り縫いさせるための針落ち点データを作成させてもよい。