JP5694686B2 - 画像処理装置、画像処理方法及びプログラム - Google Patents

画像処理装置、画像処理方法及びプログラム Download PDF

Info

Publication number
JP5694686B2
JP5694686B2 JP2010118772A JP2010118772A JP5694686B2 JP 5694686 B2 JP5694686 B2 JP 5694686B2 JP 2010118772 A JP2010118772 A JP 2010118772A JP 2010118772 A JP2010118772 A JP 2010118772A JP 5694686 B2 JP5694686 B2 JP 5694686B2
Authority
JP
Japan
Prior art keywords
processing
job
image
function
current position
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.)
Active
Application number
JP2010118772A
Other languages
English (en)
Other versions
JP2011248478A (ja
JP2011248478A5 (ja
Inventor
孝大 村澤
孝大 村澤
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2010118772A priority Critical patent/JP5694686B2/ja
Priority to US12/964,245 priority patent/US8817326B2/en
Publication of JP2011248478A publication Critical patent/JP2011248478A/ja
Publication of JP2011248478A5 publication Critical patent/JP2011248478A5/ja
Application granted granted Critical
Publication of JP5694686B2 publication Critical patent/JP5694686B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Facsimiles In General (AREA)

Description

本発明は、例えばユーザの操作に応じて画像に処理を施すための画像処理装置およびプログラムに関する。
最近、画像の修正や補正等を行うためのフォトレタッチアプリケーションを使用して、撮影した画像データを補正、調整して印刷したり、Webにアップロードして共有や公開したりといった画像データの使用が盛んになっている。
フォトレタッチアプリケーションの提供する機能には、例えば撮影した画像データの画角の調整、明るさ、色見の調整といった基本的な補正、調整機能がある。このような機能に加え、画像データを解析して自動的に補正を行う機能を持つアプリケーションもある。なおこれらの画像データに対する補正や調整、修正等を単に処理あるいは画像処理と呼ぶ。
さらに、フォトレタッチアプリケーションには、いったん施した補正を元に戻すアンドゥ(undo)機能や、同一の操作を繰り返したり或いはいったん元に戻した操作をやり直したりするリドゥ(redo)機能を持ったものもある(例えば特許文献1等参照)。従来のundo/redo機能を図13及び図14を用いて説明する。
図14の処理履歴1401から1408は、フォトレタッチアプリケーションの操作により記録される処理履歴の例を示す。処理履歴には、たとえば適用された処理の順序や内容、パラメータ等が含まれる。処理1401は、図13のUI例でU1304やU1305などのボタンを押すことや、スライダ1306を動かすことで処理される画像処理の一つの処理単位である。図14では、例えば、自動写真補正、赤目補正A、赤目補正B、美肌補正、明るさ調整の順で画像処理を行うと、処理1401から1405までのように処理が履歴として残る。
この状態で、既に行った赤目補正B1403を変更したいとユーザが思ったとき、従来のアプリケーションでは、ユーザは、例えばユーザインターフェースに表示されたundoボタンU1302を押して、明るさ調整1405、美肌補正1404、赤目補正B1403まで取り消す。そしてその後、赤目補正を例えばパラメータを変更するなどしてやり直し、そのあとで再度美肌補正、明るさ調整を行う。それによって、赤目補正B’1406、美肌補正1407、明るさ調整1408の処理履歴が残る。以上のように、従来は、一連の操作による処理履歴を最新の操作から過去へと遡ることでundo/redo機能を実現している。
特開2005−310116号公報
多くの種類の画像処理を順次画像に適用した後で、その中のいずれかの処理を対象として取り消したり或いはパラメータを変えてやり直したりする場合、対象の処理が画像に適用される直前の状態までアンドゥ機能で遡る必要がある。そしてそこから改めて対象の処理をやり直したり、あるいは取り消した上で、それに続く既に行った補正をやり直さなければならない。
このようにユーザは煩雑な操作を強いられていた。近年ではフォトレタッチアプリケーションの補正機能が増え、この問題がいっそう顕著になってきている。これはフォトレタッチアプリケーションにかぎらず、対象データに補正等の多くの機能を逐次適用して加工を行うアプリケーションに用意されたundo/redo機能についても同様である。
本発明は、上記の問題を鑑みて成されたもので、ユーザにとってより簡単でより直感的に操作が可能なundo/redo機能を提供する画像処理装置および方法を提案することにある。
上記目的を達成するために本発明は以下の構成を有する。すなわち、画像に対して複数の異なる画像処理の指示を入力する入力手段と、
前記入力された複数の画像処理の処理情報を対応する処理機能に関連付け、各処理機能において、前記入力手段によって入力された指示順に処理情報を時系列に登録し、前記各処理機能において一つの処理情報に対して現在位置ポインタを登録する登録手段と、
前記入力された複数の画像処理の指示に基づき、前記画像に対して、複数の画像処理を行う処理手段と、
前記処理情報が関連付けられた処理機能の中から着目処理機能を選択し、前記選択した着目処理機能が画像全体にかかる画像処理の場合、前記着目処理機能において、一番古い処理情報から現在位置ポインタが指している処理情報の一つ手前までの処理情報を用いて処理行わずに、前記登録手段によって登録された現在位置ポインタが指している処理情報を用いて前記着目処理機能の画像処理を実行し、前記選択した着目処理機能が画像の一部分にかかる画像処理の場合、前記着目処理機能において、一番古い処理情報から現在位置ポインタが指している処理情報を用いて前記着目処理機能の画像処理を実行する手段と
を有する。
以上の構成により、対象とする機能について選択的にアンドゥを指定することができ、対象データに対して既に実行した機能の取消ややり直しを簡単な操作で迅速にかつ直感的に行うことができる。
本発明を実行可能なハードウェア構成を示す図 第1実施形態における処理のブロック図 ジョブの内容例を示す図 第1実施形態における画像処理実行のフローチャート 第1実施形態におけるジョブ管理例と現在位置管理例を説明する図 第1実施形態におけるundo/redoとジョブ追加を指示するためのUI例を示す図 第2実施形態におけるジョブ管理例と現在位置管理例を説明する図 第2実施形態における画像処理実行のフローチャート 第3実施形態における画像処理実行のフローチャート 第3実施形態における未確定ジョブを説明するためのUI例を示す図 第1実施形態の変形例におけるジョブ管理例と現在位置管理例を説明する図 第2実施形態の変形例におけるジョブ管理例と現在位置管理例を説明する図 従来の画像処理アプリケーションUI例を示す図 従来のundo/redo機能を説明する図
[第1実施形態]
本発明における好適な第1実施形態について説明する。これはあくまで実施の1つの形態を例として示したものであり、本発明は以下の実施に限定されるものではない。
また本実施形態では、UI操作の順番が画像処理結果に依存しない画像処理アプリケーションを想定している。つまり、自動写真補正を指示した後RGB調整を指示した結果と、RGB調整を指示した後自動写真補正を指示した結果が同じになる。これは、処理の実行順序が、指示した順序に関わらず予め定められているためである。たとえば自動補正は必ず最初に行い、その他の補正は自動補正後の画像に対して行うといった制限や、自動補正の2重実行は許容しない、などの制限事項がある。このような画像処理は以下のような実施形態において実現されている。
<ハードウェア構成の説明>
図1は、第1実施形態に係わる情報処理装置のハードウェア構成例を説明するブロック図である。図において、CPU(中央演算装置)100は、本実施形態で説明する情報処理方法をプログラムに従って実行する。ROM101には、CPU100により実行されるプログラムが記憶されている。RAM102は、CPU100によるプログラムの実行時に、各種情報を一時的に記憶するためのメモリを提供している。ハードディスク103は、画像ファイルやパターン識別用のパラメータなどを保存するための記憶媒体である。ディスプレイ104は、本実施形態の処理結果をユーザに提示する装置である。制御バス/データバス110は、上述の各部とCPU100とを接続する。このほか不図示ではあるが、画像データを入力するための通信インターフェースや画像入力機器等が接続されている。処理対象の画像データは、例えばディジタルカメラや画像スキャナ等から入力されたり、あるいはネットワークを介して他のコンピュータから獲得される。
<処理機能の追加>
図2に本実施形態の画像処理アプリケーションプログラムのブロック図を示している。このブロック図を用いて処理の流れを説明する。 処理対象の画像データは入力され、ハードディスク103に保存されている。処理対象の画像データを元画像データと呼ぶ。元画像データは画像処理が施されてもそのまま保存され、処理が施された画像データは元画像データとは別に保存される。そして元画像データに対する補正等の画像処理は以下の手順で実現される。
まずUI入力部201からユーザの補正指示の入力を受け付ける。入力の種類は少なくとも、画像処理追加指示、undo/redo指示、処理実行指示の3つがある。UI入力部201は図6に例示するようなユーザインターフェース画面で実現される。画像処理追加指示は、図6のユーザインターフェース画面601の画像処理ボタンU602やU605を押すこと、あるいはスライダU606を移動させることなどで指示することができる。例えば、画像処理ボタンでは、自動写真補正などを指示し、スライダでは明るさ、コントラストの調整を指示する。画像処理追加指示は、ジョブ登録部202へ送られる。画像処理追加指示を受けたジョブ登録部202では、新規ジョブを生成しジョブ管理部203へ新規ジョブを送りジョブを登録する。ここで言う、ジョブとは、ある補正処理の処理情報である。例えば、図3のように、処理機能IDと、強度や補正位置などのパラメータとがパッケージ化されているデータである。本実施形態ではひとつのジョブは、ひとつの処理機能の処理情報を保持している。しかし、二つ以上の処理機能群の処理情報を保持していても良い。
ジョブ管理部203では図5のメインジョブリスト501のように、ジョブを処理機能毎にリンクした二次元配列として管理している。各処理機能ごとに、ジョブは時系列にリンクされる。ジョブ管理部203は、入力された新規ジョブがどの処理機能のジョブなのかをジョブの中の処理機能IDを参照して特定し、特定した処理機能に関連づけて、機能別ジョブリストにジョブを格納する。
ここで言うジョブリストとは、ジョブを管理する仕組みである。メインジョブリストは機能別ジョブリストから構成され、各機能別ジョブリストは、例えば、同一の機能のジョブを双方向リストとして繋ぎ、先頭に近い方が古いジョブ、遠い方が新しいジョブとして時系列で管理される。これは一例であり、管理方法は任意であるが、ジョブリストは、あるジョブの前後のジョブを特定することができ、またジョブの新旧を区別できるデータ構造を持つ必要がある。
新規に追加されるジョブは、機能別ジョブリストの現在位置ポインタの次の位置にリンクされる。「次」とは、次に新しいことを呼び、その反対は「前」である。すなわち、ジョブの新規追加では、ジョブリストのリンク機構に応じて新たなリンクが形成される。たとえば、本実施形態では、ジョブリストは、各ジョブがその前後のジョブを指し示す双方向ポインタでリンクされた双方向リストである。その場合、現在位置ポインタで特定されているジョブのポインタが新規追加されたジョブを指し示す値に書き換えられる。また、新規追加されたジョブのポインタが現在位置ポインタで特定されるジョブを指し示す値に書き換えられる。それに伴って、現在位置ポインタで指し示されるジョブに次のジョブがリンクされていれば、当該リンクされているジョブおよびそれ以降のジョブはジョブリストから外されて削除されることになる。すなわち、当該リンクされているジョブおよびそれ以降のジョブは新たなジョブで置換されるということもできる。先頭のジョブの前にはジョブはないが、それに代えて機能別ジョブリストの機能毎に定めたアドレス等を指す。逆に末尾のジョブの次にジョブはないので、その次を指すポインタには、末尾のジョブであることを示す値が格納される。なお現在位置ポインタで特定するジョブを着目ジョブとも呼ぶ。
以上のジョブリストの操作と同時に、ジョブ登録部202は、現在位置ポインタ更新指示をジョブ現在位置管理部205へ送り、現在位置ポインタポインタを更新する。ジョブ現在位置管理部205では、図5の現在位置514から現在位置517のように、機能別ジョブリスト毎に現在位置ポインタを管理している。現在位置ポインタ更新指示に従って、現在位置ポインタが指しているジョブを変更する。新規ジョブが追加された際には、現在位置ポインタはその新規ジョブを指すように変更される。
ここで言う現在位置ポインタとは機能別ジョブリンクにおけるジョブの位置を示すポインタである。例えば、現在位置ポインタはジョブのアドレスを持っているポインタである。これは一例であり、現在位置ポインタはジョブそのものを指しても良いし、あるジョブを識別できるIDのようなものを持っていても良い。または、undo/redoの回数を保持していても良い。つまり、現在位置ポインタはジョブを一意に特定するための情報である。ジョブリストにジョブが登録されていない場合にはその旨を示す情報が記録される。なお現在位置ポインタの初期位置は、任意のジョブを指しても良いし、ジョブを指さなくても良い。また特定のジョブたとえば最新のジョブを指してもよい。以上の流れで、新しい画像処理を追加することができる。
<アンドゥ/リドゥ機能>
undo/redo指示は、ユーザが図6のundoボタンU604、U608やredoボタンU603、U607を押してアンドゥ操作またはリドゥ操作を行うことで、UI入力部201から入力することができる。
undo/redo指示は、ジョブ現在位置変更部204へ送られる。undo/redo指示を受けたジョブ現在位置変更部204は、ジョブ現在位置管理部205へ現在位置変更指示を送る。ジョブ現在位置管理部205は現在位置変更指示を受けると、その変更指示に従って、現在位置ポインタの指す先を他のジョブに変更する。
変更のやり方の一例を、図5の画像処理3に関する機能別ジョブリスト504で説明する。現在位置ポインタはジョブ510を指している。この場合、現在位置変更指示がredoであれば、現在位置ポインタは、ひとつ新しいジョブであるジョブ511を指すように変更される。一方、現在位置変更指示がundoであれば、現在位置ポインタはひとつ古いジョブであるジョブ509を指すように変更される。変更する先のジョブが無い場合は現在位置ポインタは変更されない。なおこれは変更例の一つであり、現在位置ポインタの変更はひとつずつジョブの位置をずらすのではなく、たとえば指定された数のジョブを移動させても良い。またずらす単位はジョブの数ではなく、指定されたジョブへと移動させても良い。もちろん現在位置ポインタがどのような形式であるか(たとえばジョブのアドレスや、ジョブの数など)に応じて現在位置ポインタは操作される。
現在位置変更指示は、指定した処理機能すべてのジョブリストを対象とすることもできる。その場合、対象の機能別ジョブリストの現在位置ポインタをundoまたはredoに応じて移動させる。
またこのundo/redoによる現在位置ポインタの移動の後でジョブを新規追加することもできる。この場合には、上述したように、現在位置ポインタで特定されるジョブの次(すなわち新しい側)に、新たなジョブがリンクされ、既存のジョブはジョブリストから削除される。
<画像処理の実行>
処理実行指示は、図6の処理実行ボタンU610がユーザにより押された時に、UI入力部201から入力される。また、画像処理ボタンU602,U605が押されたときに、新規ジョブをジョブリストに追加した後、それに続けて発行される。また、undoボタンU604、U608やredoボタンU603、U607が押された時に発行しても良い。あるいは、undoボタンU604、U608やredoボタンU603、U607が押されても発行せず、その後で画像処理が追加された後で発行しても良い。この場合には、undoボタンU604、U608やredoボタンU603、U607の押下だけでは処理は実行されないので、undo/redo直後に画像処理を実行させたい利用者は処理実行ボタンU610を押す必要がある。
処理実行指示は、画像処理実行部206へ送られる。画像処理実行部206は、入力画像データに対してジョブ管理部203から受け取った処理実行ジョブとジョブ現在位置管理部205から受け取った現在位置ポインタ情報をもとに、画像処理を実行する。
詳しい処理フローを図4を用いて説明する。図4の手順は、機能ブロックでは画像処理実行部206により、ハードウエア構成ではCPU100により実行される。まず、初期の処理対象の画像データは入力されたままの元画像データであるので、画像処理の実行に先立って元画像データを複製し、処理対象画像データの領域に保存する。
次にS401で実行対象の処理機能に着目する。前述の通り、本実施形態では各機能の実行順序は予め決められている。たとえばジョブリスト501に配置された機能の順に(図5では例えば上の機能から順に)着目する。はじめはその先頭であり、図5では「画像処理1」502が最初に着目される。S402においてジョブ管理部203とジョブ現在位置管理部205から、着目した処理機能の現在位置ポインタと機能別ジョブリストとを参照する。次にS403においてその着目処理機能が全面処理か局所型処理かを判断する。全面処理の場合は、S405に移り、現在位置ポインタが指しているジョブだけを実行する。局所型処理の場合は、S404に移り、ジョブリストの一番古いジョブから現在位置ポインタが指しているジョブまでを実行する。実行される処理機能により処理される画像データは、図4の手順に先立って保存された処理対象画像データである。処理対象画像データは、処理実行後に、処理済みの画像データにより上書きされる。
なお全面処理とは、例えば明るさ調整やコントラスト調整など、画像全体に処理がかかる画像処理すなわち画像全体が処理の影響を受ける画像処理とする。局所型処理とは、赤目補正やほくろ除去など、画像の一部分にかかる画像処理とする。実行しようとするジョブが全面処理か局所型処理かは予め処理機能毎に決めておき、例えば表等の形式でジョブがいずれであるかを保存しておくことができる。S403では、それを参照して判断できる。
さて、全面処理のジョブは画像全体を上書きする処理となるため、一番古いジョブから現在位置ポインタが指しているジョブの一つ手前までの処理を行うのは無駄である。そこでS405において、現在位置ポインタが指すジョブを実行する。それに対して局所型処理は処理対象となる部分が異なることもあり得るので、ジョブリストの一番古いジョブから現在位置ポインタが指しているジョブまでを実行する。本実施形態の全面処理と局所処理で処理を分けることは、その処理時間を省く効果がある。逆に言えば、S403の判定を行わず、すべてのジョブについて、ジョブリストの一番古いジョブから現在位置ポインタが指しているジョブまでを実行してもよい。このようにすると処理時間は長くなるが、ジョブの種類を判定する必要はない。
以上のS402からS405をジョブリスト501に登録した処理機能に順次着目してその末尾まで実行する。なお、本実施形態では、画像処理の実行の指示により、ジョブリストに登録されたすべての画像処理を決められた順序で実行し直すが、新規に追加されたジョブや現在位置ポインタが変更された処理機能のみに着目して実行しても良い。
以上で説明したように、本実施形態においては、画像処理機能をジョブとして扱い、処理機能毎の機能別ジョブリストでジョブを管理する。こうすることで、処理機能毎のundo/redoを実現し、ユーザのundo/redoの操作性を向上させることができる。
例えば、図14のように自動写真補正1401、赤目補正A1402、赤目補正B1403、美肌補正1404、明るさ調整1405と実行した後に赤目補正B1403を変更したいとする。従来は、図13のundoボタンU1302を2回押す。そして、新しい赤目補正B’1406を実施する。そのあと、自動補正ボタンU1305のような美肌補正ボタンを1回押す。さらにスライダーU1306のような明るさ調整スライダーを調整する。以上のことをすることで、ユーザは希望の結果を得ることができた。
これに対して本実施形態では、従来と同じ結果をえるには、図6のundoボタンU604のような赤目補正用undoボタンを一回押す。そのあと、新しい赤目補正B’を実行するだけである。
以上のように本実施形態では、従来に比べ、格段に少ない操作で希望の結果を得ることができる。
[変形例]
本実施形態ではジョブの管理を処理機能毎にジョブリストを持つ二次元配列と説明したが、これは一例であり、他の方法でもよい。例えば、図11のように、一次元のジョブリストをひとつだけ持ち、処理機能毎に現在位置ポインタを持つことでジョブを管理しても良い。この場合、新規ジョブの追加は、ジョブリストの新しい方に追加することで実現できる。undo/redo機能は、undo/redoする処理機能の現在位置ポインタを同じ処理機能のジョブの上でのみ移動させることで実現できる。画像処理実行は、処理機能毎にジョブリストの古い方のジョブから走査していき、処理したい処理機能の現在位置ポインタの位置に基づいて実行することで実現できる。全面処理の場合は現在位置ポインタが指しているジョブを実行し、局所型処理の場合は処理したい処理機能のジョブを古い方から現在位置ポインタが指しているジョブまで実行する。
また本実施形態では、ジョブ現在位置管理部205を設けたが、ジョブ管理部203で現在位置ポインタも管理しても良い。例えば、ジョブを管理しているときにどのジョブが現在位置なのか判断するようなフラグを付加して、管理しても良い。undoするときは、現在位置のジョブのフラグを下げ、ひとつ古いジョブのフラグを立てる。redoするときは、現在位置のジョブのフラグを下げ、ひとつ新しいジョブのフラグを立てる。
このように、本実施形態の本質は処理機能毎に現在位置ポインタを用意してジョブを管理することであり、ジョブリストの形式が二次元であるか一次元であるかは本質ではない。
[第2実施形態]
第1実施形態では、画像処理の実行時にエラーの起きるジョブもメインジョブリスト501に登録してしまう。そのため、エラーの起きるジョブが登録してあった場合、画像処理実行時に毎回エラーが発生することになる。ここで言う、画像処理の実行時に起こるエラーとは、例えば、画像の外側を選択したり、補正強度が想定外の値になっていたりすることで起きるエラーである。
本実施形態では、以上の課題を解決するため、第1実施形態に加え、処理実行時にエラーとなるジョブはいったん仮リストに登録し、直ちにジョブリストには登録しない。
例として、図2のジョブ管理部203に、図7のテンポラリリスト701のような、実行前のジョブを一時的に格納しておく仮リストを設ける。新規ジョブ追加指示に応じて新規ジョブを追加するときは、まず始めにジョブ管理部203は、新規ジョブをテンポラリリスト701に格納する。そののち、画像処理実行時にエラーが起こらなかったらメインジョブリスト707に登録する。メインジョブリスト707はメインジョブリスト501と同じものである。
undo/redo指示のときの動きは、第1実施形態と同様である。
処理実行指示の時は、図8の処理フローとなる。S803までは第1実施形態と同様である。全面処理の場合、S804に移り、テンポラリリスト701に着目している処理機能のジョブがあるか判定する。ある場合S805に移り、テンポラリ701にある、現在処理する処理機能に対応した最新のジョブを実行する。S804でテンポラリ701にジョブが無かった場合は、S806に移り、S802で取得した現在位置ポインタが指しているジョブを実行する。なお実行後には、ジョブ毎に処理結果情報、すなわち処理が成功したか失敗したかを示す情報が記録される。
局所型処理の場合、S807に移り、S802で取得したジョブリストの一番古いジョブから現在位置ポインタが指しているジョブまでを実行する。そのあとでS808に移り、テンポラリリスト701に着目している処理機能のジョブがあるか判定する。あった場合は、テンポラリ701にある、現在処理する処理機能に対応したジョブのなかで、最古のジョブから最新のジョブまでを順次実行する。この場合にもジョブ毎に処理結果情報が記録される。
次にS810に移り、処理を実行したときにエラーを起こした場合、テンポラリリスト701にあるエラーを起こしたジョブを削除する。以上S802からS811までの処理を実行対象の処理機能が終わるまで実行する。すべての処理機能を実行しても良いし、新規ジョブの追加や現在位置ポインタが更新された処理機能だけ実行しても良いし、そのほかのやり方でもよい。
最後にS812に移り、テンポラリリスト701にあるジョブをメインジョブリスト707に格納する。エラーを起こしたジョブはテンポラリリスト701にはないのでメインジョブリスト707には正常なジョブだけを格納することができる。
以上のS801からS812までの手順は一例である。このほか、たとえば、新規にジョブが登録される都度、当該ジョブを仮実行し、正常終了するか否かを判定した上で、正常終了下ならジョブリストに登録するようにしてもよい。仮実行では処理後の画像データを保存する必要はない。すなわち、ジョブリストにジョブを新規に登録する前に、当該ジョブが実行時にエラーを生じないものであると判定しておき、その後に登録すればよい。
以上で説明したように、本実施形態においては、実行時にエラーとなったジョブを登録することがないので、次回実行時にエラーが発生することを抑制できる。また本実施形態は、画像に依存して補正強度などの補正情報の許容範囲が変化するような実行時でないと分からないエラーのときに特に効果を発揮する。
なお本実施形態では、ジョブを一時的に格納しておく領域をひとつしかもっていなかったが、複数持っていても良い。
[変形例]
また本実施形態では処理機能毎にジョブリストを持つ場合で説明したが、これは一例であり、他の方法でもよい。例えば、ジョブリストをひとつだけ持ち、処理機能毎に現在位置ポインタを持つことでジョブを管理する場合を説明する。その場合、図12のようにジョブ確定位置を持って置き、ひとつのジョブのなかでエラーが発生していない確定状態のジョブと、未実行である未確定状態のジョブを区別することで実現することもできる。
[第3実施形態]
第2実施形態では、ユーザの操作に追従して処理を行う場合、ユーザがUIの操作中などの、まだ処理内容が確定されていない未確定なジョブも登録することになる。そのため、未確定なジョブもundo/redoの対象となり、undo/redoの操作性が悪くなる。
例えば、図10のスライダU1003のような、明るさ調整バーを動かしてプレビューに画像処理を反映させたいとする。その場合、スライダを動かすたびに画像処理がかかり、ジョブが登録されていく。そのため、スライダを動かした動き全てがundo/redo操作の対象になってしまう。具体的に、プレビューを見ながら明るさ調整する場合で説明する。明るさ調整バーを度数10→11→12→13、と動かし、ユーザが期待した結果が得られ、そこで調整を終える。このときユーザが必要としているジョブは13だけである。その他の調整バーが移動しているときの度数10、11、12、は不必要なジョブである。上記の未確定のジョブとはここで言う、度数10、11、12、の不必要なジョブである。しかし、そのあと、明るさ調整をもとに戻す場合では、度数13→12→11→10と4回戻さないと前の結果に戻らない。
この例では4つの値分しか動いなかったため4回で済むが、これが数十回にもなると、大きな手間になり、undo/redoの操作性が著しく悪くなってしまう。またスライダで調整するような補正機能、例えばRGB調整やコントラスト調整などでは、スライダをずっと動かし続けて補正するという用途が容易に考えられ、よりこの課題が浮き彫りになる。
本実施形態では、以上の課題を解決するため第2実施形態に、ジョブが確定されたジョブか未確定なジョブかを判断する手段を加える。それによって、未確定なジョブと判断した場合はジョブリストに格納しない。ここで言う未確定なジョブとは、ユーザがUI操作を継続中のときのジョブである。この場合、画像処理モジュールはジョブを実行し、ユーザのUI操作に追従した結果を表示させる。しかし、このジョブはユーザは処理を確定させていないため、undo/redoの対象のジョブとならない。
UI操作が継続中である操作とは、例えば、ユーザが図10のスライダU1003をマウスポインタでドラッグ中の操作であるとしよう。この場合、カーソルキーが押され続けているときの画像処理は未確定のジョブである。また例えば、キーボートが押され続けているときの操作も未確定である。また例えば、画像表示領域U1006で画像領域を選択するときのドラッグ中の操作も未確定である。また、マウスホイールが回転中のときの操作も未確定である。タッチパネルでユーザが触っているときの操作も未確定である。ここで挙げているのは一例であり、もちろん他の方法でもよい。
処理実行指示のときの処理フローが図9となる。図9は第2実施形態を元にしたフローである。S901からS911までは第2実施形態の図8と同じであるため説明は省略する。次に、S912に移り、テンポラリにあるジョブが確定している場合、S913に移り、テンポラリに格納してあるジョブをメインジョブリスト707に格納する。ジョブが確定していない場合は、S914に移り、テンポラリにあるジョブを削除する。確定しているか否かは、上述した要領で判定できる。すなわちユーザの操作ごとに上記基準で反転する。以上のS901からS914までの方法はひとつの例なので、他の方法でもよい。
[変形例]
なお。確定したジョブか未確定なジョブかの判断は確定ボタンを新たに設けて、ユーザからの指示に応じてジョブを確定しても良い。この場合には第1実施形態を基に確定ボタンを採用することができる。第1実施形態では画像処理ボタンの押下やスライダの操作が新規のジョブの追加指示となっていたが、本変形例では、画像処理ボタンの押下やスライダの操作等の画像処理操作の後、確定ボタンを押すと初めて当該指示に基づいた画像処理追加指示が出される。確定ボタンは、複数の画像処理を一括して確定するために押下しても良いし、ひとつの画像処理毎に確定しなければその他の画像処理を許さないようにしてもよい。この様に構成することで、ジョブの仮登録が必要なくなるので、第2実施形態のようにテンポラリリストを用いる必要が無くなり、第1実施形態に対しても適用できる。
以上で説明したように、本実施形態においては、未確定なジョブと確定されたジョブを判断する手段を加えることで、余分なジョブを追加することが無いため、上記の課題が解決されundo/redoの操作性が向上する。
[その他の実施形態]
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

Claims (6)

  1. 画像に対して複数の異なる画像処理の指示を入力する入力手段と、
    前記入力された複数の画像処理の処理情報を対応する処理機能に関連付け、各処理機能において、前記入力手段によって入力された指示順に処理情報を時系列に登録し、前記各処理機能において一つの処理情報に対して現在位置ポインタを登録する登録手段と、
    前記入力された複数の画像処理の指示に基づき、前記画像に対して、複数の画像処理を行う処理手段と、
    前記処理情報が関連付けられた処理機能の中から着目処理機能を選択し、前記選択した着目処理機能が画像全体にかかる画像処理の場合、前記着目処理機能において、一番古い処理情報から現在位置ポインタが指している処理情報の一つ手前までの処理情報を用いて処理を行わずに、前記登録手段によって登録された現在位置ポインタが指している処理情報を用いて前記着目処理機能の画像処理を実行し、前記選択した着目処理機能が画像の一部分にかかる画像処理の場合、前記着目処理機能において、一番古い処理情報から現在位置ポインタが指している処理情報を用いて前記着目処理機能の画像処理を実行する手段と
    を有することを特徴とする画像処理装置。
  2. 前記登録手段において、処理機能に対して複数の処理情報が登録されている場合、さらに、前記処理機能に対して、アンドゥ操作、または、リドゥ操作を指示することで、1つの処理情報を選択する選択手段を有することを特徴とする請求項1に記載の画像処理装置。
  3. 前記画像全体にかかる画像処理は、明るさ調整、あるいは、コントラスト調整であることを特徴とする請求項1または2に記載の画像処理装置。
  4. 前記画像の一部分にかかる画像処理は、赤目補正、あるいは、ほくろ除去であることを特徴とする請求項1乃至3のいずれか一項に記載の画像処理装置。
  5. 画像に対して複数の異なる画像処理の指示を入力する入力工程と、
    前記入力された複数の画像処理の処理情報を対応する処理機能に関連付け、各処理機能において、前記入力工程によって入力された指示順に処理情報を時系列に登録し、前記各処理機能において一つの処理情報に対して現在位置ポインタを登録する登録工程と、
    前記入力された複数の画像処理の指示に基づき、前記画像に対して、複数の画像処理を行う処理工程と、
    前記処理情報が関連付けられた処理機能の中から着目処理機能を選択し、前記選択した着目処理機能が画像全体にかかる画像処理の場合、前記着目処理機能において、一番古い処理情報から現在位置ポインタが指している処理情報の一つ手前までの処理情報を用いて処理を行わずに、前記登録工程によって登録された現在位置ポインタが指している処理情報を用いて前記着目処理機能の画像処理を実行し、前記選択した着目処理機能が画像の一部分にかかる画像処理の場合、前記着目処理機能において、一番古い処理情報から現在位置ポインタが指している処理情報を用いて前記着目処理機能の画像処理を実行する工程と
    を有することを特徴とする画像処理方法。
  6. 請求項1乃至4のいずれか一項に記載の画像処理装置の各手段としてコンピュータを機能させるためのプログラム。
JP2010118772A 2010-05-24 2010-05-24 画像処理装置、画像処理方法及びプログラム Active JP5694686B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010118772A JP5694686B2 (ja) 2010-05-24 2010-05-24 画像処理装置、画像処理方法及びプログラム
US12/964,245 US8817326B2 (en) 2010-05-24 2010-12-09 Image processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010118772A JP5694686B2 (ja) 2010-05-24 2010-05-24 画像処理装置、画像処理方法及びプログラム

Publications (3)

Publication Number Publication Date
JP2011248478A JP2011248478A (ja) 2011-12-08
JP2011248478A5 JP2011248478A5 (ja) 2014-01-09
JP5694686B2 true JP5694686B2 (ja) 2015-04-01

Family

ID=44973544

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010118772A Active JP5694686B2 (ja) 2010-05-24 2010-05-24 画像処理装置、画像処理方法及びプログラム

Country Status (2)

Country Link
US (1) US8817326B2 (ja)
JP (1) JP5694686B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108628759A (zh) * 2017-12-29 2018-10-09 贵阳忆芯科技有限公司 乱序执行nvm命令的方法与装置

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5641782B2 (ja) 2010-05-24 2014-12-17 キヤノン株式会社 画像処理装置及び画像処理方法
JP5685031B2 (ja) 2010-09-15 2015-03-18 キヤノン株式会社 画像処理装置および画像形成システムおよび画像形成方法
JP5827640B2 (ja) * 2013-03-22 2015-12-02 富士フイルム株式会社 画像表示方法および装置並びにプログラム
JP6216197B2 (ja) 2013-09-18 2017-10-18 キヤノン株式会社 装置、制御方法およびプログラム
JP6358021B2 (ja) * 2014-09-30 2018-07-18 ブラザー工業株式会社 機能実行装置、機能実行方法、及び記録媒体
JP6724605B2 (ja) * 2016-07-05 2020-07-15 株式会社リコー 画像処理装置、画像処理方法、および画像処理プログラム
JP7114948B2 (ja) * 2018-03-09 2022-08-09 富士フイルムビジネスイノベーション株式会社 情報処理装置及び情報処理プログラム
JP7341646B2 (ja) 2018-09-27 2023-09-11 キヤノン株式会社 画像処理装置、画像処理方法、及びプログラム
JP7329932B2 (ja) 2019-02-27 2023-08-21 キヤノン株式会社 画像処理装置、画像処理方法、及びプログラム
JP7411074B2 (ja) * 2020-04-28 2024-01-10 株式会社Pfu 情報処理装置、方法及びプログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5659747A (en) 1993-04-22 1997-08-19 Microsoft Corporation Multiple level undo/redo mechanism
JP3478329B2 (ja) * 1999-10-01 2003-12-15 セイコーエプソン株式会社 画像処理装置及び画像処理方法
JP2004264945A (ja) * 2003-02-28 2004-09-24 Konica Minolta Holdings Inc 記録装置、画像データ記録プログラム、画像処理装置、画像処理プログラム、画像読取装置、画像読取プログラムおよび画像処理システム
JP4652978B2 (ja) * 2005-08-12 2011-03-16 キヤノン株式会社 画像編集装置及びその制御方法、コンピュータプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108628759A (zh) * 2017-12-29 2018-10-09 贵阳忆芯科技有限公司 乱序执行nvm命令的方法与装置
CN108628759B (zh) * 2017-12-29 2020-09-01 贵阳忆芯科技有限公司 乱序执行nvm命令的方法与装置

Also Published As

Publication number Publication date
US8817326B2 (en) 2014-08-26
US20110289504A1 (en) 2011-11-24
JP2011248478A (ja) 2011-12-08

Similar Documents

Publication Publication Date Title
JP5694686B2 (ja) 画像処理装置、画像処理方法及びプログラム
US7974486B2 (en) Plug-in architecture for exporting digital images
US8635549B2 (en) Directly assigning desktop backgrounds
JP4587461B2 (ja) 画像編集装置及びその制御方法
US10122874B2 (en) Image forming apparatus, method for controlling operation screen of image forming apparatus
JP5715433B2 (ja) 撮像装置及びアルバム作成方法、プログラム並びに記憶媒体
JP2016126657A (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
JP2014059817A (ja) 画像処理装置、操作標準化方法および操作標準化プログラム
JP5875262B2 (ja) 表示制御装置
JP2007094533A (ja) データ処理方法
JP5589309B2 (ja) 表示制御装置、画像処理装置、及びプログラム
JP5921156B2 (ja) 印刷装置、レイアウト変更方法、及びプログラム
JP5556829B2 (ja) 遠隔操作システム、画像形成装置、遠隔操作装置およびプログラム
JP5871509B2 (ja) プログラム及び情報処理装置、制御方法
JP6436752B2 (ja) 情報処理装置、情報処理装置における情報処理方法、並びにプログラム
US8902469B2 (en) Print setting apparatus, control method of print setting apparatus, computer readable storage medium storing control program of print setting apparatus, and printing apparatus
JP2006106976A (ja) 画像処理装置、画像処理方法及びプログラム
JP2009282606A (ja) 画像閲覧装置およびプログラム
JP2014028528A (ja) 画像形成装置、設定変更方法、プログラム、及び情報処理装置
JP5765364B2 (ja) 画像処理装置、プレビュー画像を表示する方法、およびプログラム
JP5827640B2 (ja) 画像表示方法および装置並びにプログラム
JP4168528B2 (ja) 複写システムの制御方法および装置並びに制御プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2019020954A (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
JP2009282607A (ja) 画像閲覧装置およびプログラム
JP6242427B2 (ja) 印刷装置、レイアウト変更方法、及びプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130520

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130520

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131114

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140620

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140819

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141205

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150205

R151 Written notification of patent or utility model registration

Ref document number: 5694686

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151