IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ブラザー工業株式会社の特許一覧

特許7633589コンピュータプログラム、画像処理装置、および、画像処理方法
<>
  • 特許-コンピュータプログラム、画像処理装置、および、画像処理方法 図1
  • 特許-コンピュータプログラム、画像処理装置、および、画像処理方法 図2
  • 特許-コンピュータプログラム、画像処理装置、および、画像処理方法 図3
  • 特許-コンピュータプログラム、画像処理装置、および、画像処理方法 図4
  • 特許-コンピュータプログラム、画像処理装置、および、画像処理方法 図5
  • 特許-コンピュータプログラム、画像処理装置、および、画像処理方法 図6
  • 特許-コンピュータプログラム、画像処理装置、および、画像処理方法 図7
  • 特許-コンピュータプログラム、画像処理装置、および、画像処理方法 図8
  • 特許-コンピュータプログラム、画像処理装置、および、画像処理方法 図9
  • 特許-コンピュータプログラム、画像処理装置、および、画像処理方法 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-02-12
(45)【発行日】2025-02-20
(54)【発明の名称】コンピュータプログラム、画像処理装置、および、画像処理方法
(51)【国際特許分類】
   G06T 7/60 20170101AFI20250213BHJP
   G06T 7/00 20170101ALI20250213BHJP
   G06T 1/00 20060101ALI20250213BHJP
【FI】
G06T7/60 300A
G06T7/00 300D
G06T1/00 500A
【請求項の数】 9
(21)【出願番号】P 2020206379
(22)【出願日】2020-12-12
(65)【公開番号】P2022093212
(43)【公開日】2022-06-23
【審査請求日】2023-11-28
(73)【特許権者】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】110001058
【氏名又は名称】鳳国際弁理士法人
(72)【発明者】
【氏名】▲高▼須 将也
(72)【発明者】
【氏名】井上 千智
【審査官】長谷川 素直
(56)【参考文献】
【文献】特開2014-123247(JP,A)
【文献】特開2008-262424(JP,A)
【文献】特開昭63-250973(JP,A)
【文献】特開平06-083961(JP,A)
【文献】特開2014-164734(JP,A)
【文献】特開2012-048593(JP,A)
【文献】国際公開第2007/013238(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
G06T 1/00
(57)【特許請求の範囲】
【請求項1】
コンピュータプログラムであって、
対象画像を示す対象画像データを取得する画像取得処理と、
前記対象画像内に複数個の大領域と前記大領域よりも小さな複数個の小領域とを設定する領域設定処理であって、前記小領域と前記大領域とはそれぞれ複数個の画素を含む、前記領域設定処理と、
複数個の前記小領域のそれぞれの第1特徴量と、複数個の前記大領域のそれぞれの第2特徴量と、を算出する算出処理であって、前記第1特徴量は前記小領域内の複数個の画素の値を用いて算出され、前記第2特徴量は前記大領域内の複数個の画素の値を用いて算出される、前記算出処理と、
複数個の前記小領域のそれぞれについて、前記小領域の前記第1特徴量と前記小領域を含む前記大領域の前記第2特徴量との比較に基づいて、前記小領域がエッジを含むエッジ領域であるか否かを判断する判断処理と、
前記エッジ領域であるか否かの判断結果を用いて、前記対象画像内のエッジを示すエッジ画像データを生成する生成処理と、
をコンピュータに実行させるコンピュータプログラム。
【請求項2】
請求項1に記載のコンピュータプログラムであって、
前記対象画像データは、第1画像を示す第1画像データを含み、
前記コンピュータプログラムは、
前記第1画像データに対して前記領域設定処理と前記算出処理と前記判断処理と前記生成処理とを実行して、第1エッジ画像データを生成する処理と、
前記第1エッジ画像データと、オブジェクトに対応するテンプレート画像を示すテンプレート画像データと、を用いるパターンマッチングを実行することによって、前記対象画像内のオブジェクトを特定する処理と、
をコンピュータに実行させるコンピュータプログラム。
【請求項3】
請求項2に記載のコンピュータプログラムであって、
前記対象画像データは、さらに、オブジェクトを示す第2画像データを含み、
前記コンピュータプログラムは、さらに、
前記第2画像データに対して前記領域設定処理と前記算出処理と前記判断処理と前記生成処理とを実行して、第2エッジ画像データを生成する処理
をコンピュータに実行させ、
前記パターンマッチングは、前記第2エッジ画像データを前記テンプレート画像データとして用いて実行される、コンピュータプログラム。
【請求項4】
請求項1~3のいずれかに記載のコンピュータプログラムであって、
前記第1特徴量は、前記小領域内の複数個の画素の平均値に関する値であり、
前記第2特徴量は、前記大領域内の複数個の画素の中央値に関する値である、コンピュータプログラム。
【請求項5】
請求項4に記載のコンピュータプログラムであって、
前記判断処理は、前記第1特徴量と前記第2特徴量との差が基準より大きい場合に、前記小領域は前記エッジ領域であると判断する処理である、コンピュータプログラム。
【請求項6】
請求項1~5のいずれかに記載のコンピュータプログラムであって、
複数個の前記小領域は、第1の小領域と、前記第1の小領域と一部が重なる第2の小領域であって前記第1の小領域の外縁が内部を通る前記第2の小領域と、を含み、
前記判断処理は、前記第1の小領域と前記第2の小領域との少なくとも一方が、前記第1特徴量と前記第2特徴量とに基づく判断条件を満たす場合に、前記第1の小領域は前記エッジ領域であると判断する、コンピュータプログラム。
【請求項7】
請求項1~6のいずれかに記載のコンピュータプログラムであって、さらに、
前記対象画像データに対して画素ごとにエッジを構成する画素であるか否かを判断するエッジ検出処理をコンピュータに実行させ、
前記生成処理は、前記エッジ検出処理によって前記エッジを構成する画素であると判断され、かつ、前記判断処理によって前記エッジ領域であると判断された前記小領域に含まれる画素をエッジ画素として示す前記エッジ画像データを生成する処理である、コンピュータプログラム。
【請求項8】
画像処理装置であって、
対象画像を示す対象画像データを取得する画像取得部と、
前記対象画像内に複数個の大領域と前記大領域よりも小さな複数個の小領域とを設定する領域設定部であって、前記小領域と前記大領域とはそれぞれ複数個の画素を含む、前記領域設定部と、
複数個の前記小領域のそれぞれの第1特徴量と、複数個の前記大領域のそれぞれの第2特徴量と、を算出する算出部であって、前記第1特徴量は前記小領域内の複数個の画素の値を用いて算出され、前記第2特徴量は前記大領域内の複数個の画素の値を用いて算出される、前記算出部と、
複数個の前記小領域のそれぞれについて、前記小領域の前記第1特徴量と前記小領域を含む前記大領域の前記第2特徴量との比較に基づいて、前記小領域がエッジを含むエッジ領域であるか否かを判断する判断部と、
前記エッジ領域であるか否かの判断結果を用いて、前記対象画像内のエッジを示すエッジ画像データを生成する生成部と、
を備える画像処理装置。
【請求項9】
対象画像を示す対象画像データを取得する画像取得工程と、
前記対象画像内に複数個の大領域と前記大領域よりも小さな複数個の小領域とを設定する領域設定工程であって、前記小領域と前記大領域とはそれぞれ複数個の画素を含む、前記領域設定工程と、
複数個の前記小領域のそれぞれの第1特徴量と、複数個の前記大領域のそれぞれの第2特徴量と、を算出する算出工程であって、前記第1特徴量は前記小領域内の複数個の画素の値を用いて算出され、前記第2特徴量は前記大領域内の複数個の画素の値を用いて算出される、前記算出工程と、
複数個の前記小領域のそれぞれについて、前記小領域の前記第1特徴量と前記小領域を含む前記大領域の前記第2特徴量との比較に基づいて、前記小領域がエッジを含むエッジ領域であるか否かを判断する判断工程と、
前記エッジ領域であるか否かの判断結果を用いて、前記対象画像内のエッジを示すエッジ画像データを生成する生成工程と、
を備える画像処理方法。


【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、画像中のオブジェクトのエッジを特定するための技術に関する。
【背景技術】
【0002】
画像内のオブジェクトのエッジを特定することが行われている。例えば、特許文献1に記載された外観検査装置は、検査対象物を撮像した撮像画像内のエッジを特定し、検査対象物のモデル画像内のエッジを特定し、これらのエッジを比較することによって、撮像画像内の検査対象物の位置や姿勢を特定している。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2017-96750号公報
【文献】特開2010-197336号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記技術では、対象のオブジェクトのエッジを精度良く特定するための十分な工夫がなされているとは言えなかった。このために、例えば、画像のうち、対象のオブジェクトとは異なる部分の構成によっては、当該部分の多数のエッジが特定のオブジェクトのエッジとともに検出される可能性がある。この場合には、特定のオブジェクトのエッジだけを精度良く特定することができない。
【0005】
本明細書は、画像内のオブジェクトのエッジを精度良く特定できる技術を開示する。
【課題を解決するための手段】
【0006】
本明細書に開示された技術は、以下の適用例として実現することが可能である。
【0007】
[適用例1]コンピュータプログラムであって、対象画像を示す対象画像データを取得する画像取得処理と、前記対象画像内に複数個の大領域と前記大領域よりも小さな複数個の小領域とを設定する領域設定処理であって、前記小領域と前記大領域とはそれぞれ複数個の画素を含む、前記領域設定処理と、複数個の前記小領域のそれぞれの第1特徴量と、複数個の前記大領域のそれぞれの第2特徴量と、を算出する算出処理であって、前記第1特徴量は前記小領域内の複数個の画素の値を用いて算出され、前記第2特徴量は前記大領域内の複数個の画素の値を用いて算出される、前記算出処理と、複数個の前記小領域のそれぞれについて、前記小領域の前記第1特徴量と前記小領域を含む前記大領域の前記第2特徴量との比較に基づいて、前記小領域がエッジを含むエッジ領域であるか否かを判断する判断処理と、前記エッジ領域であるか否かの判断結果を用いて、前記対象画像内のエッジを示すエッジ画像データを生成する生成処理と、をコンピュータに実行させるコンピュータプログラム。
【0008】
大領域の第2特徴量には、対象画像の全体的な特徴が反映されやすく、小領域の第1特徴量には対象画像の局所的な特徴が反映されやすい。上記構成によれば、小領域の第1特徴量と大領域の第2特徴量との比較に基づいて、小領域がエッジを含むエッジ領域であるか否かを判断する。この結果、画像内のオブジェクトのエッジを精度良く特定できる。例えば、対象画像の全体に分布するエッジとは異なるエッジを含む小領域を精度良く特定できるので、画像の一部に存在するオブジェクトのエッジを含む小領域を、画像の全体に広がるエッジのみを含む領域とは区別して特定し得る。
【0009】
なお、本明細書に開示の技術は、種々の態様で実現することが可能であり、例えば、画像処理方法、画像処理装置、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体(例えば、一時的ではない記録媒体)、等の形態で実現することができる。
【図面の簡単な説明】
【0010】
図1】実施例の印刷システム1000の構成を示すブロック図。
図2】印刷システム1000の概略構成を示す斜視図。
図3】テンプレート登録処理および印刷処理のフローチャート。
図4】本実施例で用いられる画像の一例を示す図。
図5】マッチング前処理のフローチャート。
図6】マッチング前処理で用いられる画像の一例を示す図。
図7】局所エッジ領域決定処理のフローチャート。
図8】対象画像上に配置される複数個のブロックの説明図。
図9】局所エッジ領域データの説明図。
図10】ヒストグラムの一例を示す図。
【発明を実施するための形態】
【0011】
A.第1実施例:
A-1:印刷システム1000の構成
次に、実施の形態を実施例に基づき説明する。図1は、実施例の印刷システム1000の構成を示すブロック図である。印刷システム1000は、プリンタ200と、本実施例の画像処理装置としての端末装置300と、撮像装置400と、を含んでいる。プリンタ200と端末装置300、および、撮像装置400と端末装置300とは、通信可能に接続されている。
【0012】
端末装置300は、プリンタ200のユーザが使用する計算機であり、例えば、パーソナルコンピュータやスマートフォンである。端末装置300は、端末装置300のコントローラとしてのCPU310と、ハードディスクドライブなどの不揮発性記憶装置320と、RAMなどの揮発性記憶装置330と、マウスやキーボードなどの操作部360と、液晶ディスプレイなどの表示部370と、通信部380と、を備えている。通信部380は、外部機器、例えば、プリンタ200や撮像装置400と通信可能に接続するための有線または無線のインタフェースを含む。
【0013】
揮発性記憶装置330は、CPU310が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域331を提供する。不揮発性記憶装置320には、コンピュータプログラムPG1が格納されている。コンピュータプログラムPG1は、例えば、サーバからダウンロードされる形態、あるいは、DVD-ROMなどに格納される形態で、プリンタ200の製造者によって提供される。CPU310は、コンピュータプログラムPG1を実行することによって、プリンタ200を制御するプリンタドライバとして機能する。プリンタドライバとしてのCPU310は、例えば、後述するテンプレート登録処理や印刷処理を実行する。
【0014】
撮像装置400は、光学的に被写体を撮像することによって被写体を表す画像データ(撮像画像データとも呼ぶ)を生成するデジタルカメラである。撮像装置400は、端末装置300の制御に従って、撮像画像データを生成し、端末装置300に送信する。
【0015】
プリンタ200は、例えば、印刷機構100と、プリンタ200のコントローラとしてのCPU210と、ハードディスクドライブなどの不揮発性記憶装置220と、RAMなどの揮発性記憶装置230と、ユーザによる操作を取得するためのボタンやタッチパネルなどの操作部260と、液晶ディスプレイなどの表示部270と、通信部280と、を備えている。通信部280は、外部機器、例えば、端末装置300と通信可能に接続するための有線または無線のインタフェースを含む。
【0016】
揮発性記憶装置230は、CPU210が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域231を提供する。不揮発性記憶装置220には、コンピュータプログラムPG2が格納されている。コンピュータプログラムPG2は、本実施例では、プリンタ200を制御するための制御プログラムであり、プリンタ200の出荷時に不揮発性記憶装置220に格納されて提供され得る。これに代えて、コンピュータプログラムPG2は、サーバからダウンロードされる形態で提供されても良く、DVD-ROMなどに格納される形態で提供されてもよい。CPU210は、コンピュータプログラムPG2を実行することにより、例えば、後述する印刷処理によって端末装置300から送信される印刷データに従って印刷機構100を制御して印刷媒体に画像を印刷する。なお、本実施例のプリンタ200は、印刷媒体として布地が想定されており、例えば、Tシャツなどの衣服S(図2参照)上に画像を印刷することができる。
【0017】
印刷機構100は、C、M、Y、Kの各インク(液滴)を吐出して印刷を行うインクジェット方式の印刷機構である。印刷機構100は、印刷ヘッド110とヘッド駆動部120と主走査部130と搬送部140とを備えている。
【0018】
図2を参照して、さらに、説明する。図2は、印刷システム1000の概略構成を示す斜視図である。図2の+X方向、-X方向、+Y方向、-Y方向、+Z方向、-Z方向は、それぞれ、プリンタ200の左方、右方、前方、後方、上方、下方である。
【0019】
主走査部130は、筐体201の内部において、図示しない主走査モータの動力を用いて、印刷ヘッド110を搭載するキャリッジ(図示省略)を主走査方向(図2のX方向)に沿って往復動させる。これによって、衣服Sなどの印刷媒体に対して主走査方向(X方向)に沿って印刷ヘッド110を往復動させる主走査が実現される。
【0020】
搬送部140は、筐体201のX方向中央部に設けられたプラテン142およびトレイ144を備えている。板状のプラテン142の上面(+Z方向の面)は、衣服Sなどの印刷媒体を載置するための載置面である。プラテン142は、プラテン142の-Z方向に配置された板状のトレイ144に固定されている。トレイ144は、プラテン142より一回り大きい。プラテン142とトレイ144とによって、衣服Sなどの印刷媒体が保持される。プラテン142とトレイ144は、図示しない副走査モータの動力を用いて、主操作方向と交差する搬送方向(図2のY方向)に搬送される。これによって、衣服Sなどの印刷媒体を印刷ヘッド110に対して搬送方向に搬送する副走査が実現される。
【0021】
ヘッド駆動部120(図1)は、主走査部130が印刷ヘッド110の主走査を行っている最中に、印刷ヘッド110に駆動信号を供給して、印刷ヘッド110を駆動する。印刷ヘッド110は、図示しない複数個のノズルを備え、駆動信号に従って、搬送部140によって搬送される印刷媒体上にインクを吐出してドットを形成する。
【0022】
図2に示すように、撮像装置400は、図示しない支持具によって支持されて、プリンタ200の+Z方向に配置される。撮像装置400は、プリンタ200から離れた場所に位置し、プラテン142の上面に対向して設けられ、プラテン142の上面に載置された衣服Sなどの印刷媒体を撮影可能である。これによって、撮像装置400は、衣服Sなどの印刷媒体を含む画像を示す撮像画像データを生成することができる。
【0023】
A-2.印刷システム1000の動作
印刷システム1000の動作について説明する。印刷システム1000は、印刷媒体としての衣服Sの一部分である印刷対象領域に対して、所定の画像(例えば、模様やロゴ)を印刷する。本実施例では、図2に示すように、衣服Sは、Tシャツであり、印刷対象領域は、Tシャツに設けられた胸ポケットPCを含む領域である。衣服Sは、例えば、作業者によって、プラテン142に載置される。その際に、常に、胸ポケットPCがプラテン142上の同じ位置に配置されるように、衣服Sを正確にプラテンに載置することは困難である。このために、印刷システム1000は、衣服Sが載置されたプラテン142上において、胸ポケットPCを含む領域を印刷対象領域として特定し、特定された印刷対象領域に対して印刷を行う機能を備えている。
【0024】
A-2-1.テンプレート登録処理
テンプレート登録処理は、後述する印刷処理において胸ポケットPCが位置する印刷対象領域を特定するためのテンプレート画像データを、見本の衣服Sを用いて生成する処理である。見本の衣服Sは、例えば、印刷すべき複数枚の衣服Sのうちの一枚である。
【0025】
図3(A)は、テンプレート登録処理のフローチャートである。テンプレート登録処理は、例えば、見本の衣服Sがプラテン142上に載置され、プラテン142に載置された衣服Sを上方から撮像装置400にて撮影可能な状態で、ユーザが端末装置300に開始指示を入力した場合に開始される。テンプレート登録処理は、端末装置300のCPU310によって実行される。
【0026】
S100では、CPU310は、見本の衣服Sの撮像画像データを撮像装置400から取得する。具体的には、CPU310は、撮像装置400に撮像指示を送信する。撮像装置400は、プラテン142に載置された見本の衣服Sを撮像して、撮像画像データを生成して、端末装置300に送信する。撮像画像データは、例えば、複数個の画素に対応する複数個のRGB値を含み、RGB値で画素ごとの色を示す画像データである。RGB値は、RGBの3個の成分値を含むRGB表色系の色値である。本ステップにて取得される見本の衣服Sの撮像画像データを見本画像データとも呼び、見本画像データによって示される画像を見本画像とも呼ぶ。
【0027】
図4は、本実施例で用いられる画像の一例を示す図である。図4に示すように、画像の左右方向は、プリンタ200の主走査方向(図2のX方向)に対応し、画像の上下方向は、プリンタ200の搬送方向(図2のY方向)に対応している。図4(A)には、見本画像データによって示される見本画像Itの一例が図示されている。見本画像Itは、プラテン142に載置された見本の衣服Sを示す画像を含んでいる。以下では、見本画像Itに含まれる見本の衣服Sを示す画像を、単に「衣服St」とも呼び、胸ポケットPCを示す画像を、単に「胸ポケットPCt」とも呼ぶ。
【0028】
S105では、CPU310は、ユーザの指示に基づいて、見本画像It内の印刷対象領域PAtをクロッピングする。例えば、CPU310は、図示しないユーザインタフェース(UI)画面を表示部370に表示する。ユーザは、マウスなどのポインティングデバイスを用いて、UI画面上において、見本画像It内の印刷対象領域PAtを指定する指示を入力する。図4(A)の例では、衣服Stの胸ポケットPCを含む印刷対象領域PAtが図示されている。CPU310は、見本画像データに対してクロッピング処理を実行して、印刷対象領域PAtに対応する部分見本画像データを生成する。図4(B)には、部分見本画像データによって示される部分見本画像PItの一例が図示されている。
【0029】
S110では、CPU310は、部分見本画像データに対してマッチング前処理を実行して、処理済部分見本画像データを生成する。処理済部分見本画像データは、後述するマッチング処理のために、画像内のオブジェクト(例えば、胸ポケットPCt)のエッジを抽出する処理である。マッチング前処理の詳細は後述する。処理済部分見本画像データは、エッジ画素と、非エッジ画素と、を画素ごとに示す二値画像データである。
【0030】
S115では、CPU310は、処理済部分見本画像データをテンプレート画像データとして、不揮発性記憶装置220に保存する。図4(C)には、テンプレート画像データによって示されるテンプレート画像TIの一例が図示されている。テンプレート画像TIは、部分見本画像PIt内のオブジェクトのエッジEgt、図4(C)の例では、胸ポケットPCtの外縁を示すエッジEgtを含んでいる。
【0031】
A-2-2.印刷処理
印刷処理は、プリンタ200を用いて、印刷媒体としての衣服Sの一部分である印刷対象領域に対して、所定の画像(例えば、模様やロゴ)を印刷する処理である。図3(B)は、印刷処理のフローチャートである。印刷処理は、印刷媒体である衣服Sがプラテン142上に載置され、プラテン142に載置された衣服Sを上方から撮像装置400にて撮影可能な状態で、ユーザが端末装置300に開始指示を入力した場合に開始される。印刷処理は、端末装置300のCPU310によって実行される。
【0032】
S200では、CPU310は、印刷媒体である衣服Sの撮像画像データを撮像装置400から取得する。取得の方法は、図3(A)のS100と同様の方法である。本ステップにて取得される印刷媒体である衣服Sの撮像画像データを媒体画像データともよび、媒体画像データによって示される画像を媒体画像とも呼ぶ。
【0033】
図4(D)には、媒体画像データによって示される媒体画像Isの一例が図示されている。媒体画像Isは、見本画像Itと同様に、プラテン142に載置された見本の衣服Sを示す画像を含んでいる。以下では、媒体画像Isに含まれる見本の衣服Sを示す画像を、単に「衣服Ss」とも呼び、胸ポケットPCを示す画像を、単に「胸ポケットPCs」とも呼ぶ。
【0034】
S205では、CPU310は、取得される媒体画像データに対して、マッチング前処理を実行して、処理済媒体画像データを生成する。処理済媒体画像データは、エッジ画素と、非エッジ画素と、を画素ごとに示す二値画像データである。マッチング前処理は、図3(A)のS100と同様の処理であり、その詳細は後述する。図4(E)には、処理済媒体画像データによって示される処理済媒体画像SIが図示されている。処理済媒体画像SIは、媒体画像Is内のオブジェクトのエッジEgs、図4(E)の例では、衣服Ssや胸ポケットPCsの外縁を示すエッジEgsを含んでいる。
【0035】
S210では、CPU310は、マッチング処理を実行して、処理済媒体画像SI内の印刷対象領域PAsを特定する。マッチング処理は、処理済媒体画像データと、テンプレート画像データ(処理済部分見本画像データ)と、を用いて実行される。マッチング処理は、処理済媒体画像SIとテンプレート画像TIとの位置関係を決定する処理である。マッチング処理は、例えば、公知のパターンマッチングのアルゴリズムを用いて実行される。例えば、パターンマッチングは、処理済媒体画像SIとテンプレート画像TIとの位置関係を変えながら、処理済媒体画像SIとテンプレート画像TIとが重なる領域において、2個の画像SI、TI間の類似度を算出し、該類似度が最も高い位置関係を探索する手法である。2個の画像SI、TI間の類似度には、例えば、処理済媒体画像SIの複数個のエッジ画素のうち、テンプレート画像TIのエッジ画素と重なる画素の個数が用いられる。
【0036】
2個の画像SI、TIの位置関係は、例えば、処理済媒体画像SIに対するテンプレート画像TIの位置(座標)と、処理済媒体画像SIに対するテンプレート画像TIの傾き(角度)と、によって示される。該位置関係は、さらに、処理済媒体画像SIに対するテンプレート画像TIの大きさ(縮尺)を含んでも良い。図4(E)において、破線で示す矩形は、パターンマッチングによって決定された位置関係で処理済媒体画像SI上に配置されたテンプレート画像TIを示している。CPU310は、特定された位置関係に基づいて印刷対象領域PAsを特定する。例えば、特定された位置関係で処理済媒体画像SIに重ねられたテンプレート画像TIの領域(図4(E))が印刷対象領域PAsとして特定される。なお、処理済媒体画像SIと媒体画像Isとは、対応関係を有するので、処理済媒体画像SIにおいて印刷対象領域PAsが特定されることは、媒体画像Isにおいて印刷対象領域PAsが特定されることと等価である。
【0037】
S210では、CPU310は、特定された印刷対象領域PAsに基づいて印刷画像(例えば、模様やロゴ)を位置決めし、印刷を実行する。例えば、CPU310は、処理済媒体画像SIにおいて特定された印刷対象領域PAsに対応する衣服S上の領域(例えば、胸ポケットPCの領域)に印刷画像が印刷されるように、印刷データを生成して、プリンタ200に送信する。プリンタ200は、受信した印刷データに従って、印刷機構100を制御して、衣服Sに画像を印刷する。
【0038】
A-2-3.マッチング前処理
図3(A)のS110および図3(B)のS205のマッチング前処理について説明する。図3(A)のS110のマッチング前処理は、上述のように、部分見本画像データを、対象画像データとして実行される。図3(B)のS205のマッチング前処理は、上述のように、媒体画像データを、対象画像データとして実行される。以下では、媒体画像データが対象画像データである場合を例として説明する。
【0039】
図5は、マッチング前処理のフローチャートである。S300では、CPU310は、対象画像データに対してエッジ検出処理を実行する。エッジ検出処理は、対象画像データによって示される対象画像内の複数個の画素の中からエッジ画素を検出し、検出結果を示すエッジ画像データを生成する処理である。エッジ画像データは、画素ごとにエッジ画素であるか非エッジ画素であるかを示す二値画像データである。ここで、S300にて生成されるエッジ画像データを、後述する局所エッジ画像データと区別するために、単純エッジ画像データとも呼ぶ。
【0040】
エッジ画素の検出方法は、種々の方法であってよい。本実施例では、画像内のオブジェクトの輪郭を示すエッジ画素の検出に好ましいCanny Edge法が用いられる。これに代えて、例えば、ラプラシアンフィルタやソーベルフィルタを用いてエッジ強度を算出し、該エッジ強度が閾値TH1よりも大きな画素をエッジ画素として検出する方法であっても良い。
【0041】
図6は、マッチング前処理で用いられる画像の一例を示す図である。図6(A)には、単純エッジ画像データによって示される単純エッジ画像EIの一例が図示されている。単純エッジ画像EI内の破線の領域は、図4(D)の衣服Ssの胸ポケットPCsを含むポケット存在領域AAである。単純エッジ画像EIには、衣服Ssや胸ポケットPCsの外縁のエッジを構成するエッジ画素も現れているが、衣服Ssの全体に亘って分散して存在する多数のエッジ画素も含んでいる。分散して存在する多数のエッジ画素は、例えば、衣服Ssの布目などの微細な構造のエッジを構成するエッジ画素である。以下では、衣服Ssや胸ポケットPCsの外縁のエッジのように画像内に局所的に存在するオブジェクトの特徴を示すエッジを局所エッジとも呼び、局所エッジを構成するエッジ画素を局所エッジ画素とも呼ぶ。また、衣服Ssの布目などの微細な構造のエッジのように画像内に分散して存在するエッジを分散エッジとも呼び、分散エッジを構成するエッジ画素を分散エッジ画素とも呼ぶ。画像内に局所的に存在するオブジェクト(例えば、胸ポケットPCs)を、パターンマッチングなどのマッチング処理によって特定するためには、局所エッジ画素のみが検出され、分散エッジ画素は検出されないことが好ましい。仮に、単純エッジ画像データを用いてマッチング処理を実行すると、分散エッジがノイズとなって、精度の良いマッチングを行うことは困難である。
【0042】
S310では、CPU310は、対象画像データを用いて、局所エッジ領域決定処理を実行する。局所エッジ領域決定処理は、対象画像(例えば、部分見本画像PItや媒体画像Is)に設定される複数個の小領域のそれぞれについて、局所エッジ領域であるか否かを判定し、該判定結果を小領域ごとに示す局所エッジ領域データを生成する処理である。ここで、局所エッジ領域は、上述した局所エッジ画素が存在する可能性が非局所エッジ領域よりも高い領域である。
【0043】
図7は、局所エッジ領域決定処理のフローチャートである。S410では、CPU310は、RGB画像データである対象画像データの各画素のRGB値を輝度値に変換することによって、対象画像データをRGB画像データから輝度画像データに変換する。各画素の輝度値は、例えば、0~255の256階調の値である。RGB値を輝度値に変換する式は、公知の式が用いられる。
【0044】
S415では、CPU310は、対象画像(例えば、媒体画像Is)に、注目大ブロックを設定する。図8は、対象画像上に配置される複数個のブロックの説明図である。図8(A)には、対象画像の例である媒体画像Isに、配置される大ブロックLBが図示されている。図8(A)の大ブロックLBの符号に付された括弧書きの数値は、各大ブロックLBを識別する番号である。図8(B)には、1個の大ブロックLBが図示されている。1個の大ブロックのX方向の画素数Wl、および、Y方向の画素数Hlは、例えば、36~180個である。大ブロックLBの形状は、矩形であり、本実施例では、正方形である(Wl=Hl)。
【0045】
最初の注目大ブロックは、本実施例では、図8(A)の左上の大ブロックLB(1)である。1個の大ブロックLBは、K個(Kは2以上の整数)の画素を含む矩形の領域である。最初の注目大ブロック(図8(A)のLB(1))について、S420~S460の処理が完了した後に、2番目に設定される注目大ブロックは、図8(A)の大ブロックLB(2)である。大ブロックLB(2)は、大ブロックLB(1)に対して、+X方向に(Wl/2)画素分だけずれている。したがって、大ブロックLB(1)の+X側の半分と、大ブロックLB(2)の-X側の半分とは重なっている。このように、CPU310は、対象画像である媒体画像Isの+X方向の端に達するまで、(Wl/2)画素分だけ+X方向にずらしながら、順次に注目大ブロックを設定する。図8(A)の例では、1行目の複数個の大ブロックLBとして、大ブロックLB(1)、LB(2)、LB(3)…LB(p-1)、LB(p)が順次に注目大ブロックとして設定される。1番目の大ブロックLB(1)の+X側の端と、3番目の大ブロックLB(3)の-X側の端とは、接している。
【0046】
1行目の+X方向の端の大ブロックLB(p)の次には、2行目の最初の大ブロックLB(p+1)が注目大ブロックとして設定される。大ブロックLB(p+1)は、1行目の最初の大ブロックLB(1)に対して、-Y方向に(Hl/2)画素分だけずれている。したがって、大ブロックLB(1)の-Y側の半分と、大ブロックLB(p+1)の+Y側の半分とは重なっている。2行目の複数個の大ブロックLBは、1行目の大ブロックLBと同様に、+X方向に(Wl/2)画素分だけずらしながら設定される。
【0047】
CPU310は、対象画像である媒体画像Isの-Y方向の端に達するまで、(Hl/2)画素分だけ-Y方向にずらしながら、順次に注目大ブロックの行を設定する。図8(A)には、-Y方向の端に位置する最終行の複数個の大ブロックLBのうち、最初の大ブロックLB(q)と、最後から2番目および最後の大ブロックLB(e-1)、LB(e)と、が図示されている。
【0048】
S420では、CPU310は、注目大ブロックのK個の画素の輝度値の中央値Mを、注目大ブロックの特徴値として取得する。例えば、中央値Mは、Kが偶数である場合には、K個の画素の輝度値を大きな順に並べた場合における(2/K)番目の輝度値と{(2/K)+1}番目の輝度値との平均値である。中央値Mは、Kが奇数である場合には、K個の画素の輝度値を大きな順に並べた場合における{(K+1)/2}番目の輝度値である。
【0049】
S425では、CPU310は、注目大ブロック内に複数個の小ブロックSBを設定する。図8(B)には、大ブロックLB内に設定された9個の小ブロックSBが図示されている。図8(B)に示すように、本実施例では、注目大ブロック(例えば、図8(B)の大ブロックLB)を9個の領域に分割することによって、3列3行にマトリクス状に配置された9個の小ブロックSBが、1個の注目大ブロック内に設定される。したがって、本実施例では、小ブロックSBのX方向の画素数Wsは大ブロックLBのX方向の画素数Wlの(1/3)であり、小ブロックSBのY方向の画素数Hsは大ブロックLBのY方向の画素数Hlの(1/3)である。小ブロックSBの画素数Nは、(Ws×Hs)個である。
【0050】
S430では、CPU310は、注目大ブロック内に設定された複数個(本実施例では9個)の小ブロックSBの中から1個の注目小ブロックを選択する。
【0051】
S435では、CPU310は、注目小ブロックのK個の画素の輝度値の合計値Tを算出する。S440では、CPU310は、注目大ブロックの中央値Mに注目小ブロックの画素数Nを乗じた値(M×N)と、注目小ブロックの輝度値合計値Tと、の差分{(M×N)-T}が、所定の閾値THよりも大きいか否かを判断する。この判断は、注目ブロックの中央値Mと、注目小ブロックの輝度値の平均値(T/N)と、の差分{M-(T/N)}が、閾値(TH/N)よりも大きいか否かの判断と等価である。
【0052】
差分{(M×N)-T}が閾値THより大きい場合には(S440:YES)、S445にて、CPU310は、注目小ブロックが局所エッジ領域であると判定する。この場合には、S455にて、CPU310は、局所エッジ領域データを更新する。図9は、局所エッジ領域データの説明図である。図9(A)には、媒体画像Isの一部分が図示されている。図9(B)には、局所エッジ領域データによって示される局所エッジ領域画像AIの一部分が図示されている。図9(B)の局所エッジ領域画像AIの一部分は、図9(A)の媒体画像Isの一部分に対応する部分である。
【0053】
媒体画像Isに設定される複数個の大ブロックLBは、上述したように、X方向およびY方向に、それぞれ、X方向およびY方向の画素数の半分ずつずらして設定される。このために、各小ブロックSBも隣り合う小ブロックSBと一部分が重なり合う。例えば、奇数列の大ブロックLB内の小ブロックSBは、X方向に隣り合う偶数列の大ブロックLB内の小ブロックと重なる。奇数行の大ブロックLB内の小ブロックSBは、Y方向に隣り合う偶数行の大ブロックLB内の小ブロックSBと重なる。図9(A)の例では、大ブロックLB(1)の小ブロックSB1bの+X側の半分は、大ブロックLB(2)の小ブロックSB2a(図9(A)のハッチングされた小ブロック)の-X側の半分と重なっている。また、大ブロックLB(1)の小ブロックSB1cの-X側の半分は、大ブロックLB(2)の小ブロックSB2aの+X側の半分と重なっている。このために、小ブロックSB1bの+X側の端、および、小ブロックSB1cの-X側の端は、小ブロックSB2aのX方向の中央部を通る。
【0054】
局所エッジ領域画像AIは、媒体画像Isに配置される複数個の小ブロックSBのうち、互いに重なることなく媒体画像Is内に隙間無く設定される一部の小ブロックSBに対応する複数個の画素Pを含んでいる。本実施例では、局所エッジ領域画像AIは、局所エッジ領域画像AIは、奇数列、かつ、奇数行の大ブロックLB内の複数個の小ブロックSBに対応する複数個の画素のマトリクス状に配置された複数個の画素Pを含んでいる。局所エッジ領域画像AIは、偶数列の大ブロックLB、および、偶数行の大ブロックLB内の小ブロックSBに対応する画素は含んでいない。例えば、図9(A)の局所エッジ領域画像AIの18個の画素Pは、図9(A)の大ブロックLB(1)、LB(3)内の18個の実線の小ブロックSBに対応している。例えば、図9(B)の画素P1a、P1b、P1c、P3a、P3b、P3cは、それぞれ、図9(A)の小ブロックSB1a、SB1b、SB1c、SB3a、SB3b、SB3cと対応している。
【0055】
局所エッジ領域データは、各画素に対応する小ブロックSBが局所エッジ領域であるか非局所エッジ領域であるかを示す二値画像データである。局所エッジ領域画像AIに含まれる複数個の画素の初期値は、非局所エッジ領域であることを示す値(例えば、0)である。
【0056】
S455では、CPU310は、注目小ブロックに対応する局所エッジ領域画像AIの画素Pがある場合には、注目小ブロックに対応する局所エッジ領域画像AIの画素Pの値を、局所エッジ領域であることを示す値(例えば、1)に設定する。CPU310は、注目小ブロックに対応する局所エッジ領域画像AIの画素Pがない場合には、注目小ブロックと重なる小ブロックSBに対応する局所エッジ領域画像AIの画素Pの値を、局所エッジ領域であることを示す値に設定する。
【0057】
差分{(M×N)-T}が閾値TH以下である場合には(S440:NO)、S450にて、CPU310は、注目小ブロックが局所エッジ領域でないと判定する。換言すれば、CPU310は、注目小ブロックが非局所エッジ領域であると判定する。この場合には、CPU310は、S455をスキップする。すなわち、この場合には、局所エッジ領域データの更新は行われない。
【0058】
以上の説明から解るように、局所エッジ領域画像AIの特定の画素Pに対応する特定の小ブロックSBと、該特定の小ブロックSBと重なる全ての別の小ブロックSBと、のうち、少なくとも1個の小ブロックSBがS445にて局所エッジ領域であると判定される場合には、該特定の小ブロックSBは、最終的に局所エッジ領域として決定される。
【0059】
S460では、CPU310は、注目大ブロック内の全ての小ブロックSBを注目小ブロックとして処理したか否かを判断する。注目大ブロック内の未処理の小ブロックSBがある場合には(S460:NO)、CPU310は、S430に戻って未処理の小ブロックSBを新たな注目小ブロックとして選択する。注目大ブロック内の全ての小ブロックSBが処理された場合には(S460:YES)、CPU310は、S465に処理を進める。
【0060】
S465では、CPU310は、対象画像(例えば、媒体画像Is)全体に大ブロックLBを設定したか否かを判断する。例えば、図8(A)の媒体画像Isにおいて、最終行の最後の大ブロックLB(e)を注目大ブロックとして設定済みである場合には、対象画像全体に大ブロックLBが設定されたと判断される。対象画像全体に大ブロックLBが設定されていない場合には(S465:NO)、CPU310は、S415に戻って次の注目大ブロックを新たに設定する。対象画像全体に大ブロックLBが設定された場合には(S465:YES)、CPU310は、局所エッジ領域決定処理を終了する。
【0061】
局所エッジ領域決定処理が終了した時点で、最終的な局所エッジ領域データが完成している。図6(B)には、図6(A)の単純エッジ画像EIに対応する局所エッジ領域画像AIが図示されている。図6(B)の局所エッジ領域画像AIでは、複数個の局所エッジ領域Eaが位置する部分が黒色で示されている。衣服Ssや胸ポケットPCsの輪郭のエッジが存在する部分が、局所エッジ領域Eaに決定される確率は比較的高く、衣服Ssの布目の微細な構造のエッジのみが存在する部分が、局所エッジ領域Eaに決定される確率は比較的低いことが解る。
【0062】
局所エッジ領域決定処理が終了すると、図5のS320にて、CPU310は、局所エッジ画像LEIを示す局所エッジ画像データを生成する。局所エッジ画像LEIは、局所エッジ画素と、局所エッジ画素とは異なる画素(非局所エッジ画素)と、を示す二値画像データである。局所エッジ画素は、単純エッジ画像EIにて特定されるエッジ画素であり、かつ、局所エッジ領域に位置する画素である。図6(C)には、図6(A)の単純エッジ画像EIおよび図6(B)の局所エッジ領域画像AIに対応する局所エッジ画像LEIが図示されている。例えば、図6(C)の局所エッジ画像LEI内の局所エッジ画素LEpは、図6(A)の単純エッジ画像EIにおいて特定される複数個のエッジ画素Epのうち、図6(B)の局所エッジ領域画像AIにおいて特定される複数個の局所エッジ領域Ea内に位置する画素である。図6(C)の局所エッジ画像LEIでは、衣服Ssや胸ポケットPCsの輪郭のエッジを構成する画素は、高い確率で局所エッジ画素LEpとして特定されているが、衣服Ssの布目の微細な構造のエッジを構成する画素は、あまり局所エッジ画素LEpとして特定されていない。すなわち、局所エッジ画像データでは、単純エッジ画像データと比較して、オブジェクトの輪郭等の局所的なエッジを構成する画素が、画像全体に分散するエッジを構成する画素と区別して、精度良く特定されている。
【0063】
対象画像データとして媒体画像データを用いて図5のマッチング処理を実行することによって生成される局所エッジ画像データが、上述した処理済媒体画像データ(図3(B)のS205、図4(E))である。対象画像データとして部分見本画像データを用いて図5のマッチング処理を実行することによって生成される局所エッジ画像データが、上述したテンプレート画像データ(図3(A)のS110、図4(C))である。
【0064】
以上説明した本実施例によれば、CPU310は、対象画像(例えば、媒体画像Is)内に複数個の大ブロックLBと、大ブロックLBよりも小さな複数個の小ブロックSB小領域とを設定する(図7のS415、S425、図8)。CPU310は、複数個の小ブロックSBのそれぞれの輝度値合計値Tと、複数個の大ブロックLBのそれぞれの中央値Mと、を算出する(図7のS420、S435)。CPU310は、複数個の小ブロックSBのそれぞれについて、小ブロックSBの輝度値合計値Tと、小ブロックSBを含む大ブロックLBの中央値Mと、の比較に基づいて、小ブロックSBが局所エッジ領域であるか否かを判断する(図7のS440~S450)。CPU310は、局所エッジ領域であるか否かの判断結果を用いて、対象画像内の局所エッジ画素を示す局所エッジ画像データを生成する(図7のS455、図5のS320)。
【0065】
大ブロックLBの特徴量である中央値Mには、対象画像の全体的な特徴が反映されやすく、小ブロックSBの特徴量である輝度値合計値Tには、対象画像の局所的な特徴が反映されやすい。本実施例によれば、小ブロックSBの輝度値合計値Tと小ブロックSBを含む大ブロックLBの中央値Mとの比較に基づいて、小ブロックSBが局所エッジ領域であるか否かを判断するので、対象画像内のオブジェクトのエッジを精度良く特定できる。例えば、対象画像の全体に分布する分散エッジとは異なる局所エッジを含む小ブロックSBを局所エッジ領域Eaとして精度良く特定できる。具体的には、画像内に局所的に存在するオブジェクトのエッジ(例えば、衣服Ssの胸ポケットPCsの輪郭のエッジ(図4(D)))を含む小ブロックSBを、媒体画像Isの全体に広がるエッジ(例えば、衣服Ssの布目を構成するエッジ)のみを含む領域とは区別して特定し得る。
【0066】
例えば、図6(B)の局所エッジ領域画像AIでは、ポケット存在領域AA内において、胸ポケットPCsの輪郭のエッジを含む小ブロックSBが、局所エッジ領域Eaとして比較的高確率で特定されている。また、衣服Ssの布目を構成するエッジを含む小ブロックSBは、比較的高確率で局所エッジ領域Eaから除外できている。このために、最終的に生成される図6(C)の局所エッジ画像LEIでは、図6(A)の単純エッジ画像EIと比較して、衣服Ssの布目を構成するエッジが局所エッジ画素LEpから比較的高い確率で除外されるとともに、胸ポケットPCsや衣服Ssの輪郭を構成するエッジは比較的高い確率で局所エッジ画素LEpとして維持される。
【0067】
そして、本実施例によれば、マッチング前処理の対象画像データは、媒体画像Isを示す媒体画像データを含む。すなわち、CPU310は、媒体画像データを対象画像データとして、マッチング前処理を実行することによって、局所エッジ画像データである処理済媒体画像データを生成する(図3(B)のS205)。そして、該処理済媒体画像データを用いるパターンマッチングを実行することによって、媒体画像Is内のオブジェクトである胸ポケットPCsを特定する(図3(B)のS210)。この結果、媒体画像Is内の胸ポケットPCsの輪郭のエッジが精度良く特定された処理済媒体画像データを用いてパターンマッチングを実行できるので、媒体画像Is内の胸ポケットPCsを精度良く特定できる。
【0068】
例えば、図6(C)の局所エッジ画像LEIに示すように、胸ポケットPCsの輪郭を構成するエッジを全て維持できる訳ではなく、布目を構成するエッジを全て除外できる訳ではない。しかしながら、局所エッジ画像データである処理済媒体画像データを用いて、図3(B)のS210にてマッチング処理を行う際に、マッチングの精度を十分に向上できる精度で、局所エッジ画像LEIでは胸ポケットPCsの輪郭を構成するエッジ画素が局所エッジ画素LEpとして特定できている。
【0069】
また、本実施例によれば、パターンマッチングにおいて用いるべきエッジ画素の個数を削減できるので、パターンマッチングの高速化を実現できる。
【0070】
さらに、本実施例によれば、マッチング前処理の対象画像データは、部分見本画像PItを示す部分見本画像データを含む。すなわち、CPU310は、部分見本画像データを対象画像データとして、マッチング前処理を実行することによって、局所エッジ画像データであるテンプレート画像データを生成する(図3(A)のS115)。そして、該テンプレート画像データを用いるパターンマッチングを実行することによって、媒体画像Is内のオブジェクトである胸ポケットPCsを特定する(図3(B)のS210)。この結果、テンプレート画像TI(図4(C))においても、胸ポケットPCtの輪郭を示すエッジが高い確率で維持され、布目を構成するエッジが高い確率で除外される。したがって、パターンマッチングによって、媒体画像Is内の胸ポケットPCsをさらに精度良く特定できる。
【0071】
ここで、小ブロックSBの特徴量である輝度値合計値Tは、上述のように、小ブロックSBの画素数Nで除すると、平均値(T/N)となる。このために、輝度値合計値Tは、小ブロックSB内の複数個の画素の平均値に関する値である、と言うことができる。そして、大ブロックLBの特徴量は、中央値Mである。このように、本実施例では、小ブロックSBの特徴量は、平均値に関する値であり、大ブロックLBの特徴量は、中央値Mに関する値である。この結果、適切な特徴量が用いられるので、画像内のオブジェクトのエッジをさらに精度良く特定できる。
【0072】
さらに、詳しく説明する。図8(B)に示すように、大ブロックLBには、布目の微細なエッジなどの分散エッジSEを含む地色部分BSと、胸ポケットPCsなどの局所的なオブジェクトの輪郭のエッジLEと、が含まれている。このような場合には、大ブロックLBは、地色部分BSと輪郭のエッジLEとを含む小ブロックSBaと、地色部分BSを含み、輪郭のエッジLEを含まない小ブロックSBbと、を含む(図8(A))。
【0073】
図10は、ヒストグラムの一例を示す図である。図10(A)には、図8(B)の大ブロックLBのヒストグラムが図示されている。図10(B)には、図8(B)の小ブロックSBaのヒストグラムが図示されている。図10(C)には、図8(B)の小ブロックSBbのヒストグラムが図示されている。各ヒストグラムは、横軸に輝度値を取り、縦軸に輝度値の各クラスに分類された画素の数を取ったグラフである。
【0074】
図10(A)の大ブロックLBのヒストグラムは、地色部分BSに対応する第1の山部MP1と、輪郭のエッジLEに対応する第2の山部MP2と、を含んでいる。地色部分BSは、単色の布地を示す部分であるので、地色部分BSに対応する第1の山部MP1は、一つのピークPk1を有し、正規分布に従う形状になると考えられる。地色部分BSは、布目などの微細な構造を有するために輝度のムラがある。このために、第1の山部MP1は、比較的幅が広い形状となっている。輪郭のエッジLEは、細く濃い影を形成している単色の部分であるので、地色部分BSよりも輝度が大幅に低い。このために、輪郭のエッジLEに対応する第2の山部MP2は、一つのピークPk2を有し、正規分布に従う形状になる。ここで、輪郭のエッジLEは、細い線状の部分であるので、地色部分BSよりも画素数が大幅に少ない。このことから、大ブロックLBの中央値Mは、ほぼ第1の山部MP1のピークPk1と一致すると考えられる。大ブロックLBの中央値Mに代えて、大ブロックLBの平均値を用いると、例えば、ピークPk1とピークPk2との間が大きく離れている場合に、ピークPk2の影響が強くなり、平均値がピークPk1よりもピークPk2側にずれやすい。大ブロックLBの特徴量は、輪郭のエッジLEの有無に拘わらずに、大ブロックLBの地色部分BSの特徴を示すことが好ましいので、輪郭のエッジLEの有無に拘わらずに、ピークPk1の値に近い値を取ることが好ましい。このために、大ブロックLBの特徴量としては、平均値よりも中央値Mを用いることが好ましい。
【0075】
図10(B)の小ブロックSBaのヒストグラムは、地色部分BSに対応する第1の山部MP1aと、輪郭のエッジLEに対応する第2の山部MP2aと、を含んでいる。小ブロックSBaのヒストグラムの第1の山部MP1aのピークPk1aの位置、および、第2の山部MP2aのピークPk2aの位置は、図10(A)の大ブロックLBのヒストグラムのピークPk1、Pk2の位置とほぼ同じである。小ブロックSBは、大ブロックLBよりも小さいために、輪郭のエッジLEが含まれる確率は、大ブロックLBよりも小さいが、輪郭のエッジLEが含まれた場合には、小ブロックSBの全画素数に占める輪郭のエッジLEの画素数の割合は高くなる。このために、小ブロックSBaのヒストグラムにおいて第1の山部MP1aのピークPk1aに対する第2の山部MP2aのピークPk2aの相対的な高さは、大ブロックLBのヒストグラムにおけるピークPk1に対するピークPk2の相対的な高さよりも高くなっている。
【0076】
小ブロックSBbは、地色部分BSを含むが、輪郭のエッジLEを含まない(図8(A))。このために、図10(C)の小ブロックSBbのヒストグラムは、地色部分BSに対応する第1の山部MP1bを含み、輪郭のエッジLEに対応する山部を含んでいない。小ブロックSBbのヒストグラムの第1の山部MP1bのピークPk1bの位置は、図10(A)の大ブロックLBのヒストグラムのピークPk1の位置とほぼ同じである。
【0077】
小ブロックSBaのように、小ブロックSBに輪郭のエッジLEが含まれる場合には、輪郭のエッジLEの画素が占める割合は比較的高くなるので、小ブロックSBの平均値には、小ブロックSBに輪郭のエッジLEが含まれる場合と含まれない場合との間で差が生じる。具体的には、図8(B)の小ブロックSBbには輪郭のエッジLEが含まれないので、図10(C)の小ブロックSBbの平均値Abは、第1の山部MP1bのピークPk1bとほぼ同じになる。これに対して、図8(B)の小ブロックSBaには輪郭のエッジLEが含まれるので、図10(B)の小ブロックSBaの平均値Aaは、第1の山部MP1aのピークPk1aよりもピークPk1b側にずれる。このような特徴量の差は、特徴量として中央値Mを用いる場合よりも平均値を用いる場合の方が現れやすい。特に第1の山部のピークPk1a、Pk1bと、第2の山部のピークPk2aと、が離れている場合には、平均値を用いることが好ましい。
【0078】
上述のように、大ブロックLBの中央値Mは、第1の山部MP1、MPa、MPbのピークPk1、Pk1a、Pk1bとほぼ等しい。このために、小ブロックSBに輪郭のエッジLEが含まれる場合には、大ブロックLBの中央値Mと小ブロックSBの平均値との差が、小ブロックSBに輪郭のエッジLEが含まれない場合よりも大きくなる。
【0079】
以上のように、大ブロックLBの特徴量として中央値Mを用い、小ブロックSBの特徴量として平均値を用いることで、画像内の局所的なオブジェクトのエッジ、例えば、胸ポケットPCsの輪郭を構成するエッジをさらに精度良く特定できる。
【0080】
さらに、図9(A)を参照して説明したように、本実施例にて設定される複数個の小ブロックSBは、第1の小ブロック(例えば、図9(A)のSB1b)と、第1の小ブロックと一部が重なり、第1の小ブロックの外縁が内部を通る第2の小ブロック(例えば、図9(A)のSB2a)と、を含む。CPU310は、第1の小ブロックと第2の小ブロックとの少なくとも一方が、大ブロックLBの特徴量(中央値M)と小ブロックSBの特徴量(輝度値合計値T)とに基づく判断条件、本実施例では、{(M×N)-T}>THを満たす場合に、第1の小ブロックは局所エッジ領域であると判断する(図7のS440~S455)。この結果、例えば、CPU310は、第1の小ブロックの外縁に沿って局所エッジが存在する場合であっても第1の小ブロックは局所エッジ領域であると適切に判断することができる。したがって、局所エッジの検出漏れを抑制できる。例えば、図9(A)の第1の小ブロックSB1bと小ブロックSB1cとの境界に、局所エッジが存在する場合には、局所エッジを構成する画素のうちの一部だけが小ブロックSB1bに含まれ、残りの一部だけが小ブロックSB1cに含まれる場合がある。この場合には、小ブロックSB1bも小ブロックSB1cのいずれにも、局所エッジを構成する十分な個数の画素が含まれず、小ブロックSB1bも小ブロックSB1cのいずれも判断条件を満たさずに、局所エッジ領域であると判定されない可能性がある。一方で、小ブロックSB1bと小ブロックSB1cとの境界に、局所エッジが存在する場合には、当該局所エッジの全体が、第2の小ブロックSB2aに含まれるので、第2の小ブロックSB2aは、上記の判断条件を満たして適切に局所エッジ領域であると判定される。このように、本実施例では、第1の小ブロックSB1bと小ブロックSB1cとの境界に、局所エッジが存在する場合であっても、局所エッジの検出漏れを抑制することができる。
【0081】
さらに、本実施例によれば、CPU310は、図5のS300のエッジ検出処理によってエッジを構成する画素であると判断され、かつ、図5の310によって局所エッジ領域であると判断された小ブロックSBに含まれる画素を、局所エッジ画素として示す局所エッジ画像データを生成する(図5のS320)。この結果、画素ごとに画像内の局所的なオブジェクトのエッジが精度良く特定されたエッジ画像データを生成することができる。
【0082】
以上の説明から解るように、本実施例の小ブロックSBは、小領域の例であり、大ブロックLBは、大領域の例である。本実施例の中央値Mは、第1特徴量の例であり、輝度値合計値Tは、第2特徴量の例である。本実施例の媒体画像データは、第1画像データの例であり、見本画像データは、第2画像データの例である。
【0083】
B.変形例
(1)上記実施例では、局所エッジ画像データを、処理済媒体画像データおよびテンプレート画像データとして用いて、衣服S内の印刷対象領域を特定している。これに限らず、局所エッジ画像データは、他の様々な用途に用いられる。例えば、用紙内の印刷対象領域を特定するために、用紙内の印刷対象領域を示すマーカを特定するために、用紙をスキャンして得られるスキャンデータの局所エッジ画像データが用いられても良い。また、工業部品をロボットで操作するために、撮像画像内の工業部品を特定する際に、撮像画像データの局所エッジ画像データが用いられても良い。また、撮像画像やスキャン画像内のオブジェクトを特定するために限らず、例えば、撮像画像やスキャン画像内の局所エッジのみを強調する局所エッジ強調処理を行うために、局所エッジ画像データを用いて強調すべきエッジが特定されても良い。
【0084】
(2)上記実施例では、局所エッジ領域データと単純エッジ画像データとを用いて、最終的に局所エッジ画像データを生成している(図5のS320)。これに変えて、局所エッジ領域データを粗いエッジ画像データとして用いて、パターンマッチング処理が実行されても良い。この場合には、実施例よりもマッチングの精度は低下し得るが、マッチング速度をさらに高速にすることができる。
【0085】
(3)上記実施例では、媒体画像データと部分見本画像データとの両方に、マッチング前処理を実行して、パターンマッチングに用いる処理済媒体画像データとテンプレート画像とが生成される。これに代えて、テンプレート画像は、マッチング前処理を用いることなく、生成されても良い。例えば、上述のように特定対象のオブジェクトが工業部品である場合には、該工業部品のCADデータを用いて、線画でオブジェクトを表現するテンプレート画像データが生成されても良い。
【0086】
(4)上記実施例では、大ブロックLBの特徴量として中央値Mが用いられ、小ブロックSBの特徴量として平均値に関する値である輝度値合計値Tが用いられている。これに代えて、他の特徴量が用いられても良い。例えば、大ブロックLBの特徴量としても平均値に関する値が用いられ得る。例えば、特徴量としてヒストグラムを解析して得られる数値が用いられても良い。例えば、大ブロックLBの特徴量としてヒストグラムにおいて最も高い山部のピーク値が用いられ、小ブロックSBの特徴量としてヒストグラムにおいて基準以上の高さを有する1以上の山部のピーク値の平均値が用いられても良い。
【0087】
(5)上記実施例では、大ブロックLBおよび小ブロックSBの設定方法は、一例であり、これに限られない。例えば、大ブロックLBおよび小ブロックSBは、互いに重ならないように設定されても良い。また、大ブロックLBは、処理対象の注目小ブロックごとに、注目小ブロックを中心とし、注目小ブロックよりも大きなブロックであっても良い。また、大ブロックLBに代えて、注目小ブロックを含む円形の領域が用いられても良い。
【0088】
(6)図3(A)のテンプレート登録処理および図3(B)の印刷処理の全部または一部を実行する装置は、端末装置300に代えて、他の種々の装置であってよい。例えば、プリンタ200のCPU210や、撮像装置400のCPUが、図3(A)のテンプレート登録処理および図3(B)の印刷処理を実行しても良い。この場合には、端末装置300は不要である。また、図3(A)のテンプレート登録処理および図3(B)の印刷処理を実行する装置は、プリンタ200、端末装置300、撮像装置400の少なくとも1つとインターネットを介して接続されたサーバであっても良い。この場合に、サーバは、複数個の互いに通信可能な計算機によって構成されるいわゆるクラウドサーバであっても良い。
【0089】
(7)上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。
【0090】
また、本発明の機能の一部または全部がコンピュータプログラムで実現される場合には、そのプログラムは、コンピュータ読み取り可能な記録媒体(例えば、一時的ではない記録媒体)に格納された形で提供することができる。プログラムは、提供時と同一または異なる記録媒体(コンピュータ読み取り可能な記録媒体)に格納された状態で、使用され得る。「コンピュータ読み取り可能な記録媒体」は、メモリーカードやCD-ROMのような携帯型の記録媒体に限らず、各種ROM等のコンピュータ内の内部記憶装置や、ハードディスクドライブ等のコンピュータに接続されている外部記憶装置も含み得る。
【0091】
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【符号の説明】
【0092】
100…印刷機構,1000…印刷システム,110…印刷ヘッド,120…ヘッド駆動部,130…主走査部,140…搬送部,142…プラテン,144…トレイ,200…プリンタ,201…筐体,210…CPU,220…不揮発性記憶装置,230…揮発性記憶装置,260…操作部,270…表示部,280…通信部,300…端末装置,310…CPU,320…不揮発性記憶装置,330…揮発性記憶装置,360…操作部,370…表示部,380…通信部,400…撮像装置,AI…局所エッジ領域画像,EI…単純エッジ画像,Is…媒体画像,It…見本画像,LB…大ブロック,LEI…局所エッジ画像,PG1,PG2…コンピュータプログラム,PIt…部分見本画像,SB…小ブロック,TI…テンプレート画像
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10