(57)【要約】【課題】バーコードを含む部分画像を適切に出力する。【解決手段】画像処理装置は、対象画像データを取得する画像取得部であって、対象画像データに基づく対象画像は、バーコードを含む複数個の部分画像を含む、画像取得部と、対象画像データを用いて、対象画像内のバーコードを特定するバーコード特定部と、対象画像内の第１方向の複数個の位置について、部分画像が位置するオブジェクト範囲と部分画像が位置しない空白範囲とを分離することによって、１個以上のオブジェクト範囲を特定するオブジェクト特定部であって、第１方向は、特定済みの少なくとも１個の特定のバーコードを構成するバーと垂直な方向である、オブジェクト特定部と、対象画像データを用いて、特定された１個以上のオブジェクト範囲内の画像に対応する画像データをそれぞれ出力する画像出力部と、を備える。【選択図】  図６
2019188742.tif 000002
【特許請求の範囲】
【請求項１】
画像処理装置であって、
対象画像データを取得する画像取得部であって、前記対象画像データに基づく対象画像は、バーコードを含む複数個の部分画像を含む、前記画像取得部と、
前記対象画像データを用いて、前記対象画像内の前記バーコードを特定するバーコード特定部と、
前記対象画像内の第１方向の複数個の位置について、前記部分画像が位置するオブジェクト範囲と前記部分画像が位置しない空白範囲とを分離することによって、１個以上の前記オブジェクト範囲を特定するオブジェクト特定部であって、前記第１方向は、特定済みの少なくとも１個の前記バーコードを構成するバーと垂直な方向である、前記オブジェクト特定部と、
前記対象画像データを用いて、特定された前記１個以上のオブジェクト範囲内の画像に対応する画像データをそれぞれ出力する画像出力部と、
を備える、画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
前記バーコード特定部は、前記対象画像内の複数個のバーコードを特定し、
前記画像処理装置は、さらに、
前記複数個のバーコードのうち、一の方向に延びるバーで構成されるバーコードの個数が、他の方向に延びるバーで構成されるバーコードの個数よりも大きい場合に、前記一の方向と垂直な方向を前記第１方向として決定する方向決定部を備える、画像処理装置。
【請求項３】
請求項１または２に記載の画像処理装置であって、
前記オブジェクト特定部は、
前記対象画像内の複数個の画素を前記第１方向の位置に基づいて複数個のクラスに分類し、前記複数個のクラスのそれぞれについて前記部分画像を構成する画素の個数をカウントして得られるヒストグラムを生成し、
前記ヒストグラムを用いて、前記第１方向の複数個の位置について前記オブジェクト範囲と前記空白範囲とを特定する、画像処理装置。
【請求項４】
請求項１〜３のいずれかに記載の画像処理装置であって、さらに、
前記オブジェクト特定部は、前記対象画像のうちの前記オブジェクト範囲内の画像の端部範囲を特定し、
前記端部範囲は、前記第１方向と垂直な第２方向の端を含む前記第２方向の範囲であって前記部分画像が位置しない範囲であり、
前記画像出力部は、前記オブジェクト範囲内の画像のうち、前記端部範囲内の画像を除いた画像に対応する前記画像データを出力する、画像処理装置。
【請求項５】
請求項１〜４のいずれかに記載の画像処理装置であって、
前記画像出力部は、
前記オブジェクト範囲内の画像を印刷媒体に応じたサイズに縮小する縮小処理を実行し、
縮小済みの前記オブジェクト範囲内の画像に対応する前記画像データを、前記印刷媒体に画像を印刷する印刷実行部に出力する、画像処理装置。
【請求項６】
請求項５に記載の画像処理装置であって、
前記縮小処理は、
前記オブジェクト範囲内の画像に前記バーコードが含まれる場合に、前記バーコードを、補間演算を用いない第１縮小方法に従って縮小し、前記バーコードを除いた前記部分画像を前記補間演算を用いる第２縮小方法に従って縮小し、縮小済みの前記バーコードと縮小済みの前記部分画像とを合成し、
前記オブジェクト範囲内の画像に前記バーコードが含まれない場合に、前記オブジェクト範囲内の画像を、前記第２縮小方法に従って縮小する、画像処理装置。
【請求項７】
請求項１〜６のいずれかに記載の画像処理装置であって、
前記画像出力部は、物品に貼り付けられるラベル用のシートに画像を印刷するラベル用の印刷実行部に、前記画像データを出力する、画像処理装置。
【請求項８】
コンピュータプログラムであって、
対象画像データを取得する画像取得機能であって、前記対象画像データに基づく対象画像は、バーコードを含む複数個の部分画像を含む、前記画像取得機能と、
前記対象画像データを用いて、前記対象画像内の前記バーコードを特定するバーコード特定機能と、
前記対象画像内の第１方向の複数個の位置について、前記部分画像が位置するオブジェクト範囲と前記部分画像が位置しない空白範囲とを分離することによって、１個以上の前記オブジェクト範囲を特定するオブジェクト特定機能であって、前記第１方向は、特定済みの少なくとも１個の前記バーコードを構成するバーと垂直な方向である、前記オブジェクト特定機能と、
前記対象画像データを用いて、特定された前記１個以上のオブジェクト範囲内の画像に対応する画像データをそれぞれ出力する画像出力機能と、
コンピュータに実現させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、バーコードを含む画像に対する画像処理に関する。
【背景技術】
【０００２】
特許文献１に開示された画像処理では、バーコードを読み取って、該バーコードをデコードする際に、バーコード領域内の画素の値を水平方向および垂直方向に累積して得られる水平ヒストグラムおよび垂直ヒストグラムを用いている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平６−１０３３９９号公報
【特許文献２】特開２０１４−１６９２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記技術は、画像内に含まれるバーコード領域を特定する技術に過ぎず、バーコードとバーコード以外の画像とで構成されるオブジェクト範囲を特定するものではない。
【０００５】
本明細書は、余分な余白を含むことを抑制して、バーコードを含む部分画像を適切に出力できる技術を開示する。
【課題を解決するための手段】
【０００６】
本明細書に開示された技術は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の適用例として実現することが可能である。
【０００７】
［適用例１］画像処理装置であって、対象画像データを取得する画像取得部であって、前記対象画像データに基づく対象画像は、バーコードを含む複数個の部分画像を含む、前記画像取得部と、前記対象画像データを用いて、前記対象画像内の前記バーコードを特定するバーコード特定部と、前記対象画像内の第１方向の複数個の位置について、前記部分画像が位置するオブジェクト範囲と前記部分画像が位置しない空白範囲とを分離することによって、１個以上の前記オブジェクト範囲を特定するオブジェクト特定部であって、前記第１方向は、特定済みの少なくとも１個の特定の前記バーコードを構成するバーと垂直な方向である、前記オブジェクト特定部と、前記対象画像データを用いて、特定された前記１個以上のオブジェクト範囲内の画像に対応する画像データをそれぞれ出力する画像出力部と、を備える、画像処理装置。
【０００８】
上記構成によれば、バーコードを構成するバーと垂直な第１方向の複数個の位置について、オブジェクトが位置しない空白範囲を除いたオブジェクトが位置するオブジェクト範囲が特定される。この結果、バーコードを構成するバーと垂直な方向の複数個の位置について、オブジェクト範囲を特定するため、１つの画像データとして扱うべき画像とバーコードとの間に存在する余白のため部分画像が分離されてしまうことを回避できる。そして、第１オブジェクト範囲内の画像に対応する画像データが出力されるので、余分な余白を含まないように、バーコードを含む部分画像を適切に示す画像データが出力され得る。
【０００９】
なお、本明細書に開示される技術は、種々の形態で実現することが可能であり、例えば、印刷装置、印刷方法、画像処理方法、これら装置の機能または上記方法を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、等の形態で実現することができる。
【図面の簡単な説明】
【００１０】
【図１】ラベルプリンタ１００と端末装置２００との構成を示すブロック図である。
【図２】ラベルプリンタ１００の斜視図である。
【図３】ラベル印刷処理のフローチャートである。
【図４】対象画像の一例を示す図である。
【図５】処理済みのラベル画像ＦＩａ、ＦＩｂの一例を示す図である。
【図６】ラベル領域特定処理のフローチャートである。
【図７】対象画像ＯＩのオブジェクト範囲内の画像の一例を示す図である。
【図８】印刷方向決定処理のフローチャートである。
【図９】対象画像の他の一例を示す図である。
【図１０】バーコードラベル縮小処理のフローチャートである。
【図１１】バーコードラベル縮小処理の説明図である。
【発明を実施するための形態】
【００１１】
Ａ．実施例：
Ａ−１：画像処理装置の構成
次に、実施の形態を実施例に基づき説明する。図１は、実施例における印刷実行部としてのラベルプリンタ１００と、実施例における画像処理装置としての端末装置２００と、の構成を示すブロック図である。
【００１２】
端末装置２００は、ユーザが利用する計算機であり、例えば、パーソナルコンピュータやスマートフォンである。端末装置２００は、端末装置２００のコントローラとしてのＣＰＵ２１０と、ＲＡＭなどの揮発性記憶装置２２０と、ハードディスクドライブやフラッシュメモリなどの不揮発性記憶装置２３０と、液晶ディスプレイなどの表示部２４０と、キーボードやマウスなどの操作部２５０と、通信インタフェース（ＩＦ）２７０と、を備えている。端末装置２００は、通信インタフェース２７０を介して、ラベルプリンタ１００などの外部装置と通信可能に接続される。通信インタフェース２７０は、例えば、ＵＳＢインタフェースなどの有線インタフェースや、ブルートゥース（登録商標）やIEEE802.11などの無線インタフェースである。
【００１３】
揮発性記憶装置２２０は、ＣＰＵ２１０が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域を提供する。不揮発性記憶装置２３０には、コンピュータプログラムＰＧ２が格納されている。揮発性記憶装置２２０や不揮発性記憶装置２３０は、端末装置２００の内部メモリである。
【００１４】
コンピュータプログラムＰＧ２は、インターネットを介して接続されたサーバからダウンロードされる形態で提供される。これに代えて、コンピュータプログラムＰＧ２は、例えば、ＣＤ−ＲＯＭなどに記録された形態や、端末装置２００の製造時に不揮発性記憶装置２３０に予め格納される形態にて提供され得る。ＣＰＵ２１０は、コンピュータプログラムＰＧ２を実行することにより、後述するラベル印刷処理を実行する。
【００１５】
ラベルプリンタ１００は、物品に貼り付けられるラベル用のシートに画像を印刷する印刷装置である。ラベルプリンタ１００は、ラベルプリンタ１００のコントローラとしてのＣＰＵ１１０と、ＲＡＭなどの揮発性記憶装置１２０と、フラッシュメモリなどの不揮発性記憶装置１３０と、複数個のボタンなどの操作部１５０と、印刷機構１６０と、通信インタフェース（ＩＦ）１７０と、を備えている。ラベルプリンタ１００は、通信インタフェース１７０を介して、端末装置２００などの外部装置と通信可能に接続される。通信インタフェース１７０は、例えば、ＵＳＢインタフェースなどの有線インタフェースや、ブルートゥース（登録商標）やIEEE802.11などの無線インタフェースである。
【００１６】
揮発性記憶装置１２０は、ＣＰＵ１１０が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域を提供する。不揮発性記憶装置１３０には、コンピュータプログラムＰＧ１が格納されている。揮発性記憶装置１２０や不揮発性記憶装置１３０は、ラベルプリンタ１００の内部メモリである。コンピュータプログラムＰＧ１は、ラベルプリンタ１００の製造時に不揮発性記憶装置１３０に予め格納される形態にて提供される。これに代えて、コンピュータプログラムＰＧ１は、インターネットを介して接続されたサーバからダウンロードされる形態や、端末装置２００から送信される形態で提供され得る。ＣＰＵ２１０は、コンピュータプログラムＰＧ１を実行することにより、例えば、端末装置２００から送信される印刷画像データに従って、ラベル用のシートに画像を印刷する。
【００１７】
図２は、ラベルプリンタ１００の斜視図である。図２（Ａ）の斜視図は、カバー５が閉じられた状態のラベルプリンタ１００の外観を示し、図２（Ｂ）の斜視図は、カバー５が開けられた状態のラベルプリンタ１００の外観を示す。図２（Ａ）に示すように、ラベルプリンタ１００の筺体２には、上方に開平可能に取り付けられたカバー５と、前部に設けられたトレー６と、上述した操作部１５０を構成する複数個のボタン７と、ロール３（図２（Ｂ））を切断するカッター（図示省略）を操作するカッターレバー９と、が設けられている。
【００１８】
図２（Ｂ）に示すように、筺体２の内部には、ラベル用のシートが巻かれたロール３が収容されるシート収容部４が形成されている。ラベル用のシートは、感熱シートで構成されたシート本体の片面に、物品に貼り付けるための粘着剤層を介して剥離紙が貼り合わされた帯状のシートである。ラベル用のシートにラベル画像が印刷された後に、ラベル用のシートのうち、ラベル画像が印刷された部分がカッターによってロール３から分離される。そして、ラベル画像が印刷されたシート本体から剥離紙が分離され、ラベル画像が印刷されたシート本体は、粘着剤層を介して物品に貼り付けられる。
【００１９】
図１の印刷機構１６０は、搬送部１６１と、印刷ヘッドとしてのサーマルヘッド１６２と、を備え、ロール３を形成するラベル用のシートにモノクロ画像を印刷する。搬送部１６１は、図示しないステップモータとローラとを備え、ラベル用のシートをロール３からトレー６に向かって繰り出し、搬送する。サーマルヘッド１６２は、シートの搬送経路に設けられ、シートの搬送方向と垂直な方向に沿って並ぶ複数個（例えば、数百個）の発熱素子（図示省略）を備える。サーマルヘッド１６２は、ＣＰＵ１１０の制御に従って、発熱素子を用いてドットを形成すべきシート上の位置を加熱することで、シート上にドットを形成する。
【００２０】
Ａ−２：ラベル印刷処理
図３は、ラベル印刷処理のフローチャートである。このラベル印刷処理は、対象画像データを用いて、ラベルプリンタ１００に、ラベル画像を印刷させる処理である。このラベル印刷処理は、端末装置２００のＣＰＵ２１０によって実行される。このラベル印刷処理は、端末装置２００が、例えば、操作部２５０を介して、ユーザの印刷指示を取得した場合に、開始される。
【００２１】
Ｓ５では、ＣＰＵ２１０は、印刷すべき対象画像ＯＩを示す対象画像データを取得する。対象画像データは、例えば、不揮発性記憶装置２３０に格納された複数個の画像データの中から、ユーザの指定に基づいて選択される画像データである。
【００２２】
本実施例で取得される対象画像データは、複数個の画素の値を含み、複数個の画素の値のそれぞれは、画素の輝度を示す輝度画像データである。１個の画素の輝度は、例えば、２５６階調の値で示される。なお、取得される対象画像データが、輝度画像データではない場合には、例えば、該対象画像データに対して、ラスタライズ処理などの変換処理が実行されて、輝度画像データに変換される。
【００２３】
図４は、対象画像の一例を示す図である。図４の対象画像ＯＩは、Ｘ方向（図４の横方向）とＹ方向（図４の縦方向）とに沿って、マトリクス状に並ぶ複数個の画素を含んでいる。対象画像ＯＩは、第１ラベル領域ＬＡ１と、第２ラベル領域ＬＡ２と、を含む。各ラベル領域内の画像は、１個のラベルを示す画像であり、１体で印刷されるべき画像である。１個のラベル領域内の画像（後述するバーコードや文字や線などのオブジェクト）をラベル画像とも呼ぶ。本実施例の対象画像ＯＩは、商品の配送のためのラベルを示す画像である。例えば、第１ラベル領域ＬＡ１内のラベル画像は、商品に貼り付けるためのラベルを示す画像であり、第２ラベル領域ＬＡ２内のラベル画像は、商品を収容するパッケージに貼り付けるためのラベルを示す画像である。
【００２４】
第１ラベル領域ＬＡ１は、オブジェクトとして、複数個のバーコードＢＣａ〜ＢＣｃと、文字ＴＸａ、ＴＸｂや線Ｌａなどのバーコードとは異なるオブジェクトと、を含む。第２ラベル領域ＬＡ２は、オブジェクトとして、複数個のバーコードＢＣｄ、ＢＣｅと、文字ＴＸｃや線Ｌｂなどのバーコードとは異なるオブジェクトと、を含む。
【００２５】
バーコードは、交互に並ぶ複数本の白線ＷＢと黒線ＢＢを含み、これらの白線ＷＢと黒線ＢＢのパターンによって情報を示すコード画像である。バーコードを構成する白線ＷＢや黒線ＢＢをバーとも呼ぶ。バーコードを構成するバーが延びる方向をバーコードの方向とも呼ぶ。図４の例では、バーコードＢＣａ、ＢＣｄの方向は、Ｙ方向であり、バーコードＢＣｂ、ＢＣｃ、ＢＣｅの方向は、Ｘ方向である。バーコードは、図４のバーコードＢＣｅのように、白線ＷＢと黒線ＢＢに加えて、二次元コードＭＣを含んでも良い。
【００２６】
バーコードには、白線ＷＢと黒線ＢＢの太さや配列パターンなどの規格によって、複数個の種類がある。例えば、バーコードの種類には、ＪＡＮ、ＵＰＣ、ＩＴＦ、ＣＯＤＥ３９、ＣＯＤＥ１２８などがある。本実施例では、ＣＯＤＥ１２８と呼ばれるバーコードの読み取りを重要視している。図４の例では、バーコードＢＣａ、ＢＣｄは、ＣＯＤＥ１２８のバーコードであり、バーコードＢＣｂ、ＢＣｃ、ＢＣｅは、ＣＯＤＥ１２８とは異なる種類のバーコードである。
【００２７】
Ｓ１０では、ＣＰＵ２１０は、対象画像ＯＩ内の１個以上のバーコードを特定する。バーコードの特定は、例えば、通常のバーコード読み取り装置において実行される公知のバーコード特定処理を用いて行われる。この処理によって、バーコードが配置される領域と、バーコードの方向と、が特定される。バーコードの方向は、本実施例では、Ｘ方向とＹ方向とのいずれかである。図４の例では、５個のバーコードＢＣａ〜ＢＣｅが配置される領域と方向とが特定される。
【００２８】
Ｓ１５では、ＣＰＵ２１０は、対象画像データを用いて、ラベル領域特定処理を実行する。ラベル領域特定処理は、対象画像ＯＩ内に含まれる１個以上のラベル領域を特定する処理である。図４の例では、対象画像ＯＩ内の２個のラベル領域、すなわち、第１ラベル領域ＬＡ１と、第２ラベル領域ＬＡ２と、が特定される。ラベル領域特定処理については、後述する。
【００２９】
Ｓ２０では、ＣＰＵ２１０は、特定済みの１個以上のラベル領域の中から、１個の注目ラベル領域を特定する。Ｓ２５では、ＣＰＵ２１０は、対象画像ＯＩから注目ラベル領域内のラベル画像を切り出す。すなわち、ＣＰＵ２１０は、対象画像ＯＩのうち、注目ラベル領域内の部分画像に対応する部分画像データをラベル画像データとして抽出し、該ラベル画像データを、揮発性記憶装置２２０のバッファ領域に別データとして格納する。
【００３０】
Ｓ３０では、注目ラベル領域に、バーコードが含まれるか否かを判断する。Ｓ１０にて特定済みのバーコードの少なくとも１個が注目ラベル領域内に含まれる場合には、バーコードが含まれると判断される。図４の例では、第１ラベル領域ＬＡ１と第２ラベル領域ＬＡ２のいずれが注目ラベル領域である場合でも、バーコードが含まれると判断される。
【００３１】
注目ラベル領域に、バーコードが含まれない場合には（Ｓ３０：ＮＯ）、Ｓ３５にて、ＣＰＵ２１０は、ラベル画像のＸ方向の幅は、印刷媒体の幅より大きいか否かを判断する。ラベル画像のＸ方向の画素数は、ラベルプリンタ１００の搬送方向と垂直な方向の解像度を用いて、印刷された画像の長さに換算することができる。当該換算値が、印刷媒体の幅、すなわち、ロール３を形成する帯状のシートの短手方向の幅よりも大きい場合には、ラベル画像のＸ方向の幅は、印刷媒体の幅より大きいと判断される。
【００３２】
ラベル画像のＸ方向の幅が、印刷媒体の幅より大きい場合には（Ｓ３５：ＹＥＳ）、Ｓ４０にて、ＣＰＵ２１０は、補間演算を用いて、ラベル画像を縮小する。補間演算には、公知の演算法、例えば、バイキュービック法やバイリニア法が用いられる。縮小済みのラベル画像のＸ方向の画素数は、例えば、印刷媒体の幅に対応する画素数とされる。補間演算を用いる縮小法を用いる場合には、補間演算を用いない縮小法、例えば、公知のニアレストネイバー法を用いる場合と比較して、縮小済みの画像内の文字や線が、自然な見栄えとなる。ラベル画像のＸ方向の幅が、印刷媒体の幅以下である場合には（Ｓ３５：ＮＯ）、ＣＰＵ２１０は、Ｓ４０をスキップする。なお、印刷方向がＹ方向であることを前提としてＳ３５の処理を行っているが、印刷方向がＸ方向であることを前提とする場合は、Ｓ３５では、ラベル画像のＹ方向の幅に基づいて判断されてもよい。
【００３３】
注目ラベル領域に、バーコードが含まれる場合には（Ｓ３０：ＹＥＳ）、Ｓ４５にて、ＣＰＵ２１０は、ラベル画像データを用いて、印刷方向決定処理を実行する。印刷方向決定処理は、注目ラベル領域内のラベル画像を印刷する際の印刷方向を決定する処理である。印刷方向は、ラベルプリンタ１００におけるラベル用のシートの搬送方向に対応する方向、すなわち、ロール３を形成する帯状のシートの長手方向に対応する方向である。本実施例では、印刷方向は、図４のＸ方向およびＹ方向のいずれかに決定される。印刷方向決定処理については、後述する。
【００３４】
Ｓ５０では、ＣＰＵ２１０は、決定済みの印刷方向に応じて、ラベル画像を回転する。具体的には、印刷方向と、回転済みのラベル画像のＹ方向と、が一致するように、ラベル画像が回転される。したがって、印刷方向がＸ方向である場合には、時計回りまたは反時計回りに９０度だけラベル画像は回転され、印刷方向がＹ方向である場合には、ラベル画像は回転されない。
【００３５】
Ｓ５５では、ＣＰＵ２１０は、ラベル画像のＸ方向の幅は、印刷媒体の幅より大きいか否かを判断する。ラベル画像のＸ方向の幅が、印刷媒体の幅より大きい場合には（Ｓ５５：ＹＥＳ）、Ｓ６０にて、ＣＰＵ２１０は、バーコードを含むラベル画像を縮小するバーコードラベル縮小処理を実行する。バーコードラベル縮小処理については、後述する。ラベル画像のＸ方向の幅が、印刷媒体の幅以下である場合には（Ｓ５５：ＮＯ）、ＣＰＵ２１０は、Ｓ６０をスキップする。
【００３６】
Ｓ７５では、ＣＰＵ２１０は、処理済みのラベル画像データを用いて、ラベルプリンタ１００でラベル画像を印刷するための印刷画像データを生成する。図５は、処理済みのラベル画像ＦＩａ、ＦＩｂの一例を示す図である。図５（Ａ）の処理済みのラベル画像ＦＩａは、対象画像ＯＩ内の第１ラベル領域ＬＡ１に対応する画像である。図５（Ａ）の処理済みのラベル画像ＦＩａは、Ｓ５０にて、９０度だけ回転されている。図５（Ｂ）の処理済みのラベル画像ＦＩｂは、対象画像ＯＩ内の第２ラベル領域ＬＡ２に対応する画像である。図５（Ｂ）の処理済みのラベル画像ＦＩｂは、Ｓ５０にて、回転されていない。ＣＰＵ２１０は、例えば、処理済みのラベル画像データに対してハーフトーン処理を実行して、ドットの形成状態を画素ごとに示すドットデータを生成する。ハーフトーン処理は、誤差拡散法やディザ法などの公知の方法を用いて実行される。ドットデータの画素の値は、例えば、ドットの有無を示す二値の値である。ＣＰＵ２１０は、該ドットデータに、ラベルプリンタ１００を制御する制御コマンド等を付加して、印刷画像データを生成する。
【００３７】
Ｓ８０では、ＣＰＵ２１０は、生成済みの印刷画像データをラベルプリンタ１００に送信する。ラベルプリンタ１００が印刷画像データを受信すると、ラベルプリンタ１００のＣＰＵ１１０は、該印刷画像データに基づいて、印刷機構１６０を制御して、印刷機構１６０にラベル画像を印刷させる。
【００３８】
Ｓ８５では、ＣＰＵ２１０は、対象画像ＯＩ内の全てのラベル領域を注目ラベル領域として処理したか否かを判断する。未処理のラベル領域がある場合には（Ｓ８５：ＮＯ）、ＣＰＵ２１０は、Ｓ２０に戻る。全てのラベル領域が処理された場合には（Ｓ８５：ＹＥＳ）、ＣＰＵ２１０は、ラベル印刷処理を終了する。この結果、対象画像ＯＩ内の全てのラベル領域に対応するラベル画像が、ラベルプリンタ１００によって印刷される。例えば、図４の対象画像データが用いられる場合には、図５の２個の処理済みのラベル画像ＦＩａ、ＦＩｂが、それぞれ、印刷される。
【００３９】
Ａ−３．ラベル領域特定処理
次に図３のＳ１５のラベル領域特定処理について説明する。ラベル領域特定処理は、上述したように、ラベル領域特定処理は、対象画像ＯＩ内に含まれる１個以上のラベル領域を特定する処理である。図６は、ラベル領域特定処理のフローチャートである。
【００４０】
Ｓ１１０では、ＣＰＵ２１０は、対象画像ＯＩ内のＸ方向の特定種のバーコードの個数Ｎ１をカウントする。ここで、Ｘ方向のバーコードとは、上述したように、バーが延びる方向がＸ方向であるバーコードを意味する。特定種のバーコードは、本実施例では、上述したＣＯＤＥ１２８のバーコードである。
【００４１】
Ｓ１１０では、ＣＰＵ２１０は、対象画像ＯＩ内のＸ方向の特定種のバーコードの個数Ｎ１をカウントする。Ｘ方向のバーコードとは、上述したように、バーが延びる方向がＸ方向であるバーコードを意味する。特定種のバーコードは、本実施例では、上述したＣＯＤＥ１２８のバーコードである。図４の例では、対象画像ＯＩに含まれる２個のＣＯＤＥ１２８のバーコードＢＣｄ、ＢＣａは、いずれもＹ方向のバーコードであるので、Ｘ方向の特定種のバーコードは、０個である（Ｎ１＝０）。
【００４２】
Ｓ１１５では、ＣＰＵ２１０は、対象画像ＯＩ内のＹ方向の特定種のバーコードの個数Ｎ２をカウントする。Ｙ方向のバーコードとは、上述したように、バーが延びる方向がＹ方向であるバーコードを意味する。図４の例では、対象画像ＯＩに含まれる２個のＣＯＤＥ１２８のバーコードＢＣｄ、ＢＣａは、いずれもＹ方向のバーコードであるので、Ｙ方向の特定種のバーコードは、２個である（Ｎ２＝２）。
【００４３】
Ｓ１２０では、ＣＰＵ２１０は、Ｎ２＞Ｎ１が満たされるか否か、すなわち、Ｙ方向の特定種のバーコードの個数Ｎ２が、Ｘ方向の特定種のバーコードの個数Ｎ１より大きいか否かを判断する。Ｙ方向の特定種のバーコードの個数Ｎ２が、Ｘ方向の特定種のバーコードの個数Ｎ１より大きい場合には（Ｓ１２０：ＹＥＳ）、Ｓ１２５にて、ＣＰＵ２１０は、探索方向をＸ方向に決定する。Ｙ方向の特定種のバーコードの個数Ｎ２が、Ｘ方向の特定種のバーコードの個数Ｎ１以下である場合には（Ｓ１２０：ＮＯ）、Ｓ１３０にて、ＣＰＵ２１０は、探索方向をＹ方向に決定する。図４の例では、Ｙ方向の特定種のバーコードの個数Ｎ２（２個）が、Ｘ方向の特定種のバーコードの個数Ｎ１（０個）よりも大きいので、Ｓ１２５にて、探索方向は、Ｘ方向に決定される。
【００４４】
Ｓ１３５では、ＣＰＵ２１０は、対象画像ＯＩの探索方向の位置に対する射影ヒストグラムを生成する。探索方向の射影ヒストグラムは、対象画像ＯＩ内の複数個の画素を探索方向の位置に基づいて複数個のクラスに分類し、該複数個のクラスのそれぞれについて、対象画像ＯＩ内のオブジェクトを構成するオブジェクト画素の個数をカウントして得られるヒストグラムである。例えば、探索方向がＸ方向である場合には、本実施例では、Ｘ方向の位置が等しい複数個の画素、すなわち、Ｙ方向に延びる１本の画素のライン上の複数個の画素が、１個のクラスに分類される。例えば、対象画像ＯＩのサイズが、Ｘ方向Ｐ画素×Ｙ方向Ｑ画素である場合には、対象画像ＯＩ内の複数個の画素は、Ｐ個のクラスに分類され、１個のクラスに属する画素数は、Ｑ個である。そして、ＣＰＵ２１０は、Ｐ個のクラスのそれぞれについて、各クラスに属するＱ個の画素のうち、オブジェクト画素の個数をカウントすることによって、Ｘ方向の射影ヒストグラムＨｘを作成する。オブジェクト画素は、背景色（本実施例では白）とは異なる色を有する画素である。図４の例では、対象画像ＯＩ内の文字ＴＸａ〜ＴＸｃ、線Ｌａ、Ｌｂ、バーコードＢＣａ〜ＢＣｅを構成する画素は、全てオブジェクト画素である。
【００４５】
図４の例では、探索方向は、Ｘ方向に決定されるので、Ｓ１３５では、Ｘ方向の射影ヒストグラムが作成される。図４の対象画像ＯＩの下方には、Ｘ方向の射影ヒストグラムＨｘが示されている。
【００４６】
Ｓ１４０では、ＣＰＵ２１０は、探索方向の空白範囲を特定する。空白範囲は、ラベル画像（バーコードや文字や線などのオブジェクト）が位置しない探索方向の範囲である。ＣＰＵ２１０は、探索方向の射影ヒストグラムにおいて、オブジェクト画素の個数が閾値（例えば、０個）以下である探索方向の範囲を、空白範囲として特定する。図４の例では、探索方向であるＸ方向の３個の空白範囲ＷＲ１〜ＷＲ３が特定される。
【００４７】
Ｓ１４５では、ＣＰＵ２１０は、特定済みの空白範囲に挟まれた１個以上のオブジェクト範囲を特定する。図４の例では、２個の空白範囲ＷＲ１、ＷＲ２に挟まれたオブジェクト範囲ＯＲ１と、２個の空白範囲ＷＲ２、ＷＲ３に挟まれたオブジェクト範囲ＯＲ２と、が特定される。
【００４８】
Ｓ１５０では、ＣＰＵ２１０は、特定済みの１個以上のオブジェクト範囲の中から、１個の注目オブジェクト範囲を選択する。図４の例では、オブジェクト範囲ＯＲ１と、オブジェクト範囲ＯＲ２と、が順次に選択される。
【００４９】
Ｓ１５５では、ＣＰＵ２１０は、注目オブジェクト範囲内の画像の探索方向と垂直な方向の位置に対する射影ヒストグラムを生成する。探索方向と垂直な方向の射影ヒストグラムは、注目オブジェクト範囲内の画像内の複数個の画素を探索方向と垂直な方向の位置に基づいて複数個のクラスに分類し、該複数個のクラスのそれぞれについて、オブジェクトを構成するオブジェクト画素の個数をカウントして得られるヒストグラムである。例えば、探索方向がＸ方向である場合には、本実施例では、Ｙ方向の位置が等しい複数個の画素、すなわち、Ｘ方向に延びる１本の画素のライン上の複数個の画素が、１個のクラスに分類される。例えば、注目オブジェクト範囲内の画像のサイズが、Ｘ方向Ｋ画素×Ｙ方向Ｑ画素である場合には、当該画像内の複数個の画素は、Ｑ個のクラスに分類され、１個のクラスに属する画素数は、Ｋ個である。そして、ＣＰＵ２１０は、Ｑ個のクラスのそれぞれについて、各クラスに属するＫ個の画素のうち、オブジェクト画素の個数をカウントすることによって、Ｙ方向の射影ヒストグラムＨｙを作成する。
【００５０】
図７は、対象画像ＯＩのオブジェクト範囲内の画像の一例を示す図である。図７（Ａ）には、オブジェクト範囲ＯＲ１（図４）内の画像ＰＩａが図示されている。画像ＰＩａの左側には、Ｙ方向の射影ヒストグラムＨｙａが図示されている。図７（Ｂ）には、オブジェクト範囲ＯＲ２（図４）内の画像ＰＩｂが図示されている。画像ＰＩｂの左側には、Ｙ方向の射影ヒストグラムＨｙｂが図示されている。
【００５１】
Ｓ１６０では、ＣＰＵ２１０では、探索方向と垂直な方向の端部空白範囲を特定する。端部空白範囲は、ラベル画像（バーコードや文字や線などのオブジェクト）が位置しない探索方向と垂直な方向の範囲であって、探索方向と垂直な方向の両端のうちの一方を含む範囲である。ＣＰＵ２１０は、探索方向と垂直な方向の射影ヒストグラムにおいて、オブジェクト画素の個数が閾値（例えば、０個）以下である探索方向と垂直な方向の範囲であって、探索方向と垂直な方向の端を含む範囲を、端部空白範囲として特定する。図７（Ａ）の例では、探索方向と垂直な方向であるＹ方向の２個の端部空白範囲ＴＲ１、ＴＲ２が特定される。図７（Ｂ）の例では、探索方向と垂直な方向であるＹ方向の２個の端部空白範囲ＴＲ３、ＴＲ４が特定される。
【００５２】
Ｓ１６５では、ＣＰＵ２１０は、注目オブジェクト範囲内の画像のうち、端部空白範囲を除いた領域をラベル領域として特定する。図４（Ａ）の例では、オブジェクト範囲ＯＲ１（図４）内の画像ＰＩａのうち、ハッチングされた端部空白範囲を除いた矩形の領域がラベル領域として特定される。図４（Ｂ）の例では、オブジェクト範囲ＯＲ２（図４）内の画像ＰＩｂのうち、ハッチングされた端部空白範囲を除いた矩形の領域がラベル領域として特定される。
【００５３】
Ｓ１７０では、ＣＰＵ２１０は、Ｓ１４５にて特定済みの全てのオブジェクト範囲を注目オブジェクト範囲として処理したか否かを判断する。未処理のオブジェクト範囲がある場合には（Ｓ１７０：ＮＯ）、ＣＰＵ２１０は、Ｓ１５０に戻る。全てのオブジェクト範囲が処理された場合には（Ｓ１７０：ＹＥＳ）、ＣＰＵ２１０は、ラベル領域特定処理を終了する。この結果、図４の例では、対象画像ＯＩ内の２個のラベル領域ＬＡ１、ＬＡ２が特定される。
【００５４】
以上説明したラベル領域特定処理を含むラベル印刷処理によれば、ＣＰＵ２１０は、対象画像ＯＩ内の探索方向の複数個の位置について、ラベル画像が位置するオブジェクト範囲ＯＲ１、ＯＲ２とラベル画像が位置しない空白範囲ＷＲ１〜ＷＲ３とを分離することによって、１個以上のオブジェクト範囲ＯＲ１、ＯＲ２を特定する（図６のＳ１３５〜Ｓ１４５）。そして、ＣＰＵ２１０は、特定された１個以上のオブジェクト範囲ＯＲ１、ＯＲ２内のラベル画像に対応する印刷画像データをそれぞれ出力する（図３のＳ７５、Ｓ８０）。探索方向は、特定済みのバーコードＢＣａ、ＢＣｄを構成するバーと垂直な方向である（図３のＳ１５、図６のＳ１２０、Ｓ１２５、図４）。このように、対象画像ＯＩ内の探索方向の複数個の位置について、ラベル画像が位置しない空白範囲ＷＲ１〜ＷＲ３を除いたオブジェクトが位置するオブジェクト範囲ＯＲ１、ＯＲ２が特定される。この結果、バーコードＢＣａ、ＢＣｄを構成するバーと垂直な方向の複数個の位置について、オブジェクト範囲ＯＲ１、ＯＲ２を特定するため、１つの画像データとして扱うべきラベル画像とバーコードとの間に存在する余白領域のためにラベル画像が分離されてしまうことを回避できる。そして、オブジェクト範囲内の画像に対応する印刷画像データが出力されるので、余分な余白領域を含まないように、バーコードを含むラベル画像を適切に示す印刷画像データが出力され得る。
【００５５】
例えば、ラベル画像では、想定される向きで視認される際に上下方向に延びるバーで構成される少なくとも１個のバーコードと垂直な方向、すなわち、視認時における左右方向については、空白を開けることなく、隙間無くオブジェクトが存在する可能性が高い。例えば、図４の例では、バーコードＢＣａ、ＢＣｄの方向と垂直な方向については、空白を開けることなく、隙間無くオブジェクトが存在する可能性が高い。例えば、図４の例では、バーコードＢＣａ、ＢＣｄと垂直なＸ方向に延びる線Ｌａが存在しているので、隙間無くオブジェクトが存在する。この結果、Ｘ方向のオブジェクト範囲ＯＲ１、ＯＲ２を特定することで、一体に出力されるべきラベル画像が分離されない。仮にバーコードＢＣａ、ＢＣｄと平行なＹ方向を探索方向とすると、例えば、図４に示すＹ方向の範囲ＷＲａ、ＷＲｂが空白範囲として特定されてしまう。このような場合には、一体に出力されるべきラベル画像が複数個に分離されてしまう。本実施例では、バーコードＢＣａ、ＢＣｄと垂直なＸ方向を探索方向として決定するので、このような不具合を抑制できる。
【００５６】
さらに、上記ラベル印刷処理によれば、ＣＰＵ２１０は、対象画像ＯＩ内の複数個のバーコードＢＣａ〜ＢＣｅ（図４）のうち、Ｙ方向の特定種のバーコード（本実施例ではＣＯＤＥ１２８のバーコード）の個数Ｎ２が、Ｘ方向の特定種のバーコードの個数Ｎ１よりも大きい場合に、Ｙ方向の特定種のバーコードと垂直な方向、すなわち、Ｘ方向を探索方向として決定する（図６のＳ１２０、Ｓ１２５）。この結果、対象画像ＯＩ内に複数個の特定種のバーコードが含まれる場合に、探索方向を適切に決定することができる。したがって、一体に出力されるべきラベル画像が複数個に分離されてしまうことを、さらに適切に抑制できる。例えば、物流の分野では、ＣＯＤＥ１２８のバーコードが多用されており、ＣＯＤＥ１２８のバーコードを含むラベル画像が適切に印刷されることが重要である。このために、ＣＯＤＥ１２８のバーコードは、ラベル画像が、想定される向きで視認される際に、上下方向にバーが延びる方向に配置される可能性が高い。したがって、多数のＣＯＤＥ１２８のバーコードと垂直な方向を探索方向とすれば、ラベル画像が分離しないように、適切なオブジェクト範囲ＯＲ１、ＯＲ２を特定できる可能性が高くなる。
【００５７】
さらに、上記ラベル印刷処理によれば、ＣＰＵ２１０は、探索方向の位置に対する射影ヒストグラム（例えば図４の射影ヒストグラムＨｘ）を生成し（図６のＳ１３５）、該ヒストグラムを用いて、オブジェクト範囲ＯＲ１、ＯＲ２と空白範囲ＷＲ１〜ＷＲ３とを特定する（図６のＳ１４０、Ｓ１４５）。この結果、射影ヒストグラムＨｘを用いて、探索方向の複数個の位置についてオブジェクト画素で構成されるラベル画像の有無が精度良く、かつ、容易に判定できるので、オブジェクト範囲ＯＲ１、ＯＲ２と空白範囲ＷＲ１〜ＷＲ３とを精度良く、かつ、容易に特定できる。
【００５８】
さらに、上記ラベル印刷処理によれば、オブジェクト範囲ＯＲ１内の画像の端部空白範囲ＴＲ１、ＴＲ２を特定し（図６のＳ１６０）、オブジェクト範囲ＯＲ１内の画像のうち、端部空白範囲ＴＲ１、ＴＲ２内の画像を除いた領域をラベル領域として特定する（図６のＳ１６５）。そして、該ラベル領域内のラベル画像に対応する印刷画像データを出力する（図３のＳ２５、Ｓ７５、Ｓ８０）。この結果、余分な余白を含むことをさらに抑制して、オブジェクト範囲ＯＲ１内のラベル画像を適切に示す印刷画像データが出力され得る。
【００５９】
さらに、上記ラベル印刷処理によれば、ＣＰＵ２１０は、オブジェクト範囲ＯＲ１、ＯＲ２内のラベル画像を印刷媒体としてのラベル用のシートに応じたサイズに縮小するバーコードラベル縮小処理を実行し（図３のＳ６０）、縮小済みのラベル画像に対応する印刷画像データを、印刷実行部としてのラベルプリンタ１００に出力する（図３のＳ８０）。この結果、ラベルプリンタ１００によって、オブジェクト範囲ＯＲ１、ＯＲ２内のラベル画像が適切なサイズで印刷される。
【００６０】
以上の説明から解るように、本実施例の探索方向は、第１方向の例であり、探索方向と垂直な方向は、第２方向の例であり、ラベル画像は、部分画像の例である。
【００６１】
Ａ−４．印刷方向決定処理
次に図３のＳ４５の印刷方向決定処理について説明する。印刷方向決定処理は、上述したように、印刷方向決定処理は、ラベル画像データを用いて、注目ラベル領域内のラベル画像（以下、単にラベル画像と呼ぶ）を印刷する際の印刷方向を決定する処理である。図８は、印刷方向決定処理のフローチャートである。
【００６２】
Ｓ２０５では、ＣＰＵ２１０は、ラベル画像に含まれるバーコードは、１個であるか否かを判断する。例えば、図４の第１ラベル領域ＬＡ１または第２ラベル領域ＬＡ２が注目ラベル領域である場合には、図４に示すように、いずれの領域内のラベル画像にも複数個のバーコードが含まれる。したがって、この場合には、ラベル画像に含まれるバーコードは、１個ではないと判断される。
【００６３】
ラベル画像に含まれるバーコードが１個である場合には（Ｓ２０５：ＹＥＳ）、Ｓ２１０にて、ＣＰＵ２１０は、１個のバーコードの方向（Ｘ方向またはＹ方向）を印刷方向に決定して、印刷方向決定処理を終了する。ラベル画像に含まれるバーコードが複数個である場合には（Ｓ２０５：ＮＯ）、ＣＰＵ２１０は、Ｓ２１５に処理を進める。
【００６４】
Ｓ２１５では、ＣＰＵ２１０は、ラベル画像に含まれる複数個のバーコードの方向は、全て等しいか否かを判断する。例えば、図４の第１ラベル領域ＬＡ１が注目ラベル領域である場合には、図４に示すように、該領域内のラベル画像にＸ方向のバーコードＢＣｂ、ＢＣｃと、Ｙ方向のバーコードＢＣａと、が含まれる。したがって、この場合には、ラベル画像に含まれるバーコードの方向は、等しくないと判断される。図４の第２ラベル領域ＬＡ２が注目ラベル領域である場合も同様である。
【００６５】
ラベル画像に含まれる複数個のバーコードの方向が全て等しい場合には（Ｓ２１５：ＹＥＳ）、Ｓ２２０にて、ＣＰＵ２１０は、ラベル画像に含まれる複数個のバーコードの方向（Ｘ方向またはＹ方向）を印刷方向に決定して、印刷方向決定処理を終了する。ラベル画像に含まれる複数個のバーコードの方向が等しくない場合、本実施例では、ラベル画像に含まれる複数個のバーコードの方向がＸ方向およびＹ方向の両方を含む場合には（Ｓ２１５：ＮＯ）、ＣＰＵ２１０は、Ｓ２２５に処理を進める。
【００６６】
Ｓ２２５では、ＣＰＵ２１０は、ラベル画像に含まれるＸ方向のバーコードとＹ方向のバーコードは同数であるか否かを判断する。例えば、図４の第１ラベル領域ＬＡ１が注目ラベル領域である場合には、図４に示すように、該領域内のラベル画像に２個のＸ方向のバーコードＢＣｂ、ＢＣｃと１個のＹ方向のバーコードＢＣａとが含まれる。したがって、この場合には、Ｘ方向のバーコードとＹ方向のバーコードは同数でないと判断される。図４の第２ラベル領域ＬＡ２が注目ラベル領域である場合には、図４に示すように、該領域内のラベル画像に１個のＸ方向のバーコードＢＣｅと１個のＹ方向のバーコードＢＣｄとが含まれる。したがって、この場合には、Ｘ方向のバーコードとＹ方向のバーコードは同数であると判断される。
【００６７】
Ｘ方向のバーコードとＹ方向のバーコードは同数でない場合には（Ｓ２２５：ＮＯ）、Ｓ２３０にて、ＣＰＵ２１０は、Ｘ方向のバーコードとＹ方向のバーコードのうちの多数のバーコードの方向を印刷方向に決定して、印刷方向決定処理を終了する。例えば、図４の第１ラベル領域ＬＡ１が注目ラベル領域である場合には、本ステップにて、印刷方向が、２個のバーコードＢＣｂ、ＢＣｃの方向であるＸ方向に決定される。Ｘ方向のバーコードとＹ方向のバーコードは同数である場合には（Ｓ２２５：ＹＥＳ）、ＣＰＵ２１０は、Ｓ２３５に処理を進める。
【００６８】
Ｓ２３５では、ＣＰＵ２１０は、ラベル画像は、特定種のバーコード、本実施例では、上述したＣＯＤＥ１２８のバーコードを含むか否かを判断する。例えば、図４の第２ラベル領域ＬＡ２が注目ラベル領域である場合には、図４に示すように、該領域内のラベル画像に１個のＣＯＤＥ１２８のバーコードＢＣｄが含まれるので、ラベル画像は、特定種のバーコードを含むと判断される。
【００６９】
ラベル画像が特定種のバーコードを含む場合には（Ｓ２３５：ＹＥＳ）、ＣＰＵ２１０は、Ｓ２４０に処理を進める。ラベル画像が特定種のバーコードを含まない場合には（Ｓ２３５：ＮＯ）、ＣＰＵ２１０は、Ｓ２７０に処理を進める。
【００７０】
Ｓ２４０〜Ｓ２６５では、ＣＰＵ２１０は、ラベル画像に含まれる特定種のバーコード（本実施例ではＣＯＤＥ１２８のバーコード）のみに基づいて、上述したＳ２０５〜Ｓ２３０と同様の処理を実行する。具体的には、Ｓ２４０では、ＣＰＵ２１０は、ラベル画像に含まれる特定種のバーコードは、１個であるか否かを判断する。
【００７１】
ラベル画像に含まれる特定種のバーコードが１個である場合には（Ｓ２４０：ＹＥＳ）、Ｓ２４５にて、ＣＰＵ２１０は、１個の特定種のバーコードの方向を印刷方向に決定して、印刷方向決定処理を終了する。例えば、図４の第２ラベル領域ＬＡ２が注目ラベル領域である場合には、図４に示すように、該領域内のラベル画像に１個のＣＯＤＥ１２８のバーコードＢＣｄが含まれる。したがって、この場合には、本ステップにて、印刷方向が、バーコードＢＣｄの方向であるＹ方向に決定される。ラベル画像に含まれる特定種のバーコードが複数個である場合には（Ｓ２４０：ＮＯ）、ＣＰＵ２１０は、Ｓ２５０に処理を進める。
【００７２】
Ｓ２５０では、ＣＰＵ２１０は、ラベル画像に含まれる複数個の特定種のバーコードの方向は、全て等しいか否かを判断する。ラベル画像に含まれる複数個の特定種のバーコードの方向が全て等しい場合には（Ｓ２５０：ＹＥＳ）、Ｓ２５５にて、ＣＰＵ２１０は、ラベル画像に含まれる複数個の特定種のバーコードの方向を印刷方向に決定して、印刷方向決定処理を終了する。ラベル画像に含まれる複数個の特定種のバーコードの方向が等しくない場合、本実施例では、ラベル画像に含まれる複数個の特定種のバーコードの方向がＸ方向およびＹ方向の両方を含む場合には（Ｓ２５０：ＮＯ）、ＣＰＵ２１０は、Ｓ２６０に処理を進める。
【００７３】
Ｓ２６０では、ＣＰＵ２１０は、ラベル画像に含まれるＸ方向の特定種のバーコードとＹ方向の特定種のバーコードは同数であるか否かを判断する。Ｘ方向の特定種のバーコードとＹ方向の特定種のバーコードが同数でない場合には（Ｓ２６０：ＮＯ）、Ｓ２６５にて、ＣＰＵ２１０は、Ｘ方向の特定種のバーコードとＹ方向の特定種のバーコードのうちの多数のバーコードの方向を印刷方向に決定して、印刷方向決定処理を終了する。Ｘ方向の特定種のバーコードとＹ方向の特定種のバーコードが同数である場合には（Ｓ２６０：ＹＥＳ）、ＣＰＵ２１０は、Ｓ２７０に処理を進める。
【００７４】
Ｓ２７０では、ＣＰＵ２１０は、対象画像全体でＸ方向の特定種のバーコードと、Ｙ方向の特定種のバーコードは、同数であるか否かを判断する。
【００７５】
図９は、対象画像の他の一例を示す図である。図９の対象画像ＯＩ２は、図４の対象画像ＯＩと同様に、Ｘ方向（図９の横方向）とＹ方向（図９の縦方向）とに沿って、マトリクス状に並ぶ複数個の画素を含んでいる。対象画像ＯＩ２は、第３ラベル領域ＬＡ３と、第４ラベル領域ＬＡ４と、を含む。第３ラベル領域ＬＡ３は、オブジェクトとして、複数個のバーコードＢＣｆ〜ＢＣｉと、文字ＴＸｄや線Ｌｄなどのバーコードとは異なるオブジェクトと、を含む。第４ラベル領域ＬＡ４は、オブジェクトとして、複数個のバーコードＢＣｊ、ＢＣｋと、文字ＴＸｅや線Ｌｂなどのバーコードとは異なるオブジェクトと、を含む。バーコードＢＣｆ〜ＢＣｋのうち、第３ラベル領域ＬＡ３に含まれる２個のバーコードＢＣｇ、ＢＣｈと、第４ラベル領域ＬＡ４に含まれる１個のバーコードＢＣｋとは、ＣＯＤＥ１２８のバーコード（本実施例の特定種のバーコード）である。残りのバーコードＢＣｆ、ＢＣｉ、ＢＣｊは、ＣＯＤＥ１２８とは異なる種類のバーコードである。
【００７６】
図９の第３ラベル領域ＬＡ３が注目ラベル領域である場合には、該領域内のラベル画像は、２個のＸ方向のバーコードＢＣｈ、ＢＣｉと、２個のＹ方向のバーコードＢＣｆ、ＢＣｇと、を含むので、Ｓ２０５〜Ｓ２３０の処理では、印刷方向は決定されない（Ｓ２０５にてＮＯ、Ｓ２１５にてＮＯ、Ｓ２２５にてＹＥＳ）。また、該領域内のラベル画像は、１個のＸ方向のＣＯＤＥ１２８のバーコードＢＣｈと、１個のＹ方向のＣＯＤＥ１２８のバーコードＢＣｇと、を含むので、Ｓ２４０〜Ｓ２６５の処理では、印刷方向は決定されない（Ｓ２４０にてＮＯ、Ｓ２５０にてＮＯ、Ｓ２６０にてＹＥＳ）。図９の対象画像ＯＩ２全体では、１個のＸ方向のＣＯＤＥ１２８のバーコードＢＣｈと、２個のＹ方向のＣＯＤＥ１２８のバーコードＢＣｇ、ＢＣｋと、を含む。したがって、Ｓ２７０にて、対象画像全体でＸ方向の特定種のバーコードと、Ｙ方向の特定種のバーコードは、同数でないと判断される。
【００７７】
対象画像全体でＸ方向の特定種のバーコードと、Ｙ方向の特定種のバーコードは、同数でない場合には（Ｓ２７０：ＮＯ）、Ｓ２７５にて、ＣＰＵ２１０は、Ｘ方向の特定種のバーコードとＹ方向の特定種のバーコードのうちの対象画像全体で多数のバーコードの方向を印刷方向に決定して、印刷方向決定処理を終了する。図９の例では、２個のＣＯＤＥ１２８のバーコードＢＣｇ、ＢＣｋの方向、すなわち、Ｙ方向が印刷方向として決定される。対象画像全体でＸ方向の特定種のバーコードとＹ方向の特定種のバーコードが同数である場合には（Ｓ２７０：ＹＥＳ）、ＣＰＵ２１０は、Ｓ２８０に処理を進める。
【００７８】
Ｓ２８０では、ＣＰＵ２１０は、注目ラベル領域内のラベル画像の長辺に沿う方向を印刷方向に決定して、印刷方向決定処理を終了する。すなわち、ＣＰＵ２１０は、注目ラベル領域のＸ方向の画素数とＹ方向の画素数を算出する。ＣＰＵ２１０は、Ｘ方向の画素数がＹ方向の画素数以上である場合には、Ｘ方向を印刷方向に決定し、Ｘ方向の画素数がＹ方向の画素数未満である場合には、Ｙ方向を印刷方向に決定する。この結果、注目ラベル領域内のラベル画像を印刷する際に、該ラベル画像の短辺に沿う方向が、ロール３を形成する帯状のシートの短手方向に対応する。したがって、図３のＳ６０にて、ラベル画像が縮小される確率を低くすることができ、また、縮小される場合であっても縮小される程度を小さくすることができる。
【００７９】
以上説明した印刷方向決定処理を含むラベル印刷処理によれば、対象画像ＯＩ内のラベル領域ＬＡ１、ＬＡ２は、Ｘ方向に延びるバーを有するＸ方向のバーコードＢＣｂ、ＢＣｃ、ＢＣｅと、Ｘ方向とは異なるＹ方向に延びるバーを有するＹ方向のバーコードＢＣａ、ＢＣｄと、を含む（図４）。ＣＰＵ２１０は、Ｘ方向のバーコードおよびＹ方向のバーコードの種類と、Ｘ方向のバーコードおよびＹ方向のバーコードの個数と、の少なくとも一方に基づいて、ラベル領域ＬＡ１、ＬＡ２内のラベル画像の印刷方向を決定する。印刷方向は、これらのバーコードの方向（Ｘ方向およびＹ方向）のうちのいずれか一方と平行な方向に決定される。そして、ＣＰＵ２１０は、決定済みの印刷方向でラベル領域ＬＡ１、ＬＡ２内のラベルを印刷するための印刷画像データを生成し（図３のＳ５０〜Ｓ６０、Ｓ７５）、該印刷画像データをラベルプリンタ１００に出力する（図３のＳ８０）。この結果、複数個のバーコードを含むラベル領域ＬＡ１、ＬＡ２内のラベル画像が適切に印刷され得る。
【００８０】
印刷されたバーコードは、読み取りエラーが発生することなく、読み取られるためには、バーコードを構成する複数本のバー（黒線ＢＢや白線ＷＢ）の太さの比率が、対象画像データで示される比率で精度良く印刷されることが好ましい。本実施例のラベルプリンタ１００では、ラベル用のシートの搬送方向と印刷されるバーとが垂直であると、ラベルプリンタ１００の搬送誤差が生じた場合に、複数本の黒線ＢＢの印刷位置が、目標の位置から搬送方向に、すなわち、黒線ＢＢと垂直な方向にずれ得る。さらに、ラベル用のシートの搬送方向と印刷されるバーとが垂直であると、バーコードの印刷時に、バーコードを構成する複数本の黒線ＢＢは、順次に１本ずつ印刷される。このために、この場合には、サーマルヘッド１６２は、加熱によるドットの形成と、加熱を停止することによるドットの非形成と、を繰り返し実行することになる。この際に、サーマルヘッドの発熱素子の実際の温度が、制御に十分に追従できない場合には、印刷される黒線ＢＢと白線ＷＢの太さが目標の太さと異なる太さになり得る。これに対して、ラベル用のシートの搬送方向と印刷されるバーとが平行であると、ラベルプリンタ１００の搬送誤差が生じた場合であっても、印刷される黒線ＢＢの長手方向の長さが変動し得るだけで、印刷される黒線ＢＢの太さや垂直方向の位置には影響し難い。また、ラベル用のシートの搬送方向と印刷されるバーとが平行であると、サーマルヘッド１６２は、印刷時に黒線ＢＢに対応する位置の発熱素子を加熱し、白線ＷＢに対応する位置の素子を非加熱とする状態を維持することで、バーコードを印刷できる。このために、この場合には、印刷される黒線ＢＢと白線ＷＢの太さが目標の太さと異なる太さになり難い。したがって、本実施例のラベルプリンタ１００で印刷を行う場合には、搬送方向と印刷されるバーとが平行になるように、印刷方向をバーコードの方向と一致させることが好ましい。本実施例によれば、印刷方向は、Ｘ方向のバーコードおよびＹ方向のバーコードの種類と、Ｘ方向のバーコードおよびＹ方向のバーコードの個数と、の少なくとも一方に基づいて、これらのバーコードの方向（Ｘ方向およびＹ方向）のうちのいずれか一方と平行な方向に決定される。
【００８１】
例えば、上記ラベル印刷処理によれば、ＣＰＵ２１０は、Ｘ方向のバーコードの個数がＹ方向のバーコードの個数よりも多い場合に、Ｘ方向を印刷方向として決定し、Ｙ方向のバーコードの個数がＸ方向のバーコードの個数よりも多い場合に、Ｙ方向を印刷方向として決定する（図８のＳ２２５、Ｓ２３０）。例えば、図４の対象画像ＯＩは、複数個のバーコードＢＣａ〜ＢＣｃを含む第１ラベル領域ＬＡ１を含む。第１ラベル領域ＬＡ１内のラベル画像について、Ｘ方向のバーコードＢＣｂ、ＢＣｃとＹ方向のバーコードＢＣａのうちの多数のバーコードの方向であるＸ方向に、印刷方向が決定される。この結果、Ｘ方向のバーコードの個数とＹ方向のバーコードの個数とに応じて、適切な印刷方向を決定できる。例えば、多数のバーコードの読み取りエラーの発生を抑制できるように、ラベル領域内のラベル画像が適切に印刷される。
【００８２】
例えば、上記ラベル印刷処理によれば、ＣＰＵ２１０は、ラベル領域に含まれるＸ方向のバーコードが特定種のバーコード（ＣＯＤＥ１２８のバーコード）であって、かつ、Ｙ方向の第２バーコードが特定種のバーコードとは異なる場合に、特定種のバーコードの方向であるＸ方向を印刷方向として決定する（図８のＳ２４０、Ｓ２４５、Ｓ２５０、Ｓ２５５）。ＣＰＵ２１０は、Ｙ方向のバーコードが特定種のバーコードであって、かつ、Ｘ方向のバーコードが特定種のバーコードとは異なる場合に、特定種のバーコードの方向であるＹ方向を印刷方向として決定する（図８のＳ２４０、Ｓ２４５、Ｓ２５０、Ｓ２５５）。例えば、図４の対象画像ＯＩは、Ｘ方向の特定種のバーコードＢＣｄと、特定種のバーコードとは異なる種類のＹ方向のバーコードＢＣｅと、を含む。このために、ＣＰＵ２１０は、第２ラベル領域ＬＡ２内のラベル画像の印刷方向を、特定種のバーコードＢＣｄの方向であるＹ方向に印刷方向を決定する。この結果、Ｘ方向のバーコードおよびＹ方向のバーコードが特定種のバーコードであるか否かに応じて、適切な印刷方向を決定できる。例えば、特定種のバーコードの読み取りエラーの発生を抑制できるように、ラベル領域内のラベル画像が適切に印刷される。
【００８３】
さらに、上記ラベル印刷処理によれば、ＣＰＵ２１０は、Ｘ方向の特定種のバーコードの個数がＹ方向の特定種のバーコードの個数よりも多い場合に、Ｘ方向を印刷方向として決定し、Ｙ方向の特定種のバーコードの個数がＸ方向の特定種のバーコードの個数よりも多い場合に、Ｙ方向を印刷方向として決定する（図８のＳ２６０、Ｓ２６５）。この結果、Ｘ方向のバーコードおよびＹ方向のバーコードの個数と種類との両方に応じて、適切な印刷方向を決定できる。例えば、多数の特定種のバーコードの読み取りエラーの発生を抑制できるように、ラベル領域内のラベル画像が適切に印刷される。
【００８４】
さらに、上記ラベル印刷処理によれば、ＣＰＵ２１０は、図９の対象画像ＯＩ２の第３ラベル領域ＬＡ３内のＸ方向のバーコードＢＣｈ、ＢＣｉおよびＹ方向のバーコードＢＣｆ、ＢＣｇの種類と、Ｘ方向のバーコードＢＣｈ、ＢＣｉおよびＹ方向のバーコードＢＣｆ、ＢＣｇの個数とに基づいて、印刷方向を決定できない場合に（図８Ｓ２６０：ＮＯ）、第４ラベル領域ＬＡ４内のＸ方向のバーコードＢＣｊおよびＹ方向のバーコードＢＣｋの種類および個数に基づいて、第３ラベル領域ＬＡ３内のラベル画像の印刷方向を決定する。具体的には、対象画像ＯＩ２の全体で多数の特定種のバーコードの方向に、第３ラベル領域ＬＡ３内のラベル画像の印刷方向が決定される（図８のＳ２７０、Ｓ２８０）。この結果、第３ラベル領域ＬＡ３内のＸ方向のバーコードＢＣｊおよびＹ方向のバーコードＢＣｋの種類や個数に基づいて印刷方向を決定できない場合であっても、適切な印刷方向が決定され得る。具体的には、一つの対象画像ＯＩ２に複数個のラベル領域が含まれる場合であっても、重要度が高いバーコードは、対象画像ＯＩ２内で、同じ方向に配置されやすい。このために、一のラベル領域内のバーコードの個数や種類だけでは、印刷方向を決定できない場合であっても、他のラベル領域内のバーコードの個数や種類を考慮すれば、適切な印刷方向が決定され得る。
【００８５】
さらに、上記ラベル印刷処理によれば、ＣＰＵ２１０は、Ｘ方向のバーコードおよびＹ方向のバーコードの種類や個数に基づいて印刷方向を決定できない場合に（図８のＳ２７０：ＹＥＳ）、Ｘ方向とＹ方向のうち、ラベル領域内のラベル画像の長辺に沿う方向を印刷方向に決定する（図８のＳ２８０）。長辺に沿う方向を印刷方向とすれば、本実施例では、ラベル用のシートの搬送方向と垂直な方向に、ラベル画像の短辺が対応する。このために、Ｓ２８０では、バーコードラベル縮小処理（図３のＳ６０）による縮小の程度が小さい方向が、印刷方向として決定される、と言うことができる。この結果、対象画像内のバーコードの種類や個数に基づいて印刷方向を決定できない場合であっても、適切な印刷方向が決定され得る。例えば、縮小の程度が過度に大きい場合には印刷されるバーコードの読み取りエラーが発生しやすくなるが、縮小の程度が過度に大きくなることを抑制できる。
【００８６】
Ａ−５．バーコードラベル縮小処理
次に図３のＳ６０のバーコードラベル縮小処理について説明する。バーコードラベル縮小処理は、バーコードを含むラベル画像を縮小して、ラベル画像のＸ方向の幅が印刷媒体の幅以下である縮小済みのラベル画像を示すラベル画像データを生成する処理である。図１０は、バーコードラベル縮小処理のフローチャートである。図１１は、バーコードラベル縮小処理の説明図である。
【００８７】
Ｓ３１０では、ＣＰＵ２１０は、ラベル画像をバーコードと他の部分とに分離する。すなわち、ＣＰＵ２１０は、ラベル画像データを用いて、ラベル画像内のバーコードを示すバーコードデータと、ラベル画像内のバーコードの除いた部分であるバーコード除去画像を示すバーコード除去画像データと、を生成する。図１１（Ａ）には、図４の第２ラベル領域ＬＡ２内のラベル画像からバーコードＢＣｄ、ＢＣｅを除去して得られるバーコード除去画像ＮＩが示されている。図１１（Ｂ）、（Ｃ）には、図４の第２ラベル領域ＬＡ２内のラベル画像のうちのバーコードＢＣｄ、ＢＣｅが示されている。
【００８８】
Ｓ３２０では、各バーコードの変倍率ＲＢを決定する。具体的には、ＣＰＵ２１０は、ラベル画像のＸ方向の幅が印刷媒体の幅となる変倍率Ｒｍａｘを算出する。ＣＰＵ２１０は、１個のバーコードを構成するバーのうちの最も細いバーの太さ（画素数）が縮小後も整数になるように、変倍率ＲＢの候補を各バーコードについて決定する。例えば、最も細いバーの太さが、３画素である場合には、縮小後の当該バーの太さが整数（２画素または１画素）となるように、（２／３）、（１／３）が、変倍率ＲＢの候補となる。最も細いバーの太さが、５画素である場合には、縮小後の当該バーの太さが整数（４画素、３画素、２画素、１画素のいずれか）となるように、（４／５）、（３／５）、（２／５）、（１／５）が、変倍率ＲＢの候補となる。ＣＰＵ２１０は、各バーコードの変倍率ＲＢの候補のうち、変倍率Ｒｍａｘ以下となる最大の変倍率を、各バーコードの変倍率ＲＢとして決定する。例えば、変倍率Ｒｍａｘが０．９であり、バーコードＢＣｄの最も細いバーの太さが５画素であり、バーコードＢＣｅの最も細いバーの太さが３画素であるとする。この場合には、バーコードＢＣｄの変倍率ＲＢは（４／５）に決定され、バーコードＢＣｅの変倍率ＲＢは（２／３）に決定される。
【００８９】
Ｓ３３０では、ＣＰＵ２１０は、バーコード除去画像ＮＩの変倍率ＲＮを決定する。変倍率ＲＮは、１個以上のバーコードの変倍率ＲＢのうちの最大値に決定される。上述のように、バーコードＢＣｄの変倍率ＲＢが（４／５）に決定され、バーコードＢＣｅの変倍率ＲＢが（２／３）に決定される場合には、変倍率ＲＮは、（４／５）に決定される。このように、変倍率ＲＮが決定されることで、縮小済みのバーコードにおいて、各バー（白線ＷＢや黒線ＢＢ）の太さの比率が、縮小前と比較して変動することを抑制できる。したがって、縮小済みのバーコードが印刷された場合に、該縮小済みのバーコードの読み取りエラーが発生することを抑制できる。
【００９０】
Ｓ３４０では、ＣＰＵ２１０は、各バーコードデータに対して縮小処理を実行することで、各バーコードを決定済みの変倍率ＲＢで縮小する。バーコードデータに対する縮小処理では、補間演算を用いない方法、具体的には、ニアレストネイバー法が用いられる。
【００９１】
Ｓ３５０では、ＣＰＵ２１０は、バーコード除去画像データに対してバーコードデータとは異なる縮小処理を実行することで、バーコード除去画像を決定済みの変倍率ＲＮで縮小する。バーコード除去画像データに対する縮小処理では、補間演算を用いる方法、具体的には、バイキュービック法やバイリニア法が用いられる。
【００９２】
Ｓ３６０では、ＣＰＵ２１０は、縮小済みの各バーコードＢＣｅ、ＢＣｄと縮小済みのバーコード除去画像ＮＩとを合成する合成処理を実行する。具体的には、縮小済みのバーコード除去画像ＮＩ上において、元のラベル画像のバーコードの位置に対応する位置に、縮小済みのバーコードＢＣｅ、ＢＣｄが配置される。この結果、図５（Ｂ）に示す処理済みのラベル画像ＦＩｂを示す処理済みのラベル画像データが生成される。
【００９３】
以上説明したバーコードラベル縮小処理を含むラベル印刷処理によれば、オブジェクト範囲内のラベル画像にバーコードが含まれる場合に（図３のＳ３０にてＹＥＳ）、図１０のバーコードラベル縮小処理が実行される（図３のＳ４５）。バーコードラベル縮小処理では、バーコードＢＣｅ、ＢＣｄ（図１１）は、補間演算を用いない縮小方法に従って縮小される（図１０の３４０）。また、バーコードを除いたバーコード除去画像ＮＩは、補間演算を用いる縮小方法に従って縮小される（図１０のＳ３５０）。仮に、バーコードが補間演算を用いて縮小するとバーコードを構成する白線ＷＢと黒線ＢＢとの境界がぼけて、該バーコードの読み取りエラーが発生するおそれがある。バーコードが補間演算を用いない縮小方法に従って縮小されることで、白線ＷＢと黒線ＢＢとの境界がぼけることを抑制できるので、読み取りエラーの発生を抑制できる。また、バーコード以外のオブジェクト（すなわち、バーコード除去画像ＮＩ内の文字や線）が、補間演算を用いて縮小される場合には、補間演算を用いない場合と比較して、該バーコード以外のオブジェクトの見栄えが自然になる。したがって、上記実施例では、縮小済みのバーコードの読み取りエラーの発生を抑制しつつ、縮小済みのラベル画像の見栄えを向上できる。
【００９４】
そして、オブジェクト範囲内のラベル画像にバーコードが含まれない場合に（図３のＳ３０にてＮＯ）、オブジェクト範囲内のラベル画像は、補間演算を用いる縮小方法に従って縮小される（図１０のＳ４０）。したがって、縮小済みのラベル画像の見栄えを向上できる。
【００９５】
このように、本実施例では、ラベル画像内のオブジェクトの種類に応じて適切な縮小処理によって縮小されたラベル画像が印刷できる。
【００９６】
また、本実施例では、図３のＳ８０にて、印刷画像データは、ラベルプリンタ１００に出力される。ラベル用のシートは、上述したようにシート本体（ラベル部分）と、剥離紙（非ラベル部分）とが分離できるような構成のものがある。本実施例では、シート本体分に適切にラベル画像が印刷されるようラベル画像データが出力されるため、ラベル用のシートにラベル画像が印刷されることで、利用者は、ラベルが印刷されたシート本体を物品に容易に貼り付けることができる。
【００９７】
Ｂ．変形例：
（１）上記実施例では、特定種のバーコードは、ＣＯＤＥ１２８のバーコードであるが、特定種のバーコードは他の種類のバーコードであっても良い。例えば、ラベルを用いる業種や、ラベルが貼り付けられる商品の種類によって、重要視すべきバーコードの種類は異なり得る。特定種のバーコードは、用いられるラベルにおいて重要視すべき種類のバーコードであることが好ましく、例えば、ＪＡＮ、ＣＯＤＥ３９、ＮＷ−７のバーコードであっても良い。
【００９８】
（２）上記実施例の図６のラベル領域処理では、Ｘ方向の特定種のバーコードとＹ方向の特定種のバーコードのうち、多数のバーコードの方向と垂直な方向が、探索方向に決定される（図６のＳ１１０〜Ｓ１３０）。これに代えて、バーコードが特定種のバーコードであるか否かに拘わらずに、Ｘ方向のバーコードとＹ方向のバーコードのうち、多数のバーコードと垂直な方向が、探索方向に決定されても良い。また、対象画像ＯＩ内のバーコードのうち、最もサイズが大きなバーコードのバーと垂直な方向が探索方向に決定されても良い。あるいは、基準以上のサイズのバーコードのうち、多数のバーコードの方向と垂直な方向が、探索方向に決定されても良い。
【００９９】
（３）上記実施例では、対象画像ＯＩ内のバーコードは、Ｘ方向のバーコードとＹ方向のバーコードとのいずれかのバーコードであることが前提である。これに代えて、対象画像ＯＩ内のバーコードは、斜め方向のバーコードを含んでも良い。この場合には、図６のラベル領域特定処理にて、該斜め方向のバーコードと垂直な方向に、探索方向が決定され、図６のＳ１３５にて、該探索方向の位置に対する射影ヒストグラムが生成されても良い。
【０１００】
（４）上記実施例の図６のラベル領域処理では、射影ヒストグラムを用いて、探索方向の空白範囲ＷＲ１〜ＷＲ３やオブジェクト範囲ＯＲ１、ＯＲ２が特定される（Ｓ１４０、Ｓ１４５）。これに代えて、射影ヒストグラムを用いることなく、空白範囲やオブジェクト範囲が特定されても良い。例えば、探索方向がＸ方向である場合には、ＣＰＵ２１０は、Ｘ方向の各画素位置について、−Ｙ方向の端から＋Ｙ方向に向かってオブジェクト画素を探索し、オブジェクト画素が見つかった場合には、該画素位置をオブジェクト範囲を構成する位置に決定し、オブジェクト画素が見つからない場合には、該画素位置を空白範囲を構成する位置に決定しても良い。
【０１０１】
（５）上記実施例の図６のラベル領域処理では、Ｓ１５０〜Ｓ１７０は省略されても良い。例えば、オブジェクト範囲ＯＲ１、ＯＲ２の全体が、ラベル領域として特定されても良い。この場合には、図７（Ａ）、（Ｂ）に示すオブジェクト範囲ＯＲ１内の画像ＰＩａ、オブジェクト範囲ＯＲ２内のＰＩｂの全体（ハッチングされた端部を含む）に対応する印刷画像データが出力される。また、Ｓ１５０〜Ｓ１７０とは別の方法でラベル領域を特定してもよい。例えば、空白範囲であると特定する閾値をＳ１４０と変えることにより、ラベル領域内でラベル画像が分断されることを回避してもよい。
【０１０２】
（６）図３のラベル印刷処理における縮小処理（Ｓ６０やＳ４０）は、例えば、ラベルプリンタ１００に代えて、十分に大きな印刷媒体が用いられるプリンタ（例えば、レーザプリンタ）が用いられる場合には、省略されても良い。また、Ｓ６０のバーコードラベル縮小処理は、Ｓ４０と同様に、ラベル画像の全体を、補間演算を用いて縮小する処理でも良い。また、Ｓ６０のバーコードラベル縮小処理は、ラベル画像の全体を、補間演算を用いることなく、例えば、ニアレストネイバー法を用いて縮小する処理でも良い。
【０１０３】
（７）上記実施例の図８の印刷方向決定処理では、印刷方向は、Ｘ方向のバーコードおよびＹ方向のバーコードの個数と種類のみに基づいて決定される。これに代えて、印刷方向は、Ｘ方向のバーコードおよびＹ方向のバーコードの個数と種類に加えて、Ｘ方向のバーコードおよびＹ方向のバーコードの他の特徴、例えば、サイズやバーの太さを用いて決定されても良い。例えば、基準となるサイズよりも大きなサイズのバーコードは、印刷方向に拘わらずに、読み取りエラーが起こりにくいことを踏まえて、対象画像ＯＩ内の複数個のバーコードのうちの基準以下のサイズのバーコードのみを、図８の方向決定処理の各判断（例えば、Ｓ２０５、Ｓ２１５、Ｓ２３５の判断）に用いても良い。あるいは、別の基準となるサイズよりも小さなサイズのバーコードは、重要性読み取りエラーが起こりにくいことを踏まえて、対象画像ＯＩ内の複数個のバーコードのうちの基準以下のサイズのバーコードのみを、図８の方向決定処理の各判断（例えば、Ｓ２０５、Ｓ２１５、Ｓ２３５の判断）に用いても良い。
【０１０４】
（８）上記実施例の図８の印刷方向決定処理のうち、一部の処理は適宜省略され得る。例えば、Ｓ２０５〜Ｓ２３０が省略され、Ｓ２３５〜Ｓ２８０の処理によって、印刷方向が決定されても良い。また、Ｓ２３５〜Ｓ２６５が省略され、Ｓ２０５〜Ｓ２３０、Ｓ２７０〜Ｓ２８０の処理によって、印刷方向が決定されても良い。また、Ｓ２７０、Ｓ２７５が省略され、Ｓ２０５〜Ｓ２６５、Ｓ２８０の処理によって、印刷方向が決定されても良い。また、Ｓ２８０が省略され、Ｓ２０５〜Ｓ２７５までの処理で印刷方向が決定できない場合には、予め定められた方向に印刷方向が決定されても良い。
【０１０５】
（９）上記実施例の印刷実行部は、ラベルプリンタ１００である。これに代えて、印刷実行部は、他の種類の印刷実行部、例えば、インクジェットプリンタや、レーザープリンタであっても良い。
【０１０６】
上記実施例のラベルプリンタ１００では、バーコードの方向と搬送方向とが平行になるようにバーコードが印刷される場合には、バーコードの方向と搬送方向とが垂直になるようにバーコードが印刷される場合よりも、印刷されるバーコードの黒線ＢＢと白線ＷＢの太さが目標の太さと異なる太さになり難い。しかし、印刷実行部によっては、バーコードの方向と搬送方向とが垂直になるようにバーコードが印刷される場合には、バーコードの方向と搬送方向とが平行になるようにバーコードが印刷される場合よりも、印刷されるバーコードの黒線ＢＢと白線ＷＢの太さが目標の太さと異なる太さになり難い場合もある。例えば、シリアルタイプのインクジェットプリンタでは、用紙を搬送方向に搬送する副走査と、印刷ヘッドを主走査方向に移動させる主走査と、が行われるが、主走査と副走査の精度等によっては、バーコードの方向と搬送方向とが垂直になるようにバーコードが印刷されることが好ましい場合がある。この場合には、例えば、図８のＳ２１０にて、ＣＰＵ２１０は、１個のバーコードの方向と垂直な方向を印刷方向に決定しても良い。図８のＳ２３０、Ｓ２４５、Ｓ２５５、Ｓ２６５、Ｓ２７５についても同様である。一般的には、印刷方向は、対象画像ＯＩ内の一のバーコードの方向に基づく方向（実施例では、一のバーコードの方向に平行な方向、変形例では、一のバーコードの方向に垂直な方向）に決定されることが好ましい。
【０１０７】
（１０）上記実施例のラベルプリンタ１００では、サーマルヘッド１６２が固定され、ラベル用のシートが搬送される。これに代えて、シートが固定され、サーマルヘッド１６２が移動することによって、印刷が実行される印刷実行部が用いられても良い。すなわち、シートなどの印刷媒体は、印刷時に印刷ヘッドに対して所定の移動方向に相対的に移動されれば良い。
【０１０８】
（１１）図３のラベル印刷処理を実行する画像処理装置としての端末装置２００は、他の種類の装置、例えば、ラベルプリンタ１００であっても良い。この場合には、例えば、ラベルプリンタ１００のＣＰＵ１１０は、コンピュータプログラムＰＧ１を実行することによって図３のラベル印刷処理を実行する。例えば、ＣＰＵ１１０は、端末装置２００から対象画像データを取得し、ラベル印刷処理を実行することによって印刷画像データを生成し、該印刷画像データを印刷機構１６０に出力する。これによって、実施例と同様に、ラベル画像が、印刷機構１６０によって印刷される。このように、上記実施例では、端末装置２００が画像処理装置の例であり、ラベルプリンタ１００が印刷実行部の例である。そして、本変形例では、ラベルプリンタ１００のＣＰＵ１１０が、画像処理装置の例であり、印刷機構１６０が印刷実行部の例である。
【０１０９】
また、図３のラベル印刷処理を実行する画像処理装置は、例えば、端末装置２００やラベルプリンタ１００から対象画像データを取得して画像処理を実行するサーバであっても良い。このようなサーバは、ネットワークを介して互いに通信可能な複数個の計算機であっても良い。この場合には、ネットワークを介して互いに通信可能な複数個の計算機の全体が、画像処理装置の例である。
【０１１０】
（１２）上記実施例の図３のラベル印刷処理のＳ４５、Ｓ５０は、省略され、ラベル画像は、常に、所定の方向（例えば、Ｙ方向）を印刷方向として、印刷されても良い。
【０１１１】
（１３）上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、図１の端末装置２００のＣＰＵ２１０が実行している処理の一部は、専用のハードウェア回路によって実現されてもよい。
【０１１２】
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【符号の説明】
【０１１３】
２…筺体、３…ロール、４…シート収容部、５…カバー、６…トレー、７…ボタン、９…カッターレバー、１００…ラベルプリンタ、１１０…ＣＰＵ、１２０…揮発性記憶装置、１３０…不揮発性記憶装置、１５０…操作部、１６０…印刷機構、１６１…搬送部、１６２…サーマルヘッド、１７０…通信インタフェース、２００…端末装置、２１０…ＣＰＵ、２２０…揮発性記憶装置、２３０…不揮発性記憶装置、２４０…表示部、２５０…操作部、２７０…通信インタフェース、ＲＢ…変倍率、ＯＩ、ＯＩ２…対象画像、ＮＩ…バーコード除去画像、Ｈｘ、Ｈｙ…射影ヒストグラム、Ｈｙ…射影ヒストグラム、ＬＡ１〜ＬＡ４…ラベル領域、ＰＧ１、ＰＧ２…コンピュータプログラム
【図１】
2019188742.tif 000003
【図２】
2019188742.tif 000004
【図３】
2019188742.tif 000005
【図４】
2019188742.tif 000006
【図５】
2019188742.tif 000007
【図６】
2019188742.tif 000008
【図７】
2019188742.tif 000009
【図８】
2019188742.tif 000010
【図９】
2019188742.tif 000011
【図１０】
2019188742.tif 000012
【図１１】
2019188742.tif 000013