(57)【要約】【課題】使用可能な糸色から元の画像を表現するのに適した糸色を選択して刺繍データを作成することが可能な刺繍データ作成装置を提供する。【解決手段】刺繍データ作成装置には、複数の使用可能糸色が、人間の目で見た場合の類似度に応じて予めグループ分けされて記憶されている。ＣＰＵは、元画像の各画素の色を、使用可能糸色のうちの１つに置き換え、各使用可能糸色の使用頻度を算出する。ＣＰＵは、各グループの使用頻度の合計値を算出し（Ｓ２４）、合計値が大きい順にグループの優先順位を設定する（Ｓ２５）。ＣＰＵは、優先順位に従って、各グループで最も使用頻度が高い使用可能糸色を使用糸色として選択する（Ｓ３６）。ＣＰＵは、各グループから順に１色を選択する処理を繰り返し、使用糸色の選択数が使用数に達すると（Ｓ３７：ＮＯ）、処理を終了する。【選択図】図６
2014083339.tif 000002
【特許請求の範囲】
【請求項１】
人間によって予め分類された、複数の使用可能な糸色のうち少なくとも１つを夫々含む、少なくとも１つのグループに関する情報を記憶する記憶手段と、
複数の画素の集合体である画像の画像データに基づいて、各画素の色を、前記複数の使用可能な糸色のうちの１つに置き換える置換手段と、
置換え後の各画素の色に基づいて、前記複数の使用可能な糸色の各々の使用頻度を算出する算出手段と、
前記記憶手段に記憶された前記情報と、前記算出手段によって算出された前記使用頻度とに基づいて、選択された糸色の数である選択数が、刺繍縫製で実際に使用される糸色の数である使用数に達するまで、前記少なくとも１つのグループのうち１つから１色を、順に選択する選択手段と、
前記画像データに基づいて、前記選択手段によって選択された前記使用数の糸色の縫目をミシンによって形成するための刺繍データを作成する作成手段と
を備えたことを特徴とする刺繍データ作成装置。
【請求項２】
前記選択手段は、
前記算出手段によって算出された前記使用頻度に基づいて、各グループの前記使用頻度の合計値を算出し、
算出された前記合計値が大きい順に、前記少なくとも１つのグループの優先順位を設定し、
設定された前記優先順位に従って、前記選択数が前記使用数に達するまで、各グループで前記使用頻度が最も高い１色を、順に選択することを特徴とする請求項１に記載の刺繍データ作成装置。
【請求項３】
前記選択手段は、
前記優先順位に従って前記少なくとも１つのグループの各々から１色を選択しても、前記選択数が前記使用数に達しない場合、前記複数の使用可能な糸色のうち、既に選択された糸色の前記使用頻度を除外して各グループの前記合計値を再算出し、
再算出された前記合計値に基づいて、前記優先順位を再設定し、
再設定された前記優先順位に従って、前記選択数が前記使用数に達するまで、各グループで既に選択された糸色以外で前記使用頻度が最も高い１色を、順に選択することを特徴とする請求項２に記載の刺繍データ作成装置。
【請求項４】
前記選択手段は、
前記少なくとも１つのグループのうち、前記合計値が第一閾値よりも大きいグループのみを対象として、前記優先順位に従って、各グループで前記使用頻度が最も高い１色を順に選択し、
前記選択数が前記使用数に達しない場合、前記少なくとも１つのグループの全てを対象として、前記優先順位に従って、前記選択数が前記使用数に達するまで、各グループで前記使用頻度が最も高い１色を順に選択することを特徴とする請求項２または３に記載の刺繍データ作成装置。
【請求項５】
前記選択手段は、
前記優先順位に従って、各グループで、前記使用頻度が第二閾値よりも大きく且つ最も高い１色を順に選択し、
前記選択数が前記使用数に達しない場合、前記優先順位に従って、前記選択数が前記使用数に達するまで、前記第二閾値にかかわりなく、各グループで前記使用頻度が最も高い１色を順に選択することを特徴とする請求項２〜４の何れかに記載の刺繍データ作成装置。
【請求項６】
選択手段は、前記選択数が前記使用数に達するまで、前記少なくとも１つのグループのうち既に選択された糸色の数が少ないグループを優先して、前記複数の使用可能な糸色のうち、前記使用頻度が最も高い１色を順に選択することを特徴とする請求項１に記載の刺繍データ作成装置。
【請求項７】
前記選択手段は、
前記優先順位に従って前記少なくとも１つのグループの各々から１色を選択しても、前記選択数が前記使用数に達しない場合、前記優先順位に従って、前記選択数が前記使用数に達するまで、各グループで既に選択された糸色以外で前記使用頻度が最も高い１色を、順に選択することを特徴とする請求項６に記載の刺繍データ作成装置。
【請求項８】
前記少なくとも１つのグループの各々は、前記複数の使用可能な糸色のうち少なくとも１つを夫々含む、少なくとも１つのサブグループを含み、
前記選択手段は、
前記算出手段によって算出された前記使用頻度に基づいて、各グループの前記使用頻度の合計値である第一合計値と、各サブグループの前記使用頻度の合計値である第二合計値を算出し、
算出された前記第一合計値が大きい順に、前記少なくとも１つのグループの優先順位を設定し、
設定された前記優先順位に従って、前記選択数が前記使用数に達するまで、各グループで前記第二合計値が最も大きいサブグループ中の、前記使用頻度が最も高い１色を、順に選択することを特徴とする請求項１に記載の刺繍データ作成装置。
【請求項９】
前記選択手段は、
前記優先順位に従って前記少なくとも１つのグループの各々から１色を選択しても、前記選択数が前記使用数に達しない場合、各グループで、既に選択された糸色の数が少ないサブグループの中で、前記第二合計値が最も大きいサブグループに含まれる、既に選択された糸色以外で前記使用頻度が最も高い１色を、順に選択することを特徴とする請求項８に記載の刺繍データ作成装置。
【請求項１０】
前記サブグループは、前記複数の使用可能な糸色の各々の彩度に基づいて分類されていることを特徴とする請求項８または９に記載の刺繍データ作成装置。
【請求項１１】
コンピュータ読み取り可能な指示を記憶する、非一時的なコンピュータ読み取り可能な媒体であって、前記指示は、
複数の画素の集合体である画像の画像データに基づいて、各画素の色を、前記複数の使用可能な糸色のうちの１つに置き換えるステップと、
置換え後の各画素の色に基づいて、前記複数の使用可能な糸色の各々の使用頻度を算出するステップと、
人間によって予め分類されて記憶手段に記憶された、複数の使用可能な糸色のうち少なくとも１つを夫々含む、少なくとも１つのグループに関する情報と、算出された前記使用頻度とに基づいて、選択された糸色の数である選択数が、刺繍縫製で実際に使用される糸色の数である使用数に達するまで、前記少なくとも１つのグループのうち１つから１色を、順に選択するステップと、
前記画像データに基づいて、選択された前記使用数の糸色の縫目をミシンによって形成するための刺繍データを作成するステップと
を刺繍データ作成装置に実行させることを特徴とするコンピュータ読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ミシンによって刺繍縫製を行うための刺繍データを作成する刺繍データ作成装置およびコンピュータ読取り可能な媒体に関する。
【背景技術】
【０００２】
ミシンによって写真等の画像のデータに基づく図柄を刺繍縫製するための刺繍データ作成装置が知られている。例えば、特許文献１に開示されている刺繍データ作成装置によれば、次の手順で刺繍データが作成される。まず、画像データに基づいて、画像内の各部の角度特徴とその強度が算出される。算出された角度特徴とその強度に従って線分が配置される。各線分に対応する糸色が決定され、同じ糸色の線分が接続される。線分のデータが縫目を示すデータに変換されることで、刺繍データが作成される。各線分に対応する糸色は、刺繍模様を縫製する際に実際に使用する糸色として予め決定されたｎ色の糸色の中から選択される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−２７３８５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
写真等の画像を刺繍の図柄で表現する場合、実際に使用する糸色の数は、一般的に１０色程度である。従って、ユーザが準備可能な１００色程度の糸色から、元の画像を表現するのに最も適した１０色程度の糸色を選択することが重要となる。特許文献１の刺繍データ作成装置では、元画像の色がＮ色に減色された後、ユーザが準備可能な糸色の中から、減色後のＮ色に夫々近いｎ色の糸色が使用糸色として選択される。しかしながら、選択されたｎ色の中に、人間の目には似ているように見える色が複数含まれる場合、全体としては、表現可能な色数が少なくなってしまう。
【０００５】
本発明は、使用可能な糸色から元の画像を表現するのに適した糸色を選択して刺繍データを作成することが可能な刺繍データ作成装置およびコンピュータ読取り可能な媒体を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の第一の態様に係る刺繍データ作成装置は、記憶手段と、置換手段と、算出手段と、選択手段と、作成手段とを備えている。前記記憶手段は、少なくとも１つのグループに関する情報を記憶する。前記少なくとも１つのグループは、夫々、人間によって予め分類され、複数の使用可能な糸色のうち少なくとも１つを含む。前記置換手段は、複数の画素の集合体である画像の画像データに基づいて、各画素の色を、前記複数の使用可能な糸色のうちの１つに置き換える。前記算出手段は、置換え後の各画素の色に基づいて、前記複数の使用可能な糸色の各々の使用頻度を算出する。前記選択手段は、前記記憶手段に記憶された前記情報と、前記算出手段によって算出された前記使用頻度とに基づいて、選択された糸色の数である選択数が、刺繍縫製で実際に使用される糸色の数である使用数に達するまで、前記少なくとも１つのグループのうち１つから１色を、順に選択する。前記作成手段は、前記画像データに基づいて、前記選択手段によって選択された前記使用数の糸色の縫目をミシンによって形成するための刺繍データを作成する。
【０００７】
かかる刺繍データ作成装置では、複数の使用可能な糸色が、人間によって少なくとも１つのグループに予め分類され、その情報が記憶されている。人間は、似て見える色を同じグループに分類し、その情報を記憶手段に記憶させておくことができる。つまり、計算上は似ていないと分類されるが、人間の目には十分に似て見える２色を、同じグループに分類することができる。刺繍データ作成装置では、複数の使用可能な糸色の何れかに置き換えられた各画素の色に基づいて、複数の使用可能な糸色の各々の使用頻度が算出される。そして、選択された糸色の数が刺繍縫製で実際に使用される糸色の数に達するまで、少なくとも１つのグループのうち１つから１色が順に選択される。前述のように、人間の目で見た場合の類似度に応じて予めグループが分類されていれば、見た目ではそれほど似ていない色が各グループから１色ずつ順に選択される結果となる。従って、第一の態様に係る刺繍データ作成装置は、複数の使用可能な糸色から、元の画像を表現するのに適した糸色を選択して刺繍データを作成することができる。
【０００８】
本発明の第二の態様に係るコンピュータ読取り可能な媒体は、コンピュータ読み取り可能な指示を記憶する、非一時的なコンピュータ読み取り可能な媒体である。前記指示は、複数の画素の集合体である画像の画像データに基づいて、各画素の色を、前記複数の使用可能な糸色のうちの１つに置き換えるステップと、置換え後の各画素の色に基づいて、前記複数の使用可能な糸色の各々の使用頻度を算出するステップと、人間によって予め分類されて記憶手段に記憶された、複数の使用可能な糸色のうち少なくとも１つを夫々含む、少なくとも１つのグループに関する情報と、算出された前記使用頻度とに基づいて、選択された糸色の数である選択数が、刺繍縫製で実際に使用される糸色の数である使用数に達するまで、前記少なくとも１つのグループのうち１つから１色を、順に選択するステップと、前記画像データに基づいて、選択された前記使用数の糸色の縫目をミシンによって形成するための刺繍データを作成するステップとを刺繍データ作成装置に実行させることを特徴とする。
【０００９】
かかる媒体に記憶された指示が刺繍データ作成装置で実行されると、複数の使用可能な糸色の何れかに置き換えられた各画素の色に基づいて、複数の使用可能な糸色の各々の使用頻度が算出される。そして、選択された糸色の数が刺繍縫製で実際に使用される糸色の数に達するまで、少なくとも１つのグループのうち１つから１色が順に選択される。少なくとも１つのグループは、夫々、人間によって予め複数の使用可能な糸色が分類され、グループ化されたものである。人間は、似て見える色を同じグループに分類し、その情報を記憶手段に記憶させておくことができる。この場合、見た目ではそれほど似ていない色が各グループから１色ずつ順に選択される結果となる。従って、第二の態様に係る媒体は、記憶された指示によって、刺繍データ作成装置に、複数の使用可能な糸色の中から元の画像を表現するのに適した糸色を選択して刺繍データを作成させることができる。
【図面の簡単な説明】
【００１０】
【図１】刺繍データ作成装置１の電気的構成を示すブロック図である。
【図２】ミシン３の外観図である。
【図３】糸色テーブルの一例の説明図である。
【図４】刺繍データ作成処理のフローチャートである。
【図５】第一実施形態に係る糸色決定処理のフローチャートである。
【図６】第一実施形態に係る選択処理のフローチャートである。
【図７】使用頻度テーブルの一例の説明図である。
【図８】第二実施形態に係る糸色決定処理のフローチャートである。
【図９】第二実施形態に係る選択処理のフローチャートである。
【図１０】第三実施形態に係る糸色テーブルの一例の説明図である。
【図１１】第三実施形態に係る選択処理のフローチャートである。
【図１２】第三実施形態に係る使用頻度テーブルの一例の説明図である。
【発明を実施するための形態】
【００１１】
＜第１実施形態＞
以下、第一実施形態について、図１〜図７を参照して説明する。まず、図１を参照して、刺繍データ作成装置１の構成について説明する。刺繍データ作成装置１は、後述のミシン３（図２参照）によって刺繍模様の縫目を形成するための刺繍データを作成可能な装置である。本実施形態の刺繍データ作成装置１は、写真等の画像に基づく図柄を刺繍縫製するための刺繍データを作成することができる。
【００１２】
刺繍データ作成装置１は、刺繍データ作成専用の装置であってもよいし、所謂パーソナルコンピュータ等の汎用型の装置であってもよい。本実施形態では、汎用型の刺繍データ作成装置１を例示する。図１に示すように、刺繍データ作成装置１は、刺繍データ作成装置１の制御を司るコントローラであるＣＰＵ１１を備えている。ＣＰＵ１１には、ＲＡＭ１２と、ＲＯＭ１３と、入出力（Ｉ／Ｏ）インタフェイス１４とが接続されている。ＲＡＭ１２は、ＣＰＵ１１による演算処理で得られた演算結果等、各種のデータを一時的に記憶する。ＲＯＭ１３は、ＢＩＯＳ等を記憶する。
【００１３】
Ｉ／Ｏインタフェイス１４は、データの受け渡しの仲介を行う。Ｉ／Ｏインタフェイス１４には、ハードディスク装置（ＨＤＤ）１５、入力機器であるマウス２２、ビデオコントローラ１６、キーコントローラ１７、外部通信インタフェイス１８、メモリカードコネクタ２３、およびイメージスキャナ装置２５が接続されている。
【００１４】
ビデオコントローラ１６には、表示機器であるディスプレイ２４が接続され、キーコントローラ１７には、入力機器であるキーボード２１が接続されている。外部通信インタフェイス１８は、ネットワーク１１４への接続を可能とするインタフェイスである。刺繍データ作成装置１は、ネットワーク１１４を介して外部機器に接続することができる。メモリカードコネクタ２３には、メモリカード５５が接続可能である。刺繍データ作成装置１は、メモリカードコネクタ２３を介して、メモリカード５５のデータの読み取りおよびメモリカード５５へのデータの書き込みを行うことができる。
【００１５】
ＨＤＤ１５の記憶エリアについて説明する。図１に示すように、ＨＤＤ１５は、画像データ記憶エリア１５１、刺繍データ記憶エリア１５２、プログラム記憶エリア１５３、および設定値記憶エリア１５４を含む複数の記憶エリアを有する。画像データ記憶エリア１５１には、刺繍データ作成の元となる画像等、各種画像の画像データが記憶される。刺繍データ記憶エリア１５２には、本実施形態の刺繍データ作成処理によって作成された刺繍データが記憶される。プログラム記憶エリア１５３には、後述する刺繍データ作成プログラム等、刺繍データ作成装置１で行われる各種処理のためのプログラムが記憶される。
【００１６】
なお、刺繍データ作成プログラムは、ネットワーク１１４を介して外部から取得され、プログラム記憶エリア１５３に記憶されてもよい。刺繍データ作成装置１がＤＶＤドライブを備える場合、ＤＶＤ等の媒体に記憶された刺繍データ作成プログラムが読み込まれ、プログラム記憶エリア１５３に記憶されてもよい。
【００１７】
設定値記憶エリア１５４には、各種処理で使用される設定値のデータが記憶される。本実施形態では、設定値のデータの一例として、人間によって予め分類された少なくとも１つの糸色のグループに関するデータが記憶される。各グループは、刺繍縫製に使用可能な複数の糸の色のうち少なくとも１つを含む。以下、刺繍縫製に使用可能な糸の色を、使用可能糸色という。本実施形態では、設定値記憶エリア１５４には、グループに関するデータとして、複数の使用可能糸色を予め分類して作成された糸色テーブルが記憶されている。糸色テーブルとは、人間が、見た目で似た色か否かを基準として、複数の使用可能糸色を予め分類して作成したテーブルである。
【００１８】
図３に例示する糸色テーブルは、グループの識別データ（図では番号で示す）と、使用可能糸色のグループ内での識別データ（図ではアルファベットで示す）と、使用可能糸色のＲＧＢ値を示すデータとが対応付けられたテーブルである。より詳細には、この糸色テーブルは、複数の使用可能糸色が、１〜８の番号で識別される８つのグループに分類された場合のテーブルである。なお、図３では、１番のグループに分類された、グループ内でＡおよびＢで夫々識別される使用可能糸色、並びに２番のグループに分類された、グループ内Ａで識別される使用可能糸色のみについて、ＲＧＢ値が図示され、他の使用可能糸色のＲＧＢ値は図示が省略されている。なお、以下では、糸色テーブルにおいて番号が１のグループをグループ１、アルファベットがＡの使用可能糸色を糸色Ａ、等と表記する。
【００１９】
糸色テーブルの作成、つまり使用可能糸色のグループ分けは、例えば、刺繍データ作成装置１のユーザが、少なくとも刺繍データ作成処理が開始されるよりも前に行えばよい。この場合、ユーザが最初から使用可能糸色を見ながらグループ分けを行ってもよい。最初にＣＰＵ１１が使用可能糸色のＲＧＢ値を示すデータに基づいて、使用可能糸色のうち、ＲＧＢ空間での距離が所定の閾値以下の糸色をグループ化した後、ユーザがグループ中で似ていないと考える色を、他のグループに変更する処理を行ってもよい。糸色テーブルは、必ずしもユーザが作成する必要はなく、例えば、刺繍糸メーカで作業者によって予め作成され提供されたものであってもよい。
【００２０】
なお、図３の糸色テーブルは、グループの数が８の例であるが、グループの数はこれに限られない。前述のように、分類を行う人間が、使用可能糸色の全てについて、互いに似ている色がないと考えた場合、グループの数は、使用可能糸色の数と等しくなる。一方、人間が、全ての使用可能糸色が互いに似ていると考えた場合、グループの数は１になってもよい。つまり、使用可能糸色がＮ色の場合、グループ数Ｇは、１からＮまでの何れかの整数である。また、糸色のグループに関するデータは、少なくとも複数の使用可能糸色の各々が属するグループが特定できればよく、図３に例示されたテーブルの形式に限られない。
【００２１】
図２を参照して、刺繍データに基づいて刺繍模様を縫製することが可能なミシン３について、簡単に説明する。図２に示すように、ミシン３は、ベッド部３０、脚柱部３６、アーム部３８、および頭部３９を有する。ベッド部３０は、左右方向に長い、ミシン３の土台部である。脚柱部３６は、ベッド部３０の右端部から上方へ延びる。アーム部３８は、ベッド部３０に対向して脚柱部３６の上端から左方へ延びる。頭部３９は、アーム部３８の左端に連結する部位である。
【００２２】
刺繍縫製時には、ミシン３のユーザは、ベッド部３０上に配置されるキャリッジ４２に、加工布を保持する刺繍枠４１を装着する。刺繍枠４１は、キャリッジ４２に収容されたＹ方向移動機構（図示せず）および本体ケース４３内に収容されたＸ方向移動機構（図示せず）によって、ミシン３に固有のＸＹ座標系で示される針落ち点に移動される。刺繍枠４１が移動されるのと合わせて、縫針４４が装着された針棒３５および釜機構（図示せず）が駆動されることにより、加工布上に刺繍模様が形成される。なお、Ｙ方向移動機構、Ｘ方向駆動機構、針棒３５等は、刺繍データに基づき、ミシン３に内蔵されたＣＰＵ（図示せず）によって制御される。本実施形態の刺繍データは、刺繍模様の縫目を形成するための針落ち点の座標と、縫い順と、使用される刺繍糸の色を示すデータである。
【００２３】
ミシン３の脚柱部３６の側面には、メモリカード５５を着脱可能なメモリカードスロット３７が搭載されている。例えば、刺繍データ作成装置１で作成された刺繍データは、メモリカードコネクタ２３を介してメモリカード５５に記憶される。その後、メモリカード５５がミシン３のメモリカードスロット３７に装着され、記憶された刺繍データが読み出されて、ミシン３に刺繍データが記憶される。ミシン３のＣＰＵは、メモリカード５５から読み出された刺繍データに基づいて、上記の要素による刺繍模様の縫製動作を制御する。このようにして、ミシン３は、刺繍データ作成装置１で作成された刺繍データに基づいて刺繍模様を縫製することができる。
【００２４】
図４〜図７を参照して、本実施形態の刺繍データ作成装置１で行われる刺繍データ作成処理について説明する。刺繍データ作成処理は、ユーザが処理を開始する指示を入力した場合に開始される。ＣＰＵ１１は、ＨＤＤ１５のプログラム記憶エリア１５３に記憶された刺繍データ作成プログラムを読み出し、プログラムに含まれる指示を実行することで以下の処理を行う。
【００２５】
図４に示すように、ＣＰＵ１１はまず、刺繍データ作成の元となる画像（以下、元画像という）の画像データを取得する（Ｓ１）。画像データの取得方法は特に限定されないが、例えば、イメージスキャナ装置２５によって写真や図柄等の画像が読み込まれ、取得された画像データが用いられる。その他、ＣＰＵ１１は、予めＨＤＤ１５の画像データ記憶エリア１５１に記憶された画像データを取得してもよいし、ネットワーク１１４を介して外部から画像データを取得してもよいし、メモリカード５５等の媒体に記憶された画像データを取得してもよい。本実施形態では、ＣＰＵ１１は、Ｓ１で各画素の色をＲＧＢ値で示す画像データを取得する。なお、画像データは、各画素の色をＲＧＢ値ではなく他の形式で示すデータであってもよい。
【００２６】
ＣＰＵ１１は、取得された画像データに基づいて、元画像を構成する複数の画素の各々について、その角度特徴と角度特徴の強度を算出する（Ｓ２）。角度特徴は、画像中の色の連続性の高い方向を示す情報であり、角度特徴の強度は、色の変化の大きさを示す情報である。ＣＰＵ１１は、角度特徴およびその強度をいかなる方法で算出してもよいが、例えば、特開２００１−２５９２６８号公報に詳述されている方法を用いて算出することができる。ＣＰＵ１１は、角度特徴およびその強度を、上記の方法以外に、ＰｒｅｗｉｔｔのオペレータやＳｏｂｅｌのオペレータを用いて算出してもよい。
【００２７】
ＣＰＵ１１は、算出された角度特徴および角度特徴の強度に基づいて、線分を配置する処理を行い、線分を特定するデータ（以下、線分データという）をＲＡＭ１２に記憶する（Ｓ３）。ＣＰＵ１１は、角度特徴および角度特徴の強度に基づく線分の配置をいかなる方法で行ってもよいが、例えば、特開２００１−２５９２６８号公報に詳述されている方法を用いればよい。
【００２８】
続いてＣＰＵ１１は、糸色決定処理を行う（Ｓ４）。糸色決定処理は、Ｎ色の複数の使用可能糸色のうち、刺繍縫製で実際に使用される複数の糸の色を決定する処理である。以下、刺繍縫製で実際に使用される糸の色を、使用糸色という。
【００２９】
図５〜図７を参照して、糸色決定処理の詳細について説明する。ＣＰＵ１１はまず、使用糸色の数である使用数Ｍを設定する（Ｓ１１）。使用数Ｍは、使用可能糸色の総数Ｎより小さい整数である。使用数Ｍは、例えば、糸交換の回数等を考慮して予め定められ、ＨＤＤ１５の設定値記憶エリア１５４に記憶された値が設定されてもよいし、ユーザによって入力された値が設定されてもよい。設定された使用数Ｍは、ＲＡＭ１２に記憶される。なお、糸交換の回数等を考慮して、使用数Ｍは１０程度に設定されるのが一般的である。
【００３０】
ＣＰＵ１１は、元画像を構成する複数の画素の各々の色を、糸色テーブル（図３参照）に含まれるＮ色の使用可能糸色のうちの１つに置き換える減色処理を行う（Ｓ１２）。例えば、ＣＰＵ１１は、元画像の画像データと糸色テーブルを参照して、各画素のＲＧＢ値とＮ色の使用可能糸色のＲＧＢ値とのＲＧＢ空間での距離を夫々求め、各画素のＲＧＢ値を、距離が最小となる使用可能糸色のＲＧＢ値に置き換える近似色変換を行えばよい。但し、Ｓ１２で使用される減色方法は、近似色変換に限られず、例えば、ディザリング等、他の周知の方法であってもよい。
【００３１】
近似色変換は、単色で元画像の色を再現する場合により適している。ディザリングは、複数の糸色で擬似的に中間色を表現する混色表現を用いて元画像を再現する場合により適している。しかし、刺繍糸による混色表現は、通常の画像処理におけるディザリングほど正確に中間色を表現できるわけではない。そこで、例えば、ＣＰＵ１１は、Ｓ１２で、元画像の解像度が所定の閾値より高い場合は近似色変換を使用し、所定の閾値以下の場合はディザリングを使用してもよい。
【００３２】
ＣＰＵ１１は更に、置き換えられた各画素の色に基づいて、使用可能糸色の各々の使用頻度を算出する（Ｓ１３）。具体的には、ＣＰＵ１１は、使用可能糸色毎に、使用可能糸色と同じＲＧＢ値を有する画素の数をカウントする。ＣＰＵ１１は、カウントした各使用可能糸色の画素数を使用頻度とする。
【００３３】
ＣＰＵ１１は、第一閾値Ｔ１を設定し（Ｓ１４）、更に第二閾値Ｔ２を設定する（Ｓ１５）。第一閾値Ｔ１は、後述する選択処理で、グループの使用頻度の合計値がこの値以下の場合に、そのグループを使用糸色の選択から除外するのに使用される。第二閾値Ｔ２は、後述する選択処理で、使用可能糸色の使用頻度がこの値以下の場合に、その使用可能糸色を使用糸色の選択から除外するのに使用される。第一閾値Ｔ１および第二閾値Ｔ２は、予め定められ、ＨＤＤ１５の設定値記憶エリア１５４に記憶された値が設定されてもよいし、ユーザによって入力された値が設定されてもよい。設定された第一閾値Ｔ１および第二閾値Ｔ２は、ＲＡＭ１２に記憶される。
【００３４】
続いて、ＣＰＵ１１は選択処理を行う（Ｓ２０）。選択処理は、グループの使用頻度の合計値が大きい順にグループの優先順位を設定し、優先順位に従って、使用糸色の数が使用数Ｍに達するまで、各グループから使用頻度が最も高い使用可能糸色を順に選択する処理である。
【００３５】
図６および図７を参照して、選択処理の詳細について説明する。ＣＰＵ１１は、選択された使用糸色の数である選択数をカウントする変数ｃに０を設定し、ＲＡＭ１２に記憶する（Ｓ２１）。ＣＰＵ１１は更に、変数ｃ１、ｂ１およびｂ２に、夫々、変数ｃ、１および１を設定し、ＲＡＭ１２に記憶する（Ｓ２２）。変数ｃ１は、現在のループで使用糸色が選択されたか否かを判断するのに使用される変数である。変数ｂ１およびｂ２は、夫々、第一閾値Ｔ１および第二閾値Ｔ２を使用するか否かを示すフラグである。変数ｂ１およびｂ２は、夫々、１の場合には第一閾値Ｔ１および第二閾値Ｔ２を使用することを示し、０の場合には使用しないことを示す。
【００３６】
ＣＰＵ１１は、前述のＳ１３で算出された各使用可能糸色の使用頻度に基づいて、グループ毎に使用頻度の合計値を算出し、ＲＡＭ１２に記憶する（Ｓ２４）。具体的には、ＣＰＵ１１は、設定値記憶エリア１５４に記憶された糸色テーブル（図３参照）を参照して、グループ毎に、そのグループに属する各使用可能糸色の使用頻度を合計する。ＣＰＵ１１は更に、Ｓ２４で算出された使用頻度の合計値が大きい順に、グループの優先順位を設定する（Ｓ２５）。なお、使用頻度の合計値が同一のグループが複数ある場合、ＣＰＵ１１これらのうちどのグループの優先順位を先にしてもよい。本実施形態では、このような場合、ＣＰＵ１１は糸色テーブルにおける登録順（図３の例ではグループの番号が小さい順）に、優先順位を設定する。
【００３７】
なお、本実施形態では、ＣＰＵ１１は、前述のＳ１３、Ｓ２４およびＳ２５の処理で、設定値記憶エリア１５４に記憶された糸色テーブルと、各ステップの処理で算出された使用頻度、使用頻度の合計値、および優先順位とに基づいて、図７に例示するような使用頻度テーブルを作成し、ＲＡＭ１２に記憶する。
【００３８】
図７に示す使用頻度テーブルは、画素数が８００の元画像について、３７色の使用可能糸色が８つのグループに予め分類された糸色テーブルを参照して作成された例である。この使用頻度テーブルでは、グループの識別データ（番号）と、グループ中の使用可能糸色の数と、グループ中の各使用可能糸色の使用頻度と、グループの使用頻度の合計値と、グループの優先順位とが対応付けられている。但し、ＣＰＵ１１は必要に応じて各使用可能糸色とその使用頻度、各グループの優先順位が特定できればよいので、必ずしも使用頻度テーブルを作成する必要はない。
【００３９】
ＣＰＵ１１は、変数ｉに１を設定し、ＲＡＭ１２に記憶する（Ｓ３１）。変数ｉは、Ｓ２５で設定された優先順位に従って処理対象のグループを特定する変数である。つまり、Ｓ３１では、優先順位として１が設定されたグループ（図７の例では、グループ３）が処理対象として特定される。ＣＰＵ１１は、次の２つの条件のうち何れか一方が満たされているか否かを判断する（Ｓ３２）。第一の条件は、ＲＡＭ１２に記憶された変数ｂ１が０である、つまり、第一閾値Ｔ１を使用しないと設定されていることである。第二の条件は、処理対象である優先順位がｉ番目のグループの使用頻度の合計値が、第一閾値Ｔ１より大きいことである。ＣＰＵ１１は、ＲＡＭ１２の使用頻度テーブルを参照して、各グループの合計値を特定すればよい。以下、優先順位がｉ番目のグループをＳ（ｉ）、Ｓ（ｉ）のグループの使用頻度の合計値を、ＧＨ（Ｓ（ｉ））とも表す。
【００４０】
上記２つの条件の両方が満たされない場合（Ｓ３２：ＮＯ）、ＣＰＵ１１は、処理を後述のＳ４１に進める。つまり、第一閾値Ｔ１を使用すると設定されており、且つ、ＧＨ（Ｓ（ｉ））が第一閾値Ｔ１以下の場合、処理対象のグループ（以下、対象グループという）が使用糸色の選択から除外される。一方、上記２つの条件のうち何れか一方が満たされる場合（Ｓ３２：ＹＥＳ）、ＣＰＵ１１は、対象グループであるＳ（ｉ）から使用糸色を選択するために、処理をＳ３３に進める。
【００４１】
ＣＰＵ１１は、対象グループに選択可能な使用可能糸色、つまり、まだ使用糸色として選択されていない使用可能糸色が残っているか否かを判断する（Ｓ３３）。選択処理が何回か繰り返され、対象グループの使用可能糸色が全て使用糸色として選択されてしまった場合（Ｓ３３：ＮＯ）、ＣＰＵ１１は、処理をＳ４１に進める。
【００４２】
対象グループに未選択の使用可能糸色がある場合（Ｓ３３：ＹＥＳ）、ＣＰＵ１１は、ＲＡＭ１２の使用頻度テーブルを参照して、未選択の使用可能糸色のうちで使用頻度が最も高い使用可能糸色を特定する（Ｓ３４）。例えば、図７の使用頻度テーブルが参照された場合、対象グループＳ（１）、つまりグループ３に属する未選択の使用可能糸色のうち、使用頻度が最も高い１００である使用可能糸色Ｂが特定される。
【００４３】
なお、最も高い使用頻度の使用可能糸色が複数ある場合、ＣＰＵ１１これらのうちどの使用可能糸色を特定してもよい。本実施形態では、このような場合、ＣＰＵ１１は、糸色テーブルにおける登録順（図３の例ではアルファベット順）が最先の使用可能糸色を特定する。以下、Ｓ３４で特定された使用可能糸色をＴｘ、使用可能糸色の使用頻度を、ＨＴｘとも表す。
【００４４】
ＣＰＵ１１は、次の２つの条件のうち何れか一方が満たされているか否かを判断する（Ｓ３５）。第一の条件は、ＲＡＭ１２に記憶された変数ｂ２が０である、つまり、第二閾値Ｔ２を使用しないと設定されていることである。第二の条件は、使用可能糸色Ｔｘの使用頻度ＨＴｘが、第二閾値Ｔ２より大きいことである。
【００４５】
上記２つの条件の両方が満たされない場合（Ｓ３５：ＮＯ）、ＣＰＵ１１は、処理をＳ４１に進める。つまり、第二閾値Ｔ２を使用すると設定されており、且つ、ＨＴｘが第二閾値Ｔ２以下の場合、使用可能糸色Ｔｘが使用糸色の選択から除外される。一方、上記２つの条件のうち何れか一方が満たされる場合（Ｓ３５：ＹＥＳ）、ＣＰＵ１１は、Ｓ３４で特定された使用可能糸色Ｔｘを使用糸色として選択し、Ｔｘを識別する情報をＲＡＭ１２に記憶するとともに、使用頻度テーブルのＨＴｘの値を０にし、変数ｃに１を加算する（Ｓ３６）。ＣＰＵ１１は、変数ｃが使用数Ｍより小さいか否かを判断する（Ｓ３７）。変数ｃが使用数Ｍより小さい場合（Ｓ３７：ＹＥＳ）、選択数が使用数Ｍに満たない。この場合、ＣＰＵ１１は、処理をＳ４１に進める。Ｓ４１では、ＣＰＵ１１は、変数ｉに１を加算することで、優先順位が次のグループを処理対象に設定する。
【００４６】
続いてＣＰＵ１１は、変数ｉがグループ数Ｇを超えたか否か、つまり、全てのグループが一通り処理対象とされたか否かを判断する（Ｓ４２）。変数ｉがグループ数Ｇを超えていなければ（Ｓ４２：ＮＯ）、処理対象とされていないグループがまだあるので、ＣＰＵ１１はＳ３２の処理に戻る。ＣＰＵ１１は、選択数が使用数Ｍに満たない間は、残りのグループを順に処理対象として前述のＳ３２〜Ｓ４２の処理を繰り返す。
【００４７】
グループ数Ｇが使用数Ｍ以上であり、どのグループの使用頻度の合計値も第一閾値Ｔ１より大きく、どのグループも、使用頻度が第二閾値Ｔ２よりも高い使用可能糸色を含む場合には、１巡目の選択処理で、Ｍ色の使用糸色の選択が完了する。この場合、変数ｃ、つまり選択数が使用数Ｍに達するので（Ｓ３７：ＮＯ）、ＣＰＵ１１は選択処理を終了し、図５の糸色決定処理に戻る。
【００４８】
一方、使用数Ｍがグループ数Ｇよりも大きい場合には、選択数が使用数Ｍに達しない状態で変数ｉがグループ数Ｇを超える（Ｓ４２：ＹＥＳ）。また、グループ数Ｇが使用数Ｍ以上であっても、グループの使用頻度の合計値または使用可能糸色の使用頻度が所定の条件を満たさない場合、同様に、変数ｉがグループ数Ｇを超える場合がある（Ｓ４２：ＹＥＳ）。かかる場合、１巡目の選択処理ではＭ色の使用糸色の選択が完了していない。
【００４９】
ＣＰＵ１１は、変数ｃと変数ｃ１とが等しいか否かを判断する（Ｓ４３）。変数ｃ１はＳ２２で変数ｃと同じ値とされたまま変更されない。一方、変数ｃは、Ｇ個のグループの各々についてＳ３２〜Ｓ４２の処理が行われ、少なくとも１つの使用糸色が選択されれば、使用糸色の数に応じた数に変更される。よって、使用糸色が選択された場合、変数ｃと変数ｃ１は互いに異なる（Ｓ４３：ＮＯ）。この場合、ＣＰＵ１１はＳ２２に処理を戻し、２巡目の選択処理を開始する。
【００５０】
なお、Ｓ２２では、ＣＰＵ１１は改めて変数ｃ１に変数ｃを設定するので、変数ｃ１は既に選択された使用糸色の数である設定数となる。また、先のＳ３６の処理で、使用糸色に選択された使用可能糸色の使用頻度ＨＴｘは０にリセットされている。よって、２巡目以降の処理のＳ２４で、ＣＰＵ１１が使用頻度の合計値を算出することは、各グループで既に使用糸色として選択された使用可能糸色の使用頻度を除外して、各グループの使用頻度の合計値を算出することと同じである。ＣＰＵ１１は、２巡目以降のＳ２４およびＳ２５の処理で、ＲＡＭ１２に記憶された使用頻度テーブルの合計値および優先順位を、再算出した合計値と再設定した優先順位で置き換える。
【００５１】
全てのグループの各々ついてＳ３２〜Ｓ４２の処理が行われても、１つも使用糸色が選択されない場合、変数ｃは変数ｃ１と等しいままである（Ｓ４３：ＹＥＳ）。かかる場合、第一閾値Ｔ１と第二閾値Ｔ２を適用し続ける限り、ＣＰＵ１１は、Ｍ色の使用糸色を選択できない。そこで、ＣＰＵ１１は、変数ｂ１が１である場合、つまり、第一閾値Ｔ１を適用すると設定されている場合（Ｓ４４：ＹＥＳ）、変数ｂ１を０に変更することで、第一閾値Ｔ１を適用しないと設定する（Ｓ４５）。ＣＰＵ１１は、Ｓ３１の処理に戻り、優先順位が１番目のグループＳ（１）から順に、前述の通り処理を行う。この場合、対象グループＳ（ｉ）の使用頻度の合計値ＧＨ（Ｓ（ｉ））が第一閾値Ｔ１以下であったとしても、変数ｂ１は０であるから（Ｓ３２：ＹＥＳ）、Ｓ（ｉ）が使用糸色の選択から除外されることはない。
【００５２】
Ｓ４５で第一閾値Ｔ１を適用しないと設定しても、全てのグループにおいて、未選択の使用可能糸色の使用頻度が全て第二閾値Ｔ２以下である場合（Ｓ３５：ＮＯ）、１つも使用糸色が選択されない。よって、全てのグループの各々ついてＳ３２〜Ｓ４２の処理が行われても、変数ｃは変数ｃ１と等しいままである（Ｓ４３：ＹＥＳ）。この場合、変数ｂ１は０であるから（Ｓ４４：ＮＯ）、ＣＰＵ１１は、変数ｂ２を０に変更することで、第二閾値Ｔ２を適用しないと設定する（Ｓ４６）。
【００５３】
ＣＰＵ１１は、Ｓ３１の処理に戻り、優先順位が１番目のグループＳ（１）から順に、前述の通り処理を行う。この場合、対象グループＳ（ｉ）の未選択の使用可能糸色の使用頻度のうち、最高の使用頻度ＨＴｘが第二閾値Ｔ２以下であったとしても、変数ｂ２は０であるから（Ｓ３５：ＹＥＳ）、この使用可能糸色Ｔｘが使用糸色の選択から除外されることはない。
【００５４】
このようにして、ＣＰＵ１１は、グループの優先順位に従って、各グループから１つの使用可能糸色を使用糸色として順に選択する処理を繰り返す。そして、選択数が使用数Ｍに達すると（Ｓ３７：ＹＥＳ）、ＣＰＵ１１は選択処理を終了し、図５の糸色決定処理に戻る。
【００５５】
図５に示すように、選択処理（Ｓ２０）の後、ＣＰＵ１１は糸色決定処理を終了し、図４の刺繍データ作成処理に戻る。図４に示すように、ＣＰＵ１１は、糸色決定処理（Ｓ４）に続き、元画像の画像データに基づいて、糸色決定処理で決定されたＭ色の使用糸色の縫目をミシン３によって形成するための刺繍データを作成する処理を行う（Ｓ５〜Ｓ７）。ＣＰＵ１１は、Ｓ５〜Ｓ７の処理をいかなる方法で行ってもよいが、例えば、特開２００１−２５９２６８号公報に詳述されている方法を用いればよい。以下、処理内容を簡単に説明する。
【００５６】
具体的には、ＣＰＵ１１はまず、Ｓ３で配置された線分の色を決定する配色処理を行う（Ｓ５）。ＣＰＵ１１は、元画像の画像データに基づいて、線分の各々について、糸色決定処理で決定されたＭ色の使用糸色から、元画像の色を反映した１色を選択し、その線分の色として決定する。線分の色は、実際の縫目の色となる。ＣＰＵ１１は、配色された複数の線分のうち、同じ使用糸色の線分を順に接続して、使用糸色毎の線分データを作成する処理を行う（Ｓ６）。ＣＰＵ１１は、線分の２つの端点を夫々縫目の始点と終点として、最初の線分の終点から最も近い位置にある同じ色の他の線分の端点を次の縫目の始点とする処理を繰り返すことで、線分を接続する。
【００５７】
ＣＰＵ１１は、Ｓ６で作成された使用糸色毎の線分データに基づき、刺繍データを作成する（Ｓ７）。ＣＰＵ１１は、各線分の端点の座標をミシン３に固有のＸＹ座標系の座標に変換することで、針落ち点の座標を算出する。また、ＣＰＵ１１は、線分の接続順を針落ち点の縫い順とする。このようにして、ＣＰＵ１１は、針落ち点の座標と、縫い順と、使用糸色を示す刺繍データを作成する。ＣＰＵ１１は、図４に示す刺繍データ作成処理を終了する。
【００５８】
以上に説明したように、本実施形態では、複数の使用可能な糸色が、人間によって予め少なくとも１つのグループに分類され、その情報である糸色テーブルが、ＨＤＤ１５の設定値記憶エリア１５４に記憶されている。人間は、本実施形態のように、人間の目には似て見える使用可能糸色を同じグループに属するものとして分類した糸色テーブルを、ＨＤＤ１５に記憶させておくことができる。つまり、計算上は似ていないと分類されるが、人間の目には十分に似て見える２色を、同じグループに分類しておくことができる。
【００５９】
ＣＰＵ１１は、複数の使用可能糸色の何れかに置き換えられた元画像の各画素の色に基づいて、複数の使用可能な糸色の各々の使用頻度を算出する。ＣＰＵ１１は、選択された使用糸色の数（選択数）が、刺繍縫製で実際に使用される糸色の数（使用数Ｍ）に達するまで、各グループから使用可能糸色１色を順に選択する。より詳細には、ＣＰＵ１１は、グループの使用頻度の合計値に基づいて優先順位を設定し、優先順位に従って、各グループで最も使用頻度が高い使用可能糸色を、使用糸色として順に選択する。
【００６０】
写真等の画像を刺繍の図柄で表現する場合、刺繍糸や針の太さには限界があり、画素のような細かい表現はできない。また、実際に縫製に使用される使用糸色の数（使用数Ｍ）も、画素の色数に対して著しく少ないのが現実である。従って、Ｎ色の使用可能糸色の中から、元の画像を表現するのに最も適したＭ色の使用糸色を選択することが重要である。
【００６１】
例えば、ＣＰＵ１１が、Ｓ１３で算出したＮ色の使用可能糸色から単純に使用頻度が高い順にＭ色の使用糸色を選択した場合、人間の目には似ているように見える色を複数選択してしまうことがありうる。この場合、全体としては、Ｍ色の使用糸色で表現可能な色数が少なくなってしまうので、最適な使用糸色の選択とはいい難い。ＣＰＵ１１が、ＲＧＢ空間において所定の閾値より距離が近い色を複数選択しない処理を行ったとしても、計算上の色の類似度は、必ずしも人間の目で見た場合の類似度とは一致しないため、かかる事態は起こりうる。例えば、人間の目には十分似て見える濃い灰色と濃いこげ茶色は、ＲＧＢ空間での距離はある程度離れているので、両方が使用糸色として選択されうる。
【００６２】
これに対し、本実施形態では、前述のように、人間の目で見た場合の類似度に応じて予めグループが分類されているので、見た目ではそれほど似ていない色が、各グループから１色ずつ順に、バランスよく選択される結果となる。よって、例えば、人間の目には似て見える濃い灰色と濃いこげ茶色を予め同じグループに分類しておくことで、これら２色が、限られた数の使用糸色のうち２色に選択される可能性は低減される。このように、本実施形態の刺繍データ作成装置１によれば、複数の使用可能な糸色から、元画像を表現するのに適した糸色を選択して刺繍データを作成することができる。
【００６３】
また、１巡目の選択処理で選択数が使用数Ｍに達しなかった場合、ＣＰＵ１１は、選択された使用糸色の使用頻度を除外して再算出した各グループの使用頻度の合計値に基づいて優先順位を再設定する。ＣＰＵ１１は、再設定した優先順位に従って、各グループの未選択の使用可能糸色のうち、最も使用頻度が高い１色を順に選択する。
【００６４】
例えば、あるグループＸに、他の使用可能糸色に比べて著しく使用頻度が高い使用可能糸色Ｙがあると、グループＸの残り１色の使用可能糸色Ｚの使用頻度は、その他のグループの使用可能糸色の使用頻度よりも低くても、グループＸの合計値が最大の場合がある。しかし、使用可能糸色Ｙが１巡目で選択された後、その使用頻度は除外してグループＸの使用頻度の合計値が再算出されるので、グループＸの優先順位は下がる。その結果、グループＸの使用可能糸色Ｚよりも先に、より優先順位が高い他のグループから、グループで使用頻度が最大の使用可能糸色が使用糸色として選択される。このように、本実施形態の刺繍データ作成装置１によれば、２巡目以降の処理でも、グループ全体の使用頻度と使用可能糸色毎の使用頻度を適切に反映して、使用糸色を選択することができる。
【００６５】
更に、本実施形態では、ＣＰＵ１１は、最初に、グループの使用頻度の合計値が第一閾値Ｔ１以下のグループと、使用頻度が第二閾値Ｔ２以下の使用可能糸色とを除外して使用糸色の選択を行う。選択の結果、選択された使用糸色の数が使用数Ｍに満たない場合、ＣＰＵ１１は、第一閾値Ｔ１および第二閾値Ｔ２の適用を順に中止する。
【００６６】
グループの使用頻度の合計値が小さいということは、そのグループに属する使用可能糸色は全て、元画像の色を表現するのにあまり使われない色であることを意味する。従って、そのグループから敢えて使用糸色を選択するよりも、まずは第一閾値Ｔ１を用いて合計値がある程度大きいグループから使用糸色を選択することで、元画像を表現するのにより適切な使用糸色を選択することができる。また、使用頻度が小さいということは、たとえその使用可能糸色がグループの中では使用頻度が高い色であっても、元画像の色を表現するのにあまり使われない色であることを意味する。従って、まずは第二閾値Ｔ２を用いて使用頻度がある程度高い使用可能糸色を使用糸色として選択することで、元画像を表現するのにより適切な使用糸色を選択することができる。
【００６７】
なお、本実施形態では第一閾値Ｔ１および第二閾値の両方を使用する例が説明されているが、ＣＰＵ１１は、図６の選択処理において、第一閾値Ｔ１および第二閾値Ｔ２の何れか一方のみを使用してもよい。また、選択された使用糸色の数が使用数Ｍに満たない場合に第一閾値Ｔ１および第二閾値の適用を中止する順序は、本実施形態で例示した第一閾値Ｔ１、第二閾値Ｔ２の順に限られず、第二閾値Ｔ２、第一閾値Ｔ１の順であってもよいし、同時であってもよい。更に、第一閾値Ｔ１および第二閾値は、何れもまったく適用されなくてもよい。
【００６８】
本実施形態では、図３に例示する糸色テーブルを記憶するＨＤＤ１５は、本発明の「記憶手段」の一例である。図５の糸色決定処理のＳ１２で減色処理を行うＣＰＵ１１は、「置換手段」の一例である。Ｓ１３で各使用可能糸色の使用頻度を算出するＣＰＵ１１は、「算出手段」の一例である。図６の選択処理を行うＣＰＵ１１は、「選択手段」の一例である。図４の刺繍データ作成処理のＳ５〜Ｓ７で刺繍データを作成するＣＰＵ１１は、「作成手段」に相当する。
【００６９】
＜第二実施形態＞
以下、図８および図９を参照して、第二実施形態について説明する。第二実施形態および後述する第三実施形態に係る刺繍データ作成装置１およびミシン３の構成は、第一実施形態と同一であるため、以下ではその説明は省略する。また、第二実施形態および後述する第三実施形態における刺繍データ作成処理は、第一実施形態の処理とは、糸色決定処理（図４のＳ４、図５）の内容が一部異なるのみである。従って、以下では、第一実施形態の処理と同一部分については同一のステップ番号を付して説明を省略または簡略化し、第一実施形態とは異なる処理の詳細について説明する。第一実施形態と同様、以下の説明でも、使用糸色の数はＮ、糸色のグループの数はＧとする。
【００７０】
図８に示すように、第二実施形態の糸色決定処理は、ＣＰＵ１１が使用数Ｍを設定し、元画像の画像データに基づいて減色処理を行った後、各使用可能糸色の使用頻度を算出する処理（Ｓ１１〜Ｓ１３）は、第一実施形態の処理（図５参照）と同じである。その後、本実施形態では、第一実施形態とは異なり、ＣＰＵ１１は、第一閾値Ｔ１および第二閾値Ｔ２を設定することなく、選択処理に進む（Ｓ５０）。
【００７１】
図９を参照して、第二実施形態の選択処理の詳細について説明する。ＣＰＵ１１はまず、選択数をカウントする変数ｃに０を設定し、ＲＡＭ１２に記憶する（Ｓ５１）。ＣＰＵ１１は、Ｇ個のグループの全てに対し、使用糸色が未選択であると設定する（Ｓ５２）。例えば、ＣＰＵ１１は、ＲＡＭ１２にＧ個のグループの夫々の識別データと対応付けて選択フラグを記憶することで、各グループから使用糸色を選択済みか否かを特定することができる。ＣＰＵ１１は、Ｓ５２では、全グループのフラグを、未選択であることを示す値である０に設定する。
【００７２】
ＣＰＵ１１は、変数ｉに１を設定し、ＲＡＭ１２に記憶する（Ｓ５３）。本実施形態の変数ｉは、糸色テーブルにおける登録順に従って、対象グループを特定する変数である。つまり、Ｓ５３では、糸色テーブルで１番目に登録されているグループ（図７の例では、グループ１）が処理対象として特定される。以下、対象グループである登録順がｉ番目のグループを、Ｇ（ｉ）とも表す。
【００７３】
ＣＰＵ１１は、Ｇ個のグループの夫々から１色ずつ使用糸色を選択する過程で使用する変数ＨＴｍａｘ、ＴｍａｘおよびＧｍａｘの各々に０を設定し、ＲＡＭ１２に記憶する（Ｓ５４）。変数ＨＴｍａｘは、全使用可能糸色の使用頻度のうち、最も高い使用頻度を特定するための変数である。変数Ｔｍａｘは、全使用可能糸色のうち、最も使用頻度が高い使用可能糸色を特定するための変数である。変数Ｇｍａｘは、全使用可能糸色のうち、最も使用頻度が高い使用可能糸色が属するグループを特定するための変数である。
【００７４】
続いてＣＰＵ１１は、ＲＡＭ１２に記憶された選択フラグを参照して、Ｇ（ｉ）から使用糸色が選択済みであるか否かを判断する（Ｓ５６）。フラグがＳ５２で０にされたままの場合、Ｇ（ｉ）からはまだ使用糸色が選択されていないので（Ｓ５６：ＮＯ）、ＣＰＵ１１は、Ｇ（ｉ）に属する使用可能糸色の中で、使用頻度が最も高い使用可能糸色を特定する（Ｓ５７）。
【００７５】
ＣＰＵ１１は、Ｓ５７で特定された使用可能糸色Ｔｘの使用頻度ＨＴｘが、変数ＨＴｍａｘより大きいか否かを判断する（Ｓ５８）。１番目のグループＧ（１）の処理では、Ｓ５４でＨＴｍａｘが０に設定されているので、使用頻度ＨＴｘが０でなければ、変数ＨＴｍａｘより大きい（Ｓ５８：ＹＥＳ）。この場合、ＣＰＵ１１は、変数ＨＴｍａｘ、Ｔｍａｘ、およびＧｍａｘに、夫々、ＨＴｘ、Ｔｘ、およびＧ（ｉ）を示す値を設定する（Ｓ５９）。つまり、この時点までに発見された最も高い使用頻度と、対応する使用可能糸色と、その使用可能糸色が属するグループとがＲＡＭ１２に記憶される。
【００７６】
ＣＰＵ１１は、変数ｉに１を加算することで、糸色テーブルにおける登録順が次のグループを処理対象に設定する（Ｓ６０）。続いてＣＰＵ１１は、変数ｉがグループ数Ｇを超えたか否か、つまり、全てのグループが一通り処理対象とされたか否かを判断する（Ｓ６１）。変数ｉがグループ数Ｇを超えていなければ（Ｓ６１：ＮＯ）、処理対象とされていないグループがまだあるので、ＣＰＵ１１はＳ５６の処理に戻る。ＣＰＵ１１は前述の通り、次の対象グループについて処理を行う。
【００７７】
次の対象グループからまだ使用糸色が選択されていない場合（Ｓ５６：ＮＯ）、ＣＰＵ１１はこのグループＧ（ｉ）で使用頻度が最も高い使用可能糸色を特定する（Ｓ５７）。先のＳ５９の処理で、登録順がＧ（ｉ）よりも前のグループ中で最も高い使用可能糸色の使用頻度がＨＴｍａｘとして記憶された場合、Ｇ（ｉ）の使用可能糸色Ｔｘの使用頻度ＨＴｘが、これよりも高ければ（Ｓ５８：ＹＥＳ）、ＣＰＵ１１は、変数ＨＴｍａｘ、Ｔｍａｘ、およびＧｍａｘを、Ｓ５７で特定されたＨＴｘ、Ｔｘ、およびＧ（ｉ）で置き換える。つまり、ＣＰＵ１１は、先に処理されたグループよりも使用頻度が高い使用可能糸色を発見すると、変数ＨＴｍａｘ、Ｔｍａｘ、およびＧｍａｘを更新する。
【００７８】
一方、先のグループよりも使用頻度が高い使用可能糸色を発見できなければ、ＨＴｍａｘをＨＴｘが超えることはないので（Ｓ５８：ＮＯ）、ＣＰＵ１１はそのままＳ６０の処理に進み、次のグループを処理対象とする。
【００７９】
このようにして、ＣＰＵ１１が、Ｇ個のグループの全てについてＳ５６〜Ｓ６１の処理を一通り完了すると、変数ｉがグループ数Ｇを超える（Ｓ６１：ＹＥＳ）。ＣＰＵ１１は、ＲＡＭ１２に記憶された変数Ｔｍａｘで特定される使用可能糸色を使用糸色として選択する（Ｓ６６）。ＣＰＵ１１は更に、変数ＨＴｍａｘで特定される、使用糸色として選択された使用可能糸色の使用頻度を０とし、変数ｃに１を加算する（Ｓ６６）。ＣＰＵ１１は、変数ｃが使用数Ｍより小さいか否かを判断する（Ｓ６７）。変数ｃが使用数Ｍより小さい場合（Ｓ６７：ＹＥＳ）、ＣＰＵ１１は、変数Ｇｍａｘで特定されるグループの選択フラグを１とすることで、Ｇｍａｘが示すグループから使用糸色が選択済みであると設定する（Ｓ６８）。
【００８０】
ＣＰＵ１１は、ＲＡＭ１２の選択フラグが全て１であるか否かに基づき、Ｇ個のグループの各々から、１色ずつ使用糸色が選択されたか否かを判断する（Ｓ６９）。まだ使用糸色が選択されていないグループがある場合（Ｓ６９：ＮＯ）、ＣＰＵ１１は、再び変数ｉを１に設定し（Ｓ５３）、変数ＨＴｍａｘ、ＴｍａｘおよびＧｍａｘの各々に０を設定しなおして（Ｓ５４）、Ｇ個のグループの各々について、前述のＳ５６〜Ｓ６１の処理を繰り返す。ＣＰＵ１１がＳ５３に処理を戻した場合、既に使用糸色が選択されたグループは、使用糸色の選択から除外される（Ｓ５６：ＹＥＳ）。つまり、ＣＰＵ１１は、既に選択された使用糸色の数が少ないグループを優先して使用糸色の選択を行う。
【００８１】
グループ数Ｇが使用数Ｍ以下の場合、ＣＰＵ１１がＧ個のグループのうちＭ個から１色ずつ使用糸色を選択すると、変数ｃ、つまり選択数が使用数Ｍに達する（Ｓ６７：ＮＯ）。この場合、ＣＰＵ１１は、図９の選択処理を終了して図８の糸色決定処理に戻り、糸色決定処理も終了する。
【００８２】
一方、グループ数Ｇが使用数Ｍより大きい場合、変数ｃ、つまり選択数が使用数Ｍより小さいまま（Ｓ６７：ＹＥＳ）、ＣＰＵ１１がＧ個のグループの全てから１色ずつ使用糸色の選択を完了した状態となる（Ｓ６９：ＹＥＳ）。この場合、ＣＰＵ１１は更に使用糸色を選択するために処理をＳ５２に戻し、Ｇ個のグループの全てに対し、使用糸色が未選択であると設定する。ＣＰＵ１１は、変数ｃが使用数Ｍより小さい間は、同様にして処理を繰り返す。この場合、先の処理のＳ６６において、既に使用糸色として選択された使用可能糸色の使用頻度は０とされているので、未選択の使用可能糸色のうち、使用頻度が最も高い１色が、各グループから順に選択される。変数ｃ、つまり選択数が使用数Ｍに達すると（Ｓ６７：ＮＯ）、ＣＰＵ１１は、図９の選択処理を終了して図８の糸色決定処理に戻り、糸色決定処理も終了する。
【００８３】
以上に説明したように、本実施形態でも、第一実施形態と同様、複数の使用可能糸色が、人間の目で見た場合の類似度に応じて予めグループ化されている。ＣＰＵ１１は、選択数が使用数Ｍに達するまで、Ｇ個のグループのうち、既に使用糸色として選択された使用可能糸色が少ないグループを優先して、Ｎ色の使用可能糸色のうち、使用頻度が最も高い１色を順に選択する。よって、第一実施形態と同様、見た目ではそれほど似ていない色が、各グループから１色ずつ順に、バランスよく選択される。従って、本実施形態の刺繍データ作成装置１によれば、複数の使用可能な糸色から、元画像を表現するのに適した糸色を選択して刺繍データを作成することができる。
【００８４】
また、本実施形態では、第一実施形態と異なり、グループの使用頻度の合計値によってグループの優先順位が設定されることはない。従って、各使用可能糸色の使用頻度をより反映した使用糸色を選択することができる。
【００８５】
本実施形態では、図８の糸色決定処理のＳ１２で減色処理を行うＣＰＵ１１は、「置換手段」の一例である。Ｓ１３で各使用可能糸色の使用頻度を算出するＣＰＵ１１は、「算出手段」の一例である。図９の選択処理を行うＣＰＵ１１は、「選択手段」の一例である。
【００８６】
＜第三実施形態＞
以下、図１０〜図１２を参照して、第三実施形態について説明する。第三実施形態の刺繍データ作成装置１では、ＨＤＤ１５の設定値記憶エリア１５４（図１参照）に記憶される糸色テーブルが、図３に例示する第一実施形態の糸色テーブルとは異なる。また、図４に示す刺繍データ作成処理の内容は、第一実施形態とは、糸色決定処理において異なるのみである。なお、第三実施形態の糸色決定処理は、図８に示す第二実施形態の糸色決定処理と、選択処理（Ｓ５０）の内容が異なるのみである。よって、以下では、本実施形態で使用される糸色テーブルと、選択処理の内容についてのみ説明する。
【００８７】
図１０を参照して、本実施形態で使用される糸色テーブルについて説明する。図１０に例示するように、本実施形態の糸色テーブルは、グループの識別データ（図では番号で示す）と、グループ中のサブグループの識別データ（図では番号で示す）と、使用可能糸色のサブグループ内での識別データ（図ではアルファベットで示す）と、使用可能糸色のＲＧＢ値を示すデータとが対応付けられたテーブルである。この糸色テーブルは、複数の使用可能糸色が４つのグループに予め分類され、グループ１〜３が夫々２つのサブグループに、グループ４が１つのサブグループに分類された例である。
【００８８】
本実施形態の糸色テーブルは、人間が、複数の使用可能糸色を似て見える色毎にグループ分けし、更に、各グループに属する使用可能糸色を、より似て見える色毎にサブグループに分類することで作成する。なお、グループに属する使用可能糸色が１色の場合、サブグループは１つである。また、分類を行った人間が、グループに属する複数の用可能糸色が互いによく似て見えると判断した場合も、図１０のグループ４のように、サブグループは１つである。なお、図１０の糸色テーブルはあくまでも例示であり、グループの数やサブグループの数はこの例に限られない。また、サブグループが更に似て見える色毎に下位のサブグループに分類されてもよい。
【００８９】
図１１および図１２を参照して、本実施形態の選択処理について説明する。なお、以下の説明では、使用糸色の数をＮ、グループ数をＧ、サブグループ数をＳＧとする。図１１に示すように、ＣＰＵ１１はまず、糸色決定処理のＳ１３（図８参照）で算出された使用頻度に基づいて、各サブグループの使用頻度の合計値を算出し（Ｓ７１）、更に各グループの使用頻度の合計値を算出する（Ｓ７２）。以下、グループの使用頻度の合計値およびサブグループの使用頻度の合計値を、夫々、第一合計値および第二合計値という。ＣＰＵ１１は、第一合計値が大きい順にグループの優先順位を設定し（Ｓ７３）、第二合計値が大きい順にサブグループの優先順位を設定する（Ｓ７４）。以下、グループの優先順位およびグループ中のサブグループの優先順位を、夫々、第一優先順位および第二優先順位という。
【００９０】
なお、本実施形態では、ＣＰＵ１１は、前述のＳ１３、Ｓ７１〜Ｓ７４の処理で、糸色テーブルと、各ステップの処理で算出された使用頻度、第一合計値、第二合計値、第一優先順位、および第二優先順位とに基づいて、図１２に例示するような使用頻度テーブルを作成し、ＲＡＭ１２に記憶する。
【００９１】
図１２に示す使用頻度テーブルは、画素数が６４０の元画像について、１９色の使用可能糸色が４つのグループに予め分類され、グループ１〜３が夫々２つのサブグループに、グループ４が１つのサブグループに分類された糸色テーブル（図１０参照）を参照して作成された例である。この使用頻度テーブルでは、グループの識別データ（番号）と、グループ中のサブグループの識別データ（番号）と、サブグループ中の使用可能糸色の数と、サブグループ中の各使用可能糸色の使用頻度と、第二合計値と、第二優先順位と、第一合計値と、第一優先順位とが対応付けられている。但し、第一実施形態で説明したように、ＣＰＵ１１は必ずしも使用頻度テーブルを作成する必要はない。
【００９２】
ＣＰＵ１１は、変数ＳＳｉ（ｉ）に１を設定する（Ｓ７５）（ｉ＝１〜Ｇ）。変数ＳＳｉ（ｉ）は、各グループで第二優先順位が何番目のサブグループから探索を開始するかを特定するための変数である。ＣＰＵ１１は、選択数をカウントするための変数ｃに０を設定する（Ｓ７６）。ＣＰＵ１１は、第一優先順位に従って対象グループを特定するための変数ｉに１を設定する（Ｓ８１）。つまり、第一優先順位として１が設定されたグループ（図１２の例では、グループ３）が処理対象として特定される。
【００９３】
ＣＰＵ１１は、対象グループであるＳ（ｉ）に、選択可能な使用可能糸色が残っているか否かを判断する（Ｓ８２）。選択処理が何回か繰り返され、対象グループの使用可能糸色が全て使用糸色として選択されてしまった場合（Ｓ８２：ＮＯ）、ＣＰＵ１１は、処理をＳ１１１に進める。
【００９４】
ＣＰＵ１１は、変数ｊに変数ＳＳｉ（ｉ）の値を設定するとともに、変数ｋに変数ｊの値を設定する（Ｓ８３）。変数ｊは、対象グループＳ（ｉ）中で第二優先順位に従って処理対象のサブグループを特定するための変数である。変数ｋは、処理対象のサブグループ（以下、対象サブグループという）が既に処理済みか否かを示す変数である。以下、第一優先順位がｉ番目のグループＳ（ｉ）中の、第二優先順位がｊ番目のサブグループを、ＳＳ（ｉ，ｊ）とも表す。最初の処理では、前述のようにＳ７５で変数ＳＳｉ（ｉ）が１に設定されているので、ＣＰＵ１１は、Ｓ８３で変数ｊに１を設定する。これにより、第一優先順位が１番目のグループ中で第二優先順位が１番目のサブグループ（図１２の例では、グループ３中のサブグループ１）が、対象サブグループとして特定される。
【００９５】
ＣＰＵ１１は、対象サブグループＳＳ（ｉ，ｊ）に、選択可能な使用可能糸色が残っているか否かを判断する（Ｓ８４）。選択可能な使用可能糸色があれば（Ｓ８４：ＹＥＳ）、ＣＰＵ１１は、ＲＡＭ１２の使用頻度テーブルを参照して、未選択の使用可能糸色のうちで使用頻度が最も高い使用可能糸色を特定する（Ｓ８６）。例えば、図１２の使用頻度テーブルが参照された場合、対象サブグループＳＳ（１，１）、つまりグループ３中のサブグループ１に属する未選択の使用可能糸色のうち、使用頻度が最高の１００である糸色Ｂが特定される。
【００９６】
なお、何れのサブグループも少なくとも１色の使用可能糸色を含むので、１巡目の処理では、グループ数Ｇが使用数Ｍ以上であれば、何れのサブグループについても選択可能な糸色はあると判断される（Ｓ８４：ＹＥＳ）。
【００９７】
ＣＰＵ１１は、Ｓ８６で特定された使用可能糸色Ｔｘを使用糸色として選択し、Ｔｘを識別する情報をＲＡＭ１２に記憶するとともに、使用頻度テーブルのＨＴｘの値を０にし、変数ｃに１を加算する（Ｓ８７）。ＣＰＵ１１は、変数ＳＳｉ（ｉ）に変数ｊに１を加算した値を設定する（Ｓ８８）。これにより、次に探索を開始するサブグループが、同じグループ中の優先順位が次のサブグループに変更される。
【００９８】
ＣＰＵ１１は、変数ＳＳｉ（ｉ）がサブグループ数ＳＧを超えたか否かを判断する（Ｓ８９）。例えば、図１２に示すグループ４にはサブグループ１しかないので、１巡目の処理でＳＳ（４，１）から糸色Ａが使用糸色とされた後、変数ＳＳｉ（ｉ）が２とされると、サブグループ数の１を超える。このような場合（Ｓ８９：ＹＥＳ）、対象グループＳ（ｉ）中のサブグループ全ての処理が完了しているため、ＣＰＵ１１は、変数ＳＳｉ（ｉ）に１を設定しなおして（Ｓ９０）、処理をＳ９１に進める。変数ＳＳｉ（ｉ）がサブグループ数ＳＧを超えない場合（Ｓ８９：ＮＯ）、まだ処理対象とされていないサブグループがグループ中にあるので、ＣＰＵ１１はそのまま処理をＳ９１に進める。
【００９９】
Ｓ９１では、ＣＰＵ１１は、変数ｃ、つまり選択数が使用数Ｍより小さいか否かを判断する。変数ｃが使用数Ｍより小さい場合（Ｓ９１：ＮＯ）、ＣＰＵ１１は、変数ｉに１を加算することで、第一優先順位が次のグループを処理対象に設定する（Ｓ１１１）。続いてＣＰＵ１１は、変数ｉがグループ数Ｇを超えたか否か、つまり、全てのグループが一通り処理対象とされたか否かを判断する（Ｓ１１２）。変数ｉがグループ数Ｇを超えていなければ（Ｓ１１２：ＮＯ）、処理対象とされていないグループがまだあるので、ＣＰＵ１１はＳ８２の処理に戻る。ＣＰＵ１１は前述の通り、次のグループについて処理を行う。
【０１００】
このようにして、ＣＰＵ１１が、Ｇ個のグループの全てについてＳ８２〜Ｓ９１、Ｓ１１１〜Ｓ１１２の処理を一通り完了し、各グループのサブグループの１つから使用糸色を１色ずつ選択すると、変数ｉがグループ数Ｇを超える（Ｓ１１２：ＹＥＳ）。ＣＰＵ１１は更に使用糸色を選択するために処理をＳ８１に戻し、再び優先順位が１番目のグループを処理対象に設定する。
【０１０１】
２巡目以降の処理では、処理対象とされていないサブグループが残っているグループについては、前述の通り、先のＳ８８の処理で変更された変数ＳＳｉ（ｉ）から、設定探索を開始する次のサブグループが特定される。よって、例えば対象グループＳ（１）に対する２巡目の処理では、ＣＰＵ１１は、対象サブグループＳＳ（１，２）から、使用頻度が最高の使用可能糸色を選択する。例えば、図１２の使用頻度テーブルが参照された場合、ＣＰＵ１１は、グループ３のサブグループ２から、使用頻度が最高の１０である糸色Ｄを選択する。一方、例えば、対象グループＳ（４）に対する２巡目の処理では、先のＳ９０の処理で変数ＳＳｉ（ｉ）が１に設定されているので、ＣＰＵ１１は、対象サブグループＳＳ（４，１）から、未選択の使用可能糸色のうち、使用頻度が最高の８０である糸色Ｂを特定する。
【０１０２】
グループ数Ｇが使用数Ｍよりも大きく、２巡目以降の処理が繰り返し行われた結果、対象サブグループＳＳ（ｉ，ｊ）に未選択の使用可能糸色が残っていない場合（Ｓ８４：ＮＯ）、ＣＰＵ１１は、変数ｊに１を加算して、対象サブグループを、同じ対象グループＳ（ｉ）の中で第二優先順位が次のサブグループに変更する（Ｓ１０１）。
【０１０３】
ＣＰＵ１１は、変数ｊがサブグループ数ＳＧを超えたか否かを判断する（Ｓ１０２）。変数ｊがサブグループ数ＳＧを超えた場合（Ｓ１０２：ＹＥＳ）、対象グループＳ（ｉ）中には処理対象とできるサブグループが残っていないため、ＣＰＵ１１は、変数ｊに１を設定しなおして（Ｓ１０３）、処理をＳ１０４に進める。変数ｊがサブグループ数ＳＧを超えない場合（Ｓ１０２：ＮＯ）、処理対象とできるサブグループがあるので、ＣＰＵ１１はそのまま処理をＳ１０４に進める。
【０１０４】
ＣＰＵ１１は、変数ｊが変数ｋと等しいか否か判断する（Ｓ１０４）。対象サブグループＳＳ（ｉ，ｊ）が処理済みの場合、先のＳ８３の処理で変数ｋに変数ｊが設定されている。よって、ＣＰＵ１１は、変数ｊが変数ｋと等しい場合（Ｓ１０４：ＹＥＳ）、処理をＳ１１１に進め、第一優先順位が次のグループを処理対象に設定する。変数ｊが変数ｋと等しくない場合（Ｓ１０４：ＮＯ）、ＣＰＵ１１は、処理をＳ８４に戻し、次のサブグループについて処理を行う。
【０１０５】
ＣＰＵ１１は、変数ｃが使用数Ｍより小さい間は、同様にして処理を繰り返す。変数ｃ、つまり選択数が使用数Ｍに達すると（Ｓ９１：ＮＯ）、ＣＰＵ１１は、図１１の選択処理を終了する。
【０１０６】
以上に説明したように、本実施形態では、複数の使用可能糸色が、予め、人間の目で見た場合の類似度に応じてグループ化され、且つ、各グループが更にサブグループに分類されて、糸色テーブルが作成されている。ＣＰＵ１１は、使用可能糸色の使用頻度のグループ毎の合計値（第一合計値）とサブグループ毎の合計値（第二合計値）を算出する。ＣＰＵ１１は、第一合計値が大きい順にグループの優先順位（第一優先順位）を設定し、第二合計値が大きい順に、グループ中のサブグループの優先順位（第二優先順位）を設定する。
【０１０７】
ＣＰＵ１１は、第一優先順位に従って、各グループで第二優先順位が最も高いサブグループから、使用頻度が最も高い未選択の使用可能糸色１色を、使用糸色として順に選択する。各グループから１色ずつ使用糸色を選択しても選択数が使用数Ｍに達しない場合、ＣＰＵ１１は、第一優先順位と第二優先順位に従って、選択数が使用数Ｍに達するまで、各グループのサブグループから、使用頻度が最も高い１色を順に選択する。つまり、既に選択された使用糸色の数が少ないサブグループの中で、第二合計値が最も高いサブグループに含まれる、未選択の使用可能糸色が順に選択される。
【０１０８】
よって、第一実施形態と同様、見た目ではそれほど似ていない色が、各グループから１色ずつ順に、バランスよく選択される。更に、グループがサブグループに分けられることで、各グループの中でも色が満遍なく選択されるので、全体として表現できる色がより豊富になる。従って、本実施形態の刺繍データ作成装置１によれば、複数の使用可能な糸色から、元画像を表現するのに適した糸色を選択して刺繍データを作成することができる。
【０１０９】
本実施形態では、第一優先順位および第二優先順位は、最初に算出された第一合計値および第二合計値に基づいて一旦設定されると、その後変更されることはない。しかしながら、ＣＰＵ１１は、第一実施形態のように、２巡目以降の処理では、既に使用糸色として選択された使用可能糸色の使用頻度を除外して第一合計値および第二合計値を再算出し、第一優先順位および第二優先順位を設定しなおしてもよい。また、第一実施形態と同様、第二閾値Ｔ２を適用してもよい。
【０１１０】
本実施形態では、グループ中でより似て見える色毎に分類されているサブグループを例として説明したが、サブグループ分けの基準は、必ずしも人間の目で見た場合の類似度でなくてもよい。例えば、サブグループは、各使用可能糸色の彩度に基づいて分類されてもよい。この場合、人間はまず、見た目で似た色か否かを基準として、複数の使用可能糸色をグループ分けする。その後、ＣＰＵ１１は、各使用可能糸色のＲＧＢ値を示すデータに基づき、各色の彩度を算出する。そして、算出された彩度が所定の閾値ＴＳよりも大きい使用可能糸色のサブグループ１と、所定の閾値ＴＳ以下の使用可能糸色のサブグループ２に分ければよい。閾値ＴＳは、予め設定された値でも、ユーザによって指定された値でもよい。なお、ＲＧＢ値が（ｒ，ｇ，ｂ）である色の彩度Ｓは、次の式に基づいて算出することができる。
ＭＡＸ＝ｍａｘ（ｒ，ｇ，ｂ）
ＭＩＮ＝ｍｉｎ（ｒ，ｇ，ｂ）
Ｓ＝（ＭＡＸ−ＭＩＮ）÷ＭＡＸ
【０１１１】
複数の糸色を組み合わせることで混色表現を行う場合、彩度が低い（鮮やかでない）色を組み合わせて、彩度が高い（鮮やかな）色を表現することはできない。例えば、鮮やかな赤と彩度が低い灰色とを組み合わせて彩度の低い赤を表現することはできても、彩度の低い赤と彩度が高い別の色を組み合わせて鮮やかな赤を表現することはできない。そこで、サブグループが上記のように彩度に応じて分類されている場合、ＣＰＵ１１は、図１１のＳ７４において、第二優先順位を、より彩度の高いサブグループから順に、つまり、サブグループ１、サブグループ２の順に設定してもよい。この場合、確実により鮮やかな色を先に使用糸色として選択することができる。
【０１１２】
サブグループ分けの基準として、彩度のほか、ＲＧＢ空間における中央値、つまり灰色からの距離が使用されてもよい。例えば、白と黒を組み合わせて灰色を表現することはできても、灰色から白と黒は表現できない。よって、彩度の場合と同様、組み合わせた時に表現可能な色がより多くなるように、ＣＰＵ１１は、サブグループを、ＲＧＢ空間における中央値（１２８，１２８，１２８）からの距離が、所定の閾値Ｄより大きい使用可能糸色のサブグループ１と、所定の閾値Ｄ以下の使用可能糸色のサブグループ２とに分ければよい。
【０１１３】
本実施形態では、図１０に例示する糸色テーブルを記憶するＨＤＤ１５は、本発明の「記憶手段」の一例である。図１１の選択処理を行うＣＰＵ１１は、「選択手段」の一例である。
【０１１４】
本発明は上記実施形態に限定されるものではなく、種々の変更が可能である。例えば、上記実施形態では、選択処理において、グループ内では、使用頻度がより高い使用可能糸色が優先して選択される例を説明したが、色空間でより均等に分布されたＭ色の使用糸色を選択することを目的とした他の方法で優先順位が決められてもよい。以下にかかる選択方法の例を挙げる。
【０１１５】
例えば、ＣＰＵ１１は、第一および第二実施形態と同様、各使用可能糸色の使用頻度を算出する。そして、グループ数Ｇが使用数Ｍ以上の場合、つまり、各グループから１色ずつ使用糸色を選択すれば、選択数が使用数Ｍに達する場合、各グループに属する使用可能糸色のＲＧＢ空間における中央値を算出する。ＣＰＵ１１は、中央値からの距離がより短い使用可能糸色を優先して選択する。この方法によれば、各グループから、グループ中で平均的な色が１色ずつ選択される結果となるので、色空間でより均等に分布されたＭ色の使用糸色を選択することができる。
【０１１６】
なお、グループ中の使用可能糸色の数をｎ、各使用可能糸色を糸色１、糸色２、・・・糸色ｎ、各使用可能糸色のＲＧＢ値を（ｒ１，ｇ１，ｂ１）、（ｒ２，ｇ２，ｂ２）、・・・（ｒｎ，ｇｎ，ｂｎ）、各使用可能糸色の使用頻度をｈ１、ｈ２、・・・ｈｎとすると、グループに属する使用可能糸色のＲＧＢ空間における中央値（Ｃｒ，Ｃｇ，Ｃｂ）は、次の式で算出することができる。
Ｃｒ＝（ｒ１×ｈ１＋ｒ２×ｈ２＋・・・ｒｎ×ｈｎ）÷（ｈ１＋ｈ２＋・・・ｈｎ）
Ｃｇ＝（ｇ１×ｈ１＋ｇ２×ｈ２＋・・・ｇｎ×ｈｎ）÷（ｈ１＋ｈ２＋・・・ｈｎ）
Ｃｂ＝（ｂ１×ｈ１＋ｂ２×ｈ２＋・・・ｂｎ×ｈｎ）÷（ｈ１＋ｈ２＋・・・ｈｎ）
【０１１７】
ＣＰＵ１１は、グループ数Ｇが使用数Ｍより小さい場合、つまり、各グループから１色ずつ使用糸色を選択しても選択数が使用数Ｍに達しない場合、使用糸色が２色以上選択されるグループについては、グループ中の使用可能糸色２色の全ての組合せについて、ＲＧＢ空間での距離を算出する。そして、算出された距離が最も遠い組合せの２色を、使用糸色として選択する。これにより、ＲＧＢ空間においてより広い範囲に分布する使用糸色を選択することができる。また、ＣＰＵ１１は、１色目は各グループから使用頻度が最も高い使用可能糸色を使用糸色として選択し、同じグループの２色目は、１色目から最も距離が離れた使用可能糸色を選択してもよい。
【０１１８】
または、次のような方法も可能である。ＣＰＵ１１は、１巡目の処理で、使用頻度の合計値が最も高いグループから、グループ中で使用頻度が最も高い使用可能糸色Ｃ１を選択する。そして、使用頻度の合計値が次に高いグループから、ＲＧＢ空間において使用可能糸色Ｃ１からの距離が最も遠い使用可能糸色Ｃ２を選択する。更に、使用頻度の合計値が次に高いグループから、ＲＧＢ空間において使用可能糸色Ｃ１およびＣ２からの距離が最も遠い使用可能糸色Ｃ３を選択する。ＣＰＵ１１は、この処理を、選択数が使用数Ｍに達するまで繰り返す。この場合も、ＲＧＢ空間においてより広い範囲に分布する使用糸色を選択することができる。
【符号の説明】
【０１１９】
１  刺繍データ作成装置
３  ミシン
１１  ＣＰＵ
１５  ＨＤＤ
【図１】
2014083339.tif 000003
【図２】
2014083339.tif 000004
【図３】
2014083339.tif 000005
【図４】
2014083339.tif 000006
【図５】
2014083339.tif 000007
【図６】
2014083339.tif 000008
【図７】
2014083339.tif 000009
【図８】
2014083339.tif 000010
【図９】
2014083339.tif 000011
【図１０】
2014083339.tif 000012
【図１１】
2014083339.tif 000013
【図１２】
2014083339.tif 000014