説明

画像処理装置、画像処理方法、およびプログラム

【課題】 出力対象の複数の画像を並べて配置するときに、配置対象の領域における当該複数の画像の配置を、適切に決定することができる画像処理装置を提供する。
【解決手段】 配置対象の領域において出力対象の複数の画像が行と列に並んだレイアウトを決定し、さらに、当該配置対象の領域における、当該複数の画像のそれぞれを配置するための複数の領域のうちの、画像が配置されない領域の数に応じて、当該複数の画像のレイアウトを決定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、出力対象の画像のレイアウトを決定する画像処理装置、画像処理方法、およびプログラムに関する。
【背景技術】
【0002】
画像を出力するときのレイアウトの1つに複数の画像を並べてレイアウトする方法がある。このレイアウトに従って並べられた複数の画像を1枚の用紙に配置するインデックスプリントや、複数の画像を画面に並べて表示させるインデックス表示が知られている。
【0003】
このように複数の画像を並べて出力する方法として、特許文献1には、複数の画像を並べて印刷したときに用紙における余白が最小になるように、印刷を行う用紙サイズを決定することが記載されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2005−59447号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記の従来技術では、用紙のサイズを決定しているため、ユーザが所望の用紙サイズがあったとしても、その用紙サイズの用紙に適切に印刷することができない場合がある。よって、ユーザが所望の用紙サイズがあったとしても、その用紙サイズが画像の配置に適したものでなければ、画像を適切に配置することができない。
【0006】
そこで本発明は、出力対象の複数の画像を並べて配置するときに、配置対象の領域における当該複数の画像の配置を、適切に決定することができる画像処理装置、画像処理方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の画像処理装置は、出力対象の画像のレイアウトを決定する画像処理装置であって、出力対象の複数の画像を取得する取得手段と、前記取得手段により取得された複数の画像の数と、当該複数の画像のそれぞれのアスペクト比に応じて、当該複数の画像を所定の配置領域に配置して出力するときの、当該複数の画像のレイアウトを決定する決定手段と、を有し、前記決定手段は、前記配置対象の領域において前記複数の画像が行と列に並んだレイアウトを決定し、さらに、当該配置対象の領域における、当該複数の画像のそれぞれを配置するための複数の領域のうちの、画像が配置されない領域の数に応じて、当該複数の画像のレイアウトを決定することを特徴とする。
【発明の効果】
【0008】
本発明によれば、出力対象の複数の画像を並べて配置するときに、配置対象の領域における当該複数の画像の配置を、適切に決定することができる。
【図面の簡単な説明】
【0009】
【図1】画像処理装置のブロック図である。
【図2】実施例1における画像のレイアウトの決定処理を示すフローチャートである。
【図3】配置対象の画像を配置するときのレイアウトの複数の候補を示す図である。
【図4】縦横の画像数と、画像サイズの関係を示す図である。
【図5】実施例2における画像のレイアウトの決定処理を示すフローチャートである。
【図6】縦横の画像数と、画像サイズの関係を示す図である。
【図7】配置対象の画像を配置するときのレイアウトの、複数の候補を示す図である。
【図8】実施例2における画像のレイアウトの決定処理を示すフローチャートである。
【図9】本実施例におけるレイアウト決定方法を説明するための図である。
【図10】インデックスプリントの一例を示す図である。
【発明を実施するための形態】
【0010】
(実施例1)
以下、本発明の実施の形態について詳細に説明する。
【0011】
図1は、画像処理装置のブロック図である。画像処理装置として、PCを使用すると想定して説明する。
CPU101は、中央演算ユニット(Central Processing Unit)で、他の機能ブロックや装置の制御を行う。ブリッジ部102は、CPU 101と他の機能ブロックの間でデータのやり取りを制御する機能を提供している。
【0012】
ROM(Read Only Memory) 103は読み込み専用の不揮発メモリであり、BIOS(Basic Input/Output System)と呼ばれるプログラムが格納されている。BIOSは画像処理装置が起動したときに最初に実行されるプログラムであり、2次記憶装置105、表示装置107、入力装置109、出力装置110などの周辺機器の基本入出力機能を制御するものである。
【0013】
RAM(Random Access Memory)104は、高速の読み/書き可能な記憶領域を提供する。
【0014】
2次記憶装置105は、大容量の記憶領域を提供するHDD(Hard Disk Drive)である。BIOSが実行されると、HDDに格納されているOS(Operating System)が実行される。OSはすべてのアプリケーションで利用可能な基本的な機能や、アプリケーションの管理、基本GUI(Graphical User Interface)を提供する。アプリケーションは、OSが提供するGUIを組み合わせることで、アプリケーション独自の機能を実現するUIを提供できる。
【0015】
なお、上記のOSや、他のアプリケーションの実行プログラムや作業用に使用しているデータは、必要に応じてROM103または2次記憶装置105に格納される。また、本実施例の処理を実行する画像処理アプリケーションは、ROM103または2次記憶装置105に格納され、ユーザの操作で起動するアプリケーションとして提供される。以下で説明する処理は、CPU101が、ROM103や2次記憶装置105に記憶されている、OS、画像処理アプリケーション等のプログラムを、RAM104をワークメモリとして実行することで実現する。
【0016】
表示制御部106は、各種の画像を表示装置107に表示させるための制御を行う。表示される画像は、例えば、2次記憶装置105に記憶されている画像や、OSやアプリケーションに対して行われるユーザの操作の結果を示すGUIの画像である。また、表示装置107には液晶ディスプレイや、CRT(Cathode Ray Tube)ディスプレイが使用できる。
【0017】
I/O制御部108は、複数の入力装置109、出力装置110とのインターフェースを提供するものである。代表的なインターフェースとして、USB(Universal Serial Bus)やPS/2(Personal System/2)がある。
【0018】
入力装置109は、キーボード、マウスといった操作デバイスであり、I/O制御部108は、入力装置109を介してユーザの指示を画像処理装置に入力する。
【0019】
I/O制御部108は、各種の出力装置110を接続する。出力装置110は例えばプリンターであり、I/O制御部が印刷データを出力装置に出力することで、印刷データに対応する画像を印刷させることができる。
【0020】
なお、画像処理装置には、デジタルカメラ、USBメモリ、CF(Compact Flash)メモリ、SD(Secure Digital)メモリカードといった記憶装置などを接続することもできる。そして、I/O制御部は、そのデジタルカメラやメモリに画像データなどのデータを転送することや、逆にデジタルカメラやメモリからデータを取得することも可能である。
【0021】
後述するが、本実施例では、複数枚のフレームから構成される動画像から、フレームを抽出する。その動画像のデータは、上記の2次記憶装置105や、画像処理装置に接続されているUSBメモリやCFメモリ、SDメモリカード等から供給される。
【0022】
以下、本実施例における、複数の画像のレイアウトを決定するレイアウト決定処理について説明する。
【0023】
本実施例では、複数の画像を、複数行、複数列に並べて出力するときに、その行と列の数を適切に決定するためのレイアウト決定処理を説明する。なお、本実施例においては、出力対象の複数の画像として、動画像から抽出された複数のフレームを例に説明する。しかし、これに限るものではなく、例えば静止画像として撮影された複数の画像を並べて出力する場合であってもよい。
【0024】
上記のように、複数の画像を複数行、複数列に並べて出力する方法について、図9、図10を用いて説明する。
【0025】
図10は、インデックスプリントの一例を示す図である。
図10(a)〜(c)にレイアウトの例を示す。図10(a)は、15枚の画像を縦3×横5枚で1枚の用紙に配置して印刷した場合の印刷例であり、10(b)は14枚の画像を縦3×横5枚に1枚の用紙に配置して印刷した場合の印刷例である。
【0026】
1001は用紙を示し、また1002は用紙1001に配置された画像であり、1003は、用紙1001において画像が配置されなかった領域を示す。この1003の領域は、本来画像が配置されるべき領域である。印刷対象の画像が所定の数に満たない場合に、1003の領域が生じる。例えば、図10(b)の場合、15枚の画像を配置することができるが、印刷対象の画像が14枚だった場合には、画像が配置されない1つの領域1003が生じる。この図10(a)〜(c)を比較すると、図10(b)(c)に示すレイアウトよりも、画像が配置されない領域がない図10(a)の方がユーザにとっては好ましいといえる。
【0027】
しかしながら、配置対象の画像の枚数によっては、上記の図10(a)のように、画像が配置されない領域がないレイアウトになるとは限らない。
【0028】
よって、図10(a)のような配置にするためには、ユーザが出力対象の画像の枚数を変更しなければならない。しかし、そのように出力対象の画像の枚数を、任意に指定できない場合もある。
【0029】
例えば、動画において被写体の連続的な動きを見るために、動画像において等間隔にフレームを抽出する場合がある。このとき、60秒間の動画像から、最初のフレームと最後のフレームを含む2秒間隔のフレームが31枚抽出するとする。この31枚のフレームを、図10(a)のように配置することはできない。
【0030】
よって、この場合、図10(a)のように画像を配置するためには、抽出したフレームの削除もしくは抽出対象のフレームの追加を行わなければならない。しかしフレームを削除する場合、動画像の最初、もしくは最後のフレームを削除することが適切でない場合があり、また動画における等間隔で抽出された画像を削除すると、フレーム間の時間間隔が広がってしまうことになる。一方、フレームを追加する場合も、フレーム間の時間間隔が、本来の間隔より狭くなってしまう場合がある。
【0031】
このように画像が配置されない領域1003ができてしまう場合がある。この場合でも、その領域が少ない方が好ましい。一例として14枚の画像を配置したインデックスプリントを考える。図10(b)、10(c)に示す2つの配置が余白の大きさは変わらない。またどちらの最終行に画像が配置されない領域が存在する。
【0032】
しかし、図10(c)の配置は、最終行に示す画像の配置されてない領域が多く、一方10(b)の配置は、最終行に示す画像の配置されていない領域が少ない。この配置を見比べた場合、ユーザは最終行の画像が配置されていない領域に目がいくため、画像が配置されない領域が発生してしまう場合でも、その領域を少ない10(b)の方が好ましいといえる。そのため、画像の配置されていない領域を少なくすることが望ましい。
【0033】
なお、図10に示した、画像の配置されない領域の数は、配置対象の画像の数や、その画像のアスペクト比、また画像が配置される配置対象の領域のサイズに依存する。なお、画像を配置して、その画像を印刷装置に印刷用紙へ印刷させる場合、配置対象の領域のサイズは、画像が印刷される用紙サイズや、その用紙のフチ部に設ける余白の大きさによって決まる。
【0034】
本実施例においては、配置対象の領域において画像が配置されない領域に応じて画像のレイアウトを決定する。そのため、画像を印刷させる場合には、配置対象の画像の数、画像のアスペクト比に加え、画像が印刷される用紙サイズによって、画像のレイアウトが決定される。なお、上記の用紙サイズは、ユーザが指定することができるため、ユーザによる用紙サイズの指定に応じて、画像のレイアウトが決定される。さらに、後述する実施例2では、用紙における余白の大きさをユーザが指定することができるため、この場合、用紙サイズに加えて余白の大きさによっても配置対象の領域の大きさが変わる。よって、後述の実施例2では、余白の大きさに応じて、画像のレイアウトが決定される。実施例2の詳細については後述する。
【0035】
例えば、ユーザが、インデックスプリント時に、様々なアスペクト比の用紙サイズを指定できる場合には、用紙サイズによって、上記の領域の数が異なる。また画像のアスペクト比によっても、画像が配置されない領域の数が異なってくる。例えば、動画像のフレームのアスペクト比が、4:3である場合と、ハイビジョン画角とよばれる16:9である場合がある。さらに、ユーザが画像における任意の領域をトリミングする場合には、様々なアスペクト比を有する画像が生成されることになる。すると、配置対象の画像がどのようなアスペクト比であるかによって、画像が配置されない領域の数が異なってくる。
【0036】
従って本実施例では、画像の数や、画像のアスペクト比、画像が配置される配置対象の領域のサイズ、出力対象の領域における画像が配置されない領域を判断する。そして、その領域が少なくなるように画像のレイアウト方法を決定する。
【0037】
図9は、本実施例におけるレイアウト決定方法を説明するための図である。
901がインデックスプリントで印刷される用紙の領域である。A4やLetterやL版等の用紙サイズがユーザによって選択される。902は、配置対象の画像を配置させるための配置領域である。本実施例ではN枚の画像を、縦m枚×横n枚に配置する一般的なレイアウトプリントを想定する。このとき、画像のサイズに制限がない場合、ユーザの視認性を考慮すれば、画像サイズが最も大きくなる配置が好ましいと考える。そこで、ユーザが選択した画像の枚数N及び画像のアスペクト比に応じて、本実施例では動的に最適な縦m枚×横n枚を算出する。m×n=Nが成立しない場合、903に示す画像が配置されない領域が発生する。本実施例では、この領域に着目し、画像の配置を決定する。
【0038】
図9の904は余白である。901から902を引いた領域であり、904には903の領域も含まれる。本実施例は、903の領域が小さくなるように配置を決定する。905は配置された画像に外接する四角形である。903の領域の大きさを判断するための方法として、本実施例では、905の四角形の周囲の長さに着目することで判断する。
【0039】
本実施例における画像のレイアウトの決定処理を、図2のフローチャートを用いて詳細に説明する。
【0040】
なお、このフローチャートの処理に対応するプログラムがROM103に格納されている。そして、CPU101がRAM104をワークメモリとして、ROM103に格納されているプログラムを実行することにより、図2に示すフローチャートの各処理を実行することができる。
【0041】
まず、ステップS201で、ユーザが入力装置109を用いて入力した指示に応じて、配置対象(印刷対象)の画像を選択する。このとき、配置対象の画像の枚数を決定する。次にステップS202では、ユーザによる指示に応じて、印刷する用紙サイズを選択する。ステップS203では、画像を配置するときのレイアウトの複数の候補を生成する。ステップS204では、ステップS203で生成した複数の配置候補のうち、配置対象の画像のサイズが最大となる配置を決定する。ステップS205では、S204で決定した配置候補が複数ある場合、画像が配置されていない領域が少なくなる配置を決定する。ステップS206で決定した配置に従って配置された複数の画像を、印刷装置にインデックスプリントさせる。
【0042】
この図2に示す各ステップの処理について詳細を述べていく。S201では、印刷対象の複数の画像を取得する。このとき、2次記憶装置105やI/Oに接続されているメモリに記憶されている画像から、ユーザが印刷対象の画像を選択し、その画像を上記のメモリから取得する。なお、配置対象の複数の画像は例えばデジタルカメラで撮影された複数の静止画像でもよいし、動画像から抽出した複数のフレームやデジタルカメラで連写撮影することで撮影された画像等も想定される。動画像からフレームを切り出す場合、ユーザが任意の枚数を1枚1枚切出しても良いし、動画像中からn枚を等間隔に切り出しても良いし、n秒間隔に切出しても良い。選択と合わせてすべての画像に対してユーザが任意のアスペクト比にトリミングしてもよい。その場合通常撮影される4:3/3:2/16:9のアスペクト比以外にも、任意のアスペクト比の画像を配置する必要がある。
【0043】
次にS202では用紙サイズの選択を行い、選択された用紙サイズにより、配置対象の画像を配置するための配置領域のサイズが決定する。また、ユーザは、用紙サイズだけでなく、画像を配置する順番も指定することが可能である。また、画像の配置方法も指定することが可能である。例えば、左上から右下に向けて横に順番に並べていく配置方法や、右上から左下に向けて縦に順番に並べていく配置方法などが考えられる。A4横を選択した場合、297mm×210mm(11.69×8.27インチ)となる。画像を配置するための配置領域を用紙の全体として、300dpiで画像を印刷すると、図9の902で示した配置対象の領域の大きさは、3302×2400ピクセルとなる。
【0044】
S203では、画像を配置するときのレイアウトの、複数の候補を生成する。このときの画像の配置方法はどのような方法でも構わない。ここでは、左上から右下にむけて横方向に順番に並べていく配置方法を例に説明する。
【0045】
一例として、図3に、配置対象の画像を配置するときのレイアウトの、複数の候補を示す。ここでは、配置対象画像が29枚で縦横比が1:1の画像を配置するものとする。そして、列数を1から29まで増やしていくこととする。
【0046】
列数が1の場合、縦29×横1に画像を並べることになる。列数が2の場合縦15×横2、列数が3の場合縦10×横3、列数が4の場合縦8×横4、列数が5の場合縦6×横5、列数が6の場合縦5×横6、列数が7の場合縦5×横7、列数が8の場合縦4×横8、最後に、列数が29の場合縦1×横29となる。
【0047】
このとき29枚の画像が用紙サイズに入るように、画像サイズの調整を行う。列数が1の場合、縦29×横1に画像を並べるためは、縦方向が用紙サイズに対して制限される。2400ピクセルに29枚画像をならべることになるので、画像の縦のピクセル数は2400/29となる。縦横比が1:1であるので、画像の横のピクセル数も同様に2400/29となる。
【0048】
同様に列数が2の場合、縦15×横2に画像を並べるため、画像のピクセル数は2400/15となる。列数が3の場合、縦10×横3に画像を並べるため、画像のピクセル数は2400/10となる。列数が4の場合、縦8×横4に画像を並べるため、画像のピクセル数は2400/8となる、列数が5の場合、縦6×横5に画像を並べるため、画像のピクセル数は2400/6となる。列数が6の場合、縦5×横6に画像を並べるため、画像のピクセル数は2400/5となる。列数が7の場合、縦5×横7に画像を並べるため、画像のピクセル数は2400/5となる。列数が8の場合、縦方向ではなく横方向が用紙サイズに対して制限される。よって縦4×横8に画像を並べるため、画像のピクセル数は3302/8となる。同様に繰り返していき、最後に列が29の場合、画像のピクセル数は、3302/29となる。
【0049】
このように、画像の縦横数のそれぞれにおいて、画像が一番大きく配置できるようなレイアウトを、配置候補として生成する。上記手順に従って配置した結果が図3である。また、図4は、縦横の画像数と、画像サイズの関係を示す図であり、上記のように配置対象の画像を配置するときの列数を動的に変更したときの、各画像のサイズを示す。
【0050】
なお、ここでは画像を用紙に最大に収まるように拡大縮小を行ったが、拡大縮小を行わないことも考えられる。同じ縦横比が1:1の画像で画像サイズが400×400ピクセルの場合を考える。同様に列を増やしていき、用紙に収まらないものは除外する方法も考えられる。
【0051】
S204では、列数が1から29までのケースのうち、配置対象の画像を最も大きく配置することができるレイアウトを特定する。なお、配置対象の画像を最も大きく配置できるレイアウトが、最も余白が小さなレイアウトとなる。図4に示すように、列数が6で縦5×横6の場合、画像の縦横のピクセル数は480ピクセルで面積は480×480=230400となる。列数が7で縦5×横7の場合、画像の縦横のピクセル数は480ピクセルで面積は230400となり、同じ画像サイズで最大となる。また画像の拡大縮小を行わない場合はこのステップは不要となる。
【0052】
S205で、S203で条件を満たす配置が複数あった場合には、さらなる条件判定を行う。上述したように、画像を縦m×横n枚に配置した際に、画像が配置されない領域903が少ないほうが望ましい。列数が6で縦5×横6の場合は画像は図3(f)、列数が7で縦5×横7の場合は図3(g)に示している。このとき画像が配置されない領域が少ない方が望ましいため、列数が6で縦5×横6のレイアウトを選択したい。
【0053】
そこで画像が配置されない領域903の数を数える。列数が6で縦5×横6の場合は領域は1つ、列数が7で縦5×横7の場合は、5つとなる。このように複数の配置候補における画像が配置されない領域の数を比較し、画像が配置されない領域903が最も少ない配置を決定する。
【0054】
なお、画像が配置されない領域の別の判断方法として、横方向に順番に並べていく配置の場合、画像が配置されない領域の数が行数以上の場合は、より最適な配置があるとして候補の配置から削除できる。N枚の画像を縦m×横n枚配置する場合、m×n―N>=mが成り立つ場合候補から削除できる。
【0055】
本実施例において、画像が配置されない領域の数を判断する方法として、配置された画像に外接する四角形905の、周囲の長さに基づき、上記の判断を行う。画像の大きさが同一の場合、その4角形の周囲の長さが最も小さくなるような画像配置とすることで、画像が配置されない領域903を最小にすることができる。
【0056】
上記の四角形の周囲の長さを求める方法は次のとおりである。列数が6の場合、縦方向に画像が5個、横方向に画像が6個ずつ並んでおり、配置対象の画像のサイズは、480ピクセル×480ピクセルである。すると四角形の左右の2辺を考慮して、縦方向の周囲が5×2×480=4800ピクセルとなる。一方横方向の周囲は、6×2×480=5760ピクセルである。そして、上記の計算結果を合計すると、四角形の周囲の長さは、10560ピクセルとなる。一方、列数が7の場合、縦方向に画像が5個、横方向に画像が6個ずつ並んでいる。縦5×横6の場合と同様に計算すると、四角形の左右の2辺の長さの合計が、5×2×480=4800ピクセルとなる。一方、四角形の上下の2辺の長さの合計が、7×2×480=6720ピクセルで、四角形の周囲の長さは11520ピクセルとなる。
【0057】
そして、四角形の周囲の長さが短い方の配置候補を、画像を配置するときのレイアウトとして決定する。このように、配置対象の領域の周囲の長さを比較することで、配置を決定することができる。
【0058】
S206で、S205で決定した縦横数に応じて画像を配置しレイアウトプリントする。またユーザの指定により、S205で決定した配置を相似形に拡大縮小してもよい。これにより、上記のように決定されたレイアウトで配置されている複数の画像を、ユーザが望む大きさに変更して、印刷させることができる。
【0059】
以上の実施例1によれば、配置対象の画像が最大になり、且つ画像の配置されない領域が少ないレイアウトを決定することができる。そして、その決定したレイアウトに従って画像を配置して、印刷を行わせることができる。
【0060】
(実施例2)
実施例1では画像間に余白は持たせず画像を詰めてレイアウトする方法について説明した。実施例2では画像間に余白を持たせてレイアウトする方法について説明する。
【0061】
本実施例における画像のレイアウトの決定処理を、図5のフローチャートを用いて詳細に説明する。
【0062】
なお、このフローチャートの処理に対応するプログラムがROM103に格納されている。そして、CPU101がRAM104をワークメモリとして、ROM103に格納されているプログラムを実行することにより、図5に示すフローチャートの各処理を実行することができる。
【0063】
図5におけるステップS201〜S206の処理は、図2の場合の処理と同様であり、図2に対してS501が追加されている。
詳細を述べていく。S201では複数の画像を取得する。実施例1と同様である。
【0064】
次にS202では用紙の選択を行う。選択された用紙により画像の配置サイズが決定する。実施例1では用紙サイズいっぱいに画像を配置する方法について述べたが、必ずしも用紙サイズいっぱいに配置する必要はない。そこで、用紙サイズのフチ部に余白を設ける。用紙サイズに対して配置する領域を別途指定することも可能である。ここではA4縦(297mm×210mm、3302×2400ピクセル)に対して、画像を配置するための配置対象の領域を3000×2100ピクセルとして一回り小さく配置することとする。そして、配置対象の領域の外側が余白となる。また画像を配置する順番は右上から左下に向けて縦に配置していくこととする。
【0065】
なお、上記の余白の大きさは、用紙サイズに対して予め決められていてもよいが、ユーザが指定したものであってもよい。即ち、配置対象の領域の大きさを、ユーザが指定できるものであってもよい。
【0066】
S501では配置対象の画像間の余白を設定する。画像間の余白の設定は、用紙や画像に対する割合であっても良いし、ピクセル数でも構わない。ここではピクセル数とし10ピクセルとする。この画像間の余白の大きさは、用紙サイズや、用紙のフチ部の余白に応じて決定してもよいし、ユーザが余白の大きさを指示してもよい。
【0067】
S203では画像を配置するときのレイアウトの、複数の候補を生成する。ここでは、右上から左下にむけて縦に順番に並べていく配置に対する生成方法の1つを説明する。一例として、図7に、配置対象の画像を配置するときのレイアウトの、複数の候補を示す。図7の場合、配置対象の画像が14枚で、各画像の縦横比が2:3であるとする。
【0068】
実施例1では列数を増やしていったが、ここでは行数を1から14まで増やしていくこととする。行数が1の場合、縦1×横14に画像を並べることになる。行数が2の場合縦2×横7、実施例1と同様に、行数数が3の場合縦3×横5、行数の4の場合縦4×横4、行数5の場合、縦5×横3、行数6の場合縦6×横3、行数7の場合縦7×横2、・・行数14の場合縦14×横1となる。
【0069】
このとき、配置対象の複数の画像が用紙サイズに入るように、画像サイズの調整を行う。行数が1の場合、縦1×横14に画像を並べるためは、横方向が用紙サイズに対して制限される。画像間の余白が10ピクセルであり、2100ピクセルに14枚画像+13個の余白をならべることになるので、画像の横のピクセル数は(2100―10×13)/14となる。縦横比が2:3であるので、縦のピクセル数は(2100―10×13)/14*2/3となる。各列数の場合について、同様に計算していく。この計算で得られた縦横の画像数および画像サイズの関係を図6に示す。
【0070】
S204で画像の縦横数のそれぞれにおいて、画像が一番大きく配置できるように、画像の配置の複数の候補を特定する。即ち、行数が1から14まで変更させた場合に、画像が一番大きく配置できる配置を探す。図6に示すように、行数が5であり縦5×横3に画像を配置する場合、また列数が6であり縦6×横3に画像を配置する場合に、画像サイズが最大となる。
【0071】
S205で、S204で条件を満たす配置が複数あった場合には、さらなる条件判定を行う。行数が5で縦5×横3の場合を図7(a)、行数が6で縦6×横3の場合を図7(b)となる。実施例1と同様に、画像が配置されない領域の数を比較することで、行数が5で縦5×横3の場合を配置と決定する。実施例1と同様、もうひとつの判断方法として、縦方向に順番に並べていく配置の場合、画像が配置されない領域の数が行数以上の場合は、より最適な配置があるとして候補の配置から削除できる。
【0072】
画像が配置されない領域を、複数の配置の候補において比較する方法として、実施例1と同様に、配置対象の複数の画像に外接する四角形の、周囲の長さを用いる。ただし今回は、画像間に余白を設けたため、この画像間の余白も含む四角形を考える。行数が5の場合、縦方向に画像が5個、横方向に画像が3個ずつ並んでいるため、画像間の余白も考慮して、四角形の左右の2辺の長さの合計が、(5×462+4×10)×2=4700ピクセルとなる。一方、四角形の上下の2辺の長さの合計が、(3×693+2×10)×2=4198ピクセルで、四角形の周囲の長さは8898ピクセルとなる。一方、行数が6の場合、縦方向に画像が6個、横方向に画像が3個ずつ並んでいるため、四角形の左右の2辺の長さの合計が(6×462+4×10)×2=5624ピクセルとなる。一方四角形の上下の2辺の長さの合計は、(3×693+2×10)×2=4198ピクセルで、合計の周囲は9822ピクセルとなる。そして、四角形の周囲の長さが短い方が、画像が配置されない領域の数が少ないため、行数が5であるレイアウトを選択する。
【0073】
S206では、S205で決定した縦横数に応じて画像を配置して、インデックスプリントを行わせる。
【0074】
以上の実施例2によれば、画像の配置対象の領域の外側や、画像の間に余白がある場合であっても、配置対象の画像が最大になり、且つ画像の配置されない領域が少ないレイアウトを決定することができる。そして、その決定したレイアウトに従って画像を配置して、印刷を行わせることができる。
【0075】
(実施例3)
実施例1、2ではユーザが指定した枚数の画像を配置するので、枚数によっては縦m×横n枚に配置した際に、画像が配置されない領域903が発生してしまう場合がある。ただ、図10(a)に示したような、画像が配置されない領域がないレイアウトが望ましい場合もある。そこで本実施例ではユーザにより指定された画像に対して、配置対象の画像の追加、または削除を行うことにより、画像が配置されない領域がなくなるようにする方法について図8のフローチャートを用いて詳細に説明する。
【0076】
なお、このフローチャートの処理に対応するプログラムがROM103に格納されている。そして、CPU101がRAM104をワークメモリとして、ROM103に格納されているプログラムを実行することにより、図3に示すフローチャートの各処理を実行することができる。図8におけるステップS201〜S206の処理は、図2の場合の処理と同様であり、図2に対してS501〜S503が追加されている。
【0077】
S501では、画像が配置した際に、画像が配置されない領域がないようにするために最適な枚数を計算する。S502で最適な配置を行うのに、画像を何枚追加または削除させればよいかをユーザに提示する。
【0078】
S503において、配置対象の画像の枚数を変更することを、ユーザが指示したと判断した場合には、S201に戻り、ユーザの指示に基づき、配置対象の画像の枚数を増減する。一方、S503において、配置対象の画像の枚数を変更するためのユーザの指示がないと判断した場合は、ステップS206において、S205で決定した配置に従って、画像を配置し、印刷装置にインデックスプリントを実行させる。
【0079】
上記のS501、S502における処理について詳細に説明する。
S501では、ユーザが選択したN枚の画像を、縦m×横n枚に横方向に順に配置するレイアウト方法が決定したとする。まずm×n−Nを計算し画像が配置されない領域があるか判断する。横に画像を並べていく場合、画像が配置されない領域をなくすには、その領域に画像を追加するか、最終行に配置されている画像を削除するかである。
【0080】
このときに、画像を追加するか、削除するかについては、ユーザが選択してもよいし、または、追加対象の画像の数と、削除対象の画像の数を比較することで、自動で選択するようにしてもよい。
【0081】
画像が配置されない領域に画像を追加する場合における、追加される画像の数は、m×n−Nで計算することができる。最終行に配置されている画像を削除する場合の、削除対象の画像の数は、N−(m−1)×nで計算できる。そして、追加対象の画像の数と、削除対象の画像の数を比較して、画像の数が少ない方の方法で、画像が配置されない領域を無くす。
【0082】
S502において、m×n−Nが小さい場合、ユーザにm×n−N枚増加させる必要があることをユーザに通知する。N−(m−1)×nが小さい場合に、N−(m−1)×n枚削除させる必要があることをユーザに通知する。
【0083】
以上の実施例3によれば、ユーザにより指定された配置対象の画像を配置したときに、画像が配置されない領域がある場合であっても、画像の追加または削除を行うことで、上記の領域をなくすことができる。
【0084】
以上の実施例によれば、画像を配置するための配置対象の領域に、複数の画像を並べて配置するときに、画像の数や、画像のアスペクト比、画像が配置される配置対象の領域のサイズに応じて、画像が配置されない領域の数を判断する。そして、その領域が少なくなるように、画像の配置を決定することができる。
【0085】
さらに、画像の配置を決定するときには、画像のサイズが最大になる配置方法において、上記のように、画像が配置されない領域を少なくする。よって、複数の画像が出力されたときのユーザの画像に対する視認性を確保した上で、適切なレイアウト方法を選択することができる。
【0086】
なお、以上の実施例では、配置対象の画像を配置して、印刷装置にその画像を印刷させる例を示した。しかし、画像の出力方法はこれに限らず、配置対象の画像を配置して、表示制御部106により、表示装置107に画像を表示させる場合であってもよい。このとき、画像の配置対象の領域は、表示装置107の表示画面における領域となる。
【0087】
また、以上の実施例では、配置対象の領域において、画像が配置されない領域が少ないレイアウトが好ましいものとしてレイアウトを決定していた。しかし本発明はこれに限らず、上記の画像が配置されない領域を多く設けるように、レイアウトを決定してもよい。これにより、例えばインデックスプリントを行ったときに、用紙において画像が配置されない領域を、ユーザがその用紙に記入するための領域として設けることができる。
【0088】
このように、画像が配置されない領域を多く設けるようにレイアウトを決定するか、または上述の実施例のように、その領域が少なくなるようにレイアウトを決定するかについては、ユーザの指示に応じて選択する。
【0089】
(他の実施形態)
前述した実施形態の機能を実現するように前述した実施形態の構成を動作させるプログラムを記録媒体に記憶させ、該記録媒体に記憶されたプログラムをコードとして読み出し、コンピュータにおいて実行する処理方法も上述の実施形態の範疇に含まれる。
【0090】
該記録媒体は、コンピュータ読み取り可能な記録媒体である。また、前述のプログラムが記憶された記録媒体はもちろんそのプログラム自体も上述の実施形態に含まれる。かかる記録媒体としてはたとえばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD―ROM、磁気テープ、不揮発性メモリカード、ROMを用いることができる。
【0091】
また前述の記録媒体に記憶されたプログラム単体で処理を実行しているものに限らず、他のソフトウエア、拡張ボードの機能と共同して、OS上で動作し前述の実施形態の動作を実行するものも前述した実施形態の範疇に含まれる。
【0092】
また本発明は、1つのプロセッサがプログラムを実行する場合に限らず、複数のプロセッサが協働することによっても実現できるものである。
【符号の説明】
【0093】
101 CPU
102 ブリッジ部
103 ROM
104 RAM
105 2次記憶装置


【特許請求の範囲】
【請求項1】
出力対象の画像のレイアウトを決定する画像処理装置であって、
出力対象の複数の画像を取得する取得手段と、
前記取得手段により取得された複数の画像の数と、当該複数の画像のそれぞれのアスペクト比に応じて、当該複数の画像を所定の配置領域に配置して出力するときの、当該複数の画像のレイアウトを決定する決定手段と、を有し、
前記決定手段は、前記配置対象の領域において前記複数の画像が行と列に並んだレイアウトを決定し、さらに、当該配置対象の領域における、当該複数の画像のそれぞれを配置するための複数の領域のうちの、画像が配置されない領域の数に応じて、当該複数の画像のレイアウトを決定することを特徴とする画像処理装置。
【請求項2】
前記決定手段は、前記複数の画像のそれぞれを配置するための前記複数の領域のうちの、画像が配置されない領域の数に加えて、当該複数の画像を配置したときの当該複数の画像のそれぞれのサイズに応じて、当該複数の画像のレイアウトを決定することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記決定手段は、前記複数の画像を前記配置対象の領域に配置するときに、当該複数の画像を最も大きいサイズで配置するための複数のレイアウトの候補のうち、当該配置対象の領域において画像が配置されない領域の数が最も少ない候補を、当該複数の画像を出力するときのレイアウトとして決定することを特徴とする請求項2に記載の画像処理装置。
【請求項4】
出力対象の画像のレイアウトを決定する画像処理方法であって、
出力対象の複数の画像を取得し、
前記取得された複数の画像の数と、当該複数の画像のそれぞれのアスペクト比に応じて、当該複数の画像を所定の配置領域に配置して出力するときの、当該複数の画像のレイアウトを決定し、
前記決定では、前記配置対象の領域において前記複数の画像が行と列に並んだレイアウトを決定し、さらに、当該配置対象の領域における、当該複数の画像のそれぞれを配置するための複数の領域のうちの、画像が配置されない領域の数に応じて、当該複数の画像のレイアウトを決定することを特徴とする画像処理方法。
【請求項5】
請求項4に記載の画像処理方法をコンピュータに実行させるためのプログラム。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2013−26934(P2013−26934A)
【公開日】平成25年2月4日(2013.2.4)
【国際特許分類】
【出願番号】特願2011−161436(P2011−161436)
【出願日】平成23年7月23日(2011.7.23)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.COMPACTFLASH
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】