JP2017010271A - 情報処理装置、画像形成システム、画像形成装置、プログラム - Google Patents

情報処理装置、画像形成システム、画像形成装置、プログラム Download PDF

Info

Publication number
JP2017010271A
JP2017010271A JP2015125048A JP2015125048A JP2017010271A JP 2017010271 A JP2017010271 A JP 2017010271A JP 2015125048 A JP2015125048 A JP 2015125048A JP 2015125048 A JP2015125048 A JP 2015125048A JP 2017010271 A JP2017010271 A JP 2017010271A
Authority
JP
Japan
Prior art keywords
image data
print medium
image forming
forming apparatus
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2015125048A
Other languages
English (en)
Inventor
俊彰 細川
Toshiaki Hosokawa
俊彰 細川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2015125048A priority Critical patent/JP2017010271A/ja
Publication of JP2017010271A publication Critical patent/JP2017010271A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Printers Characterized By Their Purpose (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

【課題】印刷媒体上の位置を検知できる情報処理装置を提供する。
【解決手段】印刷媒体上の位置を移動しながら画像データに基づき画像を形成する画像形成装置20(ハンドヘルドプリンタ)と通信可能な情報処理装置11画像データ出力器であって、画像形成装置及び印刷媒体の撮像データを取得する撮像部52と、撮像データから印刷媒体を検出する印刷媒体検出部54と、撮像データから画像形成装置を検出する特徴点検出部53と、印刷媒体検出手段が検出した印刷媒体上の画像形成装置の位置を決定する装置位置決定部55と、画像形成装置の位置を画像形成装置に送信する送受信部51と、を有する。
【選択図】図6

Description

本発明は、情報処理装置、画像形成システム、画像形成装置及びプログラムに関する。
用紙を搬送させて用紙が画像の形成位置に到達したタイミングでインクなどを吐出して画像を形成するプリンタ装置が知られている。これに対し、プリンタ装置から紙搬送システムを削除することで小型化されたプリンタ装置(以下、ハンドヘルドプリンタという)が実用化されつつある。
図1は、ハンドヘルドプリンタ20による画像形成を模式的に示す図の一例である。ハンドヘルドプリンタ20には、例えばスマートフォンやPC(Personal Computer)等の画像データ出力器11から画像データが送信される。ユーザはこのハンドヘルドプリンタ20を把持して、印刷媒体12(例えば定型用紙やノートなど)上をフリーハンドで走査させる。ハンドヘルドプリンタ20は位置検出機構を有しているため、ハンドヘルドプリンタ20が目標吐出位置に移動すると、目標吐出位置で吐出すべき色のインクを吐出する。すでにインクを吐出した場所はマスクされるので(インクの吐出の対象とならないので)、ユーザは印刷媒体12上で任意の方向にハンドヘルドプリンタ20を走査させることで画像を形成できる。
ところで、従来のハンドヘルドプリンタ20が検出する位置は、例えば画像形成の開始位置を原点とする相対位置である。つまり、画像形成の開始位置が無条件に原点とされてしまうため、ユーザは印刷媒体12の例えば左上などの決まった場所からハンドヘルドプリンタの走査を開始しなければならない。
このような不都合に対し、印刷媒体12上の絶対位置を検出可能な技術も知られている(例えば、特許文献1参照。)。特許文献1には、符号化可能な絶対位置情報等が形成された用紙を用い、ハンドヘルドプリンタがそれを読み取ることで印刷媒体上の絶対位置を検出できるという記載がある。このような特殊な用紙を用いれば、ハンドヘルドプリンタが印刷媒体における絶対位置を検知できるので、ユーザは印刷媒体12の任意の場所からハンドヘルドプリンタの走査を開始できる。
しかしながら、特許文献1に記載されている技術では、絶対位置情報が形成された特殊な用紙が必要であるし、さらに、ハンドヘルドプリンタが絶対位置情報を読み取るためのスキャナユニットを有していなければならないという問題がある。
本発明は、上記課題に鑑み、印刷媒体上の位置を検知できる情報処理装置を提供することを目的とする。
本発明は、上記課題に鑑み、印刷媒体上の位置を移動しながら画像データに基づき画像を形成する画像形成装置と通信可能な情報処理装置であって、前記画像形成装置及び前記印刷媒体の撮像データを取得する取得手段と、前記撮像データから前記印刷媒体を検出する印刷媒体検出手段と、前記撮像データから前記画像形成装置を検出する画像形成装置検出手段と、前記印刷媒体検出手段が検出した前記印刷媒体上の前記画像形成装置の位置を決定する位置決定手段と、前記画像形成装置の位置を前記画像形成装置に送信する送信手段と、を有する。
印刷媒体上の位置を検知できる情報処理装置を提供することができる。
ハンドヘルドプリンタによる画像形成を模式的に示す図の一例である。 ハンドヘルドプリンタの印刷媒体上の絶対位置を検出する画像形成システムについて説明する図の一例である。 画像形成システムのシステム構成図の一例である。 画像データ出力器とハンドヘルドプリンタのハードウェア構成図の一例である。 制御部の構成を説明する図の一例である。 画像データ出力器とハンドヘルドプリンタの機能ブロック図の一例である。 IJ記録ヘッドにおけるノズル位置等を説明する図の一例である。 ハンドヘルドプリンタの位置を説明する図の一例である。 ハンドヘルドプリンタの上面図における位置検出マークの配置例を示す図である。 位置検出マークとナビゲーションセンサの相対位置を示す図の一例である。 撮像データにおけるハンドヘルドプリンタの位置を説明する図の一例である。 印刷媒体への画像データの配置方法を説明する図の一例である。 印刷媒体への画像データの配置方法を説明する図の一例である。 印刷媒体に配置された画像データ及びハンドヘルドプリンタの位置の一例を示す図である。 画像データ出力器が画像データに対するハンドヘルドプリンタの位置を検出する手順を示すフローチャート図の一例である。 ARマーカーが形成されたハンドヘルドプリンタを撮像する画像データ出力器を示す図の一例である。 マーカー座標系、マーカー座標系におけるナビゲーションセンサの座標を示す図の一例である。 マーカー座標系とモデル座標系の関係を説明する図の一例である。 SfMに適したハンドヘルドプリンタを撮像する画像データ出力器を示す図の一例である。 ハンドヘルドプリンタの寸法を説明する図の一例である。 画像データ出力器の機能ブロック図の一例である(実施例2)。 プレビュー表示を模式的に説明する図の一例である。 平行移動される画像データを説明する図の一例である。 平行移動、拡大・縮小後の画像データとハンドヘルドプリンタの相対位置を示す図の一例である。 画像形成システムの動作手順を説明するためのフローチャート図の一例である(実施例2)。 平行移動、変倍によるトリミングを模式的に示す図の一例である。 画像データ出力器の機能ブロック図の一例である(実施例3)。 ハンドヘルドプリンタと印刷媒体を撮像する画像データ出力器を示す図の一例である。 印刷媒体への画像データの配置を模式的に説明する図の一例である。 画像データ出力器の動作手順を示すフローチャート図の一例である。 ハンドヘルドプリンタとハガキと呼ばれる印刷媒体を撮像する画像データ出力器を示す図の一例である。 ハガキへの画像データの配置を模式的に示す図の一例である。 画像データ出力器の動作手順を示すフローチャート図の一例である(実施例3)。
以下、本発明を実施するための形態について図面を参照しながら実施例を挙げて説明する。
<処理の概略>
まず、図2を用いて印刷媒体12におけるハンドヘルドプリンタ20の絶対位置の検出の概略について説明する。図2は、ハンドヘルドプリンタ20の印刷媒体12上の絶対位置を検出する画像形成システム1について説明する図の一例である。なお、絶対位置とは、印刷媒体12上の予め定められた原点を基準としてハンドヘルドプリンタ20の位置を特定するための座標である。従来は、画像形成の開始位置が原点であったため、開始位置に対する相対座標しか得られなかった。なお、以下では、ハンドヘルドプリンタ20を以下「HHP(Hand Held Printer)」と称する。
図2(a)に示すように、ユーザは画像データ出力器11でHHP20を好ましくは印刷媒体12の正面から(光軸が印刷媒体12に垂直になるように)撮像する。HHP20には予め所定の位置検出マークM1,M2が形成されている。HHP20における位置検出マークM1,M2の位置は既知であり、また、観測側がHHP20の姿勢を分かるように配置されている。
画像データ出力器11は撮像データ14を解析して、位置検出マークM1,M2を検出することで、印刷媒体12におけるHHP20の位置と姿勢を推定できる。また、画像データ出力器11は、例えば長方形のエッジで囲まれた領域などとして印刷媒体12を検出する。位置検出マークM1とM2の間の距離が既知なので、実空間における印刷媒体12の寸法を検出することができる。
画像データ出力器11は、図2(b)に示すように、ユーザが画像形成しようとしている画像データ13を撮像データ14の印刷媒体12上に配置する。画像データ13は、印刷媒体12の左上コーナーから余白分だけ内側に配置してもよいし、印刷媒体12の中央に配置してもよい。印刷媒体12及び画像データ13のサイズに応じて拡大・縮小してもよい。
図2(b)のように印刷媒体12に画像データ13が配置されることで、HHP20に対する画像データ13の位置が定まる。すなわち、HHP20の位置が画像データ13のどの位置と一致しているかが明らかになる。
画像データ出力器11は、画像データ13に対するHHP20の位置(画像データ13の原点に対する座標。相対位置情報)をHHP20に通知する。印刷媒体12に対する画像データ13の配置位置は制御値なので、画像データ13に対するHHP20の位置は、印刷媒体12におけるHHP20の位置ということができる。また、画像データ出力器11は、印刷媒体12に配置した画像データ13をHHP20に送信する。これにより、HHP20は、画像データ13に対する自機の位置から画像形成を開始できる。
このように、画像データ出力器11は印刷媒体12に対するHHP20の絶対座標を検知することができる。印刷媒体12に対する絶対座標が分かるので、印刷媒体12に対し配置された画像データとHHP20の相対位置がわかる。これにより、HHP20が撮像時に置かれていた場所からユーザは画像形成を開始できる。また、例えば、画像形成の終了前にHHP20が位置を見失った場合、従来は、画像形成の再開が困難であったが、本実施例では、絶対位置を検出できるので画像形成を再開できる。
<用語について>
本実施形態で使用される用語について説明する。
画像データ13…画像形成に用いられるデータであり、画像データ出力器11が保持している。
撮像データ14…印刷媒体12とHHP20が撮像されたデータである。
印刷媒体12…例えば定形用紙やノートなどであるが、これらに限られるわけではなく、机などの固定物を印刷媒体12としてもよいし、紙以外のシート状部材を印刷媒体12としてもよい。また、印刷媒体12は必ずしも水平に配置されていなくてもよい。
<構成例>
図3は、画像形成システム1のシステム構成図の一例を示す。図3(a)の画像形成システム1は、互いに通信可能な画像データ出力器11とハンドヘルドプリンタ20を有している。このようなシステム構成では、画像データ出力器11が画像データ13をHHP20に送信すると共に、画像データ出力器11がHHPと印刷媒体12を撮像する。
画像データ出力器11は、画像データ13に対するHHP20の位置を検出してHHP20に送信する。
また、図3(a)のシステム構成において、HHP20が画像データ13に対するHHP20の位置を検出してもよい。この場合、画像データ出力器11は撮像データ14をHHP20に送信する。HHP20は少なくとも一部の画像データ13を保持しているが、必要であれば画像データ出力器11から画像データ13の全体を取得する。HHP20は、画像データ出力器11と同様に、画像データ13に対するHHP20の位置を検出する。
図3(b)の画像形成システム1は画像データ出力器11、HHP20及び撮像装置8を有している。このようなシステム構成では、撮像装置8がHHP20と印刷媒体12を撮像する。撮像装置8は撮像データ14を画像データ出力器11に送信するので、画像データ出力器11は、撮像データ14を解析して画像データ13に対するHHP20の位置を検出してHHP20に送信する。
また、この場合もHHP20が画像データ13に対するHHP20の位置を検出してもよい。この場合、撮像装置8は撮像データ14をHHP20に送信する(画像データ出力器11を経由して送信してもよい)。HHP20は図3(a)と同様に画像データ13に対するHHP20の位置を検出する。
また、撮像装置8がHHP20の位置を検出してもよい。この場合、撮像装置8は画像データ出力器11から画像データ13を取得して、画像データ13に対するHHP20の位置を検出する。撮像装置8は検出した位置をHHP20に送信する。
本実施形態の画像形成システム1では、このように画像データ13と撮像データ14を取得した装置であれば、HHP20の位置を検出できる。従って、図3(c)に示すように、画像データ出力器11が画像データ13と撮像データ14をサーバ9に送信することで、サーバ9が画像データ13に対するHHP20の位置を検出してもよい。サーバ9は検出した位置を画像データ出力器11に送信し、画像データ出力器11はこの位置をHHP20に送信する。
以下では、説明の便宜上、画像データ出力器11がHHP20の位置(絶対座標)を検出するものとして説明する。
なお、画像データ出力器11は、情報処理装置である。例えばスマートフォン、PC(Personal Computer)、タブレット端末、PDA(Personal Digital Assistant)、携帯電話又はウェアラブルPCなどである。あるいは、MFP(Multifunctional Peripheral/Printer/Product)、各種のカメラ、電子黒板、ゲーム機器、カーナビゲーション端末、プロジェクタなどでもよい。
<<ハードウェア構成>>
図4を用いて画像データ出力器11とHHP20のハードウェア構成について説明する。画像データ出力器11は、例えば図4に示すようなハードウェア構成により実現される。画像データ出力器11は、入力装置101、表示装置102、外部I/F103、カメラ110、RAM104、ROM105、CPU106、通信I/F107、SSD(Solid State Drive)108、及び近距離無線通信装置109などを備え、それぞれがバスBで相互に接続されている。
入力装置101は、例えば、タッチパネルであり、画像データ出力器11に各操作信号を入力するのに用いられる。なお、入力装置101は、キーボードやマウスなどであってもよい。表示装置102は、例えば、LCD(Liquid Crystal Display)などであり、画像データ出力器11による処理結果を表示する。
外部I/F103は、外部装置とのインタフェースである。外部装置には、記録媒体103aなどがある。記録媒体103aには、本実施形態の機能を実現するためのプログラム(後述する出力器用プログラム)を格納することができる。画像データ出力器11は外部I/F103を介して、記録媒体103aの読み取り及び/又は書き込みを行うことができる。
記録媒体103aは、例えば、SDメモリカード(SD Memory card)などの記録媒体である。記録媒体103aは、USBメモリ(Universal Serial Bus memory)、DVD(Digital Versatile Disk)、CD(Compact Disk)、フレキシブルディスクなどの記録媒体であってもよい。
カメラ110は、像を結像させるレンズ、絞り、CMOSやCCDなどの撮像素子などを備えた撮像装置である。静止画だけでなく動画を撮像できる。
RAM104は、プログラムやデータを一時保持する揮発性の半導体メモリ(記憶装置)である。ROM105は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリ(記憶装置)である。ROM105には、画像データ出力器11の起動時に実行されるBIOS(Basic Input/Output System)、OS設定、及びネットワーク設定などのプログラムやデータが格納されている。
CPU106は、ROM105やSSD108などの記憶装置からプログラムやデータをRAM104上に読み出し、処理を実行することで、画像データ出力器11全体の制御や機能を実現する演算装置である。
通信I/F107は、通信を行うためのインタフェースである。通信I/F107は、例えばBluetooth(登録商標)や無線LANなどの通信規格でHHP20と通信する。なお、アクセスポイントを介さない無線LANの通信規格として、Wi−Fi Direct、アドホックモードなどがある。なお、通信I/F107は、携帯電話網に接続するためのインタフェースであってもよい。
SSD108は、プログラムやデータを格納している不揮発性の記憶装置である。格納されるプログラムやデータには、例えば画像データ出力器11全体を制御する基本ソフトウェアであるOS(Operating System)や、OS上において各種機能を提供するアプリケーションソフトウェア(後述する出力器用プログラムが含まれる)などがある。なお、画像データ出力器11は、SSD108の代わりに又はSSD108と併せて、HDD(Hard Disk Drive)等を備えていてもよい。
近距離無線通信装置109は、例えば、NFC(Near Field Communication)やTransferJet(登録商標)などのICチップを用いた通信規格に従って通信する。画像データ出力器11は、通信I/Fや近距離無線通信装置109を用いてHHP20に画像データ13を送信する。この場合、HHP20もICチップによる通信が可能である。
続いて、図4を用いてHHP20のハードウェア構成について説明する。HHP20は、印刷媒体12に画像を形成する画像形成装置の一例である。HHP20は、制御部25によって全体の動作が制御され、制御部25には通信I/F27、IJ記録ヘッド駆動回路23、OPU26、ROM28、DRAM29、及び、ナビゲーションセンサ30が電気的に接続されている。また、HHP20は電力により駆動されるため、電源22と電源回路21を有している。電源回路21が生成する電力は、点線22aで示す配線などにより、通信I/F27、IJ記録ヘッド駆動回路23、OPU26、ROM28、DRAM29、IJ記録ヘッド24、制御部25、及び、ナビゲーションセンサ30に供給されている。
電源22は主に電池(バッテリー)が利用される。太陽電池や商用電源(交流電源)、燃料電池等が用いられてもよい。電源回路21は、電源22が供給する電力をHHP20の各部に分配する。また、電源22の電圧を各部に適した電圧に降圧や昇圧する。また、電源22が電池で充電可能である場合、電源回路21は交流電源の接続を検出して電池の充電回路に接続し、電源22の充電を可能にする。
通信I/F27は、スマートフォンやPC等の画像データ出力器11から画像データ13の受信等を行う。通信I/F27は例えば無線LAN、Bluetooth(登録商標)、NFC(Near Field Communication)、赤外線、3G(携帯電話)、又は、LTE(Long Term Evolution)等の通信規格に対応した通信装置である。また、このような無線通信の他、有線LAN、USBケーブルなどを用いた有線通信に対応した通信装置であってもよい。
ROM28は、HHP20のハードウェア制御を行うファームウェアや、IJ記録ヘッド24の駆動波形データ(液滴を吐出するための電圧変化を規定するデータ)や、HHP20の初期設定データ等を格納している。
DRAM29は通信I/F27が受信した画像データ13を記憶したり、ROM28から展開されたファームウェアを格納したりするために使用される。従って、CPU31がファームウェアを実行する際のワークメモリとして使用される。
ナビゲーションセンサ30は、HHP20の位置を検出するセンサである。ナビゲーションセンサ30は、例えば、発光ダイオード(LED)やレーザ等の光源と、印刷媒体12を撮像する撮像センサ、又は、入反射光の干渉縞を撮像するセンサを有している。HHP20が印刷媒体12上を走査されると、印刷媒体12の微小なエッジが次々に検出され(撮像され)エッジ間の距離を解析することで移動量が得られる。ナビゲーションセンサ30は、HHP20の少なくとも2箇所に搭載されている。両者を区別する場合、ナビゲーションセンサS0,S1という。なお、ナビゲーションセンサ30として、さらに多軸の加速度センサやジャイロセンサ等を用いてもよく、加速度センサやジャイロセンサのみでHHP20の位置を検出してもよい。
OPU(Operation Unit)26は、HHP20の状態を表示するLED、ユーザがHHP20に画像形成を指示するためのスイッチ等を有している。ただし、これに限定するものではなく、液晶ディスプレイを有していてよく、さらにタッチパネルを有していてもよい。また、音声入力機能を有していてもよい。
IJ記録ヘッド駆動回路23は上記の駆動波形データを用いて、IJ記録ヘッド24を駆動するための駆動波形(電圧)を生成する。インクの液滴のサイズなどに応じた駆動波形を生成できる。
IJ記録ヘッド24は、インクを吐出するためのヘッドである。図ではCMYKの4色のインクを吐出可能になっているが、単色でもよく5色以上の吐出が可能でもよい。各色ごとに一列(二列以上でもよい)に並んだ複数のインク吐出用のノズル(後述する)が配置されている。また、インクの吐出方式はピエゾ方式でもサーマル方式でもよく、この他の方式でもよい。
制御部25は、ナビゲーションセンサ30が検出する移動量を元に、IJ記録ヘッド24の各ノズルの位置、該位置に応じて形成する画像の決定、吐出ノズル可否判定(ノズルの位置が目標吐出位置から所定範囲内かどうかの判定)等を行う。制御部25について詳細は次述する。
図5は、制御部25の構成を説明する図の一例である。制御部25はSoC50とASIC/FPGA40を有している。SoC50とASIC/FPGA40はバス45,46を介して通信する。ASIC/FPGA40はどちらの実装技術で設計されてもよいことを意味し、ASIC/FPGA40以外の他の実装技術で構成されてよい。また、SoC50とASIC/FPGA40を別のチップにすることなく1つのチップや基盤で構成してもよい。あるいは、3つ以上のチップや基盤で実装してもよい。
SoC50は、バス46を介して接続されたCPU31、位置算出回路32、メモリCTL(コントローラ)35、及び、ROM CTL(コントローラ)36等の機能を有している。なお、SoC50が有する構成要素はこれらに限られない。
また、ASIC/FPGA40は、バス45を介して接続されたImage RAM37、DMAC38、回転器39、割込みコントローラ41、ナビゲーションセンサI/F42、印字/センサタイミング生成部43、及び、IJ記録ヘッド制御部44を有している。なお、ASIC/FPGA40が有する構成要素はこれらに限られない。
CPU31は、ROM28からDRAM29に展開されたファームウェア(プログラム)などを実行し、SoC50内の位置算出回路32、メモリCTL35、及び、ROM CTL36の動作を制御する。また、ASIC/FPGA40内のImage RAM37、DMAC38、回転器39、割込みコントローラ41、ナビゲーションセンサI/F42、印字/センサタイミング生成部43、及び、IJ記録ヘッド制御部44の動作を制御する。
位置算出回路32は、ナビゲーションセンサ30が検出するサンプリング周期ごとの移動量に基づいてHHP20の位置(座標情報)を算出する。HHP20の位置とは、厳密にはノズル61の位置であるが、ナビゲーションセンサ30のある位置が分かればノズル61の位置を算出できる。本実施例では、特に断らない限りナビゲーションセンサ30の位置としてナビゲーションセンサS0、S1の位置をいう。また、位置算出回路32は目標吐出位置を算出する。
ナビゲーションセンサ30の位置は、後述するように例えば所定の原点(例えば、印刷用紙又は画像データ13の左上コーナーなど)を基準に算出されている。また、位置算出回路32は、過去の位置と最も新しい位置の差に基づいて移動速度や移動方向を推定し、例えば次回の算出タイミングにおける位置を予測する。こうすることで、ユーザの走査に対する遅れを抑制してインクを吐出できる。
メモリCTL35は、DRAM29とのインタフェースであり、DRAM29に対しデータを要求し、取得したファームウェアをCPU31に送出したり、取得した画像データ13をASIC/FPGA40に送出したりする。
ROM CTL36は、ROM28とのインタフェースであり、ROM28に対しデータを要求し、取得したデータをCPU31やASIC/FPGA40に送出する。
DMAC38は、位置算出回路32が算出した位置情報を元に、メモリCTL35を介してIJ記録ヘッド24の各ノズル周辺の画像データ13を取得する。つまり、印刷媒体12に対しHHP20が存在する位置の周辺の画像データ13が取得される。
回転器39は、DMAC38が取得した画像データを、インクを吐出するヘッド、及び、ヘッド内のノズル位置に応じて回転させる。DMAC38は回転後の画像データをIJ記録ヘッド制御部44へ出力する。回転器39は、例えば、位置算出回路32が位置を算出する際に算出した回転角θを取得し、その回転角θを用いて画像を回転させることができる。
Image RAM37はDMAC38が取得した画像データ13を一時的に格納する。すなわち、ある程度の画像データ13がバッファリングされ、HHP20の位置に応じて読み出される。
IJ記録ヘッド制御部44は、画像データ13(ビットマップデータ)にディザ処理などを施して大きさと密度で画像を表す点の集合に画像データ13を変換する。これにより、画像データ13は吐出位置と点のサイズのデータとなる。IJ記録ヘッド制御部44は点のサイズに応じた制御信号をIJ記録ヘッド駆動回路23に出力する。IJ記録ヘッド駆動回路23は上記のように制御信号に対応した駆動波形データを用いて、駆動波形(電圧)を生成する。
ナビゲーションセンサI/F42は、ナビゲーションセンサ30と通信し、ナビゲーションセンサ30からの情報として移動量ΔX´、ΔY´(これらについては後述する)を受信し、その値を内部レジスタに格納する。
印字/センサタイミング生成部43は、ナビゲーションセンサI/F42にナビゲーションセンサ30の情報を読み取るタイミングを通知し、IJ記録ヘッド制御部44に駆動タイミングを通知する。IJ記録ヘッド制御部44は吐出ノズル可否判定を行い、インクを吐出すべき目標吐出位置があればインクを吐出し、目標吐出位置がなければ吐出しないと判定する。
割込みコントローラ41は、ナビゲーションセンサI/F42がナビゲーションセンサ30との通信が完了したことを検知して、SoC50へそれを通知するための割り込み信号を出力する。CPU31はこの割り込みにより、ナビゲーションセンサI/F42が内部レジスタに記憶するΔX´、ΔY´を取得する。その他、エラー等のステータス通知機能も有する。
<画像データ出力器11とHHPの機能について>
続いて、図6を用いて画像データ出力器11とHHP20の機能について説明する。図6は画像データ出力器11とHHP20の機能ブロック図の一例である。
<<画像データ出力器>>
画像データ出力器11は、送受信部51、撮像部52、特徴点検出部53、印刷媒体検出部54、装置位置決定部55、画像データ配置部56、印字画像変換部57、操作受付部58、及び記憶・読出部59を有している。画像データ出力器11が有するこれらの各部は、図4に示されている各構成要素のいずれかが、SSD108からRAM104上に展開された出力器用プログラム1001に従ったCPU106からの命令によって動作することで実現される機能、又は機能される手段である。
また、画像データ出力器11は、図4に示されているSSD106、RAM104、又は記録媒体103aによって構築される記憶部1000を有している。記憶部1000には出力器用プログラム1001、撮像データ14、及び、画像データ13が記憶される。出力器用プログラム1001は記録媒体103aに記憶された状態で配布される他、プログラムを配信するサーバ装置から配信されてもよい。
送受信部51は、図4に示されているCPU106からの命令、通信I/F107及び近距離無線通信装置109によって実現され、HHP20と各種データの送受信を行う。
撮像部52は、図4に示されているCPU106からの命令、及びカメラ110によって実現され、印刷媒体12とHHP20を撮像する。なお、撮像部が撮像する撮像データ14はユーザの操作を契機に撮像される静止画の場合と、継続して撮像される動画の場合がある。
特徴点検出部53は、図4に示されているCPU106からの命令等により実現され、撮像データ14から後述する位置検出マークM1,M2を検出する。詳細は後述される。
印刷媒体検出部54は、図4に示されているCPU106からの命令等により実現され、撮像データ14から印刷媒体12を検出する。詳細は後述される。
装置位置決定部55は、図4に示されているCPU106からの命令等により実現され、印刷媒体12又は画像データに対するHHP20の位置を決定する。
画像データ配置部56は、図4に示されているCPU106からの命令等により実現され、撮像された印刷媒体12に画像データ13を配置する。
印字画像変換部57は、図4に示されているCPU106からの命令等により実現され、画像データ13を印刷ジョブに変換する。
操作受付部58は、図4に示されているCPU106からの命令及び入力装置101等により実現され、ユーザからの各種の操作を受け付ける。
記憶・読出部59は、図4に示されているCPU106からの命令、及ぶSSD108等によって実現され、記憶部1000に各種データを記憶したり、記憶部1000に記憶された各種データを読み出したりする処理を行う。
<<HHP>>
HHP20は、送受信部71、位置設定部72、及び記憶・読出部79を有している。HHP20が有するこれらの各部は、図4,5に示されている各構成要素のいずれかが、ROM28からDRAM29上に展開されたプリンタ用プログラム2001に従ったCPU31からの命令によって動作することで実現される機能、又は機能される手段である。
また、HHP20は、図4に示されているROM28又はDRAM29によって構築される記憶部2000を有している。記憶部2000にはプリンタ用プログラム2001が記憶される。
送受信部71は、図5に示されているCPU31からの命令、及び通信I/F27等によって実現され、画像データ出力器11と各種データの送受信を行う。
位置設定部72は、図5に示されているCPU31からの命令、及び位置算出回路32などによって実現され、画像データ出力器11から送信された画像データ13に対するHHP20の位置を位置算出回路32に設定する。
記憶・読出部79は、図5に示されているCPU31からの命令、ROM28及びDRAM29等によって実現され、記憶部2000に各種データを記憶したり、記憶部2000に記憶された各種データを読み出したりする処理を行う。
<IJ記録ヘッドにおけるノズル位置について>
次に、図7を用いて、IJ記録ヘッド24におけるノズル位置等について説明する。図7(a)は、HHP20の平面図の一例である。図7(b)はIJ記録ヘッド24のみを説明する図の一例である。図示されている面が印刷媒体12に対向する面である。
本実施形態のHHP20は、2つ以上のナビゲーションセンサ30を有している。ナビゲーションセンサ30が2つ以上あることで、ナビゲーションセンサ30が画像形成中に印刷媒体12に対し回転しても回転角θを検出できる。図7(a)ではノズル61の配列方向に離間して2つのナビゲーションセンサS0,S1が配置されている。2つのナビゲーションセンサS0,S1の間の長さは距離Lである。距離Lは長いほどよい。これは、距離Lが長いほど検出可能な最小の回転角θが小さくなり、HHP20の位置の誤差が少なくなるからである。
ナビゲーションセンサ30からIJ記録ヘッド24までの距離はそれぞれ距離a、bである。距離aと、距離bは等しくてもよい。また、図7(b)に示すように、IJ記録ヘッド24の端から最初のノズル61までの距離は距離d、隣接するノズル間の距離は距離eである。a〜eの値はROM28などに予め記憶されている。
従って、位置算出回路32などがナビゲーションセンサ30の位置を算出すれば、距離a、距離b、距離d、距離eを用いて、位置算出回路32はノズル61の位置を算出できる。
本実施形態では、印刷媒体12に水平な方向をX軸、垂直な方向をY軸に設定する。この座標を印刷媒体座標と称することにする。これに対し、ナビゲーションセンサ30は次のような座標軸(X´軸、Y´軸)で位置を出力する。すなわち、ノズル61の配列方向(2つのナビゲーションセンサS0、S1を結ぶ方向)をY´軸、Y´軸に直交する方向をX´軸とする。位置の算出は位置算出回路32によって行われる。
<印刷媒体におけるHHPの位置について>
次に、図8を用いて、HHP20の位置について説明する。図8(a)では、印刷媒体12に対しHHP20が時計回りにθ回転している。全く回転していなければ、X=X´、Y=Y´である。しかし、HHP20が印刷媒体12に対し回転角θ、回転した場合、ナビゲーションセンサS0、S1の出力とHHP20の印刷媒体12における実際の位置が一致しなくなる。
このため、図8(a)に示すように、ナビゲーションセンサS0,S1が出力するΔX´、ΔY´は、印刷媒体座標のX、Yと以下のように対応する。図8(a)では回転角θのHHP20がX方向にのみ同じ回転角θのまま移動した場合のナビゲーションセンサS0,S1(平行移動なので出力は等しい)が検出する移動量ΔX´、ΔY´とX,Yの対応を示している。ナビゲーションセンサS0,S1が出力するΔX´はX1に反映され、ΔY´はX2に反映される。
図8(b)では回転角θのHHP20がY方向にのみ同じ回転角θのまま移動した場合のナビゲーションセンサS0,S1(平行移動なので出力は等しい)が検出する移動量ΔX´、ΔY´とX,Yの対応を示している。ナビゲーションセンサS0,S1が出力するΔY´はY1に反映され、−ΔX´はY2に反映される。
従って、HHP20がX方向及びY方向に回転角θのまま移動した場合、ナビゲーションセンサS0,S1が出力するΔX´、ΔY´は印刷媒体座標のX,Yに以下のように変換できる。
X=ΔX´cosθ+ΔY´sinθ …(1)
Y=−ΔX´sinθ+ΔY´cosθ …(2)
このように、回転角θが分かれば画像形成の開始位置を基点にして、式(1)(2)からナビゲーションセンサS0,S1の印刷媒体座標の位置を求めることができる。画像形成の開始位置は、ユーザが印刷媒体12にHHP20を配置した位置である。本実施例では、印刷媒体12とHHP20の撮像時における、印刷媒体12上のHHP20の位置である。
なお、ΔX´、ΔY´のサンプリング時間における回転角dθは2つのナビゲーションセンサS0,S1の出力(ΔX´0、ΔX´1)の差から以下のようにして求めることができる。dθが蓄積されることで回転角θを求めることができる。
dθ=arcsin{(ΔX´0−ΔX´1)/L} …(3)
<位置検出マーク>
図9を用いて位置検出マークM1、M2について説明する。図9では、HHP20の上面図における位置検出マークM1、M2の配置例を示している。HHP20の少なくとも2点の位置が分かれば、HHP20の位置と姿勢を決定できる。このため、位置検出マークM1、M2は2点の位置を特定できるように二箇所に配置されている。
位置検出マークM1,M2は、HHP20に一体に形成されていてもよいし、シールのように貼付されたものでもよい。また、OPU26が液晶ディスプレイなどの場合、OPU26が表示してもよい。
図9(a)ではHHP20の右上コーナーと左下コーナーにそれぞれ位置検出マークM1、M2が配置されている。どちらの位置検出マークM1,M2もHHP20の1点の座標を示すため、撮像データ14からは、例えば位置検出マークM1の左上頂点P1の座標が検出され、位置検出マークM2の上側頂点P2の座標が検出される。これら以外の頂点が検出されてもよい。
また、図9(a)では位置検出マークM1とM2の向きが異なっているが(位置検出マークM2が菱形形状になっている)、図9(b)に示すように位置検出マークM1とM2の向きは同じでもよい。また、図9(c)に示すように、HHP20の右上コーナーと左上コーナーにそれぞれ位置検出マークM1、M2が配置されていてもよい。
また、図9(d)ではHHP20の右上コーナーに1つのみ位置検出マークM1が配置されている。この位置検出マークM1は中央に長方形のベタ部とそれを囲む四角とを有している。このような位置検出マークM1では上下方向と左右方向で、横切る直線が通過する黒、白の画素の長さの比が異なる。例えば、上下方向に1(黒):1(白):3(黒):1(白):1(黒)、左右方向に1(黒):1(白):7(黒):1(白):1(黒)、になる。このような予め定められた白黒の画素の比率が、角度が90度異なる2本の直線で検出された場合、位置検出マークM1が検出されたと判断してよいので、位置検出マークM1の検出精度を向上させることができる。このため、位置検出マークM1が1つのみ配置された場合でも、例えば位置検出マークM1の左上頂点P3と右下頂点P4をそれぞれHHP20の2点の位置として採用できる。
同様に、図9(a)〜(c)の矩形状の位置検出マークM1、M2がいずれか1つのみが配置されていても、位置検出マークM1(又はM2)が長方形などの向きが分かる形状であれば、位置検出マークM1(又はM2)の任意の2つ以上の頂点の位置をHHP20の2点の座標として採用してよい。
また、位置検出マークM1、M2は三角形、星形などでもよい。また、位置検出マークM1、M2の2つが配置される場合、位置検出マークM1、M2は円形でもよい。
続いて、位置検出マークM1、M2の検出方法について説明する。位置検出マークM1、M2は、HHP20の筐体の色と異なる色で形成されている。従って、特徴点検出部53は例えば以下のような手順で撮像データ14から位置検出マークM1、M2を検出できる。以下では、図9(a)〜(c)の位置検出マークM1,M2の検出方法を説明する。
(i) 画像を白又は黒に二値化する。
(ii) 連続した黒画素を探しだす。
(iii) 上下左右方向のエッジを検出する。
(iv) ハフ変換により直線を検出し、4つの直線で囲まれた黒画素を検出する。
(v) (iv)の黒画素が二箇所見つかった場合(二箇所より多く見つかった場合は矩形を囲む4つの直線の縦横比で判別する)、それぞれを位置検出マークM1,M2に決定する。
なお、このような位置検出マークの検出方法は一例に過ぎず、例えば(iv)でハリスのコーナー検出方法を用い、位置検出マークM1,M2の各頂点を検出してもよい。また、例えば、機械学習により位置検出マークM1,M2を学習した識別装置が位置検出マークを検出してもよい。
図10は、位置検出マークM1、M2とナビゲーションセンサ30の相対位置を示す図の一例である。図10に示すように、位置検出マークM1の左上頂点P1からナビゲーションセンサS0までの距離αと距離βは既知である。従って、位置検出マークM1,M2の位置が検出されれば、ナビゲーションセンサS0の位置を特定できる。
なお、位置検出マークM2からナビゲーションセンサS0の位置を求めることも可能である。また、ナビゲーションセンサS0に対するS1の相対位置も既知なので、ナビゲーションセンサS0又はS1が分かれば、ナビゲーションセンサS1又はS0の位置も特定できる。
<<印刷媒体の検出>>
次に、印刷媒体12の検出方法について説明する。印刷媒体12は長方形の形状のものがほとんどである。また、印刷媒体12の色(多くは白や薄い茶色など)は均一である場合が多く、印刷媒体12が置かれている机などの色とは異なっていることが多い。従って、例えば以下のような処理により検出できる。
(i) 例えば、色クラスタリングを行い均一色の範囲を決定する。これにより、微小な色むらの影響を低減する。HHP20が存在する領域は分かっているので、HHP20が占める領域は無視してよい(例えば、色クラスタリング後の色であるとみなす)。
(ii) 二値化処理を行い、印刷媒体12の地肌色の領域を取り出す。
(iii) 上下方向、左右方向にエッジ検出処理を行う。
(iv) ハフ変換により直線を検出し、4つの直線で囲まれた領域を印刷媒体12に決定する。
なお、この場合も例えばハリスのコーナー検出方法を用い、印刷媒体12の各頂点を検出してもよい。また、例えば、機械学習により印刷媒体12を学習した識別装置が印刷媒体12を検出してもよい。
<<印刷媒体12のサイズ>>
撮像データ14において印刷媒体12がどのくらいの大きさで写るかは、カメラ110と印刷媒体12との距離、焦点距離などにより異なる。従って、画像データ13を印刷媒体12に配置するには、実空間における印刷媒体12のサイズ(寸法)を検出することが好ましい。
そこで、印刷媒体検出部54は、位置検出マークM1とM2の距離(位置検出マークが1つだけの場合は辺の長さ)に基づき、印刷媒体12のサイズを検出する。位置検出マークM1とM2の間のピクセル数がNであり、位置検出マークM1とM2の実際の長さが例えば50〔mm〕であるとする(この場合、位置検出マークM1とM2の寸法が既知の撮像物となる)。すると、印刷媒体12において1ピクセル当たりの実空間の長さは「50/N」である。
従って、撮像データ14における印刷媒体12の幅方向のピクセル数がNw、縦方向のピクセル数がNhであるとすると、印刷媒体12の実空間の寸法(幅W1〔mm〕と縦長さH1〔mm〕)は以下のようになる。
W1=Nw×50/N
H1=Nh×50/N
位置検出マークM1とM2の距離を利用したのは一例であって、HHP20の既知の辺の長さ等を使用してよい。OPU26が液晶ディスプレイなどの場合、OPU26に長さが既知のオブジェクトを表示してよい。
<<印刷媒体に対するHHPの位置の決定>>
印刷媒体12と位置検出マークM1,M2を検出できたため、印刷媒体12に対するHHP20の位置(絶対座標)を決定できる。
図11は、印刷媒体12に対するHHP20の位置を説明する図の一例である。例えば、印刷媒体12の左上コーナーを原点(0,0)とする。従って、位置検出マークM1の左上頂点P1の座標、位置検出マークM2の上側頂点P2の座標を寸法〔mm〕により特定することができる。
(画像データの拡大・縮小)
次に、図12を用いて、印刷媒体12に対する画像データ13の配置について説明する。画像データ配置部56は印刷媒体12の外縁以内に画像データ13を配置すればよい。しかし、ユーザは画像データ13のサイズを意識せずに印刷媒体12を撮像するため、印刷媒体12と画像データ13のサイズが一致することは多くない。そこで、以下のように、画像データ配置部56は、画像データ13を拡大又は縮小することで、画像データ13を印刷媒体12に配置する。
まず、印刷媒体12と画像データ13のサイズを以下のように表す。なお、印刷媒体12から余白15が除外された画像形成領域16に画像データ13が配置されるものとして説明する。余白15は印刷媒体12のサイズに対し上下左右に5〜10%のように定められる。また、ユーザが余白の大きさを設定可能でもよい。余白を考慮せずに画像データ13を配置してもよい。
また、画像データ13のサイズはピクセル数で規定されているため、実空間におけるサイズに変換する。ここでは、一例としてHHPの主走査方向と副走査方向の解像度を300dpiであるものとする。すると、実空間の画像データ13の幅W2〔mm〕と縦長さH〔mm〕は以下のように算出できる。
W2=(画像データの幅のピクセル数/300)×25.4(1インチ)
H2=(画像データの縦のピクセル数/300)×25.4(1インチ)
以上から、画像形成領域16と画像データ13のサイズが以下のように検出されたものとする。
印刷媒体(画像形成領域):W1〔mm〕×H1〔mm〕
画像データ:W2〔mm〕×H2〔mm〕
図12(a)は画像形成領域16と画像データ13のサイズの一例を示している。図12(a)では「W1>W2 H1<H2」の関係があるため、画像データ13を縦方向に縮小する必要がある。また、縮小及び拡大は縦横比を保って行われる。変倍後のH2をH2´、変倍後のW2をW2´とする。
W2´=W2(H1/H2)
H2´=H1
図12(b)では「W1<W2 H1>H2」の関係があるため、画像データ13を幅方向に縮小する必要がある。また、縮小及び拡大は縦横比を保って行われる。変倍後のH2をH2´、変倍後のW2をW2´とする。
W2´=W1
H2´=H2(W1/W2)
こうすることで、縦横比を維持したまま、画像データ13が印刷媒体12に入るように縮小できる。
続いて、拡大する場合を説明する。図13(a)では「W1>W2 H1>H2」かつ「H1/W1<H2/W2」の関係があるため、H2がH1になるように拡大する必要がある。
W2´=W2(H1/H2)
H2´=H1
図13(b)では「W1>W2 H1>H2」かつ「H1/W1>H2/W2」の関係があるため、W2がW1になるように拡大する必要がある。
W2´=W1
H2´=H2(W1/W2)
以上のように、縮小又は拡大により画像データ13が印刷媒体12に配置可能となる。なお、拡大・縮小は必ずしも行わなくてもよい。縮小されなくても、ユーザがHHP20を印刷媒体12上でのみ操作すれば、印刷媒体12の外部に画像形成させることはない。また、拡大されなくても、画像データ13は印刷媒体12内に形成される。
(画像データの配置)
図14は印刷媒体12に配置された画像データ13及びHHP20の位置の一例を示す。これにより、画像データ13に対する位置検出マークM1の左上頂点P1の座標(x1,y1)及び位置検出マークM2の上側頂点P2の座標(x2,y2)を決定できる。
ところで、図11の説明では、位置検出マークM1の左上頂点P1の座標(x1,y1)及び位置検出マークM2の上側頂点P2の座標(x2,y2)は、印刷媒体12の原点(0,0)を基準に決定されている。従って、画像データ13の左上コーナーの座標を原点O(x0,y0)とすると、左上頂点P1の座標(x1´,y1´)、上側頂点P2の座標(x2´,y2´)は以下のようになる。
x1´=x1−x0、y1´=y1−y0
x2´=x2−x0、y2´=y2−y0
以上により、配置された画像データ13に対するHHP20の位置を特定できた。なお、図14では、印刷媒体12の左上コーナーに画像データ13が配置されたが、右上コーナー、左下コーナー、右下コーナーに配置してもよい。また、印刷媒体12の中央に配置してもよい。また、ユーザが画像データ13の配置位置を調整可能でもよい。
画像データ出力器11は以上のようにして算出されたHHP20の位置(ナビゲーションセンサ30の位置)、及び、拡大・縮小された画像データ13をHHP20に送信する。
<動作手順>
図15は、画像データ出力器11が画像データ13に対するHHP20の位置を検出する手順を示すフローチャート図の一例である。図15の手順は、電源がONされたHHP20をユーザが印刷媒体12上に配置してからスタートする。HHP20は筐体の全体又は少なくともナビゲーションセンサ30の位置が印刷媒体12の上にあることが好ましい。ただし、ナビゲーションセンサ30による位置検出に支障がなければ(印刷媒体12以外でも位置の検出が可能であれば)、HHP20が印刷媒体12の外に存在してもよい。
まず、ユーザは画像データ出力器11を操作して印刷媒体12とHHP20を1枚の撮像データ14に撮像する(S10)。撮像部52は撮像データ14を記憶部1000に記憶させる。
特徴点検出部53は、撮像データ14を解析し位置検出マークM1,M2を検出する(S20)。
また、印刷媒体検出部54は撮像データ14から印刷媒体12を検出する(S30)。印刷媒体検出部54は印刷媒体12の実空間のサイズを算出しておく。
装置位置決定部55は、印刷媒体12の例えば左上コーナーを原点として位置検出マークM1,M2の座標を決定する(S40)。なお、ステップS40で位置検出マークM1,M2の座標を検出するのでなく、画像データ13の印刷媒体12への配置後に、画像データ13に対する位置検出マークM1,M2の座標を決定してもよい。
次に、画像データ配置部56は印刷媒体12に画像データ13を配置する(S50)。上記のように必要であれば、画像データ13は拡大・縮小される。
装置位置決定部55は、配置された画像データ13に対するHHP20の位置を決定する(S60)。HHP20の位置は、例えばナビゲーションセンサ30の位置でも位置検出マークM1,M2の位置でもよい。
この後、画像データ出力器11は画像データ13に対するHHP20の位置をHHP20に送信する。HHP20は、画像データ出力器11により通知されたHHP20の位置から画像形成を開始する。
以上説明したように、本実施例によれば、撮像データ14から印刷媒体12が検出されているので、画像データ出力器11は印刷媒体12に対するHHP20の絶対座標を検知することができる。また、HHP20が撮像時に置かれていた場所からユーザは画像形成を開始できる。
本実施例では、HHP20の三次元座標を求め、HHP20と同じ座標系に画像データ13を配置する画像形成システム1について説明する。画像データ13をHHP20と同じ座標系で表すことができるので、撮像データ14に画像データ13を表示できる。撮像データ14には印刷媒体12も写っているので、画像データ13をいわば三次元空間にプレビュー表示することができる。
本実施例では、HHP20の三次元座標を求める手法としてAR(Augmented Reality)マーカーを使用する場合と、SfM(Structure from Motion)を用いる例を説明する。これらの手法は周知であるため以下に簡単に説明する。
<ARマーカー>
図16(a)は、ARマーカー81が形成されたHHP20を撮像する画像データ出力器11を示す図の一例であり、図16(b)はARマーカー81の一例を示す。ARマーカー81とは、ARToolKit(非特許文献1参照)と呼ばれる拡張現実感アプリケーションソフトのライブラリで使用されるマーカーである。後述するようにARマーカー81を撮像することで、撮像データ14に三次元モデル(本実施例では画像データ13)を配置することができる。ARマーカー81を用いた画像データ13の配置は以下のように行われる。以下の処理において主語が省略された場合は、画像データ出力器11が行うものとする。
(1)画像データ出力器11が画像データ13の3次元モデルを作成する(モデル座標系における画像データ13の座標を設定する)。
(2)ユーザがHHP20に形成されたARマーカー81と印刷媒体12の全体を撮像する。
(3)画像データ出力器11は、ARマーカー81を検出し、カメラ座標系CoにおけるARマーカー81の位置・姿勢を測定する。
(4)ARマーカー81の位置・姿勢に基づいて、ARマーカー81が貼り付けられているHHP20の位置・姿勢を求める(ナビゲーションセンサ30のカメラ座標が分かる)。
(5)HHP20の位置・姿勢に基づいて、カメラ座標系Coに画像データ13の3次元モデルを配置する。
なお、ARマーカー81を用いる場合、以下の座標系が使用される。
マーカー座標系…ARマーカー81の中心を原点とする三次元の座標系
カメラ座標系…カメラ110の所定の画素を原点とする三次元の座標系
モデル座標系…画像データ13を3次元モデルとして表すための三次元の座標系
図17(a)はマーカー座標系Maを示し、図17(b)はマーカー座標系におけるナビゲーションセンサ30の座標を示す。例えば、ARマーカー81の中心を(x0, y0, z0)とする。これを原点(0,0,0)としてよい。ARマーカー81に対するナビゲーションセンサS0、S1の相対位置も既知であるため、マーカー座標系におけるナビゲーションセンサS0の座標(xm0, ym0, zm0)は下記のように表すことができる。
(xm0,ym0,zm0)=(x0-lHw,y0+lHd,z0-lHh)
lHw:ARマーカー81の原点からナビゲーションセンサS0までのx方向の距離
lHd:ARマーカー81の原点からナビゲーションセンサS0までのy方向の距離
lHh:ARマーカー81の原点からナビゲーションセンサS0までのz方向の距離
また、ナビゲーションセンサS1の座標(xm1,ym1,zm1)は下記のようにナビゲーションセンサS0の座標から求められる。lsdはナビゲーションセンサS0、S1の間の距離である。
(xm1,ym1,zm1)= (xm0,ym0-lsd,zm0)
次に、ARマーカー81をカメラ110で撮像することで、カメラ座標系でのARマーカー81の位置・姿勢を変換行列Rの形式で得ることができる。
Figure 2017010271
この変換行列Rはマーカー座標系をカメラ座標系に座標変換する変換行列である。(xm,ym,zm,1)をマーカー座標系の座標、(xc,yc,zc,1)をカメラ座標系の座標とする。式(4)により、ARマーカー81の頂点などの座標、及び、ナビゲーションセンサS0,S1の座標をカメラ座標系に変換できる。
Figure 2017010271
次に、図18を用いて画像データ13の三次元座標が表されるモデル座標系について説明する。図18(a)は、マーカー座標系Maとモデル座標系Moの関係を説明する図の一例である。本実施例では、モデル座標系とマーカー座標系が同じものであるとする。また、画像データ13はxy平面(z座標(厚さ)はゼロ)に配置される。つまり、モデル座標系をマーカー座標系に変換する必要なく、画像データ13をカメラ座標系に変換できる。
なお、画像データ13がxz平面に配置されている場合には、x軸を中心に画像データ13の座標を90度回転させる座標変換を行えばよく、また、モデル座標系とマーカー座標系の原点が異なる場合には平行移動すればよい。従って、マーカー座標系とモデル座標が同じである必要はない。
図18(a)ではHHP20の上面に画像データ13が配置されてしまうが、画像データ13はHHP20の下面のノズルが吐出する液滴により形成される。従って、図18(b)のように画像データ13を配置してもよい。この場合、画像データ13のz座標を「-lHh」とすればよい。このように設定された画像データ13の座標により、撮像データ14にプレビュー表示された際の、HHP20に対する画像データ13の位置(初期位置)が定まる。なお、プレビュー表示における画像データ13の初期位置は、ナビゲーションセンサS0,S1の直下に画像データ13の例えば左端部が位置するなど、HHP20の制作者などが適宜、設定できる。
実施例1にて説明したように、印刷媒体12に画像形成される実空間の画像データ13のサイズは既知であるので、画像データ13の各画素の座標は既知である。従って、式(4)により画像データ13をカメラ座標に変換すれば、撮像データ14に画像データ13を配置して、印刷媒体12やHHP20と共に表示装置102にプレビュー表示することができる。
<SfM>
SfMとは、同じシーンを多視点から撮像した複数の画像から、そのシーンの3次元形状とカメラ110の位置を同時に推定する手法である。SfMのアルゴリズムの1つとしてPTAM(Parallel Tracking And Mapping)やDTAM(Dense Tracking and Mapping)が知られている。SfM又はPTAMと物体推定を組み合わせることにより、式(4)と同じ、カメラ座標系とHHP20の座標系(マーカー座標系)の変換式が得られる。以下、カメラ110とHHP20の位置・姿勢(式(4))を求める手順を説明する。
(1)画像データ出力器11が画像データの3Dモデルを作成する。
(2)ユーザがHHP20や印刷媒体12を含む領域を撮像する。
(3)画像データ出力器11は撮像領域の特徴点を検出し、特徴点からARモデル空間を作成する(SfM)。
(4)(3)で作成したARモデル空間(マップ)からカメラの位置・姿勢を画像データ出力器11が計算する。ARモデル空間からHHP20や印刷媒体12を含む物体を識別しておく。
(5)(4)で識別した物体の中で縦・横・高さの比がHHP20の寸法(lHw(幅)×lHd(縦長さ)×lHh(高さ))の比と近い物体をHHP20として推定する。HHP20からの位置・姿勢を推定する。
(6)HHP20の位置・姿勢に基づいてカメラ座標に画像データ13の3次元モデルを配置する。
なお、SfMではARマーカー81が使用されないが、本実施例で用いる座標系はARマーカーが使用される場合と同様とする。SfMではマーカー座標系に相当する座標系が所定の特徴点(後述するようにHHP20のコーナーなど)を原点とする三次元の座標系となる。しかし、区別しないでSfMでマーカー座標系に相当する座標系をマーカー座標系と称して説明される場合がある。
図19は、SfMに適したHHP20を撮像する画像データ出力器11を示す図の一例である。図19では、HHP20の形状から向きと位置を画像データ出力器11が計算するため、HHP20の上面を5角形とした。5角形の頂点が特徴点82である。これは一例であって、HHP20や形状の検出の精度を上げるためにコーナーを増やす形状を採用してもよい。また、HHP20の形状の標準パターンを画像データ出力器11が保持しておき、パターンマッチング処理によりHHP20の向きを検出しても良い。
図20は、HHP20の寸法を説明する図の一例である。図20ではHHP20の寸法は、lHw(幅)×lHd(縦長さ)×lHh(高さ)となっている。図20では、上面図の左下コーナーを基準位置(x0, y0, z0)とする。基準位置(x0, y0, z0)を原点Oとしてよい。ただし、ナビゲーションセンサS0、S1との距離が既知のコーナーであればどこを原点にとってもよい。
従って、ナビゲーションセンサS0の座標(xm0, ym0, zm0)は以下のようになる。lNwは原点OからナビゲーションセンサS0までのx方向の距離であり、lNdは原点OからナビゲーションセンサS0までのy方向の距離である。
(xm0,ym0,zm0)=(x0+lNw,y0+lNd,z0-lHh)
ナビゲーションセンサS1の座標は、S0の座標から求められる。従って、SfMを用いても、ARマーカー81を用いた場合と同様に画像データ13をカメラ座標系で表し表示装置102に表示することができる。
<プレビュー表示の手順>
<<機能について>>
まず、図21に基づき本実施例の機能について説明する。図21は、画像データ出力器11の機能ブロック図の一例を示す。なお、HHP20の機能は実施例1と同様でよい。本実施例において、図6において同一の符号を付した構成要素は同様の機能を果たすので、主に本実施例の主要な構成要素についてのみ説明する場合がある。
本実施例の画像データ出力器11は、位置姿勢計算部91、撮像データ表示部92、印刷位置決定部93、及び、トリミング部94を新たに有している。また、特徴点検出部53と画像データ配置部56の機能は実施例1と異なっている。
特徴点検出部53は、図4に示されているCPU106からの命令等により実現され、撮像データ14からARマーカー81や特徴点82を検出する。ARマーカー81の検出は、例えば位置検出マークM1,M2の検出と同様でよい。HHP20のコーナーの検出は上記のようにパターンマッチングなどを利用する。
位置姿勢計算部91は、図4に示されているCPU106からの命令等により実現され、撮像データ14にARtoolkit又はSfMなどを適用し変換行列Rを求める。変換行列Rが求められることで、カメラ110に対するHHP20の位置と姿勢を推定できる。
画像データ配置部56は、図4に示されているCPU106からの命令等により実現され、変換行列Rを用いてモデル座標系の画像データ13をカメラ座標系に変換し、撮像されている印刷媒体12に画像データを配置する。
撮像データ表示部92は、図4に示されているCPU106からの命令及び表示装置102等により実現され、撮像データ14に画像データ13を配置して表示装置102に表示する。画像データ13の座標は変換行列Rによりカメラ座標系に変換されているので、画像データ13のx座標とy座標は、そのまま撮像データ14の二次元平面の座標となる。よって、画像データ13が撮像データ14に撮像されているように表示できる。
印刷位置決定部93は、図4に示されているCPU106からの命令等により実現され、画像データ13に対するHHP20の位置を算出する。すなわち、カメラ座標系のHHP20の位置は、元のモデル座標系のHHP20の位置に再度、変換される。
トリミング部94は、図4に示されているCPU106からの命令等により実現され、画像データ13の一部を切り取る(トリミングする)。
<<プレビュー>>
図22は、プレビュー表示を模式的に説明する図の一例である。図22(a)は画像データ13を示す。まず、図18にて説明したように、画像データ配置部56は、平面の画像データ13をマーカー座標系で表す。本実施例では、説明の便宜上、モデル座標系とマーカー座標系を同じ座標系であるとした。
画像データ配置部56はマーカー座標系の画像データ13に変換行列Rを適用して、カメラ座標系に変換する。図22(b)はカメラ座標系の画像データ13の一例を示す。画像データ13は縦〔mm〕×横〔mm〕でサイズが表されており、画像形成時のサイズと一致している。
図22(c)は撮像データ14を示す。カメラ110から見たナビゲーションセンサS0,S1の座標は、変換行列Rを用いることで、マーカー座標系におけるナビゲーションセンサS0,S1の座標から求められる。
撮像データ表示部92は、図22(b)と図22(c)を合成する(重畳する。重ね合わせる)ことで、表示データ83を作成し表示装置102に表示する。図22(d)は表示データ83の一例を示す。図18(b)にて説明したように、マーカー座標系のxy平面の原点Oと画像データ13の左下コーナーが一致している。なお、図22では明らかでないが印刷媒体12も撮像データ14に表示されている。
従って、ユーザは印刷媒体12とHHP20に対し、画像データ13がどのように配置されるかをプレビュー表示により目視することができる。
また、図22(d)に示されているように、画像データ13が配置された際のナビゲーションセンサS0,S1のカメラ座標系の座標の、画像データ13に対する位置(画像データ13の任意の原点に対する相対位置)が、画像データ13に対するHHP20の位置である。この位置は、後述するように、ナビゲーションセンサS0,S1のカメラ座標系の座標に変換行列Rの逆行列を適用してモデル座標系の座標に変換することで得られる。
<<平行移動、拡大・縮小>>
上記のプレビュー表示では印刷媒体12の位置は考慮されていないので、画像データ13が印刷媒体12にちょうどよく収まるという保証がない。また、そもそも画像データ13の実空間のサイズ>印刷媒体12のサイズの場合、印刷媒体12に入りきらないおそれがある。そこで、本実施例では、操作受付部58がユーザによる画像データ13の平行移動(移動操作)、拡大・縮小(変倍操作)を受け付ける。
(平行移動)
図23は平行移動される画像データ13を説明する図の一例である。図23(a)は平行移動前の画像データ13を、図23(b)は平行移動後の画像データ13をそれぞれ示す。ユーザは指やマウスなどのポインティングデバイスで表示装置102の画像データ13を選択し、x方向y方向に画像データ13を移動させる。操作受付部58は操作を受け付けて、画像データ13を移動する。なお、z軸方向への移動は禁止されている。従って、平行移動後の画像データ13のx座標、y座標(カメラ座標系の座標)が得られる。
図23においても印刷媒体12がHHP20と共に表示されているため、ユーザは印刷媒体12に対し画像データ13の全体が入るように平行移動させることができる。これにより、画像データ13に対するHHP20の位置が定まる。
また、本実施例では撮像中であれば、HHP20と印刷媒体12の相対位置を変更させてもよい。つまり、撮像後もHHP20と印刷媒体12を動かすことができる。これは、撮像部52が繰り返し印刷媒体12とHHP20を撮像し、位置姿勢計算部91が変換行列Rを繰り返し算出しているためである。
(拡大・縮小)
図23(c)は拡大・縮小前の画像データ13を、図23(d)は拡大後の画像データ13を、図23(e)は縮小後の画像データ13を、それぞれ示す。なお、図23(c)は平行移動後の画像データ13である。
ユーザは画面上で2本の指でピンチアウトやピンチインすることで、画像データ13を縮小又は拡大する。キーボードの所定のキーやマウスのクリックにより、決まった倍率だけ縮小又は拡大してもよい。操作受付部58は操作を受け付けて、画像データ13の左上コーナーや左下コーナーを中心に、画像データ13を拡大・縮小する。なお、縮小時には、画像データ13の各x座標、y座標をユーザが指示する縮小率だけ小さくし、拡大時には画像データ13の各x座標、y座標をユーザが指示する拡大率だけ大きくする。
平行移動及び拡大・縮小の際、初期状態、変更中状態、及び、決定時の違いをユーザが分かるように、撮像データ表示部92は、それぞれの画像データ13の色を変えて表示するなどしてもよい。撮像データ表示部92は、初期状態(図23(a)(c)の画像データ13)の複製を作成し、初期状態の画像データ13の複製の外縁を固定したまま、ユーザの操作に応じて複製を平行移動、拡大・縮小する。初期状態の画像データ13と複製の画像データ13の色を変えたり、他方だけを点滅させたりするなどして表示する。なお、初期状態又は複製の画像データ13は外枠だけが表示されてもよい。
<<モデル座標系への再変換>>
平行移動、拡大・縮小により、ユーザは画像データ13の位置をHHP20や印刷媒体12に対し決定することができる。
図24(a)は平行移動、拡大・縮小後の画像データ13とHHP20の相対位置を示す図の一例である。画像データ13におけるナビゲーションセンサS0,S1の座標が、HHP20に通知すべきHHP20の位置である。ナビゲーションセンサS0,S1の座標は求められているが、この座標はカメラ座標系の座標なので(実空間の座標でないので)、このままではHHP20が画像データ13の座標を指示できない。
そこで、まずカメラ座標系の画像データ13をマーカー座標系(モデル座標系)に再度、変換する。平行移動、拡大・縮小前の画像データ13に対する平行移動、拡大・縮小による座標の変換行列Aを以下のように示す。
Figure 2017010271
変換行列AのTxはx方向への移動量を、Tyは方向への移動量を示す。また、Sxはx座標の拡大・縮小率を示し、Syはy座標の拡大・縮小率を示す。従って、平行移動、拡大・縮小後の画像データ13の座標G´は、Aを用いて以下のように表すことができる。Gは平行移動、拡大・縮小前の画像データ13の座標である。
G´=AG …(5)
マーカー座標系(モデル座標系)に戻すには、AとRの逆変換を行えばよい。しかし、SxとSyについても逆変換してしまうと、ユーザによる拡大・縮小が元に戻ってしまうので、AにおいてSx=Sy=1としたA´の逆行列を用いる。
G=A´-1-1G´ …(6)
印刷位置決定部93は、式(6)の変換をユーザが平行移動、拡大・縮小後の画像データ13に適用する。これにより、図24(b)に示すように、モデル座標系の画像データ13が得られる。
なお、カメラ座標系におけるナビゲーションセンサS0,S1の座標を求めるため、印刷位置決定部93は、図24(a)においてナビゲーションセンサS0,S1の座標を保持しておく。そして、式(6)によりモデル座標系におけるナビゲーションセンサS0,S1の座標を求める。図18にて説明したように、モデル座標系は左下コーナーを原点Oとする座標系なので、ナビゲーションセンサS0,S1の座標を決定できる。つまり、左下コーナーを原点OとするナビゲーションセンサS0,S1の座標を求めればよい。
以上の処理により、画像データ13に対しHHP20が配置されている位置の座標を決定できる。印刷位置決定部93は決定したナビゲーションセンサS0,S1の座標をHHP20に送信する。
なお、図24(b)で得られたモデル座標系の画像データ13から、画像データ13の実空間のサイズを算出してもよい。図24(b)のナビゲーションセンサS0,S1の間隔(ピクセル数)と実空間の寸法であるlsdの比を、画像データ13の幅lpwと縦長さlpdに乗じることで、画像データ13の実空間のサイズが求められる。印刷位置決定部93は、この画像データ13の原点Oに対するナビゲーションセンサS0,S1の座標を決定する。例えば、画像データ13がモデル座標系へ変換される際に、実空間の正しいサイズに変換されていなくても、この段階で画像データ13に対するナビゲーションセンサS0,S1の正しい座標を求めることができる。
<動作手順>
図25は、画像形成システム1の以上の動作手順の全体を説明するためのフローチャート図の一例である。
ユーザは、画像データ出力器11を操作して、HHP20を含む印刷媒体12を撮像する(S10)。なお、撮像は繰り返し行われる。
特徴点検出部53は、撮像データ14からARマーカー81又は特徴点82を検出する(S20)。
次に、位置姿勢計算部91は、撮像した撮像データ14からARマーカー81又は特徴点82をフレームごとに検出し、画像データ出力器11に対するHHP20の位置・姿勢を計算する(S30)。
画像データ配置部56は画像データ13をカメラ座標系に変換する(S40)。
撮像データ表示部92は撮像データ14において画像データ13をプレビュー表示する(S50)。
次に、ユーザは画像データ出力器11の表示装置102に表示された画像データ13を操作し、意図した大きさに変倍し意図した位置に画像データ13を配置する(S60)。ユーザが画像データ13を配置するまで、ステップS10〜S60が繰り返される。
ユーザが位置及び大きさを決定すると、印刷位置決定部93は画像データ13に対するナビゲーションセンサS0,S1の位置を保持しておく(S70)。
印刷位置決定部93は画像データ13を元のモデル座標系に戻すことで、画像形成時の画像データ13に対するナビゲーションセンサS0,S1の位置を決定する(S80)。
印刷位置決定部93は、ステップS80で得られたナビゲーションセンサS0,S1の位置及び画像データ13をHHP20に送信する(S90)。
なお、画像データ13の送信は、画像データ13の配置の決定と同時に行われてもよく、配置を決定した後、ユーザが確認してから送信してもよい。
以上のように、本実施例によれば、画像データ13を三次元座標系でプレビュー表示させ、ユーザにより所望の位置に配置させることができる。ユーザは、HHP20や印刷媒体12を動かすことができるので、画像データ13の任意の位置から画像データ13の画像形成を開始することができる。
〔変形例〕
ユーザが画像データ13の一部のみを印刷したい場合がある。HHP20では簡易的に手軽に印刷できるため、このようなニーズがさらに増えると考えられる。しかしながら、画像データ13の一部を取り出す(トリミングする)には、ペイント系のソフトウェアを起動させ、ユーザが画像データ13の一部を指定して別ファイルとして保存する等の操作が必要である場合が多い。本実施例の画像データ出力器11は、画像形成の開始位置の設定作業の中で(プレビュー中に)、以下のような方法で一部のみの画像のトリミングを行うことができる。
図26(a)〜(c)は平行移動によるトリミングを模式的に示す。なお、図26はいずれも、撮像データ表示部92が表示装置102に画像データ13を表示した表示データ83を示す。表示までの手順は図25などで説明した通りである。
平行移動の場合、ユーザが画像形成したい画像データ13の一部をHHP20又は印刷媒体12に対し相対的に移動させる(実際には画像データ13の全体が移動する)。この時、移動前の画像データ13aの複製が作成され、複製の画像データ13bのみが移動される。画像データ13a又は13bの外枠のみが表示されてよい。従って、ユーザは移動前の画像データ13aと移動後の画像データ13bの重複領域84を把握できる。ユーザはトリミングされる画像データ13の一部を重複領域84に含めるように画像データ13bを移動させる。
トリミング部94は、移動前の画像データ13aと移動後の画像データ13bの重複領域84を取り出す。図の例では、点C1〜C4で囲まれた領域が取り出される。点C1のx座標は移動後の画像データ13bの左辺のx座標、点C1のy座標は移動前の画像データ13aの上辺のy座標である。点C2のx座標は点C1と等しく、点C2のy座標は移動後の画像データ13bの下辺のy座標である。点C3のx座標は移動前の画像データ13aの右辺のx座標、点C3のy座標は点C1と等しい。点C4のx座標は点C3と等しく、点C4のy座標は点C2と等しい。
図26(d)〜(h)は拡大・縮小時のトリミングを模式的に示す図の一例である。ユーザは、図23にて説明されたように、画像データ13を縮小又は拡大する。図13(e)では拡大された画像データ13cが示されている。図13(g)では縮小された画像データ13dが示されている。これらの場合も、移動前の画像データ13aの複製が作成され、複製された画像データ13c、13dが拡大・縮小される。トリミング部94は、平行移動の場合と同様に、拡大・縮小後の画像データ13c、13dと拡大・縮小前の画像データ13aの重複領域84をトリミングする。
平行移動、拡大・縮小の操作が終わると(ユーザが終わりを指示する)、印刷位置決定部93は式(6)を用いて、画像データ13をモデル座標系に変換する。この時、式(6)に入力される座標をトリミングした重複領域84に限ることで、モデル座標系に変換される画像データ13はトリミングされた範囲だけになる。
従って、このような変形例によれば、ユーザは画像形成の開始位置を決定しながら、トリミングして画像データ13の一部だけを画像形成できる。
本実施例では、印刷媒体12に対し画像データ13を自動的に配置する画像形成システム1について説明する。
図27は、本実施例の機能ブロック図の一例である。本実施例の画像データ出力器11は、フォーマット決定部95、及び、印刷媒体検出部54を有している。印刷媒体検出部54は撮像データ14から印刷媒体を検出する。また、フォーマット決定部95は、印刷媒体12と似ている既存フォーマットを探索する。既存フォーマットとは、一般的な用紙サイズ(A3,A4、B4、B5など)、ハガキ、Letterサイズなどの規定サイズの印刷媒体のことである。
記憶部1000には既存フォーマットDB1002が記憶されている。既存フォーマットDB1002には、既存フォーマットの寸法情報が記憶されている。既存フォーマットの寸法情報は、既存フォーマットを特定するための情報(フォーマット情報)であり、幅、縦長さ、既存フォーマット内の四角などの幾何学形状の配置を特定するための情報(幾何学形状の幅と縦長さ、幾何学形状の原点からの距離等)を含む。
図28は、HHP20と印刷媒体12を撮像する画像データ出力器11を示す図の一例である。図28では、印刷媒体12の特徴点(左上コーナー8201、右上コーナー8202、右下コーナー8203、左下コーナー8204)のカメラ座標を検出するため、SfMにより位置・姿勢が検出されることが好ましい。
図29は、印刷媒体への画像データ13の配置を模式的に説明する図の一例である。図29(a)(b)については図22(a)(b)と同様である。本実施例では、印刷媒体12を検出して、印刷媒体12に画像データ13を配置する。印刷媒体12の検出方法は実施例1と同様でよい。画像データ配置部56は、検出された印刷媒体12に画像データ13を配置する。
画像データ13が印刷媒体12に入りきらない場合、画像データ配置部56は、画像データ13を縮小し、画像データ13が印刷媒体12より小さい場合は拡大する。図29(c)では印刷媒体12が撮像されているが、印刷媒体12を検出できればカメラに写っている印刷媒体12の左上コーナー8201、右上コーナー8202、右下コーナー8203、左下コーナー8204のカメラ座標がわかる。また、画像データ13のカメラ座標は式(4)から算出されるので、両者の相対位置を容易に比較できる。従って、実施例1の図12、13で説明したように同様に拡大・縮小できる。また、図29(d)に示すように、印刷媒体12に画像データ13を配置できる。
図30は、本実施例の画像データ出力器11の動作手順を示すフローチャート図の一例である。なお、図30においては主に図25と異なる処理を説明する。
図30では、ステップS45において、印刷媒体検出部54が印刷媒体を検出し、画像データ配置部56が画像データ13を配置する(S45)。その後、画像データ13のプレビューが表示され、ユーザが画像データ13の位置を調整できる。なお、ユーザによる画像データ13の位置調整を省略してもよい。この場合、ユーザが印刷媒体12とHHP20を撮像すれば、自動的に画像データ13の画像形成を開始できる。
従って、本実施例によれば、HHP20の三次元座標を検出した場合も、印刷媒体12を自動的に検出して、画像データ13を自動的に配置することができる。
<所定のフォーマットを有する印刷媒体への印刷>
本実施例の画像形成システム1は、さらに所定のフォーマットを有する印刷媒体に画像データ13を配置することができる。
図31は、HHP20とハガキと呼ばれる印刷媒体を撮像する画像データ出力器11を示す図の一例である。印刷媒体12のサイズの求め方について説明する。図28と同様に、印刷媒体検出部54が撮像データ14から印刷媒体12を検出すると、ハガキの左上コーナー8201、右上コーナー8202、右下コーナー8203、左下コーナー8204のカメラ座標がわかる。これらはカメラ座標系の座標であるが、カメラ座標に変換行列Rの逆行列を適用すれば、モデル座標系の座標が分かる。SfMを用いた場合も、上記のようにSfMと物体推定を組み合わせハガキの大きさや外縁を検出することで、モデル座標系のハガキの座標(寸法)が分かる。従って、フォーマット決定部95は、印刷媒体12の実空間の寸法を推定できる。
あるいは、以下のように印刷媒体12の実空間の寸法を推定してもよい。この場合、撮像部は好ましくは印刷媒体12の正面から印刷媒体12とHHP20を撮像する。よって、印刷媒体の幅のピクセル数m、縦長さのピクセル数nを検出できる。また、HHP20の幅のピクセル数p、縦長さのピクセル数qを検出できる。また、HHP20の寸法は実測されており、幅がlHw、縦長さがlHdである。
従って、lHw/p又はlHd/qにより1ピクセル当たりの実測値が分かる。フォーマット決定部95は、1ピクセル当たりの実測値をn及びmに乗じて、印刷媒体12の実空間の寸法を推定する。この寸法に適合する所定のフォーマットを既存フォーマットDB1002から探し出す。
なお、フォーマット決定部95は、印刷媒体の寸法と最も近い所定のフォーマットを既存フォーマットDB1002から選び出すものとするが、例えば所定のフォーマットの寸法との違いが閾値以上に大きい場合、所定のフォーマットがないと判断する。また、ハガキのように特徴的な幾何学形状が決まった場所に配置されている印刷媒体では、パターン認識によりハガキであることを検出できる。
図32は、撮像データ14に配置されるハガキ用の画像データ13を模式的に示す図である。図32(a)は検知された所定のフォーマット86である。このフォーマット86は、既存フォーマットDB1002に記憶されている。図32(a)に示すように、ハガキは郵便番号欄501、宛先住所欄502、宛先氏名欄503、送信元郵便番号欄507、送信元住所欄505、及び、送信元氏名欄506を有している。
図32(a)のフォーマット86は、既存フォーマットDB1002から読み出されたものである。ユーザは、このフォーマットの各欄に文字や数字を入力して画像データ13を作成する。なお、ユーザが図32(a)のフォーマット86を予め得ておけば、ユーザは印刷媒体12とHHP20の撮像前に画像データ13を作成できる。
図32(b)はカメラ座標系に変換されたハガキの画像データ13を示す。画像データ配置部56はこれを図32(c)の撮像データ14に配置する。印刷媒体12と画像データ13は同じハガキなので、変倍することなく一致する。しかし、画像データ配置部56は、必要であれば、撮像データ14のサイズが印刷媒体12と一致するように、撮像データ14を変倍する。印刷媒体12と画像データ13の外縁が一致すれば、画像データ13の各欄が印刷媒体12の各欄と一致する。
図33は、本実施例の画像データ出力器11の動作手順を示すフローチャート図の一例である。図33では主に図30との相違点を説明する。
ステップS45において、印刷媒体検出部54が印刷媒体を検出し、フォーマット決定部95がフォーマットを決定する(S45)。
次に、画像データ配置部56が、フォーマット86に形成されている画像データ13を印刷媒体12に配置する(S47)。
その後、画像データ13のプレビューが表示され、ユーザが画像データ13の位置を調整できる。なお、ユーザによる画像データ13の位置調整を省略してもよい。この場合、ユーザが印刷媒体12とHHP20を撮像すれば、自動的に画像データ13の画像形成を開始できる。
<その他の適用例>
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
例えば、上述したSoC50、ASIC/FPGA40の構成要素は、CPU性能やASIC/FPGA40の回路規模等により、どちらに含まれていてもよい。
また、図4,5等で説明されたHHP20の機能は、CPU31がプログラムを実行することで実現してよい。
また、本実施形態では、三方向(例えばX/Y/R軸、R:回転)の位置をそれぞれ検知し、平面上を自由に走査可能(フリーハンド走査)なハンドヘルドプリンタ20を例にして説明した。しかし、一方向(例えばX軸方向)の位置を検知し、一方向にのみ走査させて画像形成するハンドヘルドプリンタ20に対しても本実施形態を適用できる。また、二方向(例えばX/Y軸方向) の位置をそれぞれ検知し、二方向にのみ走査させて画像形成するハンドヘルドプリンタ20に対しても本実施形態を適用できる。
また、本実施形態ではインクを吐出して画像を形成すると説明したが、可視光、紫外線、赤外線、レーザなどを照射して画像を形成してもよい。この場合、印刷媒体12として例えば熱や光に反応するものが用いられる。また、透明な液体を吐出してもよい。この場合、特定の波長域の光が照射されると可視情報が得られる。すなわち、化学的・物理的な作用を経て最終的に肉眼で確認しうる視覚情報を形成できればよい。
また、本実施形態では、画像形成の際にフリーハンドでユーザが走査させると説明したが、HHP20がモータなどを動力にして印刷媒体上を自走してもよい。
1 画像形成システム
8 撮像装置
11 画像データ出力器
12 印刷媒体
13 画像データ
14 撮像データ
20 ハンドヘルドプリンタ
52 撮像部
53 特徴点検出部
54 印刷媒体検出部
55 装置位置決定部
56 画像データ配置部
57 印字画像変換部
91 位置姿勢計算部
92 撮像データ表示部
93 印刷位置決定部
94 トリミング部
95 フォーマット決定部
特許第5033247号公報
加藤博一, "拡張現実感システム構築ツールARToolKitの開発", 信学会パターン認識・メディア理解研究会技術研究報告(PRMU), Vol.101, No.652, pp.79-86, 2002.

Claims (15)

  1. 印刷媒体上の位置を移動しながら画像データに基づき画像を形成する画像形成装置と通信可能な情報処理装置であって、
    前記画像形成装置及び前記印刷媒体が撮像されている撮像データを取得する取得手段と、
    前記撮像データから前記印刷媒体を検出する印刷媒体検出手段と、
    前記撮像データから前記画像形成装置を検出する画像形成装置検出手段と、
    前記印刷媒体に対する前記画像形成装置の位置を決定する位置決定手段と、
    前記画像形成装置の位置を前記画像形成装置に送信する送信手段と、
    を有する情報処理装置。
  2. 前記撮像データに撮像されている前記印刷媒体に前記画像データを配置する画像データ配置手段を有し、
    前記位置決定手段は、前記撮像データに撮像されている前記印刷媒体に配置された前記画像データに対する前記画像形成装置の相対位置情報を検出し、
    前記送信手段は、前記相対位置情報を前記画像形成装置に送信する請求項1に記載の情報処理装置。
  3. 前記画像データ配置手段は、前記撮像データに撮像されている前記印刷媒体の外縁以内に前記画像データの全体を配置する請求項2に記載の情報処理装置。
  4. 前記画像データ配置手段は、前記撮像データに撮像されている前記印刷媒体に設けられた余白の内側に前記画像データの全体を配置する請求項3に記載の情報処理装置。
  5. 前記印刷媒体検出手段は、前記撮像データに撮像されている寸法が既知の撮像物の大きさに基づいて、前記印刷媒体の寸法を検出し、
    前記画像データ配置手段は、前記画像データが前記印刷媒体に画像形成された際の寸法を算出し、
    前記印刷媒体の寸法が前記画像データの寸法より小さい場合、前記画像データが前記印刷媒体の外縁以内に収まるように縮小し、縮小した前記画像データを前記印刷媒体に配置する請求項3又は4に記載の情報処理装置。
  6. 前記画像データ配置手段は、前記印刷媒体の寸法が前記画像データの寸法より大きい場合、前記印刷媒体の外縁以内に収まる範囲で前記画像データを拡大し、拡大した前記画像データを前記印刷媒体に配置する請求項5に記載の情報処理装置。
  7. 所定の座標系における前記画像形成装置及び前記画像データの三次元座標を、前記撮像データの撮像に用いられた撮像装置のカメラ座標系における三次元座標に変換するための変換行列を、前記撮像データに写っているマーク又は特徴点に基づいて生成する変換行列生成手段と、
    前記変換行列により前記カメラ座標系に変換された前記画像データを前記撮像データに重畳して表示装置に表示する表示手段と、を有する請求項2〜6いずれか1項に記載の情報処理装置。
  8. 前記画像データ配置手段は、前記カメラ座標系における前記印刷媒体の特徴点の三次元座標と前記画像データの三次元座標に応じて変倍した前記画像データを前記印刷媒体に配置する請求項7に記載の情報処理装置。
  9. 前記印刷媒体の寸法と共に前記印刷媒体のフォーマット情報が記憶されている寸法情報記憶手段と、
    前記画像データ配置手段が前記変換行列を用いて求めた前記印刷媒体の寸法に適合する前記フォーマット情報を前記寸法情報記憶手段から読み出すフォーマット情報特定手段と、を有し、
    前記画像データ配置手段は、前記フォーマット情報特定手段が特定した前記フォーマット情報に従って生成された前記画像データを前記印刷媒体に配置する請求項7又は8に記載の情報処理装置。
  10. 前記画像形成装置及び前記印刷媒体と共に前記表示装置に表示された前記画像データに対する移動操作又は変倍操作を受け付ける操作受付手段を有し、
    前記位置決定手段は、前記操作受付手段が移動操作又は変倍操作を受け付けた前記画像データに対する前記画像形成装置の相対位置情報を検出し、
    前記送信手段は、前記相対位置情報を前記画像形成装置に送信する請求項7〜9いずれか1項に記載の情報処理装置。
  11. 前記操作受付手段は、前記表示装置に表示された前記画像データ又は該画像データの外縁を固定して表示すると共に、該画像データの少なくとも外縁の複製を作成し、前記複製に対する移動操作又は変倍操作を受け付け、固定された前記画像データ又は前記外縁と前記複製の重複領域を特定し、
    前記送信手段は、前記画像データのうち前記重複領域のみを前記画像形成装置に送信する請求項10に記載の情報処理装置。
  12. 前記位置決定手段は、前記カメラ座標系における前記画像データに対する前記画像形成装置の相対位置情報を検出し、
    前記変換行列の逆行列を前記相対位置情報に適用して元の座標系に変換し、
    前記送信手段は、元の座標系に変換された前記相対位置情報を前記画像形成装置に送信する請求項7〜11いずれか1項に記載の情報処理装置。
  13. 印刷媒体上の位置を移動しながら画像データに基づき画像を形成する画像形成装置と、前記画像形成装置と通信可能な情報処理装置とを有する画像形成システムであって、
    前記画像形成装置及び前記印刷媒体が撮像されている撮像データを取得する取得手段と、
    前記撮像データから前記印刷媒体を検出する印刷媒体検出手段と、
    前記撮像データから前記画像形成装置を検出する画像形成装置検出手段と、
    前記印刷媒体に対する前記画像形成装置の位置を決定する位置決定手段と、
    前記画像形成装置の位置を前記画像形成装置に送信する送信手段と、
    を有する画像形成システム。
  14. 印刷媒体の位置を移動しながら画像データに基づき画像を形成する画像形成装置であって、
    前記画像形成装置及び前記印刷媒体が撮像されている撮像データを取得する取得手段と、
    前記撮像データから前記印刷媒体を検出する印刷媒体検出手段と、
    前記撮像データから前記画像形成装置を検出する画像形成装置検出手段と、
    前記印刷媒体に対する前記画像形成装置の位置を決定する位置決定手段と、
    前記位置決定手段が決定した前記位置を基準に画像形成を行う画像形成手段と、を有する画像形成装置。
  15. 印刷媒体上の位置を移動しながら画像データに基づき画像を形成する画像形成装置と通信可能な情報処理装置を、
    前記画像形成装置及び前記印刷媒体が撮像されている撮像データを取得する取得手段と、
    前記撮像データから前記印刷媒体を検出する印刷媒体検出手段と、
    前記撮像データから前記画像形成装置を検出する画像形成装置検出手段と、
    前記印刷媒体に対する前記画像形成装置の位置を決定する位置決定手段と、
    前記画像形成装置の位置を前記画像形成装置に送信する送信手段と、
    として機能させるためのプログラム。
JP2015125048A 2015-06-22 2015-06-22 情報処理装置、画像形成システム、画像形成装置、プログラム Pending JP2017010271A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015125048A JP2017010271A (ja) 2015-06-22 2015-06-22 情報処理装置、画像形成システム、画像形成装置、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015125048A JP2017010271A (ja) 2015-06-22 2015-06-22 情報処理装置、画像形成システム、画像形成装置、プログラム

Publications (1)

Publication Number Publication Date
JP2017010271A true JP2017010271A (ja) 2017-01-12

Family

ID=57761652

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015125048A Pending JP2017010271A (ja) 2015-06-22 2015-06-22 情報処理装置、画像形成システム、画像形成装置、プログラム

Country Status (1)

Country Link
JP (1) JP2017010271A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019130734A (ja) * 2018-01-30 2019-08-08 カシオ計算機株式会社 印刷システム、端末装置、印刷装置、印刷方法及びプログラム
JP2020040383A (ja) * 2018-09-07 2020-03-19 株式会社リコー 画像形成装置、画像形成システム、制御方法及び制御プログラム
JP2020128078A (ja) * 2018-09-10 2020-08-27 株式会社リコー 印刷装置
CN112188079A (zh) * 2019-07-01 2021-01-05 精工爱普生株式会社 印刷控制装置、记录介质以及印刷物生产方法
CN112188078A (zh) * 2019-07-01 2021-01-05 精工爱普生株式会社 印刷控制装置、记录介质以及印刷物生产方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019130734A (ja) * 2018-01-30 2019-08-08 カシオ計算機株式会社 印刷システム、端末装置、印刷装置、印刷方法及びプログラム
JP2020040383A (ja) * 2018-09-07 2020-03-19 株式会社リコー 画像形成装置、画像形成システム、制御方法及び制御プログラム
JP2020128078A (ja) * 2018-09-10 2020-08-27 株式会社リコー 印刷装置
CN112188079A (zh) * 2019-07-01 2021-01-05 精工爱普生株式会社 印刷控制装置、记录介质以及印刷物生产方法
CN112188078A (zh) * 2019-07-01 2021-01-05 精工爱普生株式会社 印刷控制装置、记录介质以及印刷物生产方法
JP2021009546A (ja) * 2019-07-01 2021-01-28 セイコーエプソン株式会社 印刷制御装置、印刷制御プログラム、及び、印刷物生産方法
JP2021009545A (ja) * 2019-07-01 2021-01-28 セイコーエプソン株式会社 印刷制御装置、印刷制御プログラム、及び、印刷物生産方法
US11305556B2 (en) 2019-07-01 2022-04-19 Seiko Epson Corporation Print control device, non-transitory computer-readable storage medium storing print control program, and printed matter production method
US11358398B2 (en) 2019-07-01 2022-06-14 Seiko Epson Corporation Print control device, non-transitory computer-readable storage medium storing print control program, and printed matter production method
CN112188078B (zh) * 2019-07-01 2022-08-19 精工爱普生株式会社 印刷控制装置、记录介质以及印刷物生产方法
JP7283272B2 (ja) 2019-07-01 2023-05-30 セイコーエプソン株式会社 印刷制御装置、印刷制御プログラム、及び、印刷物生産方法
JP7395856B2 (ja) 2019-07-01 2023-12-12 セイコーエプソン株式会社 印刷制御装置、印刷制御プログラム、及び、印刷物生産方法

Similar Documents

Publication Publication Date Title
JP6953815B2 (ja) プログラム、情報処理装置、表示方法、液滴吐出装置、液滴吐出システム
JP2017010271A (ja) 情報処理装置、画像形成システム、画像形成装置、プログラム
JP6417702B2 (ja) 画像処理装置、画像処理方法および画像処理プログラム
US8121809B2 (en) Apparatus and method for determining the position of a device
US10310675B2 (en) User interface apparatus and control method
US10744787B2 (en) Liquid droplet discharging apparatus, liquid droplet discharging method, and non-transitory computer readable medium
JP6010870B2 (ja) 画像補正装置、及び画像補正方法、プログラム
US20090128716A1 (en) Projector and method for projecting image
JP2017170807A (ja) 印刷補助装置、印刷装置、印刷システム、報知方法及びプログラム
JP2016162162A (ja) 接触検出装置、プロジェクタ装置、電子黒板装置、デジタルサイネージ装置、プロジェクタシステム及び接触検出方法
US20150301690A1 (en) Input-operation detection device, image display apparatus, projector apparatus and projector system
US20130076909A1 (en) System and method for editing electronic content using a handheld device
JP2016103137A (ja) ユーザインタフェース装置、画像処理装置及び制御用プログラム
JP2017170808A (ja) 印刷補助装置、印刷装置、印刷システム、印刷補助方法及びプログラム
JP2007048217A (ja) 手書き情報入力装置
US9597896B2 (en) Handheld recording device, recording device position detection method, and recording medium
JP2017117373A (ja) 操作装置とその制御方法、及びプログラム
JP6507865B2 (ja) 情報処理装置、画像形成システム、画像形成装置
JP2017149126A (ja) 携帯型直接印字式ハンディプリンタ
US20150062029A1 (en) Information processing apparatus and computer program
JP7206997B2 (ja) 画像形成装置、状態制御方法、プログラム
US9268415B2 (en) Touch positioning method utilizing optical identification (OID) technology, OID positioning system and OID reader
JP2019016843A (ja) 原稿読取装置、原稿読取装置の制御方法、及びプログラム
JP7298344B2 (ja) 画像形成装置、情報処理装置、画像形成方法、プログラム
US9041973B2 (en) Support system, control device, image forming apparatus, and support method utilizing cards on which written information is printed