トップ :: H 電気 :: H04 電気通信技術




【発明の名称】 撮像装置及び撮像方法
【発明者】 【氏名】川原 範弘

【要約】 【課題】星空撮影時であっても動きベクトルを正確に求められるようにする。

【構成】複数の画素を有する撮像素子2より出力された第1の画像データと、その出力前に撮像素子より出力された第2の画像データの各々を複数の領域に分割し各分割領域に対して動きベクトルを算出する動きベクトル検出回路6、及び各分割領域毎に分割領域内に存在する孤立領域を判別する孤立領域判別回路5を設け、孤立領域判別回路により既定数以上の孤立領域が検出された分割領域でのみ、動きベクトル検出回路で動きベクトルを算出する。
【特許請求の範囲】
【請求項1】
複数の画素を有する撮像素子と、
上記撮像素子より出力された第1の画像データを複数の領域に分割し、上記第1の画像データよりも先に出力された第2の画像データを参照して各分割領域に係る動きベクトルを算出する動きベクトル検出手段と、
上記第1の画像データの分割領域内に存在する孤立領域を各分割領域毎に判別する孤立領域判別手段とを備え、
上記動きベクトル検出手段は、上記孤立領域判別手段での判別結果に応じて、上記分割領域に係る動きベクトルの算出を行うことを特徴とする撮像装置。
【請求項2】
さらに、上記動きベクトル検出手段により算出した動きベクトルに基づいて、上記撮像素子より出力された画像データの読み出し範囲を制御して防振処理を行う防振処理手段を有することを特徴とする請求項1に記載の撮像装置。
【請求項3】
上記動きベクトル検出手段は、上記孤立領域判別手段により既定数以上の孤立領域が存在すると判別された分割領域に係る動きベクトルを算出することを特徴とする請求項1又は2記載の撮像装置。
【請求項4】
上記第1の画像データと上記第2の画像データは、時間的に連続する2フレームの各フレームの画像データであることを特徴とする請求項1〜3の何れか1項に記載の撮像装置。
【請求項5】
上記孤立領域判別手段は、
上記分割領域において、指定される孤立領域サイズに応じた検定領域を生成する検定領域生成手段と、
上記検定領域生成手段により生成された検定領域の画素値と予め準備された孤立領域パターンとのパターンマッチングを行って孤立領域を検出する孤立領域検出手段と、
上記孤立領域検出手段により検出された孤立領域の数を計数する計数手段とを有することを特徴とする請求項1〜4の何れか1項に記載の撮像装置。
【請求項6】
上記孤立領域サイズが順次変更され、指定可能な上記孤立領域サイズのすべてのサイズに対して、上記分割領域内に存在する孤立領域の検出を行うことを特徴とする請求項5記載の撮像装置。
【請求項7】
上記第1の画像データと上記第2の画像データとを比較し、上記第1の画像データ及び上記第2の画像データの何れか一方のみに存在する孤立領域を補正して消去する補正手段をさらに備えることを特徴とする請求項1〜6の何れか1項に記載の撮像装置。
【請求項8】
上記動きベクトル検出手段は、上記撮像素子からの画像データの特定の周波数成分を抽出するフィルタ手段を有し、
上記既定数以上の孤立領域を有する分割領域の数が既定数より少ない場合には、上記フィルタ手段により抽出する周波数成分を変更することを特徴とする請求項1〜7の何れか1項に記載の撮像装置。
【請求項9】
複数の画素を有する撮像素子より出力された第1の画像データを複数の領域に分割し、上記第1の画像データよりも先に出力された第2の画像データを参照して各分割領域に係る動きベクトルを算出する動きベクトル検出工程と、
上記第1の画像データの分割領域内に存在する孤立領域を各分割領域毎に判別する孤立領域判別工程とを有し、
上記孤立領域判別工程での判別結果に応じて、上記動きベクトル検出工程にて上記分割領域に係る動きベクトルの算出を行うことを特徴とする撮像方法。
【請求項10】
複数の画素を有する撮像素子より出力された第1の画像データを複数の領域に分割し、上記第1の画像データよりも先に出力された第2の画像データを参照して各分割領域に係る動きベクトルを算出する動きベクトル検出ステップと、
上記第1の画像データの分割領域内に存在する孤立領域を各分割領域毎に判別する孤立領域判別ステップとをコンピュータに実行させ、
かつ上記動きベクトル検出ステップでは、上記孤立領域判別ステップにおける判別結果に応じて、上記分割領域に係る動きベクトルの算出を行うことを特徴とするプログラム。
【請求項11】
請求項10記載のプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】【技術分野】
【0001】
本発明は、CCDイメージセンサ等の撮像素子を備えた撮像装置及び撮像方法に関する。
【背景技術】
【0002】
近年の撮像装置では、天体観測を用途として「星空」を撮影可能であることが求められている。また、星空撮影を手軽に行うために、三脚を用いずに手持ちで撮影したいという要求も強くなっている。そのため、撮像装置は星空撮影時における防振機能が必要となっており、この防振機能は画像の動きベクトルを算出することで実現可能である。
【0003】
動きベクトルの算出方法は、例えば下記特許文献1に記載されている。特許文献1に記載の手法では、時間的に連続する2フレームの画像を垂直及び水平方向に複数分割する。続いて、分割して得られた複数の分割ブロック毎に、時間的に連続する2フレームの画像の互いに対応する分割画像相互間で両者の偏移量に対する相関値を求める。そして、求められた相関値に基づいて画像全体の平行移動量を示す動きベクトルを算出する。
【0004】
【特許文献1】特開昭61−269475号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に記載の方法を星空撮影に用いると、下記のような課題がある。
まず、分割ブロック内に星が存在せず一面黒(夜空部分のみ)になった場合には、時間的に連続する2フレーム間の偏移量に対する相関値が常に最大値となり、動きベクトルを正確に求めることができない。
また、撮像装置が備えるイメージセンサ上に、いわゆる「白キズ」と呼ばれる欠陥画素があった場合には、時間的に連続する2フレームの画像のうち、片方の画像のみに星のように見える白点が存在し、動きベクトルを正確に求めることができない。
また、例えば唯1個存在する星が点滅しているように見える場合には、時間的に連続する2フレームの画像のうち、片方の画像には星が映っていないことがあり、その際には画像間の相関を正確に求めることができない。
【0006】
本発明は、このような事情に鑑みてなされたものであり、撮像装置による星空撮影時であっても動きベクトルを正確に求められるようにすることを目的とする。
【課題を解決するための手段】
【0007】
本発明に係る撮像装置は、複数の画素を有する撮像素子と、上記撮像素子より出力された第1の画像データを複数の領域に分割し、上記第1の画像データよりも先に出力された第2の画像データを参照して各分割領域に係る動きベクトルを算出する動きベクトル検出手段と、上記第1の画像データの分割領域内に存在する孤立領域を各分割領域毎に判別する孤立領域判別手段とを備え、上記動きベクトル検出手段は、上記孤立領域判別手段での判別結果に応じて、上記分割領域に係る動きベクトルの算出を行うことを特徴とする。
本発明に係る撮像方法は、複数の画素を有する撮像素子より出力された第1の画像データを複数の領域に分割し、上記第1の画像データよりも先に出力された第2の画像データを参照して各分割領域に係る動きベクトルを算出する動きベクトル検出工程と、上記第1の画像データの分割領域内に存在する孤立領域を各分割領域毎に判別する孤立領域判別工程とを有し、上記孤立領域判別工程での判別結果に応じて、上記動きベクトル検出工程にて上記分割領域に係る動きベクトルの算出を行うことを特徴とする。
本発明に係るプログラムは、複数の画素を有する撮像素子より出力された第1の画像データを複数の領域に分割し、上記第1の画像データよりも先に出力された第2の画像データを参照して各分割領域に係る動きベクトルを算出する動きベクトル検出ステップと、上記第1の画像データの分割領域内に存在する孤立領域を各分割領域毎に判別する孤立領域判別ステップとをコンピュータに実行させ、かつ上記動きベクトル検出ステップでは、上記孤立領域判別ステップにおける判別結果に応じて、上記分割領域に係る動きベクトルの算出を行うことを特徴とする。
【発明の効果】
【0008】
本発明によれば、撮像素子からの画像データを複数の領域に分割して分割領域毎に孤立領域の数を求め、既定数以上の孤立領域が存在する分割領域においてのみ動きベクトルを算出することにより、星空撮影時であっても動きベクトルを正確に求めることができる。
【発明を実施するための最良の形態】
【0009】
以下、本発明の実施形態を図面に基づいて説明する。
以下に説明する本発明の実施形態は、上述した従来の問題に鑑み、時間的に連続する2フレームの画像間で両者の偏移量に係る相関値を求める際、星に相当する孤立領域の数を求めて、孤立領域が既定数以上存在する分割領域でのみ動きベクトルを算出する。このようにすることで星空撮影時にも動きベクトルを正確に求め、それにより正確な防振動作を実現するようにしたものである。
【0010】
(第1の実施形態)
図1は、本発明の第1の実施形態による撮像装置の構成例を示すブロック図である。
図1において、レンズ1を透過し、撮像素子2で光電変換された入力信号は、アナログフロントエンド(AFE)回路3でリセットノイズ除去、利得調整、及びアナログ−ディジタル(AD)変換等の処理が施されて、ディジタル画像データに変換される。なお、撮像素子2は、複数の画素を有し、例えばCCD(電荷結合素子)イメージセンサやCMOSイメージセンサが用いられる。
【0011】
AFE回路3の出力であるディジタル画像データは、カメラ信号処理回路4に供給され、アパーチャ補正、ガンマ補正、及びホワイトバランス等の撮像系のカメラ信号処理が施される。カメラ信号処理回路4の出力は、撮像素子2の駆動モードに応じて1フレーム又は1フィールド分だけメモリ7に蓄積される。ここで、メモリ制御回路8は、データバス14を介して供給される指示等に応じてメモリ7を制御する。
【0012】
また、カメラ信号処理回路4の出力、及びメモリ7からの出力は、欠陥画素補正回路9に供給され、欠陥画素補正回路9にて欠陥画素の補正が行われる。欠陥画素補正回路9の出力は、ディジタル−アナログ(DA)変換器10でディジタル−アナログ変換処理が施されてアナログ信号に変換され、そのアナログ信号に係る画像がモニタ11に表示される。
【0013】
また、AFE回路3の出力であるディジタル画像データは、動きベクトル検出回路6に供給されるとともに、さらに動きベクトル検出回路6を介して孤立領域判別回路5にも供給される。孤立領域判別回路5は、ディジタル画像データに係る画像に存在する孤立領域を検出して、その数をカウントする。詳細には、孤立領域判別回路5は、AFE回路3の出力であるディジタル画像データを複数の領域に分割した分割領域毎に、その内部に存在する孤立領域を検出する。また、動きベクトル検出回路6は、ディジタル画像データに基づいて画像の動きベクトルを求める。ここで、孤立領域とは、例えば星空撮影時における夜空内の星に相当する領域であり、周辺画素と画素値が異なる島状領域である。
【0014】
マイコン12は、データバス14を介して指示等を供給し、撮像装置内の機能(孤立領域判別回路5やメモリ制御回路8等)を制御する。入力キー13は、撮像装置を使用するユーザが各種設定や指示に係る入力等の操作を行うためのものであり、入力操作に応じて信号をマイコン12に出力する。
【0015】
ここで本実施形態において、動きベクトルは、時間的に連続する2つのフレーム(あるいはフィールド)の画像から算出する。図4(a)、(b)に示すように、前フィールドの画像をサーチ領域41と称し、現フィールドの画像をテンプレート領域42と称す。テンプレート領域42は、サーチ領域41よりも狭い領域を持つ。なお、図4(b)においては、比較参照のためにサーチ領域41に相当する領域43を点線により示している。
【0016】
また、テンプレート領域42は、その領域を所定の数だけ分割する。図4(b)には、テンプレート領域42を横方向に5個、縦方向に4個分割、すなわち水平方向に5分割し垂直方向に4分割している場合を一例として図示している。この分割された各領域をマッチングブロックとも称す。図4(c)に示すように、マッチングブロックとして分割した各テンプレート領域44を分割した各サーチ領域45内で後述の通りシフトさせて相関を求め、両者の相関値が最大となるシフト量を動きベクトルとする。
【0017】
図2は、動きベクトル検出回路6の内部構成を示すブロック図である。
図2において、帯域通過フィルタ21は、AFE回路3の出力であるディジタル画像データから所定周波数成分を抽出する。零クロス検出回路22は、帯域通過フィルタ21の出力信号の零クロス点を検出して当該出力信号を2値化する。
【0018】
サーチメモリ23は、零クロス検出回路22の出力である2値化信号のうちサーチ領域に対応する信号を1フレーム(1フィールド)分遅延させるメモリである。テンプレートメモリ24は、零クロス検出回路22の出力である2値化信号の現フレームの信号をテープレート領域分だけ格納するメモリである。シフトレジスタ25、26は、サーチメモリ23、テンプレートメモリ24の出力信号をそれぞれ一時記憶し、画面内の上下左右にシフトさせる。
【0019】
エクスクルーシブノア(EXNOR)積算回路27は、シフトレジスタ25及び26の出力を用いて排他的論理和演算を行い、その演算結果の反転値を所定ブロック単位で積算する。最大値検出回路28は、シフトレジスタ25、26による各シフトに対するEXNOR積算回路27の出力を記憶して相互に比較し、その最大値を検出する。最大値検出回路28は、EXNOR積算回路27の出力の総和が最大になるシフト量及び方向を動きベクトルとして出力する。
【0020】
上述したサーチメモリ23、テンプレートメモリ24、シフトレジスタ25、26、EXNOR積算回路27、及び最大値検出回路28によりマッチング回路が構成される。
【0021】
次に、動きベクトル検出回路6の動作について説明する。
帯域通過フィルタ21は、AFE回路3から供給されるディジタル画像データの所定周波数成分を抽出し、零クロス検出回路22は、当該抽出された所定周波数成分の信号(画像データ)を2値化する。この2値化動作を、図5を参照して説明する。
【0022】
図5(a)、(b)は、帯域通過フィルタ21の出力を表している。図5(a)、(b)において、横軸は画面横(x)方向の座標、縦軸は濃度(又は輝度)であり、二次元空間の一断面を示している。また、図5(a)において、51、52、53は、それぞれ異なる照明条件下で同じ被写体を撮影した場合の帯域通過フィルタ21の出力波形を示している。
【0023】
本実施形態における動きベクトル検出回路は、供給されるディジタル画像データから帯域通過フィルタ21により特定の周波数成分を抽出し、その特定周波数成分の位相情報から動きベクトルを検出する。そのため、本実施形態における動きベクトル検出回路では、照明条件の変化に依存しない2値化パターンを得ることが可能である。
【0024】
すなわち、図5に示すように、帯域通過フィルタ21の出力波形51、52、53において、零クロス点は照明条件に関わらず一定である。この零クロス点は、被写体が動けばそれに応じて移動するので、零クロス点の変化により動きベクトルを検出することができる。そこで、零クロス検出回路22は、帯域通過フィルタ21の出力信号の零クロス点を検出し、検出により得られた零レベルを閾値として帯域通過フィルタ21の出力を2値化する。
【0025】
零クロス検出回路22により2値化された信号は、適宜サーチメモリ23及びテンプレートメモリ24に記憶される。シフトレジスタ25、26は、お互いに1フレーム(あるいは1フィールド)の時間差を有するサーチメモリ23及びテンプレートメモリ24の出力を一時記憶し、それを画面内で上下左右にシフトした信号を出力する。EXNOR積算回路27は、シフトレジスタ25、26の出力について、それらの排他的論理和の反転を出力し、画面内の所定ブロック単位でその総和を算出する。EXNOR積算回路27の出力値は、各シフト量に対応する所定ブロック内の相関値に相当する。
【0026】
上述のようにしてシフトレジスタ25、26は、所定の探索範囲内で前フィールド、現フィールドの画像をシフトし、EXNOR積算回路27は、各シフト量に対する排他的論理和の反転及びその総和を算出して最大値検出回路28に出力する。最大値検出回路28は、マッチングブロック毎に、シフトレジスタ25、26の各シフト量に対するEXNOR積算回路27の出力を相互比較し、EXNOR積算回路27の出力が最大になるときのシフト量を動きベクトルとして出力する。このようにして、画像を分割したマッチングブロック毎に動きベクトルが検出される。
【0027】
以上の動作により、図4(b)に示すように1フレーム(1フィールド)内の各マッチングブロックについて、動きベクトルを検出することができる。これらのマッチングブロック毎の動きベクトルから、図1に示したマイコン12で平均をとる等の演算を行い、最終的なフレーム(フィールド)間の動きベクトルを求める。
【0028】
次に、図1に示した孤立領域判別回路5について詳細に説明する。
図3は、孤立領域判別回路5の構成を示すブロック図である。
図3に示すように、孤立領域判別回路5は、検定領域生成部31、孤立領域検出部32、カウンタ33、及び孤立領域サイズ指定部34を有する。
【0029】
検定領域生成部31は、テンプレートメモリから2値化されたデータを読み出したマッチングブロックにおいて、孤立領域サイズ指定部34により指定された検出する孤立領域サイズに応じた検定領域を生成する。孤立領域検出部32は、検定領域生成部31で生成された検定領域毎に、検定領域内の画素値と孤立領域パターンとのパターンマッチングを行い、孤立領域を検出する。カウンタ33は、孤立領域検出部32で検出された孤立領域の数をカウントする。孤立領域サイズ指定部34は、検出する孤立領域サイズに応じて検定領域生成部31及び孤立領域検出部32を制御するものである。
【0030】
次に、孤立領域判別回路5の動作について、図6〜図10を参照して説明する。
図6は、孤立領域判別回路5の動作を示すフローチャートである。また、図7は、各孤立領域サイズに対する検定領域を示す図であり、図8、図9、及び図10は、それぞれ孤立領域サイズが「1」、「2」、及び「3」の孤立領域を示す図である。
【0031】
孤立領域判別回路5は、動作を開始すると、動きベクトル検出回路6内のテンプレートメモリ24からマッチングブロック(分割されたテンプレート領域)のデータを読み出す(S101)。次に、孤立領域サイズが「1」と設定された後(S102)、孤立領域サイズ指定部34の制御を受けた検定領域生成部31は、動きベクトル検出回路6内の零クロス検出回路22で2値化されたデータを基に検定領域を生成する(S103)。具体的には、検定領域生成部31は、指定される孤立領域サイズに応じて必要な領域のデータを同時化する。
【0032】
例えば、マイコン12の指示によりデータバス14を介して伝達された孤立領域サイズが「1」である場合には、検定領域生成部31は、図7(a)に示すような3×3画素から四隅の画素(図中、“×”印の画素)を除いたデータを同時化する。図7(a)において、図中の黒丸(“●”)が、2値化されて黒となった画素(例えば、星空撮影における夜空部分の画素)を表す(以下、図7(b)、(c)においても同様)。
【0033】
検定領域生成部31により同時化された5つのデータは、孤立領域検出部32でパターンマッチングが行われる(S104)。その結果、2値化されて黒となった画素(黒丸)が4つとも存在し、かつ真中に位置する画素A1が2値化されて白となった画素(例えば、星に対応)である場合には、その領域は、孤立領域検出部32によりサイズ「1」の孤立領域として検出される。
【0034】
孤立領域サイズが「1」の場合には、図8(a)に示す孤立領域を検出することができる。また、隣接する検定領域でサイズ「1」の孤立領域を検出した場合、図8(b)(c)のような斜め方向に隣接するサイズ「1」の孤立領域を検出することができる。
【0035】
同様に、孤立領域サイズが「2」と指定された場合には、検定領域生成部31は、図7(b)に示すような4×4画素から四隅を除いたデータを同時化する。そして、孤立領域検出部32は、図7(b)に示した2値化されて黒となった画素(黒丸)が8つとも存在し、かつ4つの画素B1、B2、B3、B4にてサイズ「2」の孤立領域パターンを検出した場合には、その領域をサイズ「2」の孤立領域として検出する。図9(a)〜(e)には、サイズ「2」の孤立領域パターンを示しており、これらの孤立領域パターンの何れかを検出した場合に、孤立領域検出部32は、その領域をサイズ「2」の孤立領域として検出する。
【0036】
また、同様に、孤立領域サイズが「3」と指定された場合には、検定領域生成部31は、図7(c)に示すような5×5画素から四隅を除いたデータを同時化する。孤立領域検出部32は、図7(c)に示した黒画素(黒丸)が12個とも存在し、かつ、9つの画素C1〜C9にてサイズ「3」の孤立領域パターンを検出した場合には、その領域をサイズ「3」の孤立領域として検出する。図10(a)〜(g)には、サイズ「3」の孤立領域パターンの一例を示しており、これらの孤立領域パターンを検出した場合に、孤立領域検出部32は、その領域をサイズ「3」の孤立領域として検出する。なお、図10にはサイズ「3」の孤立領域パターンをすべて示しているわけではない。
同様の手法でサイズ「4」以上の孤立領域パターンを検出することが可能であることは言うまでもない。
【0037】
図6に戻り、孤立領域検出部32でのパターンマッチングの結果、検定領域内の画素値が孤立領域パターンに一致していれば(S105のY)、カウンタ33はカウント値をインクリメントする(S106)。一方、検定領域内の画素値と孤立領域パターンとが不一致であれば(S105のN)、ステップS106をスキップする。
【0038】
さらに、指定される孤立領域サイズが最大値に達していなければ(S107のN)、マイコン12からの指示に応じて孤立領域サイズがインクリメントされる(S108)。孤立領域サイズ指定部34の制御を受けた検定領域生成部31は、その孤立領域サイズに対応した検定領域を生成する(S103)。
【0039】
例えば、孤立領域サイズ「1」の検出動作が終了して孤立領域サイズ「2」の検出動作に移行する場合、検定領域生成部31は、検定領域を図7(a)に示す3×3画素の領域から、縦横に1画素ずつ拡張して図7(b)に示す4×4画素の検定領域を生成する。
【0040】
指定される孤立領域サイズが最大値に達していれば(S107のY)、マッチングブロック内のすべての領域で孤立領域の検出動作を行ったか否かが判断される(S109)。その結果、全領域での検出動作が終了していなければ(S109のN)、孤立領域判別回路5は、再び孤立領域サイズを「1」と設定し(S102)、検出動作が終了していない領域(例えば、既に検出を終えた領域に隣接する領域)の検出動作を同様に行う。
【0041】
ステップS109での判断の結果、マッチングブロック内の全領域での孤立領域の検出動作が終了していれば(S109のY)、動きベクトル検出回路5は、カウンタ33のカウント値をみる。そのカウント値が既定値以上であれば、即ち、マッチングブロック内に一定数以上の孤立領域が存在すれば(S110のY)、動きベクトル検出回路5は、上述の動作によりマッチングブロックの画像の動きベクトルを算出する(S111)。一方、マッチングブロック内に規定数以上の孤立領域が存在しない場合には(S110のN)、ステップS111をスキップする。
【0042】
そして、テンプレート領域内のすべてのマッチングブロックで孤立領域の検出動作が完了したか否かを判断し、完了していれば(S112のY)、動作を終了する。一方、すべてのマッチングブロックでの検出動作が完了していなければ(S112のN)、カウンタ33のカウント値をリセットし(S113)、次のマッチングブロックのデータを読み出し(S114)、上述した孤立領域の検出動作を行う。
【0043】
上述した動作により検出される孤立領域とテンプレート領域の一例を図11に示す。
図11に示した例では、横方向に5個、縦方向に4個のマッチングブロックが配列されている。図11において、白い孤立領域は、例えば星空撮影時の星に対応する。動きベクトルの算出を行う上述した既定値が「2」であるとき、孤立領域が2個以上存在する領域(太線で囲んだ領域)0−A,0−D,1−A,1−E,2−B,2−D,3−Eで動きベクトルが算出される。なお、動きベクトルを算出しないマッチングブロックでは、図3に示したカウンタ33のカウント値に基づいて制御を行い、図2に示したシフトレジスタ25、26、EXNOR積算回路27、及び最大値検出回路28の動作を停止させるようにすれば良い。このようにすることで、不要な動きベクトル算出処理が行われることを防止し、処理負荷の軽減や消費電力を削減することができる。
【0044】
上述のようにして求められた動きベクトルに基づいて、マイコン12の指示によりメモリ制御回路8で切り出し位置(読み出し範囲)を制御し、メモリ7に格納した1フレーム(あるいは1フィールド)前の映像信号を読み出すことにより電子防振を行う。
【0045】
以上のように、存在する孤立領域の数が既定数未満(本実施形態では、0又は1)のマッチングブロックでは動きベクトルを算出しないことにより、星空撮影時に生じる従来の不都合を回避し、星空撮影時であっても動きベクトルを正確に算出することができる。これにより、星空撮影時にも正確な電子防振をすることが可能になり、良好な撮像画像を得ることができる。
【0046】
なお、上述した孤立領域の検出動作では、指定される孤立領域サイズをインクリメントして、1〜最大値の孤立領域サイズで順次、孤立領域の検出を行うようにしているが、これに限定されるものではない。例えば、最初に孤立領域サイズを最大値とし、孤立領域サイズをデクリメントして、1〜最大値の孤立領域サイズでの孤立領域の検出を行うようにしても良い。1〜最大値の孤立領域サイズの全サイズで孤立領域の検出を行えれば良く、孤立領域サイズの指定順序はランダムであっても良く、任意である。
【0047】
次に、本実施形態における欠陥画素補正回路9での欠陥画素補正について説明する。
電子防振を実現する場合と同様に、欠陥画素の補正を行うには、上述のようにして得られた動きベクトルに基づいて、メモリ制御回路8で切り出し位置を制御し、メモリ7に格納した1フレーム(あるいは1フィールド)前の映像信号を読み出すことにより行う。
【0048】
例えば、得られた動きベクトルが、水平方向及び垂直方向について、それぞれ(vec_h,vec_v)であるとき、1フレーム(あるいは1フィールド)前の映像信号がメモリ7の出力で、現在のフィールドの映像信号がカメラ信号処理回路4の出力である。したがって、図12に示すように、メモリ7の出力に基づく画像121から、TV信号において(vec_h,vec_v)分ずれた箇所の画像122の信号を比較すれば両者は一致するはずである。
【0049】
ところが、図12に示すように画像121にのみ孤立領域123が存在し、画像122にはそれに対応する孤立領域124は存在しない場合、画像121中の領域123は、撮像素子2の欠陥画素(白キズ)であると判断することができる。そこで、欠陥画素補正回路9は、検出した欠陥画素である領域123を除去するべく補正を行う。
【0050】
なお、欠陥画素補正回路9による欠陥画素領域の除去は、星空撮影時であれば、例えば欠陥画素領域を単に黒画素としても良いし、領域123の周辺画素により補間するようにしても良いし、画像122内の対応する領域124の画素値を用いるようにしても良い。また、これらの例に限定されるものではなく、従来から用いられている補正方法を適用するようにしても良い。
【0051】
上述のように前のフレームの領域と、その領域に対応する当該領域から動きベクトル分移動した現在のフレームの領域を比較し、何れか一方のみに存在する孤立領域を消去すべく欠陥画素補正回路9で補正を行う。これにより、星空撮影時に、防振動作を行いつつ、撮像画像において星に対応する部分(画素)と撮像素子2における欠陥画素(白キズ)を区別して欠陥画素(白キズ)のみを補正することができる。
【0052】
なお、上述した実施形態では、孤立領域が2個以上存在するマッチングブロックについてのみ動きベクトルを算出する場合を一例として説明した。しかしながら、動きベクトルの算出を行う所定の孤立領域数(既定値)は、「2」に限ったものでなく、「3」以上であっても同様の効果を得ることができる。
【0053】
また、本実施形態で説明した孤立領域の検出方法はこれに限ったものではなく、他の手法を用いても差し支えない。
【0054】
また、本実施形態では、動きベクトルを算出しないマッチングブロックでは、カウンタ33のカウント値に基づいて制御し、シフトレジスタ25、26、EXNOR積算回路27、及び最大値検出回路28の動作を停止させる例を示した。しかし、これに限定されるものではなく、例えば、すべてのマッチングブロックで動きベクトルを求めておき、マイコン12で最終的な動きベクトルを求める際に、孤立領域の数が不十分なマッチングブロックの動きベクトルを用いないようにしても良い。
【0055】
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。
第2の実施形態による撮像装置は、既定数以上の孤立領域が存在するマッチングブロックの数が著しく少なく、動きベクトルを算出できない、又は算出した動きベクトルの正確さが乏しくなるような場合に、動きベクトルを正確に算出できるようにするものである。具体的には、第2の実施形態では、一定数以上の孤立領域が存在するマッチングブロックの数が著しく少ない場合には、帯域通過フィルタ21の通過帯域を制御して2値化パターンを変えることで、動きベクトルを算出できるようにする。
【0056】
第2の実施形態による撮像装置の構成は、図1〜図3に示した第1の実施形態による撮像装置と同様であるので、その説明は省略する。
【0057】
第2の実施形態による撮像装置の動作について、図13を参照して説明する。
図13は、第2の実施形態における動作を示すフローチャートである。
動作が開始されると、マイコン12は、データバス14を介して、デフォルトとなる帯域通過フィルタ21の通過帯域を設定する(S201)。次に、動きベクトル検出回路6内のテンプレートメモリ24から最初のマッチングブロックのデータを読み出す(S202)。続いて、上述した第1の実施形態と同様にしてマッチングブロック内に存在する孤立領域の数をカウントする(S203)。
【0058】
そして、マッチングブロックに孤立領域が既定数以上あると判断されたら(S204のY)、このマッチングブロックを有効であると判断して、不図示の有効テンプレート領域カウンタをインクリメントする(S205)。一方、マッチングブロックにある孤立領域が既定数未満であると判断した場合には(S204のN)、ステップS205をスキップする。
【0059】
次に、すべてのマッチングブロックで孤立領域の検出動作が終了したか否かを判断し、終了していなければ(S206のN)、次のマッチングブロックのデータを読み出し(S207)、ステップS203に戻る。
【0060】
一方、すべてのマッチングブロックで孤立領域の検出が終了していれば(S206のY)、有効テンプレート領域カウンタの値を読み出し、孤立領域を所定数以上有する有効なマッチングブロックが1フレーム内で既定数以上あるか否かを判断する(S208)。その結果、有効なマッチングブロックが既定数以上あれば(S208のY)、有効テンプレート領域カウンタのカウント値をリセットし(S210)、動作を終了して引き続き第1の実施形態で説明した動きベクトルの検出や欠陥画素補正の動作を行う。
【0061】
一方、ステップS208での判断の結果、有効なマッチングブロックが既定数以上無い場合には(S208のN)、マイコン12は、帯域通過フィルタ21の通過帯域を変更する(S209)。ここで、例えば、初めに図5(a)に示したような出力波形が得られる通過帯域を有する帯域通過フィルタ21を用いて孤立領域の検出を行っていたとする。このときは、図5(a)に示したように零クロス点の間隔が広いので、星空撮影時には、小さい星に対応する画像データは2値化処理した場合に孤立点とならない可能性が高い。
【0062】
そこで、帯域通過フィルタ21の通過帯域を高くすると、2値化信号は図5(b)に示したようになり、零クロス点の間隔が狭まって、より小さい星を孤立領域として生成することができる。また、星空撮影時には、ほとんどの被写体が夜空と星のみで、第1の実施形態で述べたような照明条件の変化による零クロス点の変化が起こり得ない。そこで、極めて小さい星を孤立領域としたい場合には、帯域通過フィルタ21の制御して動作を止め、ある閾値を用いて2値化信号を生成するようにしても良い。
【0063】
以上のように、既定数以上の孤立領域を有するマッチングブロック数が所定の数よりも少ない場合には、動きベクトル検出回路5が有する帯域通過フィルタ21の通過帯域を変更することにより、星の大きさが小さいときにも防振動作を実現することが可能となる。また、第1の実施形態と同様の動きベクトルの検出や欠陥画素補正の動作を行うことで、第1の実施形態と同様の効果が得られる。
【0064】
(本発明の他の実施形態)
上述した実施形態の機能を実現するべく各種のデバイスを動作させるように、該各種デバイスと接続された装置又はシステム内のコンピュータ(CPU又はMPU)に対し、上記実施形態の機能を実現するためのソフトウェアのプログラムを供給する。そして、そのシステム又は装置のコンピュータに格納されたプログラムに従って上記各種デバイスを動作させることによって実施したものも、本発明の範疇に含まれる。
また、この場合、上記ソフトウェアのプログラム自体が上述した実施形態の機能を実現することになり、そのプログラム自体は本発明を構成する。また、そのプログラムをコンピュータに供給するための手段、例えばかかるプログラムを格納した記録媒体は本発明を構成する。かかるプログラムを記憶する記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
また、供給されたプログラムがコンピュータにて稼働しているオペレーティングシステム又は他のアプリケーションソフト等と共同して上述の実施形態の機能が実現される場合にもかかるプログラムは本発明の実施形態に含まれることは言うまでもない。
さらに、供給されたプログラムがコンピュータに係る機能拡張ボードや機能拡張ユニットに備わるメモリに格納された後、そのプログラムの指示に基づいてその機能拡張ボード等に備わるCPU等が実際の処理の一部又は全部を行う。その処理によって上述した実施形態の機能が実現される場合にも本発明に含まれることは言うまでもない。
【0065】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【0066】
【図1】本発明の第1の実施形態による撮像装置の構成例を示す図である。
【図2】第1の実施形態における動きベクトル検出回路の構成例を示す図である。
【図3】第1の実施形態における孤立領域判別回路の構成例を示す図である。
【図4】動きベクトル検出に係るサーチ領域及びテンプレート領域を示す図である。
【図5】動きベクトル検出回路の帯域通過フィルタの出力波形を示す図である。
【図6】第1の実施形態における孤立領域判別回路の動作を示すフローチャートである。
【図7】各孤立領域サイズに対する検定領域を示す図である。
【図8】孤立領域サイズが「1」の孤立領域の形状を示す図である。
【図9】孤立領域サイズが「2」の孤立領域の形状を示す図である。
【図10】孤立領域サイズが「3」の孤立領域の形状を示す図である。
【図11】テンプレート領域と検出された孤立領域を示す図である。
【図12】第1の実施形態における欠陥画素補正を説明するための図である。
【図13】第2の実施形態による撮像装置の動作を示すフローチャートである。
【符号の説明】
【0067】
1 レンズ
2 撮像素子
4 カメラ信号処理回路
5 孤立領域判別回路
6 動きベクトル検出回路
7 メモリ
8 メモリ制御回路
9 欠陥画素補正回路
12 マイコン
14 データバス
21 帯域通過フィルタ
22 零クロス検出回路
23 サーチメモリ
24 テンプレートメモリ
25,26 シフトレジスタ
27 EXNOR回路
28 最大値検出回路
31 検定領域生成部
32 孤立領域検出部
33 カウンタ
34 孤立領域サイズ指定部
【出願人】 【識別番号】000001007
【氏名又は名称】キヤノン株式会社
【出願日】 平成18年6月27日(2006.6.27)
【代理人】 【識別番号】100090273
【弁理士】
【氏名又は名称】國分 孝悦


【公開番号】 特開2008−10958(P2008−10958A)
【公開日】 平成20年1月17日(2008.1.17)
【出願番号】 特願2006−176800(P2006−176800)