JP2011176749A - 画像処理装置および方法、並びにプログラム - Google Patents
画像処理装置および方法、並びにプログラム Download PDFInfo
- Publication number
- JP2011176749A JP2011176749A JP2010040699A JP2010040699A JP2011176749A JP 2011176749 A JP2011176749 A JP 2011176749A JP 2010040699 A JP2010040699 A JP 2010040699A JP 2010040699 A JP2010040699 A JP 2010040699A JP 2011176749 A JP2011176749 A JP 2011176749A
- Authority
- JP
- Japan
- Prior art keywords
- energy
- pixels
- input image
- pixel
- reduced
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims description 142
- 230000009467 reduction Effects 0.000 claims abstract description 40
- 230000008569 process Effects 0.000 claims description 101
- 238000003672 processing method Methods 0.000 claims description 4
- 230000001186 cumulative effect Effects 0.000 abstract 1
- 238000003860 storage Methods 0.000 description 45
- 238000003780 insertion Methods 0.000 description 14
- 230000037431 insertion Effects 0.000 description 14
- SYHGEUNFJIGTRX-UHFFFAOYSA-N methylenedioxypyrovalerone Chemical compound C=1C=C2OCOC2=CC=1C(=O)C(CCC)N1CCCC1 SYHGEUNFJIGTRX-UHFFFAOYSA-N 0.000 description 9
- 230000008859 change Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 3
- 241000272517 Anseriformes Species 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- 241000271566 Aves Species 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004146 energy storage Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000011946 reduction process Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/04—Context-preserving transformations, e.g. by using an importance map
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Editing Of Facsimile Originals (AREA)
- Image Processing (AREA)
Abstract
【課題】シームカービングにおいて、計算コストを低減させつつ、ピクセルずれを抑制できるようにする。
【解決手段】全画像探索部31は、入力画像の隣接する画素間のエネルギーに基づいて、入力画像エネルギーマップを縮小した縮小画像エネルギーマップより縮小シームを探索し、部分画像探索部32に供給する。部分画像探索部32は、入力画像エネルギーマップのうち、全画像探索部31により探索された縮小シームに属する画素を起点とする部分シーム候補を探索し、積算エネルギーが最小となる部分シームを探索する。加工部16は、探索された部分シームに属する画素を入力画像より削除、または挿入することにより、入力画像を縮小、または拡大する。本発明は、画像処理装置に適用することができる。
【選択図】図1
【解決手段】全画像探索部31は、入力画像の隣接する画素間のエネルギーに基づいて、入力画像エネルギーマップを縮小した縮小画像エネルギーマップより縮小シームを探索し、部分画像探索部32に供給する。部分画像探索部32は、入力画像エネルギーマップのうち、全画像探索部31により探索された縮小シームに属する画素を起点とする部分シーム候補を探索し、積算エネルギーが最小となる部分シームを探索する。加工部16は、探索された部分シームに属する画素を入力画像より削除、または挿入することにより、入力画像を縮小、または拡大する。本発明は、画像処理装置に適用することができる。
【選択図】図1
Description
本発明は、画像処理装置および方法、並びにプログラムに関し、特に、シームカービング(SeamCarving)による不具合を低減し、処理を高速化できるようにする画像処理装置および方法、並びにプログラムに関する。
シームカービング(SeamCarving)と呼ばれる画像の加工技術が一般に普及しつつある。
シームカービング(SeamCarving)とは、画像内にある主体となるオブジェクトの形状や大きさを不自然なものとならないように、画像を拡大、または縮小させる技術である。より具体的には、シームカービングでは、まず、画像の画素間の画素値や輝度の差分より、各画素単位でエネルギーが求められ、それらからエネルギー画像(エネルギーマップ)が生成される。次に、エネルギー画像を用いて、画像の一方の端部の各画素から順次隣接する画素を経由して他方の端部まで設定される経路において、経由する画素のエネルギーの積算値が最小となるような経路が、シームとして求められる。このシームを構成する、隣接する画素間においては、画素値または輝度値の変化が小さいと考えられる。すなわち、シームは、エネルギー変化の小さい画素が順次配列された領域であるため、シームを構成する画素に隣接する領域は、シームを構成する画素と同系統の画素値、または輝度値であると考えることができる。そこで、シームカービングでは、入力された画像からシームを構成する画素を削除する、または、付加することにより、画像における主体となるオブジェクトの形状や大きさの変化を小さくさせつつ、画像全体の大きさ縮小、または拡大する(特許文献1参照)。
ところで、シームカービングでは、画像と同サイズのエネルギー画像が生成され、画像全域から最もエネルギー変化の小さなシームが探索されていた。このため、2本目以降のシームが探索される場合、1本のシームが探索される度に、探索されたシームを削除して画像を再構成し、エネルギー画像が毎度作成され直されるため、計算コストが非常に多くなっていた。
また、エネルギー画像の再作成を抑制するため、一度作成されたエネルギー画像を繰り返し使うようにすることを考える場合、複数のシームが同一のエネルギー画像から同時に削除されることになる。ところが、この場合、複数のシームが交差するような現象が生じると、1本のシームにより削除される幅が、1ピクセル分であったとすると、複数のシームが交差することにより生じる交点となる同一の画素が、複数のシームに含まれることになる。このとき、同時に複数のシームを削除、または付加すると、交点を含む行、または列の画素数が他の行、または列における画素数と異なる、いわゆるピクセルずれが生じてしまう恐れがあった。
本発明はこのような状況に鑑みてなされたものであり、特に、シームカービングにおいて、計算コストを低減させつつ、ピクセルずれを抑制できるようにするものである。
本発明の一側面の画像処理装置は、入力画像より前記入力画像の隣接する画素間のエネルギーに基づいて、入力画像エネルギーマップを生成する入力画像エネルギーマップ生成手段と、前記入力画像エネルギーマップを縮小することにより、前記入力画像における隣接する複数の画素からなる1ブロックを1画素とした縮小画像に対応する、縮小エネルギーマップを生成する縮小エネルギーマップ生成手段と、前記縮小エネルギーマップにおける縮小画像の一方の端部の画素より、他方の端部の方向に隣接した画素を順次経由して、前記他方の端部の画素に到達するまでの複数の経路のうち、経由する画素のエネルギーの積算値が最小となる経路の画素間を結ぶことにより構成される縮小シームを探索する縮小シーム探索手段と、前記縮小シーム探索手段により探索された縮小シームの端部を構成する、前記入力画像エネルギーマップにおける入力画像の一方の端部の画素より、他方の端部の方向に隣接した画素を順次経由して、前記他方の端部の画素に到達するまでの複数の経路のうち、経由する画素のエネルギーの積算値が最小となる画素間を結ぶことにより構成される部分シームを探索する部分シーム探索手段と、前記部分シーム探索手段により探索された部分シームを構成する、前記入力画像の全ての画素に対応する前記入力画像エネルギーマップ上のエネルギーに、エネルギー最大値を挿入して置換し、前記入力画像エネルギーマップを更新する入力画像エネルギーマップ更新手段と、前記部分シーム探索手段により探索された前記部分シームを構成する画素を、前記入力画像より削除、または、同一若しくは近傍画素から補間した画素を挿入することで前記入力画像を縮小または拡大する縮小拡大手段とを含み、前記部分シーム探索手段は、前記入力画像の一方の端部の画素より、他方の端部の方向に隣接した画素を順次経由して、前記他方の端部の画素に到達するまでの複数の経路を探索するにあたり、隣接する画素の全てが前記入力画像エネルギーマップのエネルギー最大値であった場合、前記隣接する画素に、さらに隣接する所定数の画素のうち、最小エネルギーの画素を隣接する画素として設定し、前記経路を構成させる。
前記縮小シーム探索手段により探索された縮小シームを構成する、前記縮小画像の全ての画素に対応する前記縮小画像エネルギーマップ上のエネルギーに、エネルギー最大値を挿入して置換し、前記縮小画像エネルギーマップを更新する縮小画像エネルギーマップ更新手段をさらに含ませるようにすることができる。
前記縮小シーム探索手段には、グリーディ法、または、ダイナミックプログラミング法により、前記縮小エネルギーマップにおける縮小画像の一方の端部の画素より、他方の端部の方向に隣接した画素を順次経由して、前記他方の端部の画素に到達するまでの複数の経路のうち、経由する画素のエネルギーの積算値が最小となる経路の画素間を結ぶことにより構成される縮小シームを探索させるようにすることができる。
前記部分シーム探索手段には、グリーディ法により、前記縮小シーム探索手段により前記縮小シーム探索手段により探索された縮小シームの端部を構成する、前記入力画像エネルギーマップにおける入力画像の一方の端部の画素より、他方の端部の方向に隣接した画素を順次経由して、前記他方の端部の画素に到達するまでの複数の経路のうち、経由する画素のエネルギーの積算値が最小となる画素間を結ぶことにより構成される部分シームを探索させるようにすることができる。
本発明の一側面の画像処理方法は、入力画像より前記入力画像の隣接する画素間のエネルギーに基づいて、入力画像エネルギーマップを生成する入力画像エネルギーマップ生成手段と、前記入力画像エネルギーマップを縮小することにより、前記入力画像における隣接する複数の画素からなる1ブロックを1画素とした縮小画像に対応する、縮小エネルギーマップを生成する縮小エネルギーマップ生成手段と、前記縮小エネルギーマップにおける縮小画像の一方の端部の画素より、他方の端部の方向に隣接した画素を順次経由して、前記他方の端部の画素に到達するまでの複数の経路のうち、経由する画素のエネルギーの積算値が最小となる経路の画素間を結ぶことにより構成される縮小シームを探索する縮小シーム探索手段と、前記縮小シーム探索手段により探索された縮小シームの端部を構成する、前記入力画像エネルギーマップにおける入力画像の一方の端部の画素より、他方の端部の方向に隣接した画素を順次経由して、前記他方の端部の画素に到達するまでの複数の経路のうち、経由する画素のエネルギーの積算値が最小となる画素間を結ぶことにより構成される部分シームを探索する部分シーム探索手段と、前記部分シーム探索手段により探索された部分シームを構成する、前記入力画像の全ての画素に対応する前記入力画像エネルギーマップ上のエネルギーに、エネルギー最大値を挿入して置換し、前記入力画像エネルギーマップを更新する入力画像エネルギーマップ更新手段と、前記部分シーム探索手段により探索された前記部分シームを構成する画素を、前記入力画像より削除、または、同一若しくは近傍画素から補間した画素を挿入することで前記入力画像を縮小または拡大する縮小拡大手段とを含み、前記部分シーム探索手段は、前記入力画像の一方の端部の画素より、他方の端部の方向に隣接した画素を順次経由して、前記他方の端部の画素に到達するまでの複数の経路を探索するにあたり、隣接する画素の全てが前記入力画像エネルギーマップのエネルギー最大値であった場合、前記隣接する画素に、さらに隣接する所定数の画素のうち、最小エネルギーの画素を隣接する画素として設定し、前記経路を構成させる画像処理装置の画像処理方法であって、前記入力画像エネルギーマップ生成手段における、前記入力画像より前記入力画像の隣接する画素間のエネルギーに基づいて、入力画像エネルギーマップを生成する入力画像エネルギーマップ生成ステップと、前記縮小エネルギーマップ生成手段における、前記入力画像エネルギーマップを縮小することにより、前記入力画像における隣接する複数の画素からなる1ブロックを1画素とした縮小画像に対応する、縮小エネルギーマップを生成する縮小エネルギーマップ生成ステップと、前記縮小シーム探索手段における、前記縮小エネルギーマップにおける縮小画像の一方の端部の画素より、他方の端部の方向に隣接した画素を順次経由して、前記他方の端部の画素に到達するまでの複数の経路のうち、経由する画素のエネルギーの積算値が最小となる経路の画素間を結ぶことにより構成される縮小シームを探索する縮小シーム探索ステップと、前記部分シーム探索手段における、前記縮小シーム探索ステップの処理により探索された縮小シームの端部を構成する、前記入力画像エネルギーマップにおける入力画像の一方の端部の画素より、他方の端部の方向に隣接した画素を順次経由して、前記他方の端部の画素に到達するまでの複数の経路のうち、経由する画素のエネルギーの積算値が最小となる画素間を結ぶことにより構成される部分シームを探索する部分シーム探索ステップと、前記入力画像エネルギーマップ更新手段における、前記部分シーム探索ステップの処理により探索された部分シームを構成する、前記入力画像の全ての画素に対応する前記入力画像エネルギーマップ上のエネルギーに、エネルギー最大値を挿入して置換し、前記入力画像エネルギーマップを更新する入力画像エネルギーマップ更新ステップと、前記縮小拡大手段における、前記部分シーム探索ステップの処理により探索された前記部分シームを構成する画素を、前記入力画像より削除、または、同一若しくは近傍画素から補間した画素を挿入することで前記入力画像を縮小または拡大する縮小拡大ステップとを含み、前記部分シーム探索ステップの処理は、前記入力画像の一方の端部の画素より、他方の端部の方向に隣接した画素を順次経由して、前記他方の端部の画素に到達するまでの複数の経路を探索するにあたり、隣接する画素の全てが前記入力画像エネルギーマップのエネルギー最大値であった場合、前記隣接する画素に、さらに隣接する所定数の画素のうち、最小エネルギーの画素を隣接する画素として設定し、前記経路を構成させる。
本発明の一側面のプログラムは、入力画像より前記入力画像の隣接する画素間のエネルギーに基づいて、入力画像エネルギーマップを生成する入力画像エネルギーマップ生成手段と、前記入力画像エネルギーマップを縮小することにより、前記入力画像における隣接する複数の画素からなる1ブロックを1画素とした縮小画像に対応する、縮小エネルギーマップを生成する縮小エネルギーマップ生成手段と、前記縮小エネルギーマップにおける縮小画像の一方の端部の画素より、他方の端部の方向に隣接した画素を順次経由して、前記他方の端部の画素に到達するまでの複数の経路のうち、経由する画素のエネルギーの積算値が最小となる経路の画素間を結ぶことにより構成される縮小シームを探索する縮小シーム探索手段と、前記縮小シーム探索手段により探索された縮小シームの端部を構成する、前記入力画像エネルギーマップにおける入力画像の一方の端部の画素より、他方の端部の方向に隣接した画素を順次経由して、前記他方の端部の画素に到達するまでの複数の経路のうち、経由する画素のエネルギーの積算値が最小となる画素間を結ぶことにより構成される部分シームを探索する部分シーム探索手段と、前記部分シーム探索手段により探索された部分シームを構成する、前記入力画像の全ての画素に対応する前記入力画像エネルギーマップ上のエネルギーに、エネルギー最大値を挿入して置換し、前記入力画像エネルギーマップを更新する入力画像エネルギーマップ更新手段と、前記部分シーム探索手段により探索された前記部分シームを構成する画素を、前記入力画像より削除、または、同一若しくは近傍画素から補間した画素を挿入することで前記入力画像を縮小または拡大する縮小拡大手段とを含み、前記部分シーム探索手段は、前記入力画像の一方の端部の画素より、他方の端部の方向に隣接した画素を順次経由して、前記他方の端部の画素に到達するまでの複数の経路を探索するにあたり、隣接する画素の全てが前記入力画像エネルギーマップのエネルギー最大値であった場合、前記隣接する画素に、さらに隣接する所定数の画素のうち、最小エネルギーの画素を隣接する画素として設定し、前記経路を構成させる画像処理装置を制御するコンピュータに、前記入力画像エネルギーマップ生成手段における、前記入力画像より前記入力画像の隣接する画素間のエネルギーに基づいて、入力画像エネルギーマップを生成する入力画像エネルギーマップ生成ステップと、前記縮小エネルギーマップ生成手段における、前記入力画像エネルギーマップを縮小することにより、前記入力画像における隣接する複数の画素からなる1ブロックを1画素とした縮小画像に対応する、縮小エネルギーマップを生成する縮小エネルギーマップ生成ステップと、前記縮小シーム探索手段における、前記縮小エネルギーマップにおける縮小画像の一方の端部の画素より、他方の端部の方向に隣接した画素を順次経由して、前記他方の端部の画素に到達するまでの複数の経路のうち、経由する画素のエネルギーの積算値が最小となる経路の画素間を結ぶことにより構成される縮小シームを探索する縮小シーム探索ステップと、前記部分シーム探索手段における、前記縮小シーム探索ステップの処理により探索された縮小シームの端部を構成する、前記入力画像エネルギーマップにおける入力画像の一方の端部の画素より、他方の端部の方向に隣接した画素を順次経由して、前記他方の端部の画素に到達するまでの複数の経路のうち、経由する画素のエネルギーの積算値が最小となる画素間を結ぶことにより構成される部分シームを探索する部分シーム探索ステップと、前記入力画像エネルギーマップ更新手段における、前記部分シーム探索ステップの処理により探索された部分シームを構成する、前記入力画像の全ての画素に対応する前記入力画像エネルギーマップ上のエネルギーに、エネルギー最大値を挿入して置換し、前記入力画像エネルギーマップを更新する入力画像エネルギーマップ更新ステップと、前記縮小拡大手段における、前記部分シーム探索ステップの処理により探索された前記部分シームを構成する画素を、前記入力画像より削除、または、同一若しくは近傍画素から補間した画素を挿入することで前記入力画像を縮小または拡大する縮小拡大ステップとを含む処理を実行させ、前記部分シーム探索ステップの処理は、前記入力画像の一方の端部の画素より、他方の端部の方向に隣接した画素を順次経由して、前記他方の端部の画素に到達するまでの複数の経路を探索するにあたり、隣接する画素の全てが前記入力画像エネルギーマップのエネルギー最大値であった場合、前記隣接する画素に、さらに隣接する所定数の画素のうち、最小エネルギーの画素を隣接する画素として設定し、前記経路を構成させる
本発明の一側面においては、入力画像より前記入力画像の隣接する画素間のエネルギーに基づいて、入力画像エネルギーマップが生成され、前記入力画像エネルギーマップが縮小されることにより、前記入力画像における隣接する複数の画素からなる1ブロックを1画素とした縮小画像に対応する、縮小エネルギーマップが生成され、前記縮小エネルギーマップにおける縮小画像の一方の端部の画素より、他方の端部の方向に隣接した画素が順次経由されて、前記他方の端部の画素に到達されるまでの複数の経路のうち、経由される画素のエネルギーの積算値が最小となる経路の画素間が結ばれることにより構成される縮小シームが探索され、探索された縮小シームの端部が構成される、前記入力画像エネルギーマップにおける入力画像の一方の端部の画素より、他方の端部の方向に隣接した画素が順次経由されて、前記他方の端部の画素に到達するまでの複数の経路のうち、経由される画素のエネルギーの積算値が最小となる画素間が結ばれることにより構成される部分シームが探索され、探索された部分シームが構成される、前記入力画像の全ての画素に対応する前記入力画像エネルギーマップ上のエネルギーに、エネルギー最大値が挿入されて置換され、前記入力画像エネルギーマップが更新され、探索された前記部分シームが構成される画素が、前記入力画像より削除、または、同一若しくは近傍画素から補間した画素が挿入されることで前記入力画像が縮小または拡大され、前記入力画像の一方の端部の画素より、他方の端部の方向に隣接した画素が順次経由されて、前記他方の端部の画素に到達するまでの複数の経路が探索されるにあたり、隣接する画素の全てが前記入力画像エネルギーマップのエネルギー最大値であった場合、前記隣接する画素に、さらに隣接する所定数の画素のうち、最小エネルギーの画素が隣接される画素として設定され、前記経路が構成される。
本発明の画像処理装置は、独立した装置であっても良いし、画像処理を行うブロックであっても良い。
本発明の一側面によれば、シームカービングにおける、計算コストを低減しつつ、ピクセルずれを低減することが可能となる。
[画像処理装置の構成例]
図1は、本発明を適用した画像処理装置のハードウェアの一実施の形態の構成例を示している。図1の画像処理装置1は、入力画像をシームカービングにより縮小、または拡大し、表示部2に表示するものである。
図1は、本発明を適用した画像処理装置のハードウェアの一実施の形態の構成例を示している。図1の画像処理装置1は、入力画像をシームカービングにより縮小、または拡大し、表示部2に表示するものである。
画像処理装置1は、画像取得部11、エネルギーマップ生成部12、入力画像エネルギーマップ記憶部13、縮小画像エネルギーマップ記憶部14、探索部15、および加工部16を備えている。
画像取得部11は、入力画像を取得すると共に、エネルギーマップ生成部12、および加工部16に供給する。エネルギーマップ生成部12は、エネルギー算出部21、および縮小部22を備えており、画像取得部11からの入力画像より、入力画像と同サイズの入力画像エネルギーマップ、および、入力画像の縮小画像と同サイズの縮小画像エネルギーマップを生成する。より詳細には、エネルギー算出部21は、以下の式(1)を算出することにより、各画素のエネルギーe(I)を算出し、入力画像に対応する画素単位のエネルギーからなる入力画像エネルギーマップを生成し、入力画像エネルギーマップ記憶部13に記憶させる。また、エネルギー算出部21は、生成した入力画像エネルギーマップを縮小部22に供給する。
ここで、e(I)は、Iで示される入力画像上の位置の各画素におけるエネルギーを示している。すなわち、式(1)で示される各画素のエネルギーe(I)は、入力画像の各画素におけるx,y方向のそれぞれの隣接する画素間の画素値、または輝度値などの差分の絶対値和であることが示されている。
縮小部22は、エネルギー算出部21により算出されて生成され、入力画像と同サイズの入力画像エネルギーマップを縮小し、縮小画像エネルギーマップを生成して、縮小画像エネルギーマップ記憶部14に記憶させる。より詳細には、縮小部22は、入力画像の、例えば、m画素×n画素を1ブロックとし、その1ブロックを1画素と対応するように、各ブロックの画素のエネルギーの平均や中央値を求めて、エネルギーマップを構成することで縮小画像エネルギーマップを生成する。すなわち、縮小画像エネルギーマップは、入力画像に対して、m画素×n画素を1ブロックとし、その1ブロックを1画素と対応するように生成された縮小画像のエネルギーマップとして求められる。
探索部15は、縮小画像エネルギーマップ記憶部14より縮小画像エネルギーマップを読み出し、縮小画像の一方の端部より他方の端部まで順次隣接する画素を選択経路として選択し、選択経路の画素のエネルギーの積算値が最小となるように縮小シームを探索する。この際、探索部15は、後述するダイナミックプログラミング法、またはグリーディ法により縮小シームを探索する。また、探索部15は、一旦求めた縮小シームに属する画素のエネルギーを、エネルギー最大値に置換し、順次所定数の部分シームが求められるまで、同様の処理を繰り返す。
ここでいう、一方の端部より他方の端部まで順次隣接する画素からなる経路とは、例えば、縮小画像の上方端部のいずれかの画素に対して、右下、真下、および左下に隣接する3画素のいずれかが選択され、選択された画素に同様に隣接する3画素のいずれかが選択されるといったことが順次繰り返されて、下方端部のいずれかの画素にまで順次選択される画素が結ばれることにより構成される経路である。従って、一方の端部が縮小画像の左端部であり、他方の端部が右端部である場合、左端部のいずれかの画素に対して、右上、真右、および右下に隣接する3画素のいずれかが選択され、選択された画素に同様に隣接する3画素のいずれかが選択されるといったことが順次繰り返されて、右端部のいずれかの画素にまで順次選択される画素が結ばれることにより構成される経路となる。また、以降においては、縮小画像における上方端部から下方端部に縮小シームが探索されるとき、探索方向を下方向と称するものとし、同様に、左端部から右端部に縮小シームが探索されるとき、探索方向を右方向と称するものとする。さらに、注目画素が設定される場合、注目画素に対して探索方向に隣接する画素とは、探索方向が垂直方向のとき、注目画素に対して、右上、真上、および左上に隣接する3画素、または右下、真下、および左下に隣接する3画素を表すものとする。同様に、探索方向が水平方向のとき、注目画素に対して、左上、真左、および左下に隣接する3画素、または右上、真右、および右下に隣接する3画素を表すものとする。
さらに、探索部15は、縮小画像エネルギーマップで検索された縮小シームを構成する縮小画像の画素に対応するブロックに属する、入力画像の端部の画素より順次隣接する画素のうち最小のエネルギーとなる画素を順次注目画素を設定する。そして、探索部15は、順次設定された注目画素を結ぶことにより部分シームを探索する。このとき、探索部15は、後述するグリーディ法により部分シームを探索する。この際、探索部15は、一旦求めた入力画像の部分シームに属する画素に対応するエネルギーを、エネルギー最大値に置換して、順次所定数の部分シームが求めれらるまで、同様の処理を繰り返し、複数の部分シームを求める。
加工部16は、画像取得部11より供給されてくる画像より、探索部15より求められた部分シームに対応する画素を削除、または同様の画素を付加することにより、画像を縮小、または拡大し、加工処理した後、表示部2に出力して表示させる。
[探索部15の構成例]
次に、図2を参照して、探索部15の詳細な構成例について説明する。
次に、図2を参照して、探索部15の詳細な構成例について説明する。
探索部15は、全画像探索部31、および部分画像探索部32より構成されている。全画像探索部31は、縮小画像エネルギーマップより、縮小画像における縮小シームを求めて、部分画像探索部32に供給する。部分画像探索部32は、全画像探索部31より供給されてきた縮小シームの情報に基づいて、入力画像エネルギーマップより部分シームを求め加工部16に出力する。
まず、全画像探索部31の構成について説明する。全画像探索部31は、縮小画像エネルギーマップバッファ51、積算エネルギーマップ生成部52、積算エネルギーマップ記憶部53、縮小シーム決定部54、およびエネルギー最大値挿入部55を備えている。縮小画像エネルギーマップバッファ51は、縮小画像エネルギーマップ記憶部14に記憶されている縮小画像エネルギーマップを読み出して一旦記憶する。また、縮小画像エネルギーマップバッファ51は、縮小シームに属する画素のエネルギーがエネルギー最大値挿入部55より挿入されるエネルギー最大値で置換され、縮小画像エネルギーマップが更新されると、更新された縮小画像エネルギーマップを記憶する。
積算エネルギーマップ生成部52は、以下の式(2)で示される計算を実行することにより、順次設定される注目画素に対して、縮小画像エネルギーマップの探索方向に対して逆方向に隣接する画素のエネルギーを順次積算し、積算エネルギーとして求める。
ここで、M(i,j)は、注目画素(i,j)における、それまでに順次設定された注目画素の積算エネルギーを示している。また、e(i,j)は、注目画素(i,j)のエネルギーを閉めている。min(A,B,C)は、A乃至Cの値のうち最小値を選択することを示している。
すなわち、積算エネルギーマップ生成部52は、注目画素(i,j)において、注目画素(i,j)に対して、縮小シームの探索方向と逆方向に隣接する画素(i−1,j−1),(i−1,j),(i−1,j+1)の積算エネルギーM(i−1,j−1),M(i−1,j),M(i−1,j+1)のうち最小のものを選択し、注目画素のエネルギーと加算して、注目画素の積算エネルギーを算出する。積算エネルギーマップ生成部52は、同様の処理を順次繰り返すことにより、縮小画像エネルギーマップの積算エネルギーマップを生成し、積算エネルギーマップ記憶部53に記憶させる。尚、式(2)においては、入力画像に対して垂直方向に上方端部から下方端部の方向に向かう縮小シームを探索する場合の例が記載されている。このため、縮小シームの探索方向に対応して、式(2)は変化するものである。
縮小シーム決定部54は、積算エネルギーマップ記憶部53に記憶されている積算エネルギーマップの情報に基づいて、縮小画像の一方の端部の各画素より選択経路として選択された画素のエネルギーの積算値が順次最小となるように縮小シームを探索する。そして、縮小シーム決定部54は、積算エネルギーが最小となる画素を順次結ぶ経路を縮小シームに決定し、部分画像探索部32に供給する。さらに、縮小シーム決定部54は、決定した縮小シームの情報をエネルギー最大値挿入部55に供給する。
エネルギー最大値挿入部55は、縮小エネルギーマップバッファ51に記憶されている縮小エネルギーマップの各画素のエネルギーのうち、縮小シームに属する画素のエネルギーにエネルギー最大値を挿入することで更新する。すなわち、エネルギーは、何らかの有限の数値により表現されるが、その最大値で表現される場合は稀であり、事実上、その画素が縮小シームを構成する画素として選択されたことを示すために、実態と異なるエネルギー最大値が挿入される。
次に、部分画像探索部32の構成について説明する。部分画像探索部32は、入力画像エネルギーマップバッファ71、隣接エネルギー比較部72、非隣接エネルギー比較部73、選択経路設定部74、選択経路記憶部75、部分シーム決定部76、および部分シーム記憶部77を備える。また、部分画像探索部32は、同時処理シーム本数判定部78、ブロック内部分シーム本数判定部79、出力部80、およびエネルギー最大値挿入部81を備えている。
入力画像エネルギーマップバッファ71は、入力画像エネルギー記憶部13に記憶されている入力画像エネルギーマップの情報を読み出して、一旦記憶する。また、入力画像エネルギーマップバッファ71は、エネルギー最大値挿入部81により、求められた部分シームに属する画素のエネルギーに、エネルギー最大値が挿入されて置換された、入力画像エネルギーマップを更新して記憶する。
隣接エネルギー比較部72は、全画像探索部31より供給されてくる縮小シームを構成するブロックのうち、一方の端部のブロックに属する入力画像の画素のうち、一方の端部の画素より順次注目画素を設定する。そして、隣接エネルギー比較部72は、順次設定される注目画素と、探索方向に隣接する画素のエネルギーとエネルギー最大値とを比較し、隣接する画素のエネルギーの全てがエネルギー最大値のみとなっているか否かを判定する。そして、隣接エネルギー比較部72は、判定結果に応じて、全てがエネルギー最大値であるとき判定結果を非隣接エネルギー選択部73に供給する。
非隣接エネルギー選択部73は、隣接エネルギー比較部72の判定結果により、注目画素に隣接する全ての画素がエネルギー最大値である場合、注目画素の位置に応じて、注目画素に隣接していない画素を、隣接画素として選択し、選択経路設定部74に供給する。すなわち、非隣接エネルギー選択部73は、注目画素に隣接していないが、注目画素に隣接した画素に、さらに隣接している複数の画素を隣接画素として選択する。
選択経路設定部74は、入力画像マップバッファ71に記憶されている入力画像マップの情報、および非隣接エネルギー選択部73から供給されてくる隣接画素として設定された画素の情報に基づいて、縮小シームに属する入力画像の画素のうち、縮小シームの一方の端部から他方の端部への方向に隣接する画素のうち、エネルギーが最小となる画素を順次選択方向として設定し、選択経路記憶部75に記憶させる。
部分シーム決定部76は、選択経路記憶部75に記憶されている、縮小シームに属する入力画像の一方の端部の各画素より、選択経路記憶部75に記憶されている選択方向に存在する画素の積算エネルギーが最小となる経路を部分シームとして決定する。部分シーム決定部76は、決定した部分シームの情報を部分シーム記憶部77に記憶させる。
同時処理シーム本数判定部78は、部分シーム記憶部77に記憶されている部分シームの情報に基づいて、予め設定されている同時に処理可能な部分シームの本数に達しているか否かを判定する。そして、同時処理シーム本数判定部78は、同時に処理可能なシーム本数に達していない場合、エネルギー最大値挿入部81に通知する。さらに、同時処理シーム本数判定部78は、入力画像エネルギーマップに新たに記憶された部分シームに属する画素のエネルギーにエネルギー最大値を挿入させて更新させると共に、新たに部分シームを探索させる。また、同時処理シーム本数判定部78は、同時に処理可能なシーム本数に達した場合、出力部80にその旨通知し、出力部80より部分シーム記憶部77に記憶されている部分シームの情報を加工部16に出力させる。
ブロック内部分シーム本数判定部79は、今現在の部分シーム本数が、縮小シームが求められた縮小画像を構成する画素からなる縮小ブロック単位で予め設定される本数となったか否かを判定する。そして、ブロック内部分シーム本数判定部79は、今現在の部分シーム本数が、予め設定された本数となった場合、全画像探索部31に対して新たな縮小シームを探索するように通知する。
[シームカービング処理]
次に、図3のフローチャートを参照して、シームカービング処理について説明する。
次に、図3のフローチャートを参照して、シームカービング処理について説明する。
ステップS1において、画像取得部11は、入力画像を取得し、取得した入力画像をエネルギーマップ生成部12、および加工部16に供給する。
ステップS12において、エネルギーマップ生成部12は、エネルギー算出部21を制御して、入力画像の各画素の画素値、または輝度値などに基づいて、上述した式(1)を算出することにより、各画素のエネルギーを算出させる。さらに、エネルギーマップ生成部12は、エネルギー算出部21を制御して、各画素単位で算出されたエネルギーの値より入力画像エネルギーマップを生成させ、入力画像エネルギーマップ記憶部13に記憶させると共に、縮小部22に供給させる。
ステップS13において、エネルギーマップ生成部12は、縮小部22を制御してエネルギーマップを縮小画像のサイズに処理させることにより、縮小画像エネルギーマップを生成させ、縮小画像エネルギーマップ記憶部14に記憶させる。より詳細には、縮小部22は、入力画像エネルギーマップを、例えば、m画素×n画素単位でブロック化し、その各ブロックを構成する各画素のエネルギーの平均値や中央値などを、縮小画像の各画素に対応するエネルギーとする縮小画像エネルギーマップを生成する。尚、この例においては、縮小画像に対応するエネルギーマップを縮小画像エネルギーマップと称するものとしているが、縮小画像エネルギーマップは、入力画像エネルギーマップを低解像度化したエネルギーマップと同様のものである。
ステップS14において、探索部15は、入力画像エネルギーマップ記憶部13の入力画像エネルギーマップ、および縮小画像エネルギーマップ記憶部14の縮小画像エネルギーマップに基づいて、探索処理を実行し、所定数の部分シームを探索する。すなわち、探索部15は、入力画像の水平方向(x方向)、または垂直方向(y方向)に対して、隣接する画素のより構成される経路のうち、画素値、または輝度値の変化が小さい経路を、所定数だけ部分シームとして探索し、その情報を加工部16に供給する。そして、探索部15は、探索した所定数の部分シームの情報を加工部16に供給する。尚、探索処理については、図4のフローチャートを参照して、後述するものとする。
ステップS15において、加工部16は、入力画像のシームカービングによる入力画像への加工処理が、縮小処理であるのか否かを判定し、例えば、縮小画像である場合、処理は、ステップS16に進む。
ステップS16において、加工部16は、部分シームの情報に基づいて、入力画像より部分シームを構成する画素を削除し、削除した領域を詰めることにより、画像を縮小させる。
一方、ステップS15において、入力画像のシームカービングによる入力画像への加工処理が、縮小処理ではない、すなわち、拡大処理であると判定された場合、処理は、ステップS17に進む。
ステップS17において、加工部16は、部分シームの情報に基づいて、入力画像より部分シームを構成する画素に隣接する位置に、部分シームと同一の画素を挿入することにより、画像を拡大させる。
ステップS18において、加工部16は、加工処理された入力画像のサイズが、設定サイズであるか否かを判定する。ステップS18において、例えば、縮小、または拡大により設定されたサイズではないと判定された場合、処理は、ステップS14に戻り、それ以降の処理により、縮小、または拡大が繰り返される。一方、ステップS18において、縮小、または拡大により設定されたサイズであると判定された場合、ステップS19において、加工部16は、入力画像に対して加工処理した画像を表示部2に出力して表示させる。
以上の処理により、まず、入力画像において、画素間の画素値、または輝度値の変化の少ない(エネルギーの積算値である積算エネルギーが最小となる)隣接する画素により構成される部分シームが求められる。そして、求められた部分シームを構成する画素が、入力画像より削除される、または挿入される。これにより入力画像が縮小、または拡大される加工処理が実現されるので、画像内における主だったオブジェクトの大きさを変更することなく、入力画像の全体の大きさを変化させることが可能となる。尚、以上の例においては、加工部16が、部分シームと同一の画素を挿入することで画像を拡大させる例について説明してきたが、部分シーム近傍の画素と違和感の無い画素を挿入できればよいので、必ずしも同一の画像を挿入しなくても良い。従って、例えば、部分シームとして求められた画素の近傍の画素により補間生成される画素を部分シームとして求められた画素の近傍位置に挿入することにより、画像を拡大させるようにしてもよい。
[探索処理]
次に、図4のフローチャートを参照して、探索処理について説明する。
次に、図4のフローチャートを参照して、探索処理について説明する。
探索処理は、ステップS31において、縮小画像エネルギーマップが用いられて全画像探索処理がなされることにより、縮小画像における縮小シームが求められる。そして縮小シームが求められると、ステップS32において、全画像探索処理の探索結果である縮小シームに基づいて、部分画像探索処理が実行されて、入力画像に対する部分シームが求められる。
[全画像探索処理]
ここで、図5のフローチャートを参照して、縮小画像エネルギーマップを用いた全画像探索処理について説明する。尚、図5のフローチャートにおいては、方形状の画像のうち、上方端部の画素と、下方端部の画素とを隣接する画素間で順次結ぶ縮小シームを求める例について説明する。このように求められる縮小シームは、縮小画像の水平方向に対して、縮小、または拡大をするために求められるものである。従って、縮小画像の垂直方向に対しての縮小、または拡大に際しては、左端部の画素と右端部の画素とを隣接する画素間で順次結ぶことにより得られる縮小シームを同様の処理で求める必要がある。
ここで、図5のフローチャートを参照して、縮小画像エネルギーマップを用いた全画像探索処理について説明する。尚、図5のフローチャートにおいては、方形状の画像のうち、上方端部の画素と、下方端部の画素とを隣接する画素間で順次結ぶ縮小シームを求める例について説明する。このように求められる縮小シームは、縮小画像の水平方向に対して、縮小、または拡大をするために求められるものである。従って、縮小画像の垂直方向に対しての縮小、または拡大に際しては、左端部の画素と右端部の画素とを隣接する画素間で順次結ぶことにより得られる縮小シームを同様の処理で求める必要がある。
ステップS51において、縮小画像エネルギーマップバッファ51は、縮小画像エネルギーマップ記憶部14より縮小画像エネルギーマップを読み出し、一時的に記憶する。
ステップS52において、積算エネルギーマップ生成部52は、縮小画像エネルギーマップにおける注目画素(x,y)を(0,1)に設定し、初期化する。尚、ここで設定される座標は、縮小画像の左上端部の画素を原点(0,0)とし、水平方向のx座標は右方向を正とするものとし、垂直方向のy座標は下方向を正とするものとする。
ステップS53において、積算エネルギーマップ生成部53は、注目画素(x,y)のy座標が縮小画像の垂直方向の高さ(height)より小さいか否かを判定する。ステップS53において、例えば、最初の処理の場合、y座標は、縮小画像の垂直方向の高さになっていないので、処理は、ステップS54に進む。
ステップS54において、積算エネルギーマップ生成部53は、注目画素(x,y)のx座標が縮小画像の水平方向の幅(width)よりも小さいか否かを判定する。ステップS54において、注目画素(x,y)のx座標が縮小画像の水平方向の幅(width)よりも小さい場合、処理は、ステップS55に進む。
ステップS55において、積算エネルギーマップ生成部53は、縮小画像エネルギーマップにおける注目画素(x,y)の左上(x−1,y+1)、真上(x,y+1)、および右上(x+1,y+1)のエネルギーのうち、最小となる積算エネルギーを持つ画素を選択する。積算エネルギーマップ生成部53は、選択した画素の積算エネルギーと注目画素のエネルギーとを加算して、注目画素の積算エネルギーを求める。
ステップS56において、積算エネルギーマップ生成部53は、求めた積算エネルギーを注目画素の積算エネルギーとして、積算エネルギーマップ記憶部53に記憶させる。尚、注目画素が、上端部より1画素下の場合、上端部の画素のエネルギーそのものが積算エネルギーとして利用される。
ステップS57において、積算エネルギーマップ生成部53は、注目画素(x,y)のx座標を1インクリメントして、処理は、ステップS54に戻る。そして、ステップS54において、注目画素(x,y)のx座標が縮小画像の水平方向の幅(width)よりも小さくない、すなわち、水平方向について全ての処理が終了した場合、処理は、ステップS58に進む。
ステップS58において、積算エネルギーマップ生成部53は、注目画素(x,y)のy座標を1インクリメントし、処理は、ステップS53に戻る。すなわち、ステップS53乃至S58の処理が繰り返されることにより、縮小画像の各画素について探索方向と逆方向に隣接する3画素の積算エネルギーのうち、最小となる積算エネルギーを持つ画素が選択される。そして、選択された積算エネルギーと各画素のエネルギーとが順次積算されて、積算エネルギーマップが生成され、積算エネルギーマップ記憶部53に記憶されていく。
より具体的には、例えば、図6の左上部で示されるような3画素×3画素の縮小画像エネルギーマップを考える場合、処理は以下のようにされることになる。尚、図6の左上部の縮小画像エネルギーマップのエネルギーは、上段は左から右に向かって、1,2,3であり、中段は左から右に向かって6,2,4であり、下段は左から右に向かって、2,3,1に設定されている。
ステップS52の処理により、最初の注目画素(x,y)は、(0,1)のエネルギーが6の画素となる。そして、この注目画素(0,1)は、左端部の画素であるので、ステップS55の処理により、真上の画素(0,0)の画素のエネルギー1と、右上の画素(1,0)の画素のエネルギー2との2画素のうち最小となる積算エネルギーの画素(0,0)が選択される。そして、図6の左下部で示されるように、積算エネルギーマップ生成部53は、この選択された画素(0,0)のエネルギー1(ここでは積算エネルギーとして扱われる)と、注目画素(x,y)のエネルギー6の積算値7を積算エネルギーマップの注目画素(x,y)=(0,1)における積算エネルギーとして積算エネルギーマップ記憶部53に記憶させる。
ステップS57の処理により、注目画素(x,y)のx座標が1インクリメントされて、エネルギーが注目画素(x,y)は、(1,1)のエネルギーが2の画素となる。そして、この注目画素(1,1)は、ステップS55の処理により、左上の画素(0,0)のエネルギー1、真上の画素(1,0)の画素のエネルギー2と、右上の画素(2,0)の画素のエネルギー3との3画素のうち最小となる積算エネルギーの画素(0,0)が選択される。そして、図6の中央下部で示されるように、積算エネルギーマップ生成部53は、この選択された画素(0,0)のエネルギー1と、注目画素(x,y)のエネルギー2の積算値3を積算エネルギーマップの注目画素(x,y)=(1,1)における積算エネルギーとして積算エネルギーマップ記憶部53に記憶させる。
さらに、ステップS57の処理により、注目画素(x,y)のx座標がさらに1インクリメントされて、エネルギーが注目画素(x,y)は、(2,1)のエネルギーが4の画素となる。そして、この注目画素(2,1)は、縮小画像の右端部の画素であるので、ステップS55の処理により、左上の画素(1,0)のエネルギー1、真上の画素(2,0)の画素のエネルギー3との2画素のうち最小となるエネルギーの画素(2,0)が選択される。そして、図6の右下部で示されるように、積算エネルギーマップ生成部53は、この選択された画素(1,0)のエネルギー2と、注目画素(x,y)のエネルギー4の積算値6を積算エネルギーマップの注目画素(x,y)=(2,1)における積算エネルギーとして積算エネルギーマップ記憶部53に記憶させる。
この結果、2段目の積算エネルギーマップにおける中段の積算エネルギーは、図7の右上部のように左から7,3,6となる。このとき、注目画素(x,y)のx座標は、縮小画像の水平方向の幅(width=2)より小さくないので、ステップS58において、y座標が1インクリメントされることにより、縮小画像における下段の各画素が順次注目画素に設定される。尚、図7の左上部は、縮小画像エネルギーマップが示されている。
上述した処理と同様の処理により、注目画素(x,y)が、(0,2)の場合、積算エネルギーマップに基づいて、真上の画素(0,1)の積算エネルギーが7であり、右上の画素(1,1)の積算エネルギーが3となる。このため、最小である積算エネルギー3の右上の画素(1,1)が選択されて、積算エネルギー3と、注目画素(x,y)=(0,2)のエネルギー2とが積算されて、注目画素(x,y)=(0,2)の積算エネルギーが5とされて、積算エネルギーマップに登録される。
また、注目画素(x,y)が画素(1,2)である場合、積算エネルギーマップに基づいて、左上の画素(0,1)の積算エネルギーが7であり、真上の画素(1,1)の積算エネルギーが3であり、右上の画素(2,1)の積算エネルギーが6となる。このため、最小である積算エネルギー3の真上の画素(1,1)が選択されて、積算エネルギー3と、注目画素(x,y)=(1,2)のエネルギー3とが積算されて、注目画素(x,y)=(1,2)の積算エネルギーが6とされて、積算エネルギーマップに登録される。
さらに、注目画素(x,y)が画素(2,2)である場合、積算エネルギーマップに基づいて、左上の画素(1,1)の積算エネルギーが3であり、真上の画素(2,1)の積算エネルギーが6となる。このため、最小である積算エネルギー3の左上の画素(1,1)が選択されて、積算エネルギー3と、注目画素(x,y)=(2,2)のエネルギー1とが積算されて、注目画素(x,y)=(2,2)の積算エネルギーが4とされて、積算エネルギーマップに登録される。
この結果、積算エネルギーマップは、図8の右上部で示されるように構成され、下段の積算エネルギーは、左から5,6,4となる。尚、図8の左上部は、縮小画像エネルギーマップが示されている。
このように、ステップS53乃至S58の処理が繰り返されることにより、例えば、図8の左上部で示されるような縮小画像エネルギーマップが得られた場合、図8の右上部で示されるような積算エネルギーマップが求められて、積算エネルギーマップ記憶部53に記憶されることになる。
ここで、図5のフローチャートの説明に戻る。
ステップS53において、注目画素(x,y)のy座標が縮小画像の垂直方向の高さよりも小さくないと判定された場合、すなわち、上述したように積算エネルギーマップが完成されて、積算エネルギーマップ記憶部53に記憶されたとみなされた場合、処理は、ステップS59に進む。
ステップS59において、縮小シーム決定部54は、積算エネルギーマップ記憶部53に記憶されている積算エネルギーマップを読み出し、積算エネルギーが最小となる最下段の画素を検索し、縮小シームの端部を下方の端部とする。さらに、縮小シーム決定部54は、縮小シームの下方の端部の画素より順次、上方に隣接する画素、すなわち、右上、真上、および左上に隣接する画素のうち、積算エネルギーが最小となる画素を順次上方に向かって探索する処理を繰り返し、上段の端部の画素まで探索する。そして、縮小シーム決定部54は、順次探索された画素を結ぶ経路を縮小シームとして決定し、その情報を部分画像探索部32に供給すると共にエネルギー最大値挿入部55に供給する。
すなわち、図8の右上部の積算エネルギーマップの場合、最下段における積算エネルギーの最小値は、図8の丸印で示される積算エネルギーが4であって、エネルギーが1の画素(2,2)である。すなわち、この画素(2,2)が縮小シームの下方の端部となる。そして、この画素(2,2)からみて、上方に隣接する画素(2,1),(1,1)のうち、積算エネルギーの最小値は、積算エネルギーが3であって、エネルギーが2の画素(1,1)である。さらに、この画素(1,1)からみて、上方に隣接する画素(0,0),(1,0),(2,0)のうち、積算エネルギーの最小値は、積算エネルギーが1であって、エネルギーが1の画素(0,0)である。
すなわち、下方の端部である画素(2,2)より上方の端部である画素(0,0)まで順次探索された画素(2,2),(1,1),(0,0)の経路は、順次積算されるエネルギーが最小となる。したがって、この画素(2,2),(1,1),(0,0)から構成される経路は、隣接する画素間の画素値、または輝度値の変化が最小となる縮小画像上の経路、すなわち、縮小シームを構成していることになる。このため、縮小シーム決定部54は、これらの探索された画素の座標の情報に基づいて構成される経路を縮小シームに決定する。
ステップS60において、エネルギー最大値挿入部55は、縮小画像エネルギーマップバッファ51に記憶されている縮小画像エネルギーマップを読み出し、縮小シーム決定部54で決定された縮小シームを構成する各画素のエネルギーに最大値を挿入して更新する。この結果、最大値からなる画素については、以降の処理において縮小シームを構成する画素として選択され難い画素とすることが可能となる。結果として、複数に縮小シームが選択されるような場合においても、縮小シームが交差するなどして、同一の画素が、複数の縮小シームに含まれることが抑制され、縮小シームに属する画素を削除、または付加するなどしたときに、画素ずれが生じることを抑制することが可能となる。
尚、図5のフローチャートを参照して説明した処理により縮小シームを求める手法は、一般にダイナミックプログラミング法と呼ばれる手法であるが、縮小シームは、後述するグリーディ法により求めるようにしてもよい。
[部分探索処理]
次に、図9のフローチャートを参照して、部分画像探索処理について説明する。
次に、図9のフローチャートを参照して、部分画像探索処理について説明する。
ステップS71において、隣接エネルギー比較部72は、上述した全画像探索処理により縮小画像エネルギーマップに基づいて求められた縮小シームに基づいて、入力画像上の端部の画素の座標を取得する。すなわち、縮小シームは、入力画像上の複数の画素(例えば、m画素×n画素)からなるブロックを1画素とした縮小画像、すなわち低解像度画像に基づいて求められたものである。したがって、求められた縮小シームを構成する縮小画像上の画素は、入力画像においては、複数の画素からなるブロックに対応するものである。そこで、隣接エネルギー比較部72は、縮小シームを構成する画素(ブロック)の、入力画像上の水平方向の一方の端部の画素の座標(X,Y)を求める。尚、他方の端部の座標については、ブロックサイズがわかっているため、例えば、水平方向の座標としては、(X+m)として求めることが可能である。
ステップS72において、入力画像エネルギーマップバッファ71は、入力画像エネルギーマップ記憶部13に記憶されている入力画像エネルギーマップを読み出して、一旦記憶する。
ステップS73において、隣接エネルギー比較部72は、部分シームの候補の起点画素(xs,ys)を縮小シームの端部の座標に基づいて、画素(X,0)に設定する。
ステップS74において、隣接エネルギー比較部72は、起点画素(xs,ys)のxs座標が、(X+m(m:水平方向ブロックサイズ))よりも小さいか否かを判定する。例えば、xs座標が(X+m)よりも小さい場合、処理は、ステップS75に進む。
ステップS75において、隣接エネルギー比較部72は、起点画素(xs,ys)を、注目画素(x,y)に設定する。
ステップS76において、隣接エネルギー比較部72は、注目画素(x,y)のy座標が、入力画像の垂直方向の高さ(height)よりも小さいか否かを判定する。例えば、y座標が入力画像の垂直方向の高さ(height)よりも小さい場合、処理は、ステップS77に進む。
ステップS77において、隣接エネルギー比較部72は、入力画像エネルギーマップバッファ71より入力画像エネルギーマップを読み出し、注目画素(x,y)の左下に隣接する画素(x−1,y+1)、真下に隣接する画素(x,y+1)、および右下に隣接する画素(x+1,y+1)のエネルギーがいずれも全てエネルギー最大値であるか否かを判定する。例えば、注目画素(x,y)の左下(x−1,y+1)、真下(x,y+1)、および右下(x+1,y+1)のそれぞれの画素のエネルギーがいずれも全てエネルギー最大値ではない場合、処理は、ステップS78に進む。
ステップS78において、隣接エネルギー比較部72は、注目画素(x,y)の情報と、左下に隣接する画素(x−1,y+1)、真下に隣接する画素(x,y+1)、および右下に隣接する画素(x+1,y+1)のエネルギーの情報を選択経路設定部74に通知する。選択経路設定部74は、注目画素(x,y)の情報と、左下に隣接する画素(x−1,y+1)、真下に隣接する画素(x,y+1)、および右下に隣接する画素(x+1,y+1)のうち、エネルギーが最小となる画素を注目画素(x,y)からの選択経路に設定する。
ステップS79において、選択経路設定部74は、設定した注目画素(x,y)に対応付けて、選択経路の情報を選択経路記憶部75に記憶させる。
ステップS80において、隣接エネルギー比較部72は、注目画素(x,y)の座標を選択経路として選択した座標に設定する。すなわち、隣接エネルギー比較部72は、次の注目画素(x,y)の座標を画素(x−1,y+1)、画素(x,y+1)、および画素(x+1,y+1)のうち、エネルギーが最小となる画素に設定し、処理は、ステップS76に戻る。
すなわち、ステップS76において、y座標が入力画像の高さ(height)に達するまで、ステップS76乃至S80の処理が繰り返される。例えば、ステップS77において、注目画素(x,y)の左下、真下、および右下に隣接する画素(x−1,y+1)、画素(x,y+1)、および画素(x+1,y+1)のエネルギーがいずれも全てエネルギー最大値ではないとすれば、ステップS76乃至S80の処理により、順次以下のような処理がなされることになる。
例えば、図10の最上段で示されるような入力画像エネルギーマップの場合、注目画素は、エネルギーが1の左上の画素に最初に設定されることとなる。このとき、ステップS77の処理により、左下に隣接する画素がないので、真下、および右下に隣接する画素のうち、エネルギーが小さな画素は、図10の2段目左側で示されるように、点線で囲まれたエネルギーが2の画素となり、その画素が選択経路として選択される。
次の処理では、そのエネルギーが2の画素が注目画素となるため、図10の2段目右側で示されるように、左下、真下、および右下に隣接する画素のうち、エネルギーが最小となる画素として、点線で囲まれたエネルギーが1の画素が選択経路として選択される。
そして、この処理により、入力画像の高さに達することになるので、図10の2段目右側で示されるように、図10の入力画像エネルギーマップにおける、左上のエネルギー1の画素を部分シームの起点としたとき、左上のエネルギー1の画素、中央のエネルギーが2の画素、および右下のエネルギー1の画素からなる画素群が順次接続されることにより構成される経路が、部分シームの候補として設定されることになる。
ステップS76において、y座標が入力画像の高さ(height)より小さくなく、y座標が入力画像の高さに達したと判定された場合、処理は、ステップS85に進む。ステップS85において、選択経路設定部74は、部分シームの候補として設定された経路を構成する複数の画素群のエネルギーの積算値を求める。さらに、選択経路設定部74は、部分シームの候補を構成する画素群の情報、および求められた積算値を、起点座標(xs,ys)に対応付けて選択経路記憶部75に記憶させる。すなわち、部分シームの候補は、起点座標(xs,ys)により識別され、その起点座標(xs,ys)に対応付けて、積算エネルギー、および選択経路として選択された画素群の情報として選択経路記憶部75に記憶される。
ステップS86において、隣接エネルギー比較部72は、起点画素(xs,ys)のxs座標を1インクリメントし、処理は、ステップS74に戻る。
したがって、図10の最上段で示される入力画像エネルギーマップの場合、その上段における左からエネルギーが1,2,3の画素がそれぞれ起点となる。このため、ステップS74乃至S80,S85,S86の処理が繰り返されると、図10の場合、以下のように起点座標をとるエネルギーが1,2,3の画素のそれぞれについて、部分シーム候補が求められることになる。
エネルギーが1の画素が起点の部分シームの候補は、上述した図10の2段目で示される入力画像エネルギーマップにおける左上のエネルギー1画素、中央のエネルギー2の画素、および右下のエネルギーが1の画素から構成され、積算エネルギーが4となる。また、エネルギーが2の画素が起点の部分シームの候補は、図10の3段目の左右で示される入力画像エネルギーマップにおける左上のエネルギー2画素、中央のエネルギー2の画素、および右下のエネルギーが1の画素から構成され、積算エネルギーが5となる。さらに、エネルギーが3の画素が起点の部分シームの候補は、図10の4段目の左右で示される入力画像エネルギーマップにおける左上のエネルギー3の画素、中央のエネルギー2の画素、および右下のエネルギーが1の画素から構成され、積算エネルギーが6となる。
ステップS74において、起点座標(xs,ys)のxs座標が(X+m)よりも小さくない、すなわち、縮小シームとして求められたブロックを超えると判定された場合、処理は、ステップS87に進む。
ステップS87において、部分シーム決定部76は、選択経路記憶部75に記憶されている候補となる部分シームのうち、積算エネルギーが最も小さな部分シームを、部分シームとして決定し、決定した部分シームの情報を部分シーム記憶部77に記憶させる。このとき、同時に、部分シーム決定部76は、決定した部分シームの情報をエネルギー最大値挿入部81に供給する。
すなわち、図10の最上段で示される入力画像エネルギーマップの場合、図11で示されるように、図10の2段目で示される起点座標が、左上のエネルギーが1の画素を起点とする部分シーム候補の積算エネルギーが最も小さいため、部分シームとして決定されることになる。尚、図11においては、左から順に、図10の2段目、3段目、および4段目の部分シーム候補に対する積算エネルギーの比較により、図10の2段目に対応する点線で囲まれた左部の経路が部分シームとして選択されたことが示されている。
ステップS88において、エネルギー最大値挿入部81は、入力画像エネルギーマップを読み出し、部分シームを構成する画素の座標のエネルギーとして、エネルギー最大値を挿入して処理を終了する。
一方、ステップS76において、注目画素(x,y)の左下、真下、および右下に隣接する画素(x−1,y+1)、画素(x,y+1)、および画素(x+1,y+1)のエネルギーがいずれも全てエネルギー最大値である場合、処理は、ステップS81に進む。
ステップS81において、隣接エネルギー比較部72は、左下、真下、および右下に隣接する画素のエネルギーがいずれも最大値であることを非隣接エネルギー比較部73に通知する。非隣接エネルギー比較部73は、注目画素(x,y)のx座標にN画素分追加したx座標の位置(x+N)が、入力画像内であるか否かを判定する。ステップS81において、例えば、注目画素(x,y)のx座標にN画素分追加したx座標の位置(x+N)が、入力画像内である場合、処理は、ステップS82に進む。
ステップS82において、非隣接エネルギー比較部73は、右下に隣接する画素から右方向に連続して(N−1)画素分の画素を選択経路を選ぶ候補とする。
一方、ステップS81において、注目画素(x,y)のx座標にN画素分追加したx座標の位置(x+N)が、入力画像内ではない場合、処理は、ステップS84に進む。
ステップS84において、非隣接エネルギー比較部73は、左下に隣接する画素から左方向に連続して(N−1)画素分の画素を選択経路を選ぶ候補とする。
ステップS83において、非隣接エネルギー比較部73は、右下に隣接する画素から右方向に連続して(N−1)画素分の画素、または、左下に隣接する画素から左方向に連続して(N−1)画素分の画素のうち、エネルギーが最小となる画素を選択経路として選択する。
すなわち、非隣接エネルギー比較部73は、図12の左部で示されるように、注目画素の右下、真下、および左下に隣接する画素がエネルギー最大値である場合、入力画像内であれば、図12の右部で示されるように、右下に隣接する画素に右方向に連続して隣接する(N−1)画素を、あたかも注目画素の右下、真下、および左下に隣接する画素として扱う。尚、図12において、(N−1)画素=6画素である場合が示されている。
これは、全画像探索処理においても説明したが、エネルギー最大値は、求められた部分シームに属する画素に与えられるものであるから、エネルギー最大値である画素は、一旦部分シームとして選択されている可能性が高い画素である。
例えば、複数の部分シームが選択される際、図13の左部で示されるように、部分シームが交差すると、交差位置にはいずれの部分シームにも属する画素が存在することとなる。このような場合、複数の部分シームとして求められた画素を削除すると、図13の右部で示されるように、複数の部分シームに重複して属する画素を含む行、または列では、部分シームの本数分だけ画素が削除できない恐れがある。結果として、他の行、または列とは画素数が異なる行、または列が発生することとなり、いわゆる画素あまり(ピクセルあまり)が生じてしまう。
例えば、図14の左部の斜線部で示されるように、一旦求められた部分シームに対して、図14の右部の黒色で示されるように、エネルギー最大値を設定した場合、図14の右部における太線で示されるような部分シームが求められ、丸印で示される注目画素において、左下の画素はエネルギー最大値であっても、真下、および右下はエネルギー最大値ではないので、そのいずれかを選択経路として選択することが可能であるので、部分シームが交差しないように設定することが可能である。
しかしながら、図10の左部で示されるような場合、単純にステップS78の処理を実行すると、エネルギー最大値となるいずれかの画素が選択経路として選択されることとなってしまい、画素あまりが生じる恐れがあった。
そこで、ステップS82乃至S84の処理が実行されることにより、注目画素の左下、真下、および右下に隣接する画素が、既に部分シームとして求められている可能性の高いエネルギー最大値となる画素である場合には、選択経路の候補から外される。そして、注目画素に対して隣接してはいないが、不連続ながら上記隣接画素に、さらに隣接する複数の画素を候補とする。すなわち、実質的に注目画素とは直接隣接していない画素が、隣接している画素と同様に扱われて、選択経路の候補とされる。さらに、この注目画素とは直接隣接していない選択経路の候補となる画素のうち、エネルギーが最小となる画素が選択経路として選択されることとなる。結果として、同一の画素が、複数の部分シームを構成する画素となる可能性が低減されるため、いわゆる、画素あまり(ピクセルあまり)という問題を生じ難くすることが可能となる。
ここで、図4のフローチャートの説明に戻る。
ステップS32の処理により部分画像探索処理が終了し、部分シームが決定されると、処理は、ステップS33に進む。
ステップS33において、同時処理シーム本数判定部78は、部分シーム記憶部77に記憶された部分シームの総本数が同時処理シーム本数に達しているか否かを判定する。ステップS33において、例えば、同時処理本数に達していないと判定された場合、処理は、ステップS34に進む。
ステップS34において、ブロック内部分シーム本数判定部79は、部分シーム記憶部77に記憶された部分シームのうち、現在処理している縮小シームを構成するブロック内で探索された部分シーム本数が、ブロック内で設定される所定本数に達しているか否かを判定する。ステップS34において、例えば、記憶された部分シームのうち、現在処理している縮小シームを構成するブロック内で探索された部分シーム本数が、ブロック内で設定される所定本数に達していない場合、処理は、ステップS32に戻る。すなわち、縮小シームを構成するブロック内において求められるべき部分シームの本数は、予め設定された所定本数であるので、所定本数となるまでは、ステップS32,S33の処理が繰り返されて、同一ブロック内で部分シームが探索され続けることになる。
一方、ステップS34において、記憶された部分シームのうち、現在処理している縮小シームを構成するブロック内で探索された部分シーム本数が、ブロック内で設定される所定本数を超えている場合、処理は、ステップS31に戻る。すなわち、ブロック内で設定される所定数の部分シーム本数に達している場合、再度全画像探索処理により新たに縮小シームを求めて、求められた縮小シームに対して別途部分画像探索処理が必要となるため、処理は、ステップS31に戻る。
そして、ステップS33において、例えば、同時処理本数に達していると判定された場合、処理は、ステップS35に進む。ステップS35において、同時処理シーム本数判定部78は、出力部80を制御して、部分シーム記憶部77に記憶されている全ての部分シームの情報を加工部16に出力させる。
探索処理をまとめると以下のようになる。すなわち、まず、縮小画像に対応する縮小画像エネルギーマップを用いて、全画像探索処理を実行し、縮小シームを探索する。このとき、全画像探索処理は、上述したように、ダイナミックプログラミング法を用いて縮小シームを探索する。ここで求められる縮小シームは、縮小画像に対しては画素単位であるが、縮小画像の画素は、入力画像における複数の画素のブロックに対応するものであるので、ある程度、縮小シームは、入力画像からみて、求めるべき部分シームの探索範囲を限定する情報となる。
そこで、次に、縮小シームとして求められた範囲の画素について、部分画像探索処理を実行し、部分シームを求める。部分画像探索処理においては、グリーディ法が用いられて部分シームが探索される。この際、求められた部分シームの本数が、同時処理本数として設定された本数に満たず、かつブロック内で設定される所定数の部分シームが求められている場合、再び全画像探索処理により縮小シームが求められ、同様に部分画像探索処理が実行される処理が繰り返される。
そして、求められた部分シームの本数が、同時処理本数になったところで、求められた部分シームの情報が出力されて、出力された部分シームに基づいて、画像が加工される。
以上の処理により、画像を削除、または追加する部分シームを探索するに当たり、まず、縮小画像より全画像探索処理で縮小シームを探索してから、探索された縮小シームのブロックの端部を構成する画素を起点とする部分シームのみを検索するようにした。このため、入力画像全体のうち、部分シームを詳細に探索する範囲を限定させることができので、入力画像全体から部分シームを探索するよりも計算量を低減させることが可能となる。
また、全画像探索処理により探索された縮小シームのブロックを構成する端部を起点とする部分シームの探索に当たっては、全画像探索処理におけるダイナミックプログラミング法ではなく、グリーディ法を用いるようにしたので、計算量を低減することが可能となる。
[ダイナミックプログラミング法とグリーディ法について]
ここで、ダイナミックプログラミング法とグリーディ法について説明する。ダイナミックプログラミング法とは、上述した全画像探索処理における縮小シームを探索する処理である。また、グリーディ法とは、上述した部分画像探索処理における部分シームを探索する処理である。
ここで、ダイナミックプログラミング法とグリーディ法について説明する。ダイナミックプログラミング法とは、上述した全画像探索処理における縮小シームを探索する処理である。また、グリーディ法とは、上述した部分画像探索処理における部分シームを探索する処理である。
より具体的には、図15の上部で示されるエネルギーマップに対して、選択経路として設定された画素のエネルギーの積算値が最小となるシームを探索する場合、それぞれの手法は以下のようになる。尚、図15の上部で示されるエネルギーマップの各画素のエネルギーは、最上段が左から1,4,2,4であり、2段目が5,2,1,3であり、3段目が4,1,2,5であり、4段目が1,3,2,1であり、5段目が10,10,3,2である。
最上段最左部のエネルギーが1の画素を起点としたシームを探索する場合、ダイナミックプログラミング法では、まず、積算エネルギーマップが生成される。すなわち、積算エネルギーマップは、上から2段目の各画素より左上、真上、および右上に隣接する画素のエネルギーのうち最小エネルギーを積算する処理を下方向に順次繰り返すことにより生成される。そして、図15の左下部で示されるように、積算エネルギーマップにしたがって、終点となる画素のうち積算エネルギーが最小となる画素と起点となる画素とを順次結ぶ選択経路を構成する画素群が最上段最左部のエネルギーが1の画素を起点としたシームが候補として選択される。そして、全ての起点に対して求められた候補となるシームのうち、積算エネルギーが最小となるシームが最終的に探索されることになる。図15の左下部においては、太線で示される積算エネルギーが8となるシームが選択される。尚、図15の左下部においては、5段目の画素における積算エネルギーは、左から15,15,9,8である。
これに対して、グリーディ法では、図15の右下部で示されるように、エネルギーマップに従って、各画素における左下、真下、および右下に隣接する画素のエネルギーのうち最小となるエネルギーの画素が順次選択経路として選択される。そして、各起点からは、候補となるシームが1本だけ求められ、それぞれの積算エネルギーのうち、最小のものが最終的に選択される。図15の右下部においては、最上段における各起点となるシームの積算エネルギーは、起点となる画素毎に左から15,17,15,17となる。このため、最終的には、最上段におけるエネルギーが1または2の画素を起点とするシームが選択されることになる。
以上の処理を比較すると、ダイナミックプログラミング法は、一旦積算エネルギーマップを求めた後、全ての起点となる画素に対して、全ての終点となる画素までのシームの積算エネルギーを比較した上で、シームを選択することとなる。このため、図15の左下部で示されるように、グリーディ法よりも高い精度で、積算エネルギーが最小となるシームが選択される。しかしながら、一旦積算エネルギーマップを求めた後、全ての起点となる画素に対して、全ての終点となる画素までのシームの積算エネルギーを求めることとなるため、計算量が膨大なものとなる。一方、グリーディ法は、積算エネルギーマップを特に求める必要がなく、各画素について、いずれの選択経路とするかについては、一定の条件となるため、計算量を小さくすることが可能となる。しかしながら、図15における右下部で示されるように、各画素毎にしか選択経路が決定されないため、真に積算エネルギーが最小となる経路からなるシームを探索することができない。
しかしながら、本実施例においては、縮小画像に対して全画像探索処理において、精度の高いダイナミックプログラミング法を用いていることから、求められる縮小シームは比較的精度良く求めることが可能となる。また、縮小画像に対してダイナミックプログラミング法で全画像探索処理を実行しているため、入力画像に対してする処理よりも計算量を小さくすることが可能となる。さらに、入力画像のうち、縮小シームとして求められた範囲を起点とする画素のみに対してグリーディ法を用いた部分画像探索処理が実行されるため、軽い計算量でありながら、比較的精度良く求められた縮小シームの情報を用いて、部分シームを探索するため、部分シームの探索精度の低減を抑制しつつ、計算速度を向上させることが可能となる。
さらに、計算速度を向上させたい場合、全画像探索処理において、グリーディ法を用いるようにしてもよい。すなわち、全画像探索処理において、グリーディ法を用いることで積算エネルギーマップを求めたり、全ての起点について、全ての終点までの積算エネルギーを比較した上でシームを探索する必要がなくなるので、計算速度をさらに向上させることが可能となる。
また、以上においては、入力画像に対して、垂直方向に下方向にシームを探索する例について説明してきたが、同様の手法により水平方向にシームを探索することにより、水平方向の画素の削除、または挿入が可能となる。そして、これらを組み合わせて処理することにより、入力画像の水平方向、および垂直方向のそれぞれを縮小、または拡大させることが可能となる。
例えば、図16の左部で示されるように、2羽の水鳥が撮像されている入力画像に対して、従来のように水平方向、および垂直方向に対して、所定のスケーリングにより縮小すると、図16の右上部で示されるように、画像の縮小率に合わせて、水鳥そのものも縮小される。これに対して、上述した処理を用いることにより、図16の右下部で示されるように、画像は縮小されることとなるが、水鳥の大きさは画像全体の縮小率に対して小さなものとすることができる。結果として、画像のサイズは小さくなるが、被写体である水鳥の大きさの変化を小さくすることが可能となる。
ところで、上述した一連の画像処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
図17は、汎用のパーソナルコンピュータの構成例を示している。このパーソナルコンピュータは、CPU(Central Processing Unit)1001を内蔵している。CPU1001にはバス1004を介して、入出力インタ-フェイス1005が接続されている。バス1004には、ROM(Read Only Memory)1002およびRAM(Random Access Memory)1003が接続されている。
入出力インタ-フェイス1005には、ユーザが操作コマンドを入力するキーボード、マウスなどの入力デバイスよりなる入力部1006、処理操作画面や処理結果の画像を表示デバイスに出力する出力部1007、プログラムや各種データを格納するハードディスクドライブなどよりなる記憶部1008、LAN(Local Area Network)アダプタなどよりなり、インターネットに代表されるネットワークを介した通信処理を実行する通信部1009が接続されている。また、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、もしくは半導体メモリなどのリムーバブルメディア1011に対してデータを読み書きするドライブ1010が接続されている。
CPU1001は、ROM1002に記憶されているプログラム、または磁気ディスク、光ディスク、光磁気ディスク、もしくは半導体メモリ等のリムーバブルメディア1011から読み出されて記憶部1008にインストールされ、記憶部1008からRAM1003にロードされたプログラムに従って各種の処理を実行する。RAM1003にはまた、CPU1001が各種の処理を実行する上において必要なデータなども適宜記憶される。
尚、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理は、もちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
1 画像処理装置, 11 画像取得部, 12 エネルギーマップ生成部, 13 入力画像エネルギーマップ記憶部, 14 縮小画像エネルギーマップ記憶部, 15 探索部, 16 加工部, 21 エネルギー算出部、 22 縮小部, 31 全画像探索部, 32 部分画像探索部, 51 縮小画像エネルギーマップバッファ, 52 積算エネルギーマップ生成部, 53 積算エネルギーマップ記憶部, 54 最小シーム決定部, 55 エネルギー最大値挿入部, 71 入力画像エネルギーマップバッファ, 72 隣接エネルギー比較部, 73 非隣接エネルギー比較部, 74 選択経路設定部, 75 選択経路記憶部, 76 部分シーム決定部, 77 部分シーム記憶部, 78 同時処理シーム本数判定部, 79 ブロック内部分シーム本数判定部, 80 出力部, 81 エネルギー最大値挿入部
Claims (6)
- 入力画像より前記入力画像の隣接する画素間のエネルギーに基づいて、入力画像エネルギーマップを生成する入力画像エネルギーマップ生成手段と、
前記入力画像エネルギーマップを縮小することにより、前記入力画像における隣接する複数の画素からなる1ブロックを1画素とした縮小画像に対応する、縮小エネルギーマップを生成する縮小エネルギーマップ生成手段と、
前記縮小エネルギーマップにおける縮小画像の一方の端部の画素より、他方の端部の方向に隣接した画素を順次経由して、前記他方の端部の画素に到達するまでの複数の経路のうち、経由する画素のエネルギーの積算値が最小となる経路の画素間を結ぶことにより構成される縮小シームを探索する縮小シーム探索手段と、
前記縮小シーム探索手段により探索された縮小シームの端部を構成する、前記入力画像エネルギーマップにおける入力画像の一方の端部の画素より、他方の端部の方向に隣接した画素を順次経由して、前記他方の端部の画素に到達するまでの複数の経路のうち、経由する画素のエネルギーの積算値が最小となる画素間を結ぶことにより構成される部分シームを探索する部分シーム探索手段と、
前記部分シーム探索手段により探索された部分シームを構成する、前記入力画像の全ての画素に対応する前記入力画像エネルギーマップ上のエネルギーに、エネルギー最大値を挿入して置換し、前記入力画像エネルギーマップを更新する入力画像エネルギーマップ更新手段と、
前記部分シーム探索手段により探索された前記部分シームを構成する画素を、前記入力画像より削除、または、同一若しくは近傍画素から補間した画素を挿入することで前記入力画像を縮小または拡大する縮小拡大手段と
を含み、
前記部分シーム探索手段は、前記入力画像の一方の端部の画素より、他方の端部の方向に隣接した画素を順次経由して、前記他方の端部の画素に到達するまでの複数の経路を探索するにあたり、隣接する画素の全てが前記入力画像エネルギーマップのエネルギー最大値であった場合、前記隣接する画素に、さらに隣接する所定数の画素のうち、最小エネルギーの画素を隣接する画素として設定し、前記経路を構成させる
画像処理装置。 - 前記縮小シーム探索手段により探索された縮小シームを構成する、前記縮小画像の全ての画素に対応する前記縮小画像エネルギーマップ上のエネルギーに、エネルギー最大値を挿入して置換し、前記縮小画像エネルギーマップを更新する縮小画像エネルギーマップ更新手段をさらに含む
請求項1に記載の画像処理装置。 - 前記縮小シーム探索手段は、グリーディ法、または、ダイナミックプログラミング法により、前記縮小エネルギーマップにおける縮小画像の一方の端部の画素より、他方の端部の方向に隣接した画素を順次経由して、前記他方の端部の画素に到達するまでの複数の経路のうち、経由する画素のエネルギーの積算値が最小となる経路の画素間を結ぶことにより構成される縮小シームを探索する
請求項1に記載の画像処理装置。 - 前記部分シーム探索手段は、グリーディ法により、前記縮小シーム探索手段により前記縮小シーム探索手段により探索された縮小シームの端部を構成する、前記入力画像エネルギーマップにおける入力画像の一方の端部の画素より、他方の端部の方向に隣接した画素を順次経由して、前記他方の端部の画素に到達するまでの複数の経路のうち、経由する画素のエネルギーの積算値が最小となる画素間を結ぶことにより構成される部分シームを探索する
請求項1に記載の画像処理装置。 - 入力画像より前記入力画像の隣接する画素間のエネルギーに基づいて、入力画像エネルギーマップを生成する入力画像エネルギーマップ生成手段と、
前記入力画像エネルギーマップを縮小することにより、前記入力画像における隣接する複数の画素からなる1ブロックを1画素とした縮小画像に対応する、縮小エネルギーマップを生成する縮小エネルギーマップ生成手段と、
前記縮小エネルギーマップにおける縮小画像の一方の端部の画素より、他方の端部の方向に隣接した画素を順次経由して、前記他方の端部の画素に到達するまでの複数の経路のうち、経由する画素のエネルギーの積算値が最小となる経路の画素間を結ぶことにより構成される縮小シームを探索する縮小シーム探索手段と、
前記縮小シーム探索手段により探索された縮小シームの端部を構成する、前記入力画像エネルギーマップにおける入力画像の一方の端部の画素より、他方の端部の方向に隣接した画素を順次経由して、前記他方の端部の画素に到達するまでの複数の経路のうち、経由する画素のエネルギーの積算値が最小となる画素間を結ぶことにより構成される部分シームを探索する部分シーム探索手段と、
前記部分シーム探索手段により探索された部分シームを構成する、前記入力画像の全ての画素に対応する前記入力画像エネルギーマップ上のエネルギーに、エネルギー最大値を挿入して置換し、前記入力画像エネルギーマップを更新する入力画像エネルギーマップ更新手段と、
前記部分シーム探索手段により探索された前記部分シームを構成する画素を、前記入力画像より削除、または、同一若しくは近傍画素から補間した画素を挿入することで前記入力画像を縮小または拡大する縮小拡大手段と
を含み、
前記部分シーム探索手段は、前記入力画像の一方の端部の画素より、他方の端部の方向に隣接した画素を順次経由して、前記他方の端部の画素に到達するまでの複数の経路を探索するにあたり、隣接する画素の全てが前記入力画像エネルギーマップのエネルギー最大値であった場合、前記隣接する画素に、さらに隣接する所定数の画素のうち、最小エネルギーの画素を隣接する画素として設定し、前記経路を構成させる画像処理装置の画像処理方法であって、
前記入力画像エネルギーマップ生成手段における、前記入力画像より前記入力画像の隣接する画素間のエネルギーに基づいて、入力画像エネルギーマップを生成する入力画像エネルギーマップ生成ステップと、
前記縮小エネルギーマップ生成手段における、前記入力画像エネルギーマップを縮小することにより、前記入力画像における隣接する複数の画素からなる1ブロックを1画素とした縮小画像に対応する、縮小エネルギーマップを生成する縮小エネルギーマップ生成ステップと、
前記縮小シーム探索手段における、前記縮小エネルギーマップにおける縮小画像の一方の端部の画素より、他方の端部の方向に隣接した画素を順次経由して、前記他方の端部の画素に到達するまでの複数の経路のうち、経由する画素のエネルギーの積算値が最小となる経路の画素間を結ぶことにより構成される縮小シームを探索する縮小シーム探索ステップと、
前記部分シーム探索手段における、前記縮小シーム探索ステップの処理により探索された縮小シームの端部を構成する、前記入力画像エネルギーマップにおける入力画像の一方の端部の画素より、他方の端部の方向に隣接した画素を順次経由して、前記他方の端部の画素に到達するまでの複数の経路のうち、経由する画素のエネルギーの積算値が最小となる画素間を結ぶことにより構成される部分シームを探索する部分シーム探索ステップと、
前記入力画像エネルギーマップ更新手段における、前記部分シーム探索ステップの処理により探索された部分シームを構成する、前記入力画像の全ての画素に対応する前記入力画像エネルギーマップ上のエネルギーに、エネルギー最大値を挿入して置換し、前記入力画像エネルギーマップを更新する入力画像エネルギーマップ更新ステップと、
前記縮小拡大手段における、前記部分シーム探索ステップの処理により探索された前記部分シームを構成する画素を、前記入力画像より削除、または、同一若しくは近傍画素から補間した画素を挿入することで前記入力画像を縮小または拡大する縮小拡大ステップと
を含み、
前記部分シーム探索ステップの処理は、前記入力画像の一方の端部の画素より、他方の端部の方向に隣接した画素を順次経由して、前記他方の端部の画素に到達するまでの複数の経路を探索するにあたり、隣接する画素の全てが前記入力画像エネルギーマップのエネルギー最大値であった場合、前記隣接する画素に、さらに隣接する所定数の画素のうち、最小エネルギーの画素を隣接する画素として設定し、前記経路を構成させる
画像処理方法。 - 入力画像より前記入力画像の隣接する画素間のエネルギーに基づいて、入力画像エネルギーマップを生成する入力画像エネルギーマップ生成手段と、
前記入力画像エネルギーマップを縮小することにより、前記入力画像における隣接する複数の画素からなる1ブロックを1画素とした縮小画像に対応する、縮小エネルギーマップを生成する縮小エネルギーマップ生成手段と、
前記縮小エネルギーマップにおける縮小画像の一方の端部の画素より、他方の端部の方向に隣接した画素を順次経由して、前記他方の端部の画素に到達するまでの複数の経路のうち、経由する画素のエネルギーの積算値が最小となる経路の画素間を結ぶことにより構成される縮小シームを探索する縮小シーム探索手段と、
前記縮小シーム探索手段により探索された縮小シームの端部を構成する、前記入力画像エネルギーマップにおける入力画像の一方の端部の画素より、他方の端部の方向に隣接した画素を順次経由して、前記他方の端部の画素に到達するまでの複数の経路のうち、経由する画素のエネルギーの積算値が最小となる画素間を結ぶことにより構成される部分シームを探索する部分シーム探索手段と、
前記部分シーム探索手段により探索された部分シームを構成する、前記入力画像の全ての画素に対応する前記入力画像エネルギーマップ上のエネルギーに、エネルギー最大値を挿入して置換し、前記入力画像エネルギーマップを更新する入力画像エネルギーマップ更新手段と、
前記部分シーム探索手段により探索された前記部分シームを構成する画素を、前記入力画像より削除、または、同一若しくは近傍画素から補間した画素を挿入することで前記入力画像を縮小または拡大する縮小拡大手段と
を含み、
前記部分シーム探索手段は、前記入力画像の一方の端部の画素より、他方の端部の方向に隣接した画素を順次経由して、前記他方の端部の画素に到達するまでの複数の経路を探索するにあたり、隣接する画素の全てが前記入力画像エネルギーマップのエネルギー最大値であった場合、前記隣接する画素に、さらに隣接する所定数の画素のうち、最小エネルギーの画素を隣接する画素として設定し、前記経路を構成させる画像処理装置を制御するコンピュータに、
前記入力画像エネルギーマップ生成手段における、前記入力画像より前記入力画像の隣接する画素間のエネルギーに基づいて、入力画像エネルギーマップを生成する入力画像エネルギーマップ生成ステップと、
前記縮小エネルギーマップ生成手段における、前記入力画像エネルギーマップを縮小することにより、前記入力画像における隣接する複数の画素からなる1ブロックを1画素とした縮小画像に対応する、縮小エネルギーマップを生成する縮小エネルギーマップ生成ステップと、
前記縮小シーム探索手段における、前記縮小エネルギーマップにおける縮小画像の一方の端部の画素より、他方の端部の方向に隣接した画素を順次経由して、前記他方の端部の画素に到達するまでの複数の経路のうち、経由する画素のエネルギーの積算値が最小となる経路の画素間を結ぶことにより構成される縮小シームを探索する縮小シーム探索ステップと、
前記部分シーム探索手段における、前記縮小シーム探索ステップの処理により探索された縮小シームの端部を構成する、前記入力画像エネルギーマップにおける入力画像の一方の端部の画素より、他方の端部の方向に隣接した画素を順次経由して、前記他方の端部の画素に到達するまでの複数の経路のうち、経由する画素のエネルギーの積算値が最小となる画素間を結ぶことにより構成される部分シームを探索する部分シーム探索ステップと、
前記入力画像エネルギーマップ更新手段における、前記部分シーム探索ステップの処理により探索された部分シームを構成する、前記入力画像の全ての画素に対応する前記入力画像エネルギーマップ上のエネルギーに、エネルギー最大値を挿入して置換し、前記入力画像エネルギーマップを更新する入力画像エネルギーマップ更新ステップと、
前記縮小拡大手段における、前記部分シーム探索ステップの処理により探索された前記部分シームを構成する画素を、前記入力画像より削除、または、同一若しくは近傍画素から補間した画素を挿入することで前記入力画像を縮小または拡大する縮小拡大ステップと
を含む処理を実行させ、
前記部分シーム探索ステップの処理は、前記入力画像の一方の端部の画素より、他方の端部の方向に隣接した画素を順次経由して、前記他方の端部の画素に到達するまでの複数の経路を探索するにあたり、隣接する画素の全てが前記入力画像エネルギーマップのエネルギー最大値であった場合、前記隣接する画素に、さらに隣接する所定数の画素のうち、最小エネルギーの画素を隣接する画素として設定し、前記経路を構成させる
プログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010040699A JP2011176749A (ja) | 2010-02-25 | 2010-02-25 | 画像処理装置および方法、並びにプログラム |
US13/005,592 US20110206294A1 (en) | 2010-02-25 | 2011-01-13 | Image Processing Apparatus, Image Processing Method, and Program |
CN2011100420729A CN102169571A (zh) | 2010-02-25 | 2011-02-18 | 图像处理设备、图像处理方法以及程序 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010040699A JP2011176749A (ja) | 2010-02-25 | 2010-02-25 | 画像処理装置および方法、並びにプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011176749A true JP2011176749A (ja) | 2011-09-08 |
Family
ID=44476531
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010040699A Withdrawn JP2011176749A (ja) | 2010-02-25 | 2010-02-25 | 画像処理装置および方法、並びにプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20110206294A1 (ja) |
JP (1) | JP2011176749A (ja) |
CN (1) | CN102169571A (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5754312B2 (ja) * | 2011-09-08 | 2015-07-29 | カシオ計算機株式会社 | 画像処理装置及び画像処理方法、並びにプログラム |
US9031358B2 (en) * | 2013-03-15 | 2015-05-12 | Qualcomm Incorporated | Video retargeting using seam carving |
US20220020113A1 (en) * | 2020-07-15 | 2022-01-20 | Instasize, Inc. | Image resizing using seam carving |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7747107B2 (en) * | 2007-03-06 | 2010-06-29 | Mitsubishi Electric Research Laboratories, Inc. | Method for retargeting images |
US8160398B1 (en) * | 2008-07-31 | 2012-04-17 | Adobe Systems Incorporated | Independent resizing of multiple image regions |
US8358876B1 (en) * | 2009-05-20 | 2013-01-22 | Adobe Systems Incorporated | System and method for content aware in place translations in images |
US8184928B2 (en) * | 2009-10-20 | 2012-05-22 | Eastman Kodak Company | Combining seam carving an image resizing |
-
2010
- 2010-02-25 JP JP2010040699A patent/JP2011176749A/ja not_active Withdrawn
-
2011
- 2011-01-13 US US13/005,592 patent/US20110206294A1/en not_active Abandoned
- 2011-02-18 CN CN2011100420729A patent/CN102169571A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
CN102169571A (zh) | 2011-08-31 |
US20110206294A1 (en) | 2011-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4157568B2 (ja) | 画像の高解像度化方法及び装置 | |
JP2011176747A (ja) | 画像処理装置および方法、並びにプログラム | |
JP6422250B2 (ja) | 画像処理方法、画像処理装置、プログラム及び記録媒体 | |
JPWO2013089263A1 (ja) | 画像処理装置及び画像処理方法 | |
JP5979145B2 (ja) | 動画領域検出装置 | |
JP2011176749A (ja) | 画像処理装置および方法、並びにプログラム | |
JP2011039801A (ja) | 画像処理装置および画像処理方法 | |
JP2008234478A (ja) | 画像認識装置及び画像回転処理方法 | |
US7961191B2 (en) | Outline font brightness value correction system, method and program | |
JP2012043437A (ja) | 画像処理方法及び画像処理装置 | |
JP5267568B2 (ja) | テロップ移動処理装置、方法及びプログラム | |
JP5337250B2 (ja) | 画像処理装置及びその方法 | |
JP2010154269A (ja) | 画像高品質化方法、装置およびプログラム | |
JP5735395B2 (ja) | 画像処理方法、画像処理装置及び画像処理プログラム | |
JP2009070183A (ja) | 図形描画装置、図形描画方法、図形描画プログラム、および該プログラムを記録した記録媒体 | |
JP4534564B2 (ja) | 画像処理装置およびプログラム | |
JP2008193462A (ja) | フレーム補間装置、及びフレーム補間方法 | |
KR101167644B1 (ko) | 응답 속도를 개선한 내용 기반의 영상 크기 조절 방법 및 장치 | |
KR101187432B1 (ko) | 응답 시간을 단축한 내용 기반의 영상 크기 조절 방법 및 장치 | |
JP5701467B1 (ja) | 画像処理装置及び画像処理方法 | |
JP5751157B2 (ja) | 映像信号処理装置及び映像信号処理方法 | |
JP5874538B2 (ja) | 動画生成装置、動画生成方法、及び、プログラム | |
JP2006277575A (ja) | 信号処理装置及び方法、並びにプログラム | |
JP4609109B2 (ja) | 信号処理装置及び方法、並びにプログラム | |
JP2591435B2 (ja) | 画像拡大縮小方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20130507 |