JP2008140331A - 画像処理装置、ぼやけ検出方法、プログラム及び記録媒体 - Google Patents

画像処理装置、ぼやけ検出方法、プログラム及び記録媒体 Download PDF

Info

Publication number
JP2008140331A
JP2008140331A JP2006328481A JP2006328481A JP2008140331A JP 2008140331 A JP2008140331 A JP 2008140331A JP 2006328481 A JP2006328481 A JP 2006328481A JP 2006328481 A JP2006328481 A JP 2006328481A JP 2008140331 A JP2008140331 A JP 2008140331A
Authority
JP
Japan
Prior art keywords
image
block
coefficient group
blur
image data
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
Application number
JP2006328481A
Other languages
English (en)
Other versions
JP2008140331A5 (ja
Inventor
Masashi Aiiso
政司 相磯
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2006328481A priority Critical patent/JP2008140331A/ja
Publication of JP2008140331A publication Critical patent/JP2008140331A/ja
Publication of JP2008140331A5 publication Critical patent/JP2008140331A5/ja
Withdrawn legal-status Critical Current

Links

Images

Abstract

【課題】種々の形式の画像に効率的に対応してぼやけ判定を行える画像処理装置の提供。
【解決手段】プリンタ100のCPU160は、画像データのEXIF情報を参照して、印刷候補として入力された画像データがJPEGデータ、ビットマップデータ、RAWデータのうち、いずれであるのかを判断する。その結果、JPEGデータである場合には、ハフマン復号化・逆量子化を行い、ビットマップデータである場合には、RGB色空間のG成分をDCT変換し、RAWデータである場合には、G成分を周辺の画素から補間した上でDCT変換する。こうして得られたDCT係数から所定の係数群を抽出し、この係数群の変化形状に近似する基本エッジパターンをエッジパターンテーブル181から選出する。この選出された基本エッジパターンに基づいて、画像のぼやけ判定を行う。
【選択図】図6

Description

本発明は、画像を表現しているデジタルデータに基づいて、該画像のぼやけを検出する技術に関する。
近年、デジタルスチルカメラが普及し、デジタルデータの写真画像を撮影する機会が増えている。これらのデジタル写真画像には、被写体ブレや手ブレによるぼやけ画像も含まれており、ユーザが画像を印刷するのに先立ち、画像のぼやけを検出し、ぼやけが生じている画像を印刷の対象から排除することが必要である。こうしたぼやけ画像を排除するためのぼやけ検出技術に関して、例えば、下記の特許文献に記載の技術が知られている。
特開平4−170872号公報 特開平10−271516号公報
特許文献1は、撮像した画像を8画素×8画素を単位とする複数のブロックに分割して、離散コサイン変換された各ブロックについて周波数分析を行い、ブロック毎に像のシャープさ(逆に言えば、ぼやけ度合い)を判別する技術を開示している。
しかし、ぼやけ判定を行うべき画像は、JPEG形式の圧縮画像を中心として、CCD(Charge Coupled Device)などの撮像素子で得られた電気信号をデジタル変換しただけのRAWデータや、画素ごとの色空間の階調値で構成される未圧縮のビットマップ画像、例えば、TIFF形式、PNG形式といった種々の形式があり、それぞれの画像形式に効率的に対応してぼやけ判定を行える画像処理装置が求められていた。
上記課題を解決する本発明の画像処理装置は、
画像を表現しているデジタルデータに基づいて、該画像のぼやけを検出する画像処理装置であって、
所定数の画素からなるブロックを単位として周波数領域で前記画像を表現する複数の係数であり、少なくとも圧縮のための符号化が行われた係数から構成されたデジタルデータを第1の形式の画像データとして入力し、該第1の形式の画像データに対して、前記符号化に対応した復号化を行って、前記画像を周波数領域で表現する複数の係数からなるブロック係数群を取得する第1の係数群取得部と、
所定の色空間の階調値で表現された画素の集合として構成されたデジタルデータを第2の形式の画像データとして入力し、該第2の形式の画像データに対して、前記ブロックと対応した大きさのブロックを単位とする前記周波数領域への変換を行って、前記画像を周波数領域で表現する複数の係数からなるブロック係数群を取得する第2の係数群取得部と、
前記デジタルデータが、前記第1または第2の形式の画像データの何れに該当するかを判定し、該判定結果に基づいて、前記第1または第2の係数群取得部を動作させ、前記ブロック係数群を出力させる判定動作部と、
該判定動作部による判定に伴って出力された前記ブロック係数群から、前記画像データの前記ブロック内における所定方向の変化を代表する複数の係数からなる代表係数群を抽出する係数抽出部と、
前記ブロック内の画素の画像データの前記ブロック内における少なくとも一方向の代表的な変化を前記代表係数群によって表した複数種類のパターンを、基本パターンとして分類して記憶するパターン記憶部と、
前記抽出された代表係数群の変化のパターンを、前記記憶された複数の基本パターンと照合し、近似する基本パターンを選出するパターン照合部と、
前記ブロックについて選出された前記各基本パターンの前記画像内における配置に基づいて、前記デジタルデータが表す画像のぼやけを判定するぼやけ判定部と
を備えたことを要旨とする。
かかる構成の画像処理装置は、画像データの形式を判定し、判定された形式に応じた処理によって、所定数の画素からなるブロック内の画像を周波数領域で表現する複数の係数からなるブロック係数群を取得する。そして、このブロック係数群から、所定方向の画像データの変化を代表する代表係数群を抽出し、この代表係数群の変化のパターンと近似した基本パターンをパターン記憶部から選出し、選出された基本パターンの画像内における配置に基づいて、画像のぼやけを判定する。従って、種々の画像形式に対して、同一の方法を用いて効率的にぼやけ判定を行うことができる。
また、かかる構成の画像処理装置において、第1の形式の画像データは、JPEG形式の画像であり、圧縮のための符号化は、量子化及びエントロピ符号化を含むものとしてもよい。
このような構成によれば、圧縮画像形式として頻繁に用いられるJPEG形式についても対応できる。
また、かかる構成の画像処理装置において、第2の係数群取得部は、第2の形式の画像データであって、所定の色空間のいずれかの色成分の階調値で表現された画素の集合体として構成されたデジタルデータを第3の形式の画像データとして入力した場合には、所定の色成分の階調値を有しない画素の、所定の色成分の階調値を、該画素の周囲の画素の所定の色成分の階調値から補間して、各画素の所定の色成分の階調値を取得する階調値補間手段を備え、判定動作部は、デジタルデータが第2の形式の画像データに該当すると判定した場合には、更に、該第2の形式の画像データが、第3の形式の画像データに該当するか否かを判定し、第3の形式の画像データであると判定したときには、階調値補間手段を備えた第2の係数群取得部を動作させ、ブロック係数群を出力させるものとしてもよい。
このような構成によれば、各画素が所定の色空間のいずれかの色成分の階調値の情報を持つ形式の画像データ、例えば単板式のデジタルスチルカメラで撮像された、RGB色空間のいずれかの色成分の階調値の情報を持つRAWデータであっても、周囲の画素から補間して、各画素の所定の色成分の階調値を取得し、ぼやけ判定を行えるので、より広い画像形式に対応できる。
また、かかる構成の画像処理装置において、判定動作部は、デジタルデータが第3の形式の画像データに該当すると判定した場合には、更に、該第3の画像データに第1の形式のサムネイルが含まれるか否かを判定し、第1の形式のサムネイルが含まれると判定したときには、階調値補間手段を備えた第2の係数群取得部に代えて、第1の係数群取得部を動作させ、サムネイルデータに対応するブロック係数群を出力させるものとしてもよい。
このような構成によれば、画像データに含まれるサムネイルのデータを復号化してブロック係数群を取得するので、画像データの所定の色空間の階調値を補間し、更に、周波数領域へ変換してブロック係数群を取得する場合と比べ、処理を高速化することができる。
また、かかる構成の画像処理装置において、第2の係数群取得部は、第2の形式の画像データのRGB色空間のG成分、または輝度成分に対して、周波数領域への変換を行って、ブロック係数群を取得するものとしてもよい。
このような構成によれば、画像データのうち、人間の眼の感度が高い、RGB色空間のG成分や輝度を用いて、ぼやけの判定を行うので、精度良くぼやけ判定を行うことができる。
また、かかる構成の画像処理装置において、ぼやけ判定部は、基本パターンが選出されたブロックの、選出された基本パターンの係数群の各係数の変化が形成する第1の勾配と、該ブロックに隣接するブロックで選出された基本パターンの係数群の各係数の変化が形成する第2の勾配との連続性を検定する連続性検定手段と、連続性検出手段の検定結果により、各勾配が連続しない時には、基本パターンが選出されたブロックの勾配の幅を、ブロックのぼやけ度を表すぼやけ幅として検出し、各勾配が連続する時には、ブロックに分割された画像内における各ブロックの所定方向の連なりに沿って、各勾配が連続する範囲をぼやけ幅として検出するぼやけ幅検出手段と、該検出されたぼやけ幅の長さに基づいて、デジタルデータが表す画像のぼやけを判定するぼやけ判定手段とを備えたものとしてもよい。
このような構成によれば、ブロックの連なりに沿って、選出した基本パターンの係数群の各係数の変化が形成する勾配の連続性を検出し、勾配が連続する場合には、複数ブロックに跨って勾配が連続する範囲をぼやけ幅として検出する。したがって、ぼやけの幅が1つのブロックのサイズを超える場合においても、精度良く画像がぼやけているか否かを判断することができる。
また、かかる構成の画像処理装置において、更に、ぼやけ判定部によってぼやけていないと判定された画像をユーザに提示する提示部を備えるものとしてもよい。
このような構成であれば、ユーザは、撮影に成功した画像のみを確認することができる。ユーザに提示する方法としては、例えば、表示装置に画像を表示させるものとすることができる。その他、ぼやけていないと判定された画像の一覧を印刷してユーザに提示するものとしてもよい。
また、かかる構成の画像処理装置において、更に、提示された画像の中からユーザによって選択された画像を印刷する印刷部を備えるものとしてもよい。
このような構成であれば、ユーザは、手ブレや被写体ブレによって画像にぼやけの生じている画像を意識することなく、撮影に成功した画像の中から所望の画像を容易に印刷することができる。
なお、本発明は、上述した画像処理装置としての構成のほか、コンピュータが画像のぼやけを検出するぼやけ検出方法や、画像のぼやけを検出するためのコンピュータプログラムとしても構成することができる。かかるコンピュータプログラムは、コンピュータが読取可能な記録媒体に記録されていてもよい。記録媒体としては、例えば、フレキシブルディスクやCD−ROM、DVD−ROM、光磁気ディスク、メモリカード、ハードディスク等の種々の媒体を利用することができる。
以下、上述した本発明の作用・効果を一層明らかにするため、本発明の実施の形態を次の順序で説明する。
A.実施例:
A−1.プリンタのハードウェア構成:
A−2.印刷処理:
A−3.ぼやけ判定処理:
A−4.エッジパターン照合処理の詳細:
A−5.エッジ連結処理の詳細:
A−6.ブロックぼやけ判定処理の詳細:
A−7.ウィンドウぼやけ判定処理の詳細:
B.変形例:
A.実施例:
A−1.プリンタのハードウェア構成:
図1は、本願の画像処理装置の実施例としてのプリンタ100の外観を示す説明図である。プリンタ100は、いわゆる複合機タイプのプリンタであり、光学的に画像を読み込むスキャナ110や、画像データの記録されたメモリカードMCを挿入するためのメモリカードスロット120、デジタルカメラ等の機器を接続するUSBインタフェース130等を備えている。プリンタ100は、スキャナ110によって取り込んだ画像や、メモリカードMCから読み取った画像、USBインタフェース130を介してデジタルカメラから読み取った画像を印刷用紙Pに印刷することができる。また、プリンタケーブルやUSBケーブルによって接続された図示しないパーソナルコンピュータから入力した画像の印刷も行うことができる。
プリンタ100は、印刷に関する種々の操作を行うための操作パネル140を備えている。操作パネル140の中央部には、液晶ディスプレイ145が備えられている。この液晶ディスプレイ145は、メモリカードMCやデジタルカメラなどから読み取った画像の表示や、プリンタ100の各種機能を利用する際のUI(ユーザインタフェース)の表示に利用される。
プリンタ100は、メモリカードMCやデジタルカメラ等から入力した複数の画像データの中から、ぼやけている画像(以下「ぼやけ画像」という)を排除して、ピントが1カ所でも合っている画像(以下、「合焦画像」という)のみを抽出し、液晶ディスプレイ145に表示する機能を有している。ユーザは、こうして液晶ディスプレイ145に表示された画像の中から、所望の画像を選択することで、印刷に適した画像のみを印刷することが可能となる。
図2は、プリンタ100の内部構成を示す説明図である。図示するように、プリンタ100は、印刷用紙Pに印刷を行う機構として、インクカートリッジ212を搭載したキャリッジ210や、キャリッジ210を主走査方向に駆動するキャリッジモータ220、印刷用紙Pを副走査方向に搬送する紙送りモータ230等を備えている。
キャリッジ210は、シアン、マゼンタ、イエロ、ブラック、ライトシアン、ライトマゼンタの色を現す各インクに対応して、計6種類のインクヘッド211を備えている。キャリッジ210には、これらのインクが収容されたインクカートリッジ212が装着されており、インクカートリッジ212からインクヘッド211に供給されたインクは、図示しないピエゾ素子を駆動することで印刷用紙Pに吐出される。
キャリッジ210は、プラテン270の軸方向と並行に設置された摺動軸280に移動自在に保持されている。キャリッジモータ220は、制御ユニット150からの指令に応じて駆動ベルト260を回転させることで、プラテン270の軸方向と平行に、すなわち、主走査方向にキャリッジ210を往復運動させる。紙送りモータ230は、プラテン270を回転させることで、プラテン270の軸方向と垂直に印刷用紙Pを搬送する。つまり、紙送りモータ230は、キャリッジ210を相対的に副走査方向に移動させることができる。
プリンタ100は、上述したインクヘッド211やキャリッジモータ220、紙送りモータ230の動作を制御するための制御ユニット150を備えている。制御ユニット150には、図1に示したスキャナ110やメモリカードスロット120、USBインタフェース130、操作パネル140、液晶ディスプレイ145が接続されている。
制御ユニット150は、CPU160とRAM170とROM180とによって構成されている。ROM180には、プリンタ100の動作を制御するための制御プログラムが記憶されており、更に、後述する種々の処理で使用されるエッジパターンテーブル181が記憶されている。
CPU160はROM180に記憶された制御プログラムをRAM170に展開して実行することで図示する各機能部(161〜167)として動作する。これらの機能部の機能については、後に詳述する。RAM170には、制御プログラムを実行するためのワークエリアが確保されている。
A−2.印刷処理:
図3は、プリンタ100のCPU160が実行する印刷処理のフローチャートである。この印刷処理は、メモリカードMC等から画像データを入力して印刷を行うための処理である。
操作パネル140を用いたユーザの所定の操作に応じてこの印刷処理が実行されると、まず、CPU160は、画像データ入力部161を用いて、メモリカードスロット120に挿入されたメモリカードMCから、画像データを入力する(ステップS10)。なお、ここでは、メモリカードMCから画像データを入力するものとするが、USBインタフェース130を介して接続されたデジタルカメラやコンピュータ等から入力するものとしてもよい。
なお、本実施例においては、請求項の画像データの例として、以下の画像を入力するものとした。
(1)所定数の画素からなるブロックを単位として周波数領域で画像を表現する複数の係数であり、少なくとも圧縮のための符号化が行われた係数から構成されたデジタルデータ(第1の形式の画像データ)の例:JPEGデータ
(2)所定の色空間の階調値で表現された画素の集合として構成されたデジタルデータ(第2の形式の画像データ)の例:ビットマップデータ、RAWデータ
(3)所定の色空間のいずれかの色成分の階調値で表現された画素の集合体として構成されたデジタルデータ(第3の形式の画像データ)の例:RAWデータ
これらの画像のデータは、デジタルスチルカメラで撮像されたものであり、EXIF(Exchangeable Image File Format)と呼ばれる規格により、デジタルスチルカメラの機種、撮影条件、画像の形式、サムネイル等の情報が埋め込まれている。
JPEGデータは、図4(a)に示すように、8画素×8画素のMCU(Minimum Coded Unit)と呼ばれるブロックが水平方向および垂直方向に(つまり、行毎に)連なって構成される。この各ブロック内の画像データは、(1)RGB色空間からYCbCr色空間への画素値の色変換、(2)空間領域から周波数領域へのDCT(Discrete Cosine Transform:離散コサイン変換)変換、(3)データの情報量を削減する量子化、(4)エントロピ符号化の一種であるハフマン符号化、が順次行われることでデータ量が圧縮される。
ビットマップデータは、画素毎の所定の色空間のデータが水平方向及び垂直方向に連なって構成される画像データであり、本実施例においては、RGB色空間のデータを想定している。
RAWデータは、CCD等の撮像素子で得られた電気信号をデジタル変換しただけの画像データであり、ホワイトバランスの調整等の画像処理を一切施していない画像データである。本実施例においては、CCD素子を1枚しか持たない単板式のデジタルスチルカメラで撮像された、各画素がRGB色空間のいずれかひとつの色成分の階調値を有する画像データで構成される画像を想定している。
次に、CPU160は、上記ステップS10によって入力した画像データについて、ぼやけ判定処理を行う(ステップS20)。このぼやけ判定処理の詳細については「A−3.ぼやけ判定処理」で後述する。
1つの画像データについてぼやけ判定処理を終了すると、CPU160は、メモリカードMC内のすべての画像データを入力してぼやけ判定処理を行ったか否かを判断する(ステップS30)。かかる処理によって、全ての画像データのぼやけ判定処理を行っていないと判断した場合には(ステップS30:NO)、処理をステップS10に戻し、次の画像データを入力する。
上記ステップS30によって、全ての画像データについてぼやけ判定処理が終了したと判断した場合には(ステップS30:YES)、CPU160は、上記ステップS20によってぼやけていないと判定された画像、すなわち、合焦画像を、液晶ディスプレイ145に一覧表示する(ステップS40)。
合焦画像の一覧を液晶ディスプレイ145に表示すると、CPU160は、操作パネル140を介して、ユーザから、印刷の対象となる画像の選択を受け付ける(ステップS50)。そして、選択された画像を、インクヘッド211や紙送りモータ230、キャリッジモータ220等を制御して印刷する(ステップS60)。
以上で説明した印刷処理では、メモリカードMC内の全ての画像データを入力するものとしたが、メモリカードMC内に複数のフォルダが生成されている場合には、ユーザによって指定されたフォルダについてのみ画像データを入力するものとしてもよい。
かかる構成の印刷処理装置は、画像のぼやけの判定を行い、合焦画像と判定された画像のみを表示して、印刷指示を受け付けるので、ユーザが視覚的にぼやけの判定を行うことが困難な小型の液晶ディスプレイを搭載した印刷装置であっても、ユーザは、撮影に成功した画像のみを確認しながら、所望の画像を容易に印刷することができる。
A−3.ぼやけ判定処理:
図5は、図3に示した印刷処理のステップS20で実行されるぼやけ判定処理のフローチャートである。この処理が開始されると、まず、CPU160は、ぼやけ判定を行うべきウィンドウ(以下、「注目ウィンドウ」という)をその連なりに沿って移動する(ステップS100)。最初の移動先は、画像データの最も左上に存在するウィンドウである。注目ウィンドウは、ステップS100の処理が実行される度に、右方向へウィンドウの幅分だけ移動し、画像の右端まで到達すると、左端に戻ると共にウィンドウの高さ分だけ下に移動し、再度、右方向へ移動する。
上述のウィンドウとは、L版の印刷用紙において、最小の合焦エリアと想定される約1cm×約1cmのサイズの領域を表しており、このウィンドウ領域を単位としたぼやけ判定結果に基づき、最終的に画像全体のぼやけ判定を行うものである。L版の印刷用紙(約13cm×縦約9cm)に、600万画素(横約3000画素×縦約2000画素)の画像を印刷するとすれば、1ブロックのサイズは、約0.35mm×約0.35mmになる。そのため、約1cm×約1cmのウィンドウ領域内には、図4(b)に示すように、28×28個のブロックが存在することになる。なお、本実施例では、上述のように、L版の印刷用紙に600万画素の画像を印刷することを想定して、ウィンドウのサイズを約1cm×約1cmとしているが、印刷対象の用紙サイズ、画像の画素数、CPUの処理速度等に応じて、ウィンドウサイズが適宜変更されることは言うまでもない。A4版で印刷する場合や、300万画素の画像を印刷する場合、CPUの処理速度を向上できる場合などは、ウィンドウサイズを大きく、例えば、約2cm×約2cmとしてもよい。
注目ウィンドウを移動すると、CPU160は、注目ウィンドウについて、後述するぼやけ判定に用いる係数を取得済みであるか否かを判断する(ステップS110)。その結果、係数を取得済みでなければ(ステップS110:NO)、係数取得処理を行う(ステップS120)。
このステップS120の係数取得処理については、図6を用いて詳述する。図6は、図5に示したぼやけ判定処理のステップS120で実行される係数所得処理の手順を示すフローチャートである。この処理が開始されると、CPU160は、判定動作部162を用いて、入力された画像データがJPEGデータであるか否かを判断する(ステップS300)。その結果、JPEGデータであれば(ステップS300:YES)、CPU160は、JPEGデコード部164を動作させて、JPEGデータの輝度成分に対応するデータをハフマン復号化及び逆量子化して、ブロック(MCU)ごとに、8個×8個の周波数成分(以下、「DCT係数」という)を取得する(ステップS310)。
次に、CPU160は、係数抽出部165を用いて、上記ステップS310で取得したDCT係数から、水平方向の交流周波数成分を表す第1の係数群(以下、「水平エッジパターン」という)と、垂直方向の交流周波数成分を表す第2の係数群(以下、「垂直エッジパターン」という)とを抽出する(ステップS320)。
このステップS320については、図7を用いて具体的に説明する。図7は、図6に示したステップS320の係数群の抽出についての説明図である。図示するように、各ブロックからは、上記ステップS310の逆量子化が行われた段階で、F00からF77までの計64個のDCT係数が得られる。これらのうち、最も左上に存在する係数F00は、直流成分と呼ばれ、他の係数は、交流成分と呼ばれる。このうち、係数抽出部165は、水平方向のみの交流成分である係数F01〜F07を水平エッジパターンとして抽出し、垂直方向のみの交流成分である係数F10〜F70を垂直エッジパターンとして抽出する。
なお、上述の係数取得処理では、CPU160は、図4(b)に示すように、ウィンドウの高さ分のブロック行(図中の係数群スプール幅)ずつ係数群を取得し、RAM170にスプールする。そして、上記ステップS100の注目ウィンドウが左端から右方向へウィンドウの幅分ずつ移動し、画像の右端まで到達すると、新たに、係数群を取得する。これは、JPEGデータが常にデータの先頭からしかスキャンできない性質を有しているためである。
一方、上記ステップS300において、画像データがJPEGデータでないと判断されれば(ステップS300:NO)、CPU160は、判定動作部162を用いて、画像データがビットマップデータであるか否かを判断する(ステップS330)。その結果、ビットマップデータであれば(ステップS330:YES)、CPU160は、JPEG画像エンコード部163を動作させて、ビットマップデータのうち、RGB色空間のG成分を8画素×8画素のブロックを単位としてDCT変換して、8個×8個のDCT係数を取得する(ステップS340)。そして、上記ステップS320へ進み、JPEGデータの場合と同様に、水平エッジパターン及び垂直エッジパターンを抽出する。
また、上記ステップS330において、画像データがビットマップデータでないと判断されれば(ステップS330:NO)、画像データは、各画素がRGB色空間のうち、いずれかひとつの色成分しか情報として持っていないRAWデータの画像であるということである。この場合、CPU160は、JPEGエンコード部163を動作させて、各画素のG成分を、その周囲の画素から補間して算出する(ステップS350)。そして、上記ステップS340に進み、ビットマップデータと同様に、G成分をDCT変換し、さらに、上記ステップS320に進み、水平エッジパターン及び垂直エッジパターンを抽出する。
上述のステップS350については、図8を用いて具体的に説明する。図8は、図6に示したステップ350のRAWデータのG成分の補間についての説明図である。図中のR1〜R4,G1〜G8,B1〜B4は、RAWデータを構成する各画素を表しており、G,B,Rは、各画素が情報として持っている、RGB色空間のR成分,G成分,B成分を表している。本実施例のRAWデータは、図示するように、G成分の画素が市松状に配置され、残りの画素はR成分とB成分で2分されるベイヤ配列の画像データである。
上記ステップS350の処理は、G成分を情報として持たない画素について、当該画素の周辺のG成分の画素から補間して、仮想的なG成分を算出する処理である。例えば、R成分の画素R1の仮想的なG成分は、その周辺のG成分の画素G1,G3,G5,G4のG成分の平均値として算出される。同様に、その他のR成分の画素やB成分の画素についても、周囲のG成分の平均値として算出される。なお、本実施例においては、画像データの画素配置がベイヤ配列である場合の例を示したが、他の画素配置であっても、周囲の画素値が反映される方法により補間すればよい。
以上により、一連の係数取得処理が終了し、図5のぼやけ判定処理に戻る。なお、本実施例においては、画像データがビットマップデータまたはRAWデータである場合には、RGB色空間の中で最も人間の眼の分光感度が高いG成分をDCT変換して水平エッジパターン及び垂直エッジパターンを抽出した。こうすることで、JPEGデータと同様に輝度値をDCT変換した水平エッジパターン及び垂直エッジパターンを抽出する場合と比べて、RGB色空間から輝度値を算出する処理を省略できるので、処理を高速化することができる。ただし、水平エッジパターン及び垂直エッジパターンの抽出は、このような方法に限られるものではなく、他の方法を用いてもよい。例えば、RGB色空間(画像データがRAWデータである場合には、周辺画素の補間により算出する)をYCrCb色空間に変換してY成分(輝度値)を用いたり、HSV色空間に変換してV成分(明度)を用いたりしてもよい。なお、HSV色空間のV成分は、RGB色空間の各階調値の最大値として与えられる。
なお、本実施例においては、上記ステップ300,S330における対象画像の種類の判断は、判定動作部162がEXIF情報を参照して行うこととしたが、ファイルの拡張子から判断するなど別の方法を用いてもよい。
ここで、説明を図5に戻す。上記ステップS120において係数取得処理が完了すると、あるいは、上記ステップS110において、係数が取得済みであると判断されると(ステップS110:YES)、CPU160は、パターン照合部166を用いて、エッジパターン照合処理を実行する(ステップS130)。この処理は、ブロック内の画素値の代表的な変化形状を係数群によって表した複数種類の基本エッジパターンを分類して記憶したエッジパターンテーブル181から、上記ステップS120において取得された係数群(水平エッジパターン、垂直エッジパターン)の変化形状に近似する基本エッジパターンをエッジパターンテーブル181から選出し、その基本エッジパターンに割り振られたパターン番号をRAM170に保存するための処理である(詳細な処理内容については「A−4.エッジパターン照合処理の詳細」で後述)。
エッジパターン照合処理が行われると、CPU160は、ぼやけ判定部167を用いて、RAM170に保存されたパターン番号を参照して、エッジ連結処理を実行する(ステップS140)。このエッジ連結処理では、上記ステップS130で選出された基本エッジパターンについて、注目ブロックと隣接するブロックが同じ傾き方向であれば、これらのブロック同士のぼやけ幅(画素値の変化の勾配の幅)を累積加算し、注目ブロックのぼやけ幅が算出される(詳細な処理内容については、「A−5.エッジ連結処理の詳細」で後述)。
エッジ連結処理が行われると、CPU160は、ぼやけ判定部167を用いて、ブロックぼやけ判定処理を実行する(ステップS150)。この処理は、エッジ連結処理によって算出されたぼやけ幅に基づき、注目ブロックがぼやけているか否かを判定するための処理である。本実施例においては、かかる処理の実行結果として、注目ブロックが、「ぼやけブロック」、「合焦ブロック」、「平坦ブロック」のいずれかの判定結果として取得される。なお、本実施例における「平坦」とは、ブロック内の色の変化が少ない状態をいい、平坦ブロックは、ぼやけの判定を行いにくいため、ぼやけブロックと合焦ブロック以外にこのような区分を設けている(詳細な処理内容については「A−6.ブロックぼやけ判定処理の詳細」で後述)。
ブロックぼやけ判定処理の判定がなされると、CPU160は、ぼやけ判定部167を用いて、その注目ウィンドウ領域全体について、ウィンドウぼやけ判定処理を行う(ステップ160)。この処理は、上記ステップS150でなされたブロックごとのぼやけ判定結果を集計して、ウィンドウ領域としてのぼやけ判定を行うものである(詳細な処理内容については「A−7.ウィンドウぼやけ判定処理の詳細」で後述)。
上記ステップS160においてウィンドウぼやけ判定処理が終了すると、CPU160は、この判定処理の判定結果に基づき、現在のウィンドウ領域が合焦ウィンドウであるか否かを判断する(ステップS170)。その結果、当該ウィンドウが合焦ウィンドウであれば(ステップS170:YES)、現在入力している画像データが合焦画像であると判定し(ステップS180)、上述した一連のぼやけ判定処理を終了する。つまり、画像内のいずれかのウィンドウ領域が合焦ウィンドウであると判定された時点で、図3のステップS10で入力した画像データが合焦画像であると判断することになる。こうすることで、画像内のいずれかのウィンドウ領域が合焦ウィンドウであれば、画像内のすべてのウィンドウ領域についてぼやけの有無を判定する必要がないため、ぼやけ判定処理に要する時間を高速化することができる。
これに対して、上記ステップS160においてウィンドウぼやけ判定処理を行ったウィンドウ領域が、ぼやけウィンドウであると判断された場合には(ステップS170:NO)、CPU160は、続いて、現在の注目ウィンドウが、最終ウィンドウであるかを判断する(ステップS190)。この結果、現在の注目ウィンドウが、最終ウィンドウであると判断されれば(ステップS190:YES)、どのウィンドウ領域も合焦ウィンドウではなかったと判断できるため、現在入力している画像データはぼやけ画像であると判定して(ステップS200)、上述した一連のぼやけ判定処理を終了する。一方、現在の注目ウィンドウが最終ウィンドウでなければ(ステップS190:NO)、CPU160は、上記ステップS100へ処理を戻し、次の位置のウィンドウについて、上述した種々の処理を繰り返し実行する。
かかる構成の画像処理装置は、対象画像の種類を判断して、その画像の種類に応じた処理を行うことによって画素の変化を表す係数群を取得し、その係数群に基づいて同一の方法によりぼやけ判定を行うため、同一のぼやけ判定手段により種々の画像形式に効率的に対応したぼやけ判定を行うことができる。
また、かかる構成の画像処理装置は、ブロックごとのぼやけ幅を連結処理して、複数のブロック間に及ぶぼやけ幅を算出することができるので、ぼやけの幅が1つのブロックのサイズを超える場合においても、精度良く画像がぼやけているか否かを判断することができる。さらに、複数のブロックによって構成されるウィンドウ領域毎にぼやけの有無を判断することができるので、より人の感性に近い精度で画像にぼやけが生じているかを判断することが可能になる。このようなサイズのウィンドウ領域内が画像中のいずれかの箇所でぼやけていないと判断されれば、その領域に焦点が合っているものと判断することができるためである。
A−4.エッジパターン照合処理の詳細:
図9は、図5に示したぼやけ判定処理のステップS130で実行されるエッジパターン照合処理のフローチャートである。CPU160は、ぼやけ判定部167を用いて、次の手順により、エッジパターン照合処理を実行する。
この処理が実行されると、まず、CPU160は、ぼやけ判定処理のステップS120で抽出した水平エッジパターン及び垂直エッジパターン(図7参照)を取得する(ステップS400)。当該エッジパターン照合処理では、水平エッジパターンと垂直エッジパターンとについてそれぞれ同様の処理が実行されるため、以下では、これらを代表して、水平方向のDCT係数を表す水平エッジパターンに対する処理を説明する。
CPU160は、上記ステップS400によって、水平エッジパターンを取得すると、この水平エッジパターンを構成する各係数F01〜F07の絶対値の和を求め、これが所定の閾値Th1(例えば、80)を超えるか否かを判定する(ステップS410)。第1の係数群の絶対値の和Sは、下記式(1)によって求めることができる。
S=Σ|F0i| (i=1〜7) ・・・(1)
上記ステップS410において、第1の係数群の絶対値の和Sが閾値Th1以下であると判断されれば(ステップS310:NO)、そのブロックの水平方向の輝度変化は、平坦であると見なすことができる。したがって、かかるブロックのエッジパターンのパターン番号を「平坦」と決定する(ステップS460)。
上記ステップS410において、第1の係数群の絶対値の和Sが閾値Th1を超えると判断されれば(ステップS410:YES)、そのブロックの水平方向には、なんらかの輝度変化があると判断できる。そこで、まず、CPU160は、水平エッジパターンの各係数値F01〜F07について下記式(2)に基づき正規化を行う(ステップS420)。下記式(2)によれば、正規化後の各係数値Fr01〜Fr07は、第1の係数群の絶対値の和Sで、それぞれの係数値F01〜F07を除算した値となる。
Fr0j=F0j/S (j=1〜7) ・・・(2)
次に、CPU160は、ROM180に記憶されたエッジパターンテーブル181を参照する(ステップS430)。
ここで、エッジパターンテーブル181について説明する。図10は、エッジパターンテーブル181の一例を示す説明図である。このエッジパターンテーブル181には、「A1」から「A16」までのパターン番号(図の1列目)に対して16種類の基本エッジパターン(図の3列目)が対応付けて記録されている。基本エッジパターンの横軸は、ブロック内の係数の位置(F01〜F07)を表しており、縦軸は、正規化後の係数値Frを表している。つまり、基本エッジパターンは、7つの係数値からなるデータである。
各基本エッジパターンは、図の2列目に示した輝度パターンに基づき生成されている。すなわち、図の2列目に示した輝度パターンをDCT変換して正規化したものが図の3列目に示す基本エッジパターンとなる。なお、図中の輝度パターンは、実際には、エッジパターンテーブル181には記録されておらず、理解の便のために記載している。各輝度パターンは、1ブロック内で傾きの符号が変化しない輝度変化の典型的な形状を、予め16種類に分類したものである。本実施例では、このように、基本エッジパターンを16種類に分類するものとするが、より多くのパターンに分類するものとしてもよい。
エッジパターンテーブル181には、更に、基本エッジパターンに対応付けて左側エッジ幅LWと、中央エッジ幅MWと、右側エッジ幅RWという3種類のパラメータが記録されている。左側エッジ幅LWは、輝度パターンの左側に存在する平坦部の幅を表しており、右側エッジ幅RWは、輝度パターンの右側に存在する平坦部の幅を表している。また、中央エッジ幅MWは、左側エッジ幅LWと右側エッジ幅RWとに挟まれる勾配部分の幅を表している。
なお、図示を省略しているが、このエッジパターンテーブル181には、「A1」から「A16」までの基本エッジパターンに加え、これらの基本エッジパターンを左右反転させたエッジパターンがパターン番号B1〜B16に定義されており、上下反転させたエッジパターンがパターン番号C1〜C16に定義されている。また、「A1」から「A16」までの基本エッジパターンを上下および左右に反転させたエッジパターンがパターン番号D1〜D16に定義されている。つまり、全体で、64種類の基本エッジパターンがこのエッジパターンテーブル181に定義されている。
ここで説明を図9戻す。エッジパターンテーブル181を参照すると、CPU160は、上記ステップS420で正規化を行った各係数値Fr01〜Fr07と、基本エッジパターンを構成する各係数値Fb01〜Fb07との誤差SDを算出し、この誤差SDが所定の閾値Th2以下となる基本エッジパターンがあるか否かを判断する(ステップS440)。なお、本実施例においては、誤差SDは、下記式(3)に従って算出した。
SD=Σ|Fr0k−Fb0k| (k=1〜7) ・・・(3)
上記ステップS440において、誤差SDが所定の閾値Th2以下となる基本エッジパターンがあると判断されれば(ステップS440:YES)、CPU160は、最も誤差SDが小さくなる基本エッジパターンに対応付けられたパターン番号を取得し、RAM170に保存する(ステップS450)。一方、所定の閾値Th2以下となる基本エッジパターンがないと判断されれば(ステップS470:NO)、近似する基本エッジパターンが検索されなかったとして、パターン番号「不明」を取得し、RAM170に保存する(ステップS470)。
以上の処理によって、注目ブロックのパターン番号が決定すると、上述した一連のエッジパターン照合処理は終了し、図5に示したぼやけ判定処理に戻る。
かかる構成のエッジパターン照合処理は、ブロック内の画素値の変化が小さいと判断される場合には、ステップS420〜ステップS450の基本エッジパターンの選出を省略できるため、エッジパターン照合処理を高速化することができる。
A−5.エッジ連結処理の詳細:
図11は、図5に示したぼやけ判定処理のステップS140で実行されるエッジ連結処理のフローチャートである。この処理は、上下左右に隣接したブロックに基づき、中央のブロック(注目ブロック)のぼやけ幅を決定するための処理である。かかる処理は、水平方向と垂直方向とについて行われるが、説明を簡単にするため、特記しない限り、水平方向に対して行われる処理の説明をする。CPU160は、ぼやけ判定部167を用いて、次の手順により、エッジ連結処理を実行する。
この処理が開始されると、まず、CPU160は、エッジ連結処理を行うべき注目ブロックをその連なりに沿って移動する(ステップS500)。最初の移動先は、注目ウィンドウの最も左上に存在するブロックである。注目ブロックは、ステップS500の処理が実行される度に、右方向へ移動し、注目ウィンドウの右端まで到達すると、左端に戻ると共にブロックの高さ分だけ下に移動し、再度、右方向へ移動する。
注目ブロックを移動すると、CPU160は、現在の注目ブロックのパターン番号をRAM170から取得する(ステップS510)。
次に、CPU160は、ステップS510で取得したパターン番号が「不明」または「平坦」であるかを判断する(ステップS520)。この判断の結果、パターン番号が「不明」または「平坦」であれば(ステップS520:YES)、上記ステップS130のエッジパターン照合処理において、注目ブロックの水平方向の輝度変化が基本エッジパターンのいずれにも近似しないか、平坦であると判定されていることになる(図9のステップS460,S470参照)。本実施例では、基本エッジパターンのいずれにも近似しない場合も「平坦」として扱い、注目ブロックのぼやけ幅を「0」と確定する(ステップS590)。こうして確定したぼやけ幅を、以下では、「確定ぼやけ幅DW」というものとする。
上記ステップS520において、パターン番号が「不明」または「平坦」ではないと判断されれば(ステップS520:NO)、CPU160は、注目ブロックの右側(垂直方向のエッジ連結処理の場合には下側)に隣接するブロック(以下、「隣接ブロックという」)のパターン番号をRAM170から取得する(ステップS530)。そして、注目ブロックのパターン番号と、隣接ブロックのパターン番号とを対比して、これらのブロックの基本エッジパターンの傾き方向が一致するかを判断する(ステップS540)。
図12は、注目ブロックと隣接ブロックとで基本エッジパターンの傾き方向が一致する例を示す説明図である。図示した例では、両ブロックの傾きは、共に右下がりであるため、両者の傾き方向は一致しているといえる。注目ブロックと隣接ブロックの傾き方向が一致する組み合わせとしては、以下のようなパターン番号の組み合わせがある。つまり、CPU160は、注目ブロックのパターン番号と隣接ブロックのパターン番号の組み合わせが、以下に示す(1)から(8)のいずれかの組み合わせに含まれれば、これらの傾き方向が一致すると判断することができる。
注目ブロックNo. 隣接ブロックNo.
(1)A1〜A16 A1〜A16
(2)A1〜A16 D1〜D16
(3)B1〜B16 B1〜B16
(4)B1〜B16 C1〜C16
(5)C1〜C16 C1〜C16
(6)C1〜C16 B1〜B16
(7)D1〜D16 D1〜D16
(8)D1〜D16 A1〜A16
図13は、注目ブロックと隣接ブロックとで基本エッジパターンの傾き方向が一致しない例を示す説明図である。図示した例では、注目ブロックの傾きが右下がりであるのに対して、隣接ブロックの傾きが右上がりであることから、両者の傾きは一致していないと言える。両ブロックの傾き方向が一致しないパターン番号の組み合わせは、上述した(1)から(8)以外の組み合わせである。
上記ステップS540において、傾き方向が一致すると判断された場合には(ステップS540:YES)、CPU160は、続いて、注目ブロックの右側エッジ幅RWと、隣接ブロックの左側エッジ幅LWの加算値が、所定の連結誤差閾値Th3以内であるかを判断する(ステップS550)。なお、この判断に先立ち、CPU160は、隣接ブロックのパターン番号から、エッジパターンテーブル181を参照して、その左側エッジ幅LWを取得するものとする。
図14は、注目ブロックの右側エッジ幅RWと隣接ブロックの左側エッジ幅LWの加算値と連結誤差閾値Th3との比較の様子を示す説明図である。図示するように、注目ブロックの基本エッジパターンの右側に存在する平坦部(右側エッジ幅RW)と、隣接ブロックの基本エッジパターンの左側に存在する平坦部(左側エッジ幅LW)との和が大きく、連結誤差閾値Th3を超えるような場合には、注目ブロックと隣接ブロックとでは勾配が連続せず、別々のぼやけ部分を形成していると判断することができる。そのため、上記ステップS550では、「NO」と判定される。これに対して、上述した和が小さく、連結誤差閾値Th3以下となる場合には、注目ブロックのエッジパターンと隣接ブロックのエッジパターンとは連続した勾配であると考えることができるため、上記ステップS550では、「YES」と判定される。
上記ステップS550において、注目ブロックの右側エッジ幅RWと、隣接ブロックの左側エッジ幅LWの加算値が、所定の連結誤差閾値Th3以内であると判定されれば(ステップS550:YES)、CPU160は、これまで左側(垂直方向のエッジ連結処理にあっては、上側)のブロックに累積されている累積ぼやけ幅CWをRAM170から読み込む。そして、この累積ぼやけ幅CWに注目ブロックの左側エッジ幅LWと中央エッジ幅MWとを加算する処理を行う(ステップS600)。こうして新たな累積ぼやけ幅CWを求めると、CPU160は、新たな値をRAM170に上書きして更新する。こうすることで、隣接ブロック同士でエッジパターンの傾きが一方向に連続していく場合には、各ブロックのぼやけ幅を順次累積していくことができる。なお、本実施例においては、上記ステップS600では、CPU160は、注目ブロックの確定ぼやけ幅DWを便宜的に「0」と確定する。つまり、ぼやけ幅を累積する場合には、その累積途中のブロックについては、一律に平坦なブロックであるとみなすのである。
図15は、上記ステップS600における累積ぼやけ幅CWの算出概念を示す説明図である。図示するように、上記ステップS600では、これまでの累積ぼやけ幅CWに対して、注目ブロックの左側エッジ幅LWと中央エッジ幅MWとを加算した値を、新たな累積ぼやけ幅CWとする。なお、かかる演算に先立ち、CPU160は、エッジパターンテーブル181を参照して、注目ブロックのパターン番号に対応する左側エッジ幅LWと中央エッジ幅MWとを取得するものとする。
上記ステップS540において、注目ブロックの傾き方向と隣接ブロックの傾き方向とが一致しないと判断された場合(ステップS540:NO)、もしくは、上記ステップS550において、注目ブロックの右側エッジ幅RWと隣接ブロックの左側エッジ幅LWとの和が連結誤差閾値Th3を超えると判断された場合(ステップS550:NO)には、CPU160は、RAM170から読み込んだ累積ぼやけ幅CWが「0」であるかを判断する(ステップS560)。この判断によって累積ぼやけ幅CWが「0」であると判断されれば(ステップS560:YES)、注目ブロックはぼやけの生じる開始点であり、更に、上記ステップS540,S550における判定結果によれば、右側(垂直方向のエッジ連結処理にあっては、下側)の隣接ブロックともエッジパターンが連続しないことになるため、注目ブロックは、単独のエッジパターンを有すると判断することができる。従って、CPU160は、注目ブロックの中央エッジ幅MWを確定ぼやけ幅DWとして確定する(ステップS610)。なお、CPU160は、かかる処理に先立ち、エッジパターンテーブル181を参照して、注目ブロックのパターン番号に対応する中央エッジ幅MWを取得するものとする。
上記ステップS560において、累積ぼやけ幅CWが「0」ではないと判断されれば、注目ブロックは、右側(垂直方向のエッジ連結処理にあっては、下側)の隣接ブロックとは連続しないが、左側(垂直方向のエッジ連結処理にあっては、上側)の隣接ブロックとは連続することになる。つまり、注目ブロックは、ぼやけ部分の終端に該当することになる。そのため、CPU160は、RAM170から読み込んだ累積ぼやけ幅CWに注目ブロックの左側エッジ幅LWと中央エッジ幅MWとを加算し、この値を確定ぼやけ幅DWとして確定する(ステップS570)。なお、CPU160は、かかる処理に先立ち、エッジパターンテーブル181を参照して、注目ブロックのパターン番号に対応する左側エッジ幅LWと中央エッジ幅MWとを取得するものとする。
続いて、CPU160は、現在の注目ブロックが、注目ウィンドウ領域の最終ブロックであるかを判断する(ステップS580)。この結果、現在の注目ブロックが、最終ブロックであると判断されれば(ステップS580:YES)、上述した一連のエッジ連結処理を終了し、図5に示したぼやけ判定処理に戻る。一方、現在の注目ブロックが最終ブロックでなければ(ステップS580:NO)、CPU160は、上記ステップS500へ処理を戻し、次の位置のブロックについて、上述した種々の処理を繰り返し実行する。
かかる構成のエッジ連結処理は、基本エッジパターンに対応付けられたパターン番号と、基本エッジパターンに対応付けられたエッジ幅(LW、MW、RW)を用いて、エッジの連結を行うので、エッジパターン照合処理を高速化することができる。
A−6.ブロックぼやけ判定処理の詳細:
図16は、図5に示したぼやけ判定処理のステップS150で実行されるブロックぼやけ判定処理のフローチャートである。この処理は、上述したエッジ連結処理に引き続いて実行される処理であり、注目ブロックが合焦しているか否かを判定する処理である。CPU160は、ぼやけ判定部167を用いて、次の手順により、ブロックぼやけ判定処理を実行する。
この処理が開始されると、まず、CPU160は、ブロックぼやけ判定処理を行うべき注目ブロックをその連なりに沿って移動する(ステップS700)。最初の移動先は、注目ウィンドウの最も左上に存在するブロックである。注目ブロックは、ステップS700の処理が実行される度に、右方向へ移動し、注目ウィンドウの右端まで到達すると、左端に戻ると共にブロックの高さ分だけ下に移動し、再度、右方向へ移動する。
次に、CPU160は、上記ステップS140のエッジ連結処理で確定された注目ブロックの水平および垂直方向の確定ぼやけ幅DWを取得し(ステップS710)、2つの確定ぼやけ幅DWのうち、大きい方の値を有する確定ぼやけ幅DWを、最大確定ぼやけ幅MDWとして決定する(ステップS720)。
最大確定ぼやけ幅MDWを決定すると、CPU160は、この最大確定ぼやけ幅MDWが「0」であるか否かを判断する(ステップS730)。その結果、最大確定ぼやけ幅MDWが「0」であれば(ステップS730:YES)、水平方向、垂直方向共に大きな輝度変化がない(本実施例では、基本エッジパターンが不明なもの、ぼやけの途中に存在するブロックを含む)ということであり、CPU160は、注目ブロックは「平坦ブロック」であると判定する(ステップS740)。
上記ステップS730において、最大確定ぼやけ幅MDWが「0」でなければ(ステップS730:NO)、CPU160は、最大確定ぼやけ幅MDWが所定のぼやけ幅閾値Th4(例えば、「16」)以下であるか否かを判定する(ステップS750)。かかる判定の結果、最大確定ぼやけ幅MDWがこの条件を満たせば(ステップS750:YES)、注目ブロックは「合焦ブロック」であると判定する(ステップS770)。これに対して、最大確定ぼやけ幅MDWが所定のぼやけ幅閾値Th4よりも大きければ(ステップS750:NO)、注目ブロックは「ぼやけブロック」であると判定する(ステップS760)。
以上の処理により、現在の注目ブロックが、「合焦ブロック」か「ぼやけブロック」か「平坦ブロック」かの判定が終了すると、続いて、CPU160は、現在の注目ブロックが、注目ウィンドウ領域の最終ブロックであるかを判断する(ステップS780)。この結果、現在の注目ブロックが、最終ブロックであると判断されれば(ステップS780:YES)、上述した一連のブロックぼやけ判定処理を終了し、図5に示したぼやけ判定処理に戻る。一方、現在の注目ブロックが最終ブロックでなければ(ステップS780:NO)、CPU160は、上記ステップS700へ処理を戻し、次の位置のブロックについて、上述した種々の処理を繰り返し実行する。
以上で説明したブロックぼやけ判定処理によれば、水平方向の確定ぼやけ幅DWと垂直方向の確定ぼやけ幅DWとのうち、その値が大きい方の確定ぼやけ幅DWを最大確定ぼやけ幅MDWとして決定し、この最大確定ぼやけ幅MDWが所定のぼやけ幅閾値Th4以上であれば、注目ブロックがぼやけていると判断する。よって、一方向で判断する場合と比べて、精度良くぼやけ判定を行うことができる。
A−7.ウィンドウぼやけ判定処理の詳細:
図17は、図5に示したぼやけ判定処理のステップS160で実行されるウィンドウぼやけ判定処理のフローチャートである。上述したブロックぼやけ判定処理がブロック毎にぼやけの有無を判定する処理であるのに対して、このウィンドウぼやけ判定処理は、ブロックぼやけ判定処理の結果に基づき、図4(b)に示したウィンドウ領域毎にぼやけの有無を判定する処理である。CPU160は、ぼやけ判定部167を用いて、次の手順により、ウィンドウぼやけ判定処理を実行する。
この処理が実行されると、CPU160は、上記ステップ150のブロックぼやけ判定処理の判定結果を用いて、注目ウィンドウ内の全てのブロックについて、合焦ブロック数とぼやけブロック数を集計する(ステップS800)。
上記ステップS800によって、ブロック数を集計すると、CPU160は、次式(4)で示すように、合焦ブロック数Nfを、合焦ブロック数Nfとぼやけブロック数Nnの和で除して得られる合焦ブロック率Rfを計算し、この合焦ブロック率Rfが所定の合焦閾値Th5以上であるかを判断する(ステップS810)。
Rf=Nf/(Nf+Nn)・・・(4)
かかる判定の結果、合焦ブロックの総数が合焦閾値Th5以上であれば(ステップS810:YES)、現在の注目ウィンドウを「合焦ウィンドウ」と判定し(ステップS830)、合焦密度閾値に満たなければ(ステップS810:NO)、「ぼやけウィンドウ」と判定して、図5に示したぼやけ判定処理に戻る(ステップS820)。
B.変形例:
B−1.変形例1
図18は、変形例としての、図5に示すぼやけ判定処理のステップS120で実行される係数取得処理の手順を示すフローチャートである。この処理が実施例の係数取得処理と異なる点は、画像データがRAWデータであると判断された場合の処理(ステップS950〜S970)であり、その他の点は、実施例と同様である(ステップS900〜S940は、上述の実施例のステップS300〜S340と同一の処理)。したがって、ステップS950〜S970について説明する。
ステップS930において、画像データがビットマップデータでないと判断されれば(ステップS930:NO)、画像データは、各画素がRGB色空間のうち、いずれかの色成分しか情報として持っていないRAWデータであるということである。この場合、CPU160は、判定動作部162を用いて、このRAWデータが有するEXIF情報の中にJPEG形式のサムネイルがあるか否かを判断する(ステップS950)。
その結果、JPEG形式のサムネイルがあれば(ステップS950:YES)、CPU160は、JPEGデコード部164を動作させ、このサムネイルデータの輝度成分に対応するデータをハフマン復号化及び逆量子化して、ブロック(MCU)ごとに、8個×8個のDCT係数を取得し(ステップS970)、ステップS920に進む。
一方、JPEG形式のサムネイルがなければ(ステップS950:NO)、CPU160は、JPEGエンコード部163を動作させて、各画素のG成分を、その周囲の画素から補間して算出し(ステップS960)、ステップS940に進み、更に、ステップS920に進む。このステップS960の処理は、上記ステップS350の処理と同一の処理である。
かかる構成の画像処理装置は、画像データがRAWデータであり、かつEXIF情報の中にJPEG形式のサムネイルがある場合には、サムネイルデータをハフマン復号化及び逆量子化して、DCT係数を取得する。したがって、RAWデータのRGB色空間の色成分を補間して、DCT変換する場合と比較して、処理を高速化することができる。
B−2.変形例2:
本実施例においては、図5に示したステップS120の係数取得処理において、水平方向と垂直方向のDCT係数を表す水平エッジパターンと垂直エッジパターンとを抽出し、これを基に、ステップS130以降のぼやけ判定処理を行ったが、これに限られるものではない。ステップS120において、所定の一方向のみ、例えば、水平エッジパターンのみを抽出してもよい。こうすれば、処理を高速化することができる。あるいは、更に多くのエッジパターン、例えば、水平方向、垂直方向、水平方向と45度の角度をなす方向について、エッジパターンを抽出してもよい。こうすれば、より精度の高いぼやけ判定を行うことができる。
B−3.変形例3:
本実施例においては、図5に示したステップS120の係数取得処理の中で、入力された画像データの形式の判定を行うこととしたが、これに限られるものではない。例えば、画像データが入力された際に、画像データの形式を判定し、係数取得処理の中では、その判定結果に応じた処理ルーチンにより係数群を取得してもよい。こうすれば、処理を高速化することができる。
B−4.変形例4:
本実施例においては、請求項の、所定数の画素からなるブロックを単位として周波数領域で画像を表現する複数の係数であり、少なくとも圧縮のための符号化が行われた係数から構成されたデジタルデータ(第1の形式の画像データ)の例として、YCrCb色空間の画素値をDCT変換したJPEGデータについて示したが、これに限られるものではない。例えば、離散フーリエ変換(DFT変換)やウェーブレット変換、カルーネン・レーベ変換など、他の方法により周波数領域で画像を表現する画像データについても、図5に示したステップS120の係数取得処理において、それらの変換方法に対応したデコード部により、DCT係数に代わる係数群を取得してぼやけ判定処理に用いることで適用可能である。
また、請求項の、所定の色空間の階調値で表現された画素の集合として構成されたデジタルデータ(第2の形式の画像データ)であって、所定の色空間のいずれかの色成分の階調値で表現された画素の集合体として構成されたデジタルデータ(第3の形式の画像データ)でないデジタルデータの例として、RGB色空間のビットマップデータについて示したが、これに限られるものではない。例えば、YCrCbなど、他の色空間で階調値の情報を持つ画像データであっても、図5に示したステップS120の係数取得処理において、輝度値を空間領域から周波数領域へ変換したり、当該色空間の階調値をRGB色空間の階調値に変換して、G成分を空間領域から周波数領域へ変換したりして、係数群を取得してぼやけ判定処理に用いることで適用可能である。
以上、本発明の幾つかの実施例、変形例について説明したが、本発明はこうした実施例に限られるものではなく、本発明の要旨を脱しない範囲において、種々なる態様で実施できることは勿論である。例えば、本発明の画像処理装置は、実施例に示したプリンタに限らず、デジタルスチルカメラ、カメラ付携帯電話、写真画像を拡大確認するためのフォトビューアなどに搭載することができる。もとより、コンピュータに搭載して、コンピュータのモニタで写真画像を取捨選択する場合にも採用可能である。また、ぼやけ検出方法、ぼやけ検出プログラム、またはプログラムを記録したコンピュータで読み取り可能な記録媒体等の形態でも実現することができる。
画像処理装置の実施例としてのプリンタ100の外観を示す説明図である。 プリンタ100の内部構成を示す説明図である。 プリンタ100の印刷処理のフローチャートである。 ブロックとウィンドウの概念を示す説明図である。 印刷処理で実行されるぼやけ判定処理のフローチャートである。 ぼやけ判定処理で実行される係数所得処理の手順を示すフローチャートである。 係数群の抽出についての説明図である。 RAWデータのG成分の補間についての説明図である。 ぼやけ判定処理で実行されるエッジパターン照合処理のフローチャートである。 エッジパターンテーブル181の一例を示す説明図である。 ぼやけ判定処理で実行されるエッジ連結処理のフローチャートである。 注目ブロックと隣接ブロックとで基本エッジパターンの傾き方向が一致する例を示す説明図である。 注目ブロックと隣接ブロックとで基本エッジパターンの傾き方向が一致しない例を示す説明図である。 注目ブロックの右側エッジ幅RWと隣接ブロックの左側エッジ幅LWの加算値と連結誤差閾値Th3との比較の様子を示す説明図である。 累積ぼやけ幅CWの算出概念を示す説明図である。 ぼやけ判定処理で実行されるブロックぼやけ判定処理のフローチャートである。 ぼやけ判定処理で実行されるウィンドウぼやけ判定処理のフローチャートである。 変形例としての、ぼやけ判定処理で実行される係数所得処理の手順を示すフローチャートである。
符号の説明
100...プリンタ
110...スキャナ
120...メモリカードスロット
130...USBインタフェース
140...操作パネル
145...液晶ディスプレイ
150...制御ユニット
160...CPU
161...画像データ入力部
162...判定動作部
163...JPEGエンコード部
164...JPEGデコード部
165...係数抽出部
166...パターン照合部
167...ぼやけ判定部
170...RAM
180...ROM
181...エッジパターンテーブル
210...キャリッジ
211...インクヘッド
212...インクカートリッジ
220...キャリッジモータ
230...モータ
260...駆動ベルト
270...プラテン
280...摺動軸
P...印刷用紙
MC...メモリカード

Claims (11)

  1. 画像を表現しているデジタルデータに基づいて、該画像のぼやけを検出する画像処理装置であって、
    所定数の画素からなるブロックを単位として周波数領域で前記画像を表現する複数の係数であり、少なくとも圧縮のための符号化が行われた係数から構成されたデジタルデータを第1の形式の画像データとして入力し、該第1の形式の画像データに対して、前記符号化に対応した復号化を行って、前記画像を周波数領域で表現する複数の係数からなるブロック係数群を取得する第1の係数群取得部と、
    所定の色空間の階調値で表現された画素の集合として構成されたデジタルデータを第2の形式の画像データとして入力し、該第2の形式の画像データに対して、前記ブロックと対応した大きさのブロックを単位とする前記周波数領域への変換を行って、前記画像を周波数領域で表現する複数の係数からなるブロック係数群を取得する第2の係数群取得部と、
    前記デジタルデータが、前記第1または第2の形式の画像データの何れに該当するかを判定し、該判定結果に基づいて、前記第1または第2の係数群取得部を動作させ、前記ブロック係数群を出力させる判定動作部と、
    該判定動作部による判定に伴って出力された前記ブロック係数群から、前記画像データの前記ブロック内における所定方向の変化を代表する複数の係数からなる代表係数群を抽出する係数抽出部と、
    前記ブロック内の画素の画像データの前記ブロック内における少なくとも一方向の代表的な変化を前記代表係数群によって表した複数種類のパターンを、基本パターンとして分類して記憶するパターン記憶部と、
    前記抽出された代表係数群の変化のパターンを、前記記憶された複数の基本パターンと照合し、近似する基本パターンを選出するパターン照合部と、
    前記ブロックについて選出された前記各基本パターンの前記画像内における配置に基づいて、前記デジタルデータが表す画像のぼやけを判定するぼやけ判定部と
    を備えた画像処理装置。
  2. 請求項1記載の画像処理装置であって、
    前記第1の形式の画像データは、JPEG形式の画像であり、前記圧縮のための符号化は、量子化及びエントロピ符号化を含む
    画像処理装置。
  3. 請求項1または請求項2記載の画像処理装置であって、
    前記第2の係数群取得部は、前記第2の形式の画像データであって、所定の色空間のいずれかの色成分の階調値で表現された画素の集合体として構成されたデジタルデータを第3の形式の画像データとして入力した場合には、所定の色成分の階調値を有しない画素の、前記所定の色成分の階調値を、該画素の周囲の画素の前記所定の色成分の階調値から補間して、各画素の所定の色成分の階調値を取得する階調値補間手段を備え、
    前記判定動作部は、前記デジタルデータが前記第2の形式の画像データに該当すると判定した場合には、更に、該第2の形式の画像データが、前記第3の形式の画像データに該当するか否かを判定し、前記第3の形式の画像データであると判定したときには、前記階調値補間手段を備えた第2の係数群取得部を動作させ、前記ブロック係数群を出力させる
    画像処理装置。
  4. 請求項3記載の画像処理装置であって、
    前記判定動作部は、前記デジタルデータが前記第3の形式の画像データに該当すると判定した場合には、更に、該第3の画像データに前記第1の形式のサムネイルが含まれるか否かを判定し、前記第1の形式のサムネイルが含まれると判定したときには、前記階調値補間手段を備えた第2の係数群取得部に代えて、前記第1の係数群取得部を動作させ、前記サムネイルデータに対応する前記ブロック係数群を出力させる
    画像処理装置。
  5. 請求項1ないし請求項4のいずれか記載の画像処理装置であって、
    前記第2の係数群取得部は、前記第2の形式の画像データのRGB色空間のG成分、または輝度成分に対して、前記周波数領域への変換を行って、前記ブロック係数群を取得する
    画像処理装置。
  6. 請求項1ないし請求項5のいずれか記載の画像処理装置であって、
    前記ぼやけ判定部は、
    前記基本パターンが選出されたブロックの、前記選出された基本パターンの係数群の各係数の変化が形成する第1の勾配と、該ブロックに隣接するブロックで選出された基本パターンの係数群の各係数の変化が形成する第2の勾配との連続性を検定する連続性検定手段と、
    前記連続性検出手段の検定結果により、前記各勾配が連続しない時には、前記基本パターンが選出されたブロックの前記勾配の幅を、前記ブロックのぼやけ度を表すぼやけ幅として検出し、前記各勾配が連続する時には、前記ブロックに分割された画像内における前記各ブロックの前記所定方向の連なりに沿って、前記各勾配が連続する範囲を前記ぼやけ幅として検出するぼやけ幅検出手段と、
    該検出されたぼやけ幅の長さに基づいて、前記デジタルデータが表す画像のぼやけを判定するぼやけ判定手段と
    を備えた画像処理装置。
  7. 請求項1ないし請求項6のいずれか記載の画像処理装置であって、
    更に、前記ぼやけ判定部によってぼやけていないと判定された画像をユーザに提示する提示部を備える
    画像処理装置。
  8. 請求項7に記載の画像処理装置であって、
    更に、前記提示された画像の中からユーザによって選択された画像を印刷する印刷部を備える
    画像処理装置。
  9. 画像を表現しているデジタルデータに基づいて、該画像のぼやけを検出するぼやけ検出方法であって、
    前記デジタルデータが、所定数の画素からなるブロックを単位として周波数領域で前記画像を表現する複数の係数であり、少なくとも圧縮のための符号化が行われた係数から構成された第1の形式の画像データ、または所定の色空間の階調値で表現された画素の集合として構成された第2の形式の画像データの何れに該当するかを判定し、
    前記第1の形式の画像データであると判断されたときは、該第1の形式の画像データに対して、前記符号化に対応した復号化を行って、前記画像を周波数領域で表現する複数の係数からなるブロック係数群を出力し、
    前記第2の形式の画像データであると判断されたときは、該第2の形式の画像データに対して、前記ブロックと対応した大きさのブロックを単位とする前記周波数領域への変換を行って、前記画像を周波数領域で表現する複数の係数からなるブロック係数群を出力し、
    前記出力されたブロック係数群から、前記画像データの前記ブロック内における所定方向の変化を代表する複数の係数からなる代表係数群を抽出し、
    前記ブロック内の画素の画像データの前記ブロック内における少なくとも一方向の代表的な変化を前記代表係数群によって表した複数種類のパターンを、基本パターンとして分類して記憶するパターン記憶部を参照して、前記抽出された代表係数群の変化のパターンを、前記記憶された複数の基本パターンと照合し、近似する基本パターンを選出し、
    前記ブロックについて選出された前記各基本パターンの前記画像内における配置に基づいて、前記デジタルデータが表す画像のぼやけを判定する
    ぼやけ検出方法。
  10. 画像を表現しているデジタルデータに基づいて、該画像のぼやけを検出するためのコンピュータプログラムであって、
    所定数の画素からなるブロックを単位として周波数領域で前記画像を表現する複数の係数であり、少なくとも圧縮のための符号化が行われた係数から構成されたデジタルデータを第1の形式の画像データとして入力し、該第1の形式の画像データに対して、前記符号化に対応した復号化を行って、前記画像を周波数領域で表現する複数の係数からなるブロック係数群を取得する第1の係数群取得機能と、
    所定の色空間の階調値で表現された画素の集合として構成されたデジタルデータを第2の形式の画像データとして入力し、該第2の形式の画像データに対して、前記ブロックと対応した大きさのブロックを単位とする前記周波数領域への変換を行って、前記画像を周波数領域で表現する複数の係数からなるブロック係数群を取得する第2の係数群取得機能と、
    前記デジタルデータが、前記第1または第2の形式の画像データの何れに該当するかを判定し、該判定結果に基づいて、前記第1または第2の係数群取得機能を用いて、前記ブロック係数群を出力させる判定動作機能と、
    該判定動作部による判定に伴って出力された前記ブロック係数群から、前記画像データの前記ブロック内における所定方向の変化を代表する複数の係数からなる代表係数群を抽出する係数抽出機能と、
    前記ブロック内の画素の画像データの前記ブロック内における少なくとも一方向の代表的な変化を前記代表係数群によって表した複数種類のパターンを、基本パターンとして分類して記憶するパターン記憶部を参照して、前記抽出された代表係数群の変化のパターンを、前記記憶された複数の基本パターンと照合し、近似する基本パターンを選出するパターン照合機能と、
    前記ブロックについて選出された前記各基本パターンの前記画像内における配置に基づいて、前記デジタルデータが表す画像のぼやけを判定するぼやけ判定機能と
    をコンピュータに実現させるコンピュータプログラム。
  11. 請求項10に記載のコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2006328481A 2006-12-05 2006-12-05 画像処理装置、ぼやけ検出方法、プログラム及び記録媒体 Withdrawn JP2008140331A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006328481A JP2008140331A (ja) 2006-12-05 2006-12-05 画像処理装置、ぼやけ検出方法、プログラム及び記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006328481A JP2008140331A (ja) 2006-12-05 2006-12-05 画像処理装置、ぼやけ検出方法、プログラム及び記録媒体

Publications (2)

Publication Number Publication Date
JP2008140331A true JP2008140331A (ja) 2008-06-19
JP2008140331A5 JP2008140331A5 (ja) 2009-11-12

Family

ID=39601679

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006328481A Withdrawn JP2008140331A (ja) 2006-12-05 2006-12-05 画像処理装置、ぼやけ検出方法、プログラム及び記録媒体

Country Status (1)

Country Link
JP (1) JP2008140331A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016122325A (ja) * 2014-12-25 2016-07-07 カシオ計算機株式会社 診断支援装置並びに当該診断支援装置における画像処理方法及びそのプログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04170872A (ja) * 1990-11-05 1992-06-18 Canon Inc 撮像装置
JPH10271516A (ja) * 1997-01-27 1998-10-09 Sony Corp 圧縮符号化装置、符号化方法、復号化装置および復号化方法
JP2006190259A (ja) * 2004-12-06 2006-07-20 Canon Inc 手ぶれ判定装置及び画像処理装置及びその制御方法及びプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04170872A (ja) * 1990-11-05 1992-06-18 Canon Inc 撮像装置
JPH10271516A (ja) * 1997-01-27 1998-10-09 Sony Corp 圧縮符号化装置、符号化方法、復号化装置および復号化方法
JP2006190259A (ja) * 2004-12-06 2006-07-20 Canon Inc 手ぶれ判定装置及び画像処理装置及びその制御方法及びプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016122325A (ja) * 2014-12-25 2016-07-07 カシオ計算機株式会社 診断支援装置並びに当該診断支援装置における画像処理方法及びそのプログラム

Similar Documents

Publication Publication Date Title
JP4193881B2 (ja) 画像処理装置およびぼやけ検出方法
JP5187139B2 (ja) 画像処理装置およびプログラム
JP4323748B2 (ja) デジタルカメラ及びその制御方法、画像処理装置、画像処理方法、画像処理システム
US20080137982A1 (en) Blurring determination device, blurring determination method and printing apparatus
JP4492555B2 (ja) 印刷装置
JP2012027687A (ja) 画像処理装置及びプログラム
JP2007189428A (ja) インデックス画像出力装置及びインデックス画像出力プログラム
TW514876B (en) Digital picture signal processing apparatus, method thereof, digital picture recording apparatus, method thereof, transmitting method thereof, and data record medium thereof
US7924468B2 (en) Camera shake determination device, printing apparatus and camera shake determination method
JP2010117787A (ja) 画像処理装置
JP4513764B2 (ja) 画像判定装置および画像判定方法
JP2008140331A (ja) 画像処理装置、ぼやけ検出方法、プログラム及び記録媒体
JP2006279460A (ja) 画像処理装置、印刷装置、画像処理方法、および、画像処理プログラム
JP2008165734A (ja) ぼやけ判定装置、ぼやけ判定方法および印刷装置
JP4742642B2 (ja) 画像処理装置、印刷装置、画像処理方法、および、画像処理プログラム
JP2010173323A (ja) 印刷装置
JP4910971B2 (ja) 手ぶれ判定装置、および、手ぶれ判定方法
JP2008123346A (ja) ぼやけ判定装置、ぼやけ判定方法および印刷装置
JP2008028886A (ja) 画像処理装置およびぼやけ検出方法
JP2009022017A (ja) 画像処理装置およびぼやけ検出方法
JP5464157B2 (ja) 画像処理装置及び画像処理プログラム
JP2007045022A (ja) 印刷装置および印刷方法
JP2009237657A (ja) 画像判定装置、画像判定方法および画像判定プログラム
JP2011118944A (ja) 画像処理装置、印刷装置、画像処理方法、及びコンピュータープログラム
JP2008129912A (ja) 画像処理装置、ぼやけ検出方法、プログラム及び記録媒体

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090925

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090925

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110208

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20110317