以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書又は図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書又は図面に記載されていることを確認するためのものである。従って、明細書又は図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
本発明の第1の側面の画像処理装置は、有意の領域である有効領域とその他の領域である無効領域とからなる画像を処理する画像処理装置であって、前記無効領域の画素であるか否かを判定するための第1の閾値とその画素値とが比較されることによって、前記画像において水平方向に1列に並ぶ画素の中の、前記無効領域の画素でないと判定された画素のうち、左端の画素の所定の座標上の位置を検出する左座標位置検出手段(例えば、図9の左座標位置検出部64)と、前記第1の閾値とその画素値とが比較されることによって、前記画像において水平方向に1列に並ぶ画素の中の、前記無効領域の画素でないと判定された画素のうち、右端の画素の前記座標上の位置を検出する右座標位置検出手段(例えば、図9の右座標位置検出部65)と、前記第1の閾値とその画素値とが比較されることによって、前記画像において垂直方向に1列に並ぶ画素の中の、前記無効領域の画素でないと判定された画素のうち、上端の画素の前記座標上の位置を検出する上座標位置検出手段(例えば、図9の上座標位置検出部66)と、前記第1の閾値とその画素値とが比較されることによって、前記画像において垂直方向に1列に並ぶ画素の中の、前記無効領域の画素でないと判定された画素のうち、下端の画素の前記座標上の位置を検出する下座標位置検出手段(例えば、図9の下座標位置検出部67)と、前記左座標位置検出手段、右座標位置検出手段、上座標位置検出手段、および下座標位置検出手段それぞれによって検出された前記画素の前記座標上の位置に沿った部分の、有意な画素の割合に応じて、前記左座標位置検出手段、右座標位置検出手段、上座標位置検出手段、および下座標位置検出手段それぞれによって検出された前記画素の前記座標上の位置の信頼度を計算する信頼度計算手段(例えば、図5のフレーム内信頼度計算部13)と、前記画像における所定のフレーム、および、前記所定のフレームと時間的に異なる複数のフレームについての前記信頼度のうち、最も信頼度の高いフレームの前記画素の前記座標上の位置を、前記有効領域の画素の座標として特定する特定手段(例えば、図5の前フレーム比較部19、または、後フレーム比較部20)とを備える。
前記左座標位置検出手段には(例えば、図9の左座標位置検出部64)、前記第1の閾値と画素の画素値とが比較されるとともに、第2の閾値と隣接する画素の画素値との絶対差分値とが比較されることによって、前記画像において水平方向に1列に並ぶ画素の中の、前記無効領域の画素でないと判定された画素のうち、左端の画素の前記座標上の位置を検出させ、前記右座標位置検出手段(例えば、図9の右座標位置検出部65)には、前記第1の閾値と画素の画素値とが比較されるとともに、前記第2の閾値と隣接する画素の画素値との絶対差分値とが比較されることによって、前記画像において水平方向に1列に並ぶ画素の中の、前記無効領域の画素でないと判定された画素のうち、右端の画素の前記座標上の位置を検出させ、前記上座標位置検出手段(例えば、図9の上座標位置検出部66)には、前記第1の閾値と画素の画素値とが比較されるとともに、前記第2の閾値と隣接する画素の画素値との絶対差分値とが比較されることによって、前記画像において垂直方向に1列に並ぶ画素の中の、前記無効領域の画素でないと判定された画素のうち、上端の画素の前記座標上の位置を検出させ、前記下座標位置検出手段(例えば、図9の下座標位置検出部67)には、前記第1の閾値と画素の画素値とが比較されるとともに、前記第2の閾値と隣接する画素の画素値との絶対差分値とが比較されることによって、前記画像において垂直方向に1列に並ぶ画素の中の、前記無効領域の画素でないと判定された画素のうち、下端の画素の前記座標上の位置を検出させることができる。
本発明の第1の側面の画像処理方法は、有意の領域である有効領域とその他の領域である無効領域とからなる画像を処理する画像処理方法であって、前記無効領域の画素であるか否かを判定するための第1の閾値とその画素値とが比較されることによって、前記画像において水平方向に1列に並ぶ画素の中の、前記無効領域の画素でないと判定された画素のうち、左端の画素の所定の座標上の位置を検出し(例えば、図11のステップS104)、前記第1の閾値とその画素値とが比較されることによって、前記画像において水平方向に1列に並ぶ画素の中の、前記無効領域の画素でないと判定された画素のうち、右端の画素の前記座標上の位置を検出し(例えば、図11のステップS105)、前記第1の閾値とその画素値とが比較されることによって、前記画像において垂直方向に1列に並ぶ画素の中の、前記無効領域の画素でないと判定された画素のうち、上端の画素の前記座標上の位置を検出し(例えば、図11のステップS109)、前記第1の閾値とその画素値とが比較されることによって、前記画像において垂直方向に1列に並ぶ画素の中の、前記無効領域の画素でないと判定された画素のうち、下端の画素の前記座標上の位置を検出し(例えば、図11のステップS110)、検出された前記画素の前記座標上の位置に沿った部分の、有意な画素の割合に応じて、前記画素の前記座標上の位置の信頼度を計算し(例えば、図7のステップS3)、前記画像における所定のフレーム、および、前記所定のフレームと時間的に異なる複数のフレームについての前記信頼度のうち、最も信頼度の高いフレームの前記画素の前記座標上の位置を、前記有効領域の画素の座標として特定する(例えば、図7のステップS4)ステップを含む。
本発明の第1の側面のプログラムおよび第1の側面の記録媒体に記録されるプログラムは、有意の領域である有効領域とその他の領域である無効領域とからなる画像に関する処理を、コンピュータに行わせるプログラムであって、前記無効領域の画素であるか否かを判定するための第1の閾値とその画素値とが比較されることによって、前記画像において水平方向に1列に並ぶ画素の中の、前記無効領域の画素でないと判定された画素のうち、左端の画素の所定の座標上の位置を検出し(例えば、図11のステップS104)、前記第1の閾値とその画素値とが比較されることによって、前記画像において水平方向に1列に並ぶ画素の中の、前記無効領域の画素でないと判定された画素のうち、右端の画素の前記座標上の位置を検出し(例えば、図11のステップS105)、前記第1の閾値とその画素値とが比較されることによって、前記画像において垂直方向に1列に並ぶ画素の中の、前記無効領域の画素でないと判定された画素のうち、上端の画素の前記座標上の位置を検出し(例えば、図11のステップS109)、前記第1の閾値とその画素値とが比較されることによって、前記画像において垂直方向に1列に並ぶ画素の中の、前記無効領域の画素でないと判定された画素のうち、下端の画素の前記座標上の位置を検出し(例えば、図11のステップS110)、検出された前記画素の前記座標上の位置に沿った部分の、有意な画素の割合に応じて、前記画素の前記座標上の位置の信頼度を計算し(例えば、図7のステップS3)、前記画像における所定のフレーム、および、前記所定のフレームと時間的に異なる複数のフレームについての前記信頼度のうち、最も信頼度の高いフレームの前記画素の前記座標上の位置を、前記有効領域の画素の座標として特定する(例えば、図7のステップS4)ステップを含む。
本発明の第2の側面の画像処理装置は、有意の領域である有効領域とその他の領域である無効領域とからなる画像を処理する画像処理装置であって、前記無効領域の画素であるか否かを判定するための第1の閾値とその画素値とが比較されることによって、前記画像において水平方向に1列に並ぶ画素の中の、前記無効領域の画素でないと判定された画素のうち、左端の画素の所定の座標上の位置を検出する左座標位置検出手段(例えば、図9の左座標位置検出部64)と、前記第1の閾値とその画素値とが比較されることによって、前記画像において水平方向に1列に並ぶ画素の中の、前記無効領域の画素でないと判定された画素のうち、右端の画素の前記座標上の位置を検出する右座標位置検出手段(例えば、図9の右座標位置検出部65)と、前記第1の閾値とその画素値とが比較されることによって、前記画像において垂直方向に1列に並ぶ画素の中の、前記無効領域の画素でないと判定された画素のうち、上端の画素の前記座標上の位置を検出する上座標位置検出手段(例えば、図9の上座標位置検出部66)と、前記第1の閾値とその画素値とが比較されることによって、前記画像において垂直方向に1列に並ぶ画素の中の、前記無効領域の画素でないと判定された画素のうち、下端の画素の前記座標上の位置を検出する下座標位置検出手段(例えば、図9の下座標位置検出部67)と、水平方向の列ごとに検出された前記左端の画素の位置の中の、最も左の画素の位置と左から2番目の画素の位置との差分が第2の閾値より大きい場合、左から2番目の位置を最も左の位置とする最左座標位置決定手段(例えば、図25の最左座標位置決定部121)と、水平方向の列ごとに検出された前記右端の画素の位置の中の、最も右の画素の位置と右から2番目の画素の位置との差分が前記第2の閾値より大きい場合、右から2番目の位置を最も右の位置とする最右座標位置決定手段(例えば、図25の最右座標位置決定部122)と、垂直方向の列ごとに検出された前記上端の画素の位置の中の、最も上の画素の位置と上から2番目の画素の位置との差分が前記第2の閾値より大きい場合、上から2番目の位置を最も上の位置とする最上座標位置決定手段(例えば、図25の最上座標位置決定部123)と、垂直方向の列ごとに検出された前記下端の画素の位置の中の、最も下の画素の位置と下から2番目の画素の位置との差分が前記第2の閾値より大きい場合、下から2番目の位置を最も下の位置とする最下座標位置決定手段(例えば、図25の最下座標位置決定部124)と、決定された前記最も左の画素の位置、前記最も右の画素の位置、前記最も上の画素の位置、および前記最も下の画素の位置より、前記画像における矩形である前記有効領域の前記座標上の位置を決定する矩形有効領域座標決定手段(例えば、図24の矩形有効領域座標位置決定部101)とを備える。
本発明の第2の側面の画像処理方法は、有意の領域である有効領域とその他の領域である無効領域とからなる画像を処理する画像処理方法であって、前記無効領域の画素であるか否かを判定するための第1の閾値とその画素値とが比較されることによって、前記画像において水平方向に1列に並ぶ画素の中の、前記無効領域の画素でないと判定された画素のうち、左端の画素の所定の座標上の位置を検出し(例えば、図11のステップS104)、前記第1の閾値とその画素値とが比較されることによって、前記画像において水平方向に1列に並ぶ画素の中の、前記無効領域の画素でないと判定された画素のうち、右端の画素の前記座標上の位置を検出し(例えば、図11のステップS105)、前記第1の閾値とその画素値とが比較されることによって、前記画像において垂直方向に1列に並ぶ画素の中の、前記無効領域の画素でないと判定された画素のうち、上端の画素の前記座標上の位置を検出し(例えば、図11のステップS109)、前記第1の閾値とその画素値とが比較されることによって、前記画像において垂直方向に1列に並ぶ画素の中の、前記無効領域の画素でないと判定された画素のうち、下端の画素の前記座標上の位置を検出し(例えば、図11のステップS110)、水平方向の列ごとに検出された前記左端の画素の位置の中の、最も左の画素の位置と左から2番目の画素の位置との差分が第2の閾値より大きい場合、左から2番目の位置を最も左の位置とし(例えば、図27のステップS1113)、水平方向の列ごとに検出された前記右端の画素の位置の中の、最も右の画素の位置と右から2番目の画素の位置との差分が前記第2の閾値より大きい場合、右から2番目の位置を最も右の位置とし(例えば、図27のステップS1114)、垂直方向の列ごとに検出された前記上端の画素の位置の中の、最も上の画素の位置と上から2番目の画素の位置との差分が前記第2の閾値より大きい場合、上から2番目の位置を最も上の位置とし(例えば、図27のステップS1115)、垂直方向の列ごとに検出された前記下端の画素の位置の中の、最も下の画素の位置と下から2番目の画素の位置との差分が前記第2の閾値より大きい場合、下から2番目の位置を最も下の位置とし(例えば、図27のステップS1116)、決定された前記最も左の画素の位置、前記最も右の画素の位置、前記最も上の画素の位置、および前記最も下の画素の位置より、前記画像における矩形である前記有効領域の前記座標上の位置を決定するステップを含む。
本発明の第3の側面の画像処理装置は、有意の領域である有効領域とその他の領域である無効領域とからなる画像を処理する画像処理装置であって、前記無効領域の画素であるか否かを判定するための第1の閾値とその画素値とが比較されることによって、前記画像において水平方向に1列に並ぶ画素の中の、前記無効領域の画素でないと判定された画素のうち、左端の画素の所定の座標上の位置を検出する左座標位置検出手段(例えば、図9の左座標位置検出部64)と、前記第1の閾値とその画素値とが比較されることによって、前記画像において水平方向に1列に並ぶ画素の中の、前記無効領域の画素でないと判定された画素のうち、右端の画素の前記座標上の位置を検出する右座標位置検出手段(例えば、図9の右座標位置検出部65)と、前記第1の閾値とその画素値とが比較されることによって、前記画像において垂直方向に1列に並ぶ画素の中の、前記無効領域の画素でないと判定された画素のうち、上端の画素の前記座標上の位置を検出する上座標位置検出手段(例えば、図9の上座標位置検出部66)と、前記第1の閾値とその画素値とが比較されることによって、前記画像において垂直方向に1列に並ぶ画素の中の、前記無効領域の画素でないと判定された画素のうち、下端の画素の前記座標上の位置を検出する下座標位置検出手段(例えば、図9の下座標位置検出部67)と、水平方向の列ごとに検出された前記左端の画素の位置の中の、最も左の画素の位置と左から2番目の画素の位置との差分が第2の閾値より大きい場合、最も左の画素が検出された水平方向の列に隣接する2列における左端の画素の位置の平均値を最も左の位置とするとともに、最も右の画素の位置と右から2番目の画素の位置との差分が第2の閾値より大きい場合、最も右の画素が検出された水平方向の列に隣接する2列における左端の画素の位置の平均値を最も右の位置とする左座標位置最適化手段(例えば、図35の左座標位置最適化部181)と、水平方向の列ごとに検出された前記右端の画素の位置の中の、最も左の画素の位置と左から2番目の画素の位置との差分が第2の閾値より大きい場合、最も左の画素が検出された水平方向の列に隣接する2列における右端の画素の位置の平均値を最も左の位置とするとともに、最も右の画素の位置と右から2番目の画素の位置との差分が前記第2の閾値より大きい場合、最も右の画素が検出された水平方向の列に隣接する2列における右端の画素の位置の平均値を最も右の位置とする右座標位置最適化手段(例えば、図35の右座標位置最適化部182)と、垂直方向の列ごとに検出された前記上端の画素の位置の中の、最も上の画素の位置と上から2番目の画素の位置との差分が第2の閾値より大きい場合、最も上の画素が検出された垂直方向の列に隣接する2列における上端の画素の位置の平均値を最も上の位置とするとともに、最も下の画素の位置と下から2番目の画素の位置との差分が前記第2の閾値より大きい場合、最も下の画素が検出された垂直方向の列に隣接する2列における上端の画素の位置の平均値を最も下の位置とする上座標位置最適化手段(例えば、図35の上座標位置最適化部183)と、垂直方向の列ごとに検出された前記下端の画素の位置の中の、最も上の画素の位置と上から2番目の画素の位置との差分が第2の閾値より大きい場合、最も上の画素が検出された垂直方向の列に隣接する2列における下端の画素の位置の平均値を最も上の位置とするとともに、最も下の画素の位置と下から2番目の画素の位置との差分が前記第2の閾値より大きい場合、最も下の画素が検出された垂直方向の列に隣接する2列における下端の画素の位置の平均値を最も下の位置とする下座標位置最適化手段(例えば、図35の下座標位置最適化部184)とを備える。
本発明の第3の側面の画像処理方法は、有意の領域である有効領域とその他の領域である無効領域とからなる画像を処理する画像処理方法であって、前記無効領域の画素であるか否かを判定するための第1の閾値とその画素値とが比較されることによって、前記画像において水平方向に1列に並ぶ画素の中の、前記無効領域の画素でないと判定された画素のうち、左端の画素の所定の座標上の位置を検出し(例えば、図11のステップS104)、前記第1の閾値とその画素値とが比較されることによって、前記画像において水平方向に1列に並ぶ画素の中の、前記無効領域の画素でないと判定された画素のうち、右端の画素の前記座標上の位置を検出し(例えば、図11のステップS105)、前記第1の閾値とその画素値とが比較されることによって、前記画像において垂直方向に1列に並ぶ画素の中の、前記無効領域の画素でないと判定された画素のうち、上端の画素の前記座標上の位置を検出し(例えば、図11のステップS109)、前記第1の閾値とその画素値とが比較されることによって、前記画像において垂直方向に1列に並ぶ画素の中の、前記無効領域の画素でないと判定された画素のうち、下端の画素の前記座標上の位置を検出し(例えば、図11のステップS110)、水平方向の列ごとに検出された前記左端の画素の位置の中の、最も左の画素の位置と左から2番目の画素の位置との差分が第2の閾値より大きい場合、最も左の画素が検出された水平方向の列に隣接する2列における左端の画素の位置の平均値を最も左の位置とするとともに、最も右の画素の位置と右から2番目の画素の位置との差分が第2の閾値より大きい場合、最も右の画素が検出された水平方向の列に隣接する2列における左端の画素の位置の平均値を最も右の位置とし(例えば、図37のステップS2113,S2114)、水平方向の列ごとに検出された前記右端の画素の位置の中の、最も左の画素の位置と左から2番目の画素の位置との差分が第2の閾値より大きい場合、最も左の画素が検出された水平方向の列に隣接する2列における右端の画素の位置の平均値を最も左の位置とするとともに、最も右の画素の位置と右から2番目の画素の位置との差分が前記第2の閾値より大きい場合、最も右の画素が検出された水平方向の列に隣接する2列における右端の画素の位置の平均値を最も右の位置とし(例えば、図37のステップS2115,S2116)、垂直方向の列ごとに検出された前記上端の画素の位置の中の、最も上の画素の位置と上から2番目の画素の位置との差分が第2の閾値より大きい場合、最も上の画素が検出された垂直方向の列に隣接する2列における上端の画素の位置の平均値を最も上の位置とするとともに、最も下の画素の位置と下から2番目の画素の位置との差分が前記第2の閾値より大きい場合、最も下の画素が検出された垂直方向の列に隣接する2列における上端の画素の位置の平均値を最も下の位置とし(例えば、図37のステップS2117,S2118)、垂直方向の列ごとに検出された前記下端の画素の位置の中の、最も上の画素の位置と上から2番目の画素の位置との差分が第2の閾値より大きい場合、最も上の画素が検出された垂直方向の列に隣接する2列における下端の画素の位置の平均値を最も上の位置とするとともに、最も下の画素の位置と下から2番目の画素の位置との差分が前記第2の閾値より大きい場合、最も下の画素が検出された垂直方向の列に隣接する2列における下端の画素の位置の平均値を最も下の位置とする(例えば、図37のステップS2119,S2120)ステップを含む。
図5は、本発明を適用した有効領域検出装置1の一実施の形態の構成を示す図である。
有効領域検出装置1は、処理対象とする1フレームの画像データについて、その前後のフレームの情報を用いて、無効領域である黒領域と有効領域とを含む画像の有効領域を検出する。
ここで、有効領域とは、有意の領域である。例えば、有効領域には、意味のある画像が表示される。また、無効領域とは、その領域自身の画像が有意でない領域である。例えば、無効領域は、黒だけが表示される黒領域である。なお、有効領域の外縁が特定の形状を有する場合、無効領域の形状そのものも、この特定の形状となり、その意味では有意であるが、無効領域自身には、意味のある画像は表示されないので、その意味でこれを無効領域と称する。
有効領域検出装置1は、前処理用フレームバッファ11、フレーム内座標位置決定部12、フレーム内信頼度計算部13、後フレームバッファ14,15、処理対象フレームバッファ16、前フレームバッファ17,18、前フレーム比較部19、後フレーム比較部20、および比較結果判定部21から構成される。
前処理用フレームバッファ11は、供給されてくる1フレーム分の画素の画素値からなる画像データを、前処理用に一時的に記憶し、フレーム内座標位置決定部12、およびフレーム内信頼度計算部13に供給すると共に、1フレーム分の処理が終了した後、後フレームバッファ14に出力する。
フレーム内座標位置決定部12は、前処理用フレームバッファ11に格納されている1フレーム分の画像の画素値の情報に基づいて、有効領域を示す座標の位置を決定する。より具体的には、フレーム内座標位置決定部12は、フレーム上の水平方向の画素のラインである横ラインから、横ライン毎の黒領域と有効領域との境界となる有効領域の画素の左座標の位置および右座標の位置を求めると共に、フレーム上の垂直方向のラインである縦ラインから、縦ライン毎の黒領域と有効領域との境界となる有効領域の画素の上座標の位置および下座標の位置を求める。フレーム内座標位置決定部12は、結果として得られる、有効領域を示す座標を、フレーム内信頼度計算部13および後フレームバッファ14に供給する。
フレーム内信頼度計算部13は、フレーム内座標位置決定部12により決定された有効領域の座標の情報に基づいて、その信頼度を計算する。より具体的には、フレーム内信頼度計算部13は、フレーム内座標位置決定部12より供給された有効領域の画素の座標の位置に沿って、黒領域と有効領域との境界部分の、黒領域側の画素の黒の割合と、有効領域側の画素の黒以外の割合に基づいて、信頼度を計算する。フレーム内信頼度計算部13は、計算された信頼度を、後フレームバッファ14に供給する。
後フレームバッファ14は、前処理用フレームバッファ11より供給されてきた1フレーム分の画像データを各画素の画素値の情報として記憶すると共に、新たな1フレームの画像データが供給されてくるとき、それまでに記憶していた1フレーム分の画像データを後フレームバッファ15に供給する。
後フレームバッファ15、処理対象フレームバッファ16、前フレームバッファ17,18は、後フレームバッファ14と同様のものであり、1フレーム分の画像データを順次スライドして供給する。ただし、前フレームバッファ18については、新たな1フレーム分の画像データが供給されてくるとき、それまでに記憶していた1フレーム分の画像データを消去する。このような構成により、処理対象フレームバッファ16に、例えば、n番目のフレーム(以降、フレーム(n)と称する)が格納されている場合、後フレームバッファ14,15には、それぞれフレーム(n+2)およびフレーム(n+1)の画像データ、有効領域の座標、および有効領域の信頼度の情報が記憶されており、同様にして、前フレームバッファ17,18には、それぞれフレーム(n−1)およびフレーム(n−2)の画像データ、有効領域の座標、および有効領域の信頼度の情報が記憶されていることになる。
したがって、この状態において、1フレーム分の処理が終了するとき、後フレームバッファ14には、前処理フレームバッファ11より1フレーム分の画像データが供給されると共に、フレーム内座標位置決定部12より有効領域の座標が供給され、さらに、フレーム内信頼度計算部13より有効領域の座標の信頼度が供給される。また、同時に、後フレームバッファ15、処理対象フレームバッファ16、前フレームバッファ17,18には、それぞれ直前のタイミングで、後フレームバッファ14,15、および処理対象フレームバッファ16、および前フレームバッファ17に記憶されていた1フレーム分の画像データ、有効領域の座標、および有効領域の信頼度の情報が供給されてきて、それぞれ上書きされる。
すなわち、この例においては、処理対象フレームバッファ16に記憶されている1フレーム分の画像データにおける有効領域の座標を正しく求めるために、前後の2フレーム分の画像データを併せた、合計5フレーム分の画像データが常に用いられる。
前フレーム比較部19は、処理対象フレームバッファ16、および前フレームバッファ17,18に記憶されている3フレーム分の画像データ、有効領域の座標、および有効領域の信頼度の情報を比較し、いずれかを正しい有効領域の座標として特定する処理を実行し、処理結果を比較結果判定部21に供給する。具体的には、前フレーム比較部19は、処理対象フレームの画像データと、1フレーム前の画像データまたは2フレーム前の画像データとの信頼度の比較をすると共に、処理対象フレームの画像データと、1フレーム前の画像データまたは2フレーム前の画像データとの有効領域の座標が類似しているか否かを判定する。前フレーム比較部19は、信頼度の比較結果と座標の類似の判定結果に基づいて、有効領域の座標を特定し、比較結果判定部21に供給する。ただし、前フレーム比較部19は、必ずしも正しいと特定できる有効領域を求められないことがある。
比較結果判定部21は、前フレーム比較部19より有効領域の位置が求められた場合、その処理結果を正しい処理対象フレームの有効領域の座標、および有効領域の信頼度として出力すると共に、処理対象フレームバッファ16に記憶されている有効領域の座標、および有効領域の信頼度を決定された値に更新する。また、比較結果判定部21は、前フレーム比較部19により有効領域の位置が求められなかった場合、後フレーム比較部20に対して、後フレームバッファ14,15、および処理対象フレームバッファ16の3フレーム分の画像データ、有効領域の座標、および有効領域の信頼度に基づいて、有効領域を求めるように要求し、これにより決定された有効領域の座標、および有効領域の信頼度を処理結果として出力すると共に、処理対象フレームバッファ16に記録されている有効領域の座標、および有効領域の信頼度を決定された値に更新する。
後フレーム比較部20は、前フレーム比較部19により適正な有効領域が求められない場合、比較結果判定部21の指示に基づいて、処理対象フレームバッファ16、および後フレームバッファ14,15に記憶されている3フレーム分の画像データ、有効領域の座標、および有効領域の信頼度の情報を比較し、いずれかを正しい有効領域の座標として特定する処理を実行し、特定できたとき、処理結果を比較結果判定部21に供給し、さらに、特定できなかったとき、後フレームバッファ14乃至前フレームバッファ18に記憶されている5フレームの有効領域の信頼度を比較して最も信頼度の高い有効領域の座標を処理結果として比較結果判定部21に供給する。すなわち、後フレーム比較部20は、いずれかの有効領域を適正なものとして特定する。より具体的には、後フレーム比較部20は、処理対象フレームの画像データと、1フレーム後の画像データまたは2フレーム後の画像データとの信頼度の比較をすると共に、処理対象フレームの画像データと、1フレーム後の画像データまたは2フレーム後の画像データとの有効領域の座標が類似しているか否かを判定する。後フレーム比較部20は、信頼度の比較結果と座標の類似の判定結果に基づいて、有効領域の座標を決定し、比較結果判定部21に供給する。また、有効領域の座標を決定することができなかった場合、後フレーム比較部20は、前フレームバッファ17,18から1フレーム前の画像データおよび2フレーム前の画像データの信頼度を読み出し、2フレーム前のフレームから2フレーム後のフレームまでの5フレームの有効領域の座標の信頼度のうち、最も信頼度の高い有効領域の座標を比較結果判定部21に供給する。
なお、以降の説明においては、処理対象フレームは、n番目のフレームとして説明し、図6で示されるように、単にフレーム(n)と称するものとする。また、1フレーム前のフレーム乃至3フレーム前のフレームについては、それぞれフレーム(n−1)乃至(n−3)と称するものとし、同様にして、1フレーム後のフレーム乃至3フレーム後のフレームについては、それぞれフレーム(n+1)乃至(n+3)と称するものとする。したがって、前処理用フレームバッファ11に格納されるフレームは、処理対象フレームをフレーム(n)として表現するとき、フレーム(n+3)で表現されることになる。
次に、図7のフローチャートを参照して、有効領域検出処理について説明する。
ステップS1において、前処理用フレームバッファ11は、新たなフレーム(n+3)を読み込むと共に、これまで記憶していた情報、すなわち1フレーム分の画像データを後フレームバッファ14に供給する。このとき、同様にして、後フレームバッファ14乃至前フレームバッファ17は、格納していた1フレーム分の画像データ、有効領域の座標、および有効領域の信頼度の情報を、それぞれ後フレームバッファ15乃至前フレームバッファ18に供給し、新たに供給されてくる1フレーム分の画像データ、有効領域の座標、および有効領域の信頼度の情報を格納する。なお、前フレームバッファ18は、それまで記憶していた1フレーム分の画像データ、有効領域の座標、および有効領域の信頼度の情報を消去して、新たに前フレームバッファ17より供給されてくる1フレーム分の画像データ、有効領域の座標、および有効領域の信頼度の情報に更新する。さらに、フレーム内座標位置決定部12は、直前の処理で求められている有効領域の座標情報を後フレームバッファ14に出力する。また、フレーム内信頼度計算部13は、直前の処理で求められた信頼度を後フレームバッファ14に出力する。なお、最初の処理においては、デフォルトの有効領域の座標、および信頼度が出力される。
ステップS2において、フレーム内座標位置決定部12は、フレーム内の有効領域の座標位置決定処理を実行し、有効領域の座標の位置を決定する。フレーム内の有効領域の座標位置決定の処理の詳細は後述する。
ステップS3において、フレーム内信頼度計算部13は、フレーム内座標位置決定部12により決定された有効領域の座標の情報に基づいて、その信頼度を計算する。より具体的には、フレーム内信頼度計算部13は、フレーム内座標位置決定部12より供給された有効領域の画素の座標の位置に沿って、黒領域と有効領域との境界部分の、黒領域側の画素の黒の割合と、有効領域側の画素の黒以外の割合に基づいて、信頼度を計算する。フレーム内信頼度計算部13は、計算された信頼度を、後フレームバッファ14に供給する。
ステップS2,S3の処理により、前処理用フレームバッファ11に1フレーム分の画像データが格納された時点で、有効領域の座標が求められると共に、有効領域の座標の信頼度が求められる。また、ステップS1の処理が実行されるとき、前処理用フレームバッファ11に格納されている画像データが後フレームバッファ14に供給されると共に、有効領域の座標、および、有効領域の座標の信頼度も併せて後フレームバッファ14に供給される。さらに、それ以降の処理において、後フレームバッファ14乃至前フレームバッファ17の全てが、この画像データ、有効領域の座標、および有効領域の座標の信頼度を順次後段の後フレームバッファ15乃至前フレームバッファ18に供給する。結果として、後フレームバッファ14乃至前フレームバッファ18は、処理対象フレームがフレーム(n)であるとき、フレーム(n+2)乃至(n−2)のフレームについて、画像データ、有効領域の座標、および有効領域の座標の信頼度を常に格納した状態となる。
ステップS4において、前フレーム比較部19は、処理対象フレームバッファ16、および前フレームバッファ17,18に記憶されている3フレーム分の画像データ、有効領域の座標、および有効領域の信頼度の情報を比較し、いずれかを正しい有効領域の座標として特定する処理を実行し、処理結果を比較結果判定部21に供給する。
具体的には、前フレーム比較部19は、処理対象フレームの画像データと、1フレーム前の画像データまたは2フレーム前の画像データとの信頼度の比較をすると共に、処理対象フレームの画像データと、1フレーム前の画像データまたは2フレーム前の画像データとの有効領域の座標が類似しているか否かを判定する。前フレーム比較部19は、信頼度の比較結果と座標の類似の判定結果に基づいて、有効領域の座標を特定し、比較結果判定部21に供給する。
ステップS5において、比較結果判定部21は、有効領域の座標が決定されたか否かを判定する。ステップS5において、前フレーム比較部19によって、正しいと特定できる有効領域が決定されなかった場合、より具体的には、例えば、前フレーム比較部19から適切な有効領域の座標が決定できない旨の通知があった場合、ステップS6において、比較結果判定部21は、後フレーム比較部20に対して後フレーム比較処理を実行するように指示する。
ステップS6において、後フレーム比較部20は、比較結果判定部21の指示に基づいて、処理対象フレームバッファ16、および後フレームバッファ14,15に記憶されている3フレーム分の画像データ、有効領域の座標、および有効領域の信頼度の情報を比較し、いずれかを正しい有効領域の座標として特定する処理を実行し、特定できたとき、処理結果を比較結果判定部21に供給し、さらに、特定できなかったとき、後フレームバッファ14乃至前フレームバッファ18に記憶されている5フレームの有効領域の信頼度を比較して最も信頼度の高い有効領域の座標を処理結果として比較結果判定部21に供給する。すなわち、後フレーム比較部20は、いずれかの有効領域を適正なものとして特定する。
より具体的には、後フレーム比較部20は、処理対象フレームの画像データと、1フレーム後の画像データまたは2フレーム後の画像データとの信頼度の比較をすると共に、処理対象フレームの画像データと、1フレーム後の画像データまたは2フレーム後の画像データとの有効領域の座標が類似しているか否かを判定する。後フレーム比較部20は、信頼度の比較結果と座標の類似の判定結果に基づいて、有効領域の座標を決定し、比較結果判定部21に供給する。また、有効領域の座標を決定することができなかった場合、後フレーム比較部20は、前フレームバッファ17,18から1フレーム前の画像データおよび2フレーム前の画像データの信頼度を読み出し、2フレーム前のフレームから2フレーム後のフレームまでのフレームの有効領域の座標の信頼度のうち最も信頼度の高い有効領域の座標を比較結果判定部21に供給する。
ステップS7において、比較結果判定部21は、後フレーム比較部20より供給されてきた有効領域の座標の情報を処理対象フレームの有効領域の座標として出力すると共に、処理対象フレームバッファ16に格納されている有効領域の座標を決定された情報に更新する。
ステップS8において、比較結果判定部21は、終了が指示されたか否か、すなわち、次のフレームがあるか否かを判定し、終了が指示されていないと判定された場合、その処理は、ステップS1に戻り、それ以降の処理が繰り返される。
また、ステップS5において、有効領域の座標が決定されたと判定された場合、ステップS6の処理がスキップされ、処理は、ステップS7に進む。ステップS7において、比較結果判定部21は、前フレーム比較部19より供給されてきた黒帯位置の座標の情報を処理対象フレームの黒帯位置の座標として出力すると共に、処理対処フレームバッファ16に格納されている黒帯位置の座標を決定された情報に更新する。
そして、ステップS8において、終了が指示されたと判定された場合、その処理は、終了する。
このようにして、有効領域検出装置1は、処理対象とする1フレームの画像データについて、その前後のフレームの情報を用いて、例えば黒領域である無効領域と有効領域とを含む画像の有効領域を検出することができる。例えば、有効領域検出装置1は、図1および図2に示すような画像に対しても、図3および図4に示すような、クロスハッチ信号の端の部分や吹き出しの先端部分を黒領域であると誤検出しないようにすることができる。
以上の処理により、処理対象となるフレームと、前のタイミングのフレームとの有効領域の座標が類似している場合であって、有効領域の座標の信頼度に所定の関係があるとき、前のタイミングのフレームにおける有効領域の座標を連続的に用いるようにする。結果として、有効領域が変化していないような場合、有効領域がちらついたり、ノイズによって有効領域が変化したりするといったことを低減させることができる。
また、処理対象となるフレームと、前のタイミングのフレームとの有効領域の座標が類似していない、または、有効領域の座標の信頼度に所定の関係がない場合、処理対象となるフレームと、後のタイミングのフレームとの有効領域の座標が類似しており、有効領域の座標の信頼度に所定の関係があるとき、処理対象となるフレームの有効領域の座標をそのまま使用する。結果として、処理対象となるフレームにおけるタイミングを起点として有効領域が切り替わった場合、それ以降のタイミングのフレームとの関係により正確に有効領域を切り替えることが可能となる。
さらに、処理対象となるフレームと、後のタイミングのフレームとの有効領域の座標が類似していない、または、有効領域の座標の信頼度に所定の関係がないとき、有効領域が連続的に変化しているものとみなして、処理対象となるフレームと、後のタイミングのフレームとの有効領域の座標のうち、最も信頼度の高い有効領域を選択する。結果として、有効領域が実際に連続的に変化しても、有効領域の変化に追従して、正確に有効領域の座標を変化させることが可能となる。
なお、上述の説明において、処理対象のフレームと前後2フレームを用いた場合の処理について説明したが、処理に用いるフレーム数は、処理対象フレームの前後2フレーム以外の数であってもよいし、前フレームと後フレームのフレーム数が異なっていてもよい。
また、選択される有効領域は、単純に、任意の数のフレームの中の信頼度が最も高いものであったり、現フレームと類似しているフレームのうちの信頼度が高いものであったりしてもよい。
次に、フレーム内座標位置決定部12およびフレーム内の有効領域の座標位置決定処理について詳細に説明する。
図8は、図5の有効領域検出装置1におけるフレーム内座標位置決定部12の構成の例を示すブロック図である。
フレーム内座標位置決定部12は、有効領域座標位置決定部41を有する。有効領域座標位置決定部41は、水平方向の列ごとの左端の画素の座標上の位置および右端の画素の座標上の位置、並びに垂直方向の列ごとの上端の画素の座標上の位置および下端の画素の座標上の位置から、画像における有効領域の座標上の位置を決定する。
図9は、有効領域座標位置決定部41の構成の例を示すブロック図である。
有効領域座標位置決定部41は、フレーム読み込み部61、カウンタ設定部62、ライン読み込み部63、左座標位置検出部64、右座標位置検出部65、上座標位置検出部66、および下座標位置検出部67から構成される。
フレーム読み込み部61は、前処理用フレームバッファ11から供給されてくる1フレーム分の画像データを読み込む。
カウンタ設定部62は、有効領域座標位置決定部41内の各種のカウンタの初期化を行ったり、インクリメントまたはデクリメントしたり、カウンタの値の管理を行ったりする。
ライン読み込み部63は、1フレーム分の画像の、水平方向に1列に並ぶ画素である横ラインを順に読み込み、1ライン分の画素の画素値を、画素の並びの順に蓄える。具体的には、例えば、ライン読み込み部63は、図10に示すように、画像が表示される画面の上から下に、すなわち、y軸の正方向に向かって横ライン(i)を順に読み込み、1ライン分の画素の画素値を、画素の並びの順に蓄える。ここで、iはy軸の座標値であり、0乃至COL−1のいずれかの整数値である。なお、横ライン(i)は、y軸の座標位置がiである横ラインを示す。以下同様である。
また、ライン読み込み部63は、1フレーム分の画像の、垂直方向に1列に並ぶ画素である縦ラインを順に読み込み、1ライン分の画素の画素値を、画素の並びの順に蓄える。具体的には、例えば、ライン読み込み部63は、図10に示すように、画像が表示される画面の左から右に、すなわち、x軸の正方向に向かって縦ライン(j)を順に読み込み、1ライン分の画素の画素値を、画素の並びの順に蓄える。ここで、jはx軸の座標値であり、0乃至ROW−1のいずれかの整数値である。なお、縦ライン(j)は、x軸の座標位置がjである縦ラインを示す。以下同様である。
左座標位置検出部64は、黒領域の画素であるか否かを判定するための閾値とその画素値とを比較することによって、画像の横ライン上の、黒領域の画素でないと判定された画素のうち、左端の画素の座標上の位置を検出する。
より具体的には、例えば、左座標位置検出部64は、図10の横ライン(i)上の画素であって、x軸上の座標値kにおける画素の画素値をP(k)とした場合、座標値kを0からROW−1まで順に変化させたときの画素値P(k)と有効領域の画素であるか否かを判定する閾値Cthとを順に比較する。左座標位置検出部64は、P(k)>Cthとなる座標値k、すなわち図10におけるx軸の座標値xleftを出力する。
また、左座標位置検出部64は、黒領域の画素であるか否かを判定するための閾値と画素の画素値とが比較されるとともに、所定の閾値と隣接する画素の画素値との絶対差分値とが比較されることによって、画像の横ライン上の、黒領域の画素でないと判定された画素のうち、左端の画素の座標上の位置を検出する。
より具体的には、例えば、左座標位置検出部64は、図10の横ライン(i)上の画素であって、x軸上の座標値kにおける画素の画素値をP(k)とした場合、座標値kを0からROW−1まで順に変化させたときの画素値P(k)と有効領域の画素であるか否かを判定する閾値Cth1とを順に比較する。左座標位置検出部64は、P(k)>Cth1となる座標値k、すなわち図10におけるx軸の座標値xleftを出力する。または、左座標位置検出部64は、P(k)>Cth1とならない画素について、所定の閾値Cth2と隣接する画素の画素値との絶対差分値である|P(k)−P(k−1)|とを比較して|P(k)−P(k−1)|>Cth2となる座標値k、すなわち図10におけるx軸の座標値xleftを出力する。
右座標位置検出部65は、黒領域の画素であるか否かを判定するための閾値とその画素値とを比較することによって、画像の横ライン上の、黒領域の画素でないと判定された画素のうち、右端の画素の座標上の位置を検出する。
より具体的には、例えば、右座標位置検出部65は、図10の横ライン(i)上の画素であって、x軸上の座標値mにおける画素の画素値をP(m)とした場合、座標値mをROW−1から0まで順に変化させたときの画素値P(m)と有効領域の画素であるか否かを判定する閾値Cthとを順に比較する。右座標位置検出部65は、P(m)>Cthとなる座標値m、すなわち図10におけるx軸の座標値xrightを出力する。
また、右座標位置検出部65は、黒領域の画素であるか否かを判定するための閾値と画素の画素値とが比較されるとともに、所定の閾値と隣接する画素の画素値との絶対差分値とが比較されることによって、画像の横ライン上の、黒領域の画素でないと判定された画素のうち、右端の画素の座標上の位置を検出する。
より具体的には、例えば、右座標位置検出部65は、図10の横ライン(i)上の画素であって、x軸上の座標値mにおける画素の画素値をP(m)とした場合、座標値mをROW−1から0まで順に変化させたときの画素値P(m)と有効領域の画素であるか否かを判定する閾値Cth1とを順に比較する。右座標位置検出部65は、P(m)>Cth1となる座標値m、すなわち図10におけるx軸の座標値xrightを出力する。または、右座標位置検出部65は、P(m)>Cth1とならない画素について、所定の閾値Cth2と隣接する画素の画素値との絶対差分値である|P(m)−P(m+1)|とを比較して|P(m)−P(m+1)|>Cth2となる座標値m、すなわち図10におけるx軸の座標値xrightを出力する。
上座標位置検出部66は、黒領域の画素であるか否かを判定するための閾値とその画素値とを比較することによって、画像の縦ライン上の、黒領域の画素でないと判定された画素のうち、上端の画素の座標上の位置を検出する。
より具体的には、例えば、上座標位置検出部66は、図10の縦ライン(j)上の画素であって、y軸上の座標値rにおける画素の画素値をP(r)とした場合、座標値rを0からCOL−1まで順に変化させたときの画素値P(r)と有効領域の画素であるか否かを判定する閾値Cthとを順に比較する。上座標位置検出部66は、P(r)>Cthとなる座標値r、すなわち図10におけるy軸の座標値yupperを出力する。
また、上座標位置検出部66は、黒領域の画素であるか否かを判定するための閾値と画素の画素値とが比較されるとともに、所定の閾値と隣接する画素の画素値との絶対差分値とが比較されることによって、画像の縦ライン上の、黒領域の画素でないと判定された画素のうち、上端の画素の座標上の位置を検出する。
より具体的には、例えば、上座標位置検出部66は、図10の縦ライン(j)上の画素であって、y軸上の座標値rにおける画素の画素値をP(r)とした場合、座標値rを0からCOL−1まで順に変化させたときの画素値P(r)と有効領域の画素であるか否かを判定する閾値Cth1とを順に比較する。上座標位置検出部66は、P(r)>Cth1となる座標値r、すなわち図10におけるy軸の座標yupperを出力する。または、上座標位置検出部66は、P(r)>Cth1とならない画素について、所定の閾値Cth2と隣接する画素の画素値との絶対差分値である|P(r)−P(r−1)|とを比較して|P(r)−P(r−1)|>Cth2となる座標値r、すなわち図10におけるy軸の座標値yupperを出力する。
下座標位置検出部67は、黒領域の画素であるか否かを判定するための閾値とその画素値とを比較することによって、画像の縦ライン上の、黒領域の画素でないと判定された画素のうち、下端の画素の座標上の位置を検出する。
より具体的には、例えば、下座標位置検出部67は、図10の縦ライン(j)上の画素であって、y軸上の座標値sにおける画素の画素値をP(s)とした場合、座標値sをCOL−1から0まで順に変化させたときの画素値P(s)と有効領域の画素であるか否かを判定する閾値Cthとを順に比較する。下座標位置検出部67は、P(s)>Cthとなる座標値s、すなわち図10におけるy軸の座標値ylowerを出力する。
また、下座標位置検出部67は、黒領域の画素であるか否かを判定するための閾値と画素の画素値とが比較されるとともに、所定の閾値と隣接する画素の画素値との絶対差分値とが比較されることによって、画像の縦ライン上の、黒領域の画素でないと判定された画素のうち、下端の画素の座標上の位置を検出する。
より具体的には、例えば、下座標位置検出部67は、図10の縦ライン(j)上の画素であって、y軸上の座標値sにおける画素の画素値をP(s)とした場合、座標値sをCOL−1から0まで順に変化させたときの画素値P(s)と有効領域の画素であるか否かを判定する閾値Cth1とを順に比較する。下座標位置検出部67は、P(s)>Cth1となる座標値s、すなわち図10におけるy軸の座標値ylowerを出力する。または、下座標位置検出部67は、P(s)>Cth1とならない画素について、所定の閾値Cth2と隣接する画素の画素値との絶対差分値である|P(s)−P(s+1)|とを比較して|P(s)−P(s+1)|>Cth2となる座標値s、すなわち図10におけるy軸の座標値ylowerを出力する。
次に、フレーム内座標位置決定部12の有効領域座標位置決定部41による、フレーム内の有効領域の座標位置決定処理について説明する。
図11は、図7のフローチャートのステップS2に対応する、フレーム内の有効領域の座標位置決定の処理の例を示すフローチャートである。
ステップS101において、フレーム読み込み部61は、フレームを読み込む。より具体的には、フレーム読み込み部61は、前処理用フレームバッファ11から供給されてくる1フレーム分の画像データを読み込む。
ステップS102において、カウンタ設定部62は、横ラインのカウンタi、および縦ラインのカウンタjを0に初期化する。以下、カウンタiのカウンタ値を単に変数iで表し、また、カウンタjのカウンタ値を単に変数jで表す。
ステップS103において、ライン読み込み部63は、横ライン(i)を読み込む。最初のステップS103の処理においては、ライン読み込み部63は、横ライン(0)、すなわち、画面上最も上の横ラインを読み込む。ステップS103の後、ステップS104およびステップS105が同時に実行される。
ステップS104において、左座標位置検出部64は、黒領域の画素であるか否かを判定するための閾値とその画素値とを比較することによって、画像の横ライン上の、黒領域の画素でないと判定された画素のうち、左端の画素の座標上の位置を検出する。すなわち、左座標位置検出部64は、左座標位置検出処理を行う。
ここで、図12のフローチャートを参照して、ステップS104に対応する、左座標位置検出処理の詳細な例について説明する。
ステップS131において、カウンタ設定部62は、カウンタkを0に初期化する。ここで、カウンタkは、図10におけるx軸の座標値0乃至ROW−1のいずれかの値をとる。以下、カウンタkのカウンタ値を単に変数kで表す。
ステップS132において、左座標位置検出部64は、x軸上の座標値kにおける画素の画素値P(k)と、有効領域の画素であるか否かを判定する閾値Cthとを比較し、P(k)>Cthであるか否かを判定する。すなわち、左座標位置検出部64は、座標値kにおける画素の画素値P(k)が有効領域の画素の画素値であるか否かを判定する。
具体的には、例えば、Cth=25として、画素値のR,G,B成分のいずれかが閾値Cthより大きいか否かが判定される。
ステップS132において、P(k)>Cthであると判定された場合、すなわち、座標値kにおける画素の画素値P(k)が有効領域の画素の画素値であると判定された場合、処理は、ステップS133に進む。
ステップS133において、左座標位置検出部64は、P(k)>Cthである、すなわち、画素値P(k)が有効領域の画素の画素値であると判定された座標値kを出力する。
一方、ステップS132において、P(k)>Cthでないと判定された場合、すなわち、座標値kにおける画素の画素値P(k)が有効領域の画素の画素値でなく、黒領域の画素の画素値であると判定された場合、処理は、ステップS134に進む。
ステップS134において、カウンタ設定部62は、座標値kを1インクリメントする。すなわち、処理対象となる画素が、横ライン(i)上の右方向1つ隣りの画素とされる。
ステップS135において、カウンタ設定部62は、座標値kがx軸上の最大値以上であるか否か、すなわち、k≧ROWであるか否かを判定する。
ステップS135において、k≧ROWでないと判定された場合、横ライン(i)にまだ黒領域の画素であるか否かが判定されていない画素があるので、処理は、ステップS132に戻り、これ以降の処理を繰り返す。
一方、ステップS135において、k≧ROWであると判定された場合、横ライン(i)の全ての画素について黒領域の画素であるか否かを判定したので、処理は、ステップS136に進む。
ステップS136において、カウンタ設定部62は、座標値kを1デクリメントし、処理はステップS133に進む。ステップS133において、左座標位置検出部64は、k=ROW−1である座標値kを出力する。この場合、横ライン(i)は全て黒領域であったことになる。
このように、左座標位置検出部64は、画面の左端から、横ライン(i)上の画素が黒領域であるか有効領域であるかを判定することによって、有効領域の左端の画素の位置を検出することができる。
また、ステップS134において、座標値kを1インクリメントする、すなわち、処理対象となる画素が、横ライン(i)上の右方向1つ隣りの画素とされるようにしたが、任意の数インクリメントする、例えば3インクリメントするようにしてもよい。この場合、3つのうち1つの画素について処理を行うようになる。これにより、演算量が低減されるようにすることができる。
図11に戻り、ステップS105において、右座標位置検出部65は、黒領域の画素であるか否かを判定するための閾値とその画素値とを比較することによって、画像の横ライン上の、黒領域の画素でないと判定された画素のうち、右端の画素の座標上の位置を検出する。すなわち、右座標位置検出部65は、右座標位置検出処理を行う。
ここで、図13のフローチャートを参照して、ステップS105に対応する、右座標位置検出処理の詳細な例について説明する。
ステップS151において、カウンタ設定部62は、カウンタmをROW−1に初期化する。ここで、カウンタmは、図10におけるx軸の座標値ROW−1乃至0のいずれかの値をとる。以下、カウンタmのカウンタ値を単に変数mで表す。
ステップS152において、右座標位置検出部65は、x軸上の座標値mにおける画素の画素値P(m)と、有効領域の画素であるか否かを判定する閾値Cthとを比較し、P(m)>Cthであるか否かを判定する。すなわち、右座標位置検出部65は、座標値mにおける画素の画素値P(m)が有効領域の画素の画素値であるか否かを判定する。
具体的には、例えば、Cth=25として、画素値のR,G,B成分のいずれかが閾値Cthより大きいか否かが判定される。
ステップS152において、P(m)>Cthであると判定された場合、すなわち、座標値mにおける画素の画素値P(m)が有効領域の画素の画素値であると判定された場合、処理は、ステップS153に進む。
ステップS153において、右座標位置検出部65は、P(m)>Cthである、すなわち、画素値P(m)が有効領域の画素の画素値と判定された座標値mを出力する。
一方、ステップS152において、P(m)>Cthでないと判定された場合、すなわち、座標値mにおける画素の画素値P(m)が有効領域の画素の画素値でなく、黒領域の画素の画素値であると判定された場合、処理は、ステップS154に進む。
ステップS154において、カウンタ設定部62は、座標値mを1デクリメントする。すなわち、処理対象となる画素が、横ライン(i)上の左方向1つ隣りの画素とされる。
ステップS155において、カウンタ設定部62は、座標値mがx軸上の最小値より小さいか否か、すなわち、m<0であるか否かを判定する。
ステップS155において、m<0でないと判定された場合、横ライン(i)にまだ黒領域の画素であるか否かが判定されていない画素があるので、処理は、ステップS152に戻り、これ以降の処理を繰り返す。
一方、ステップS155において、m<0であると判定された場合、横ライン(i)の全ての画素について黒領域の画素であるか否かを判定したので、処理は、ステップS156に進む。
ステップS156において、カウンタ設定部62は、座標値mを1インクリメントし、処理はステップS153に進む。ステップS153において、右座標位置検出部65は、m=0である座標値mを出力する。この場合、横ライン(i)は全て黒領域であったことになる。
このように、右座標位置検出部65は、画面の右端から、横ライン(i)上の画素が黒領域であるか有効領域であるかを判定することによって、有効領域の右端の画素の位置を検出することができる。
また、ステップS154において、座標値mを1デクリメントする、すなわち、処理対象となる画素が、横ライン(i)上の左方向1つ隣りの画素とされるようにしたが、任意の数デクリメントする、例えば3デクリメントするようにしてもよい。この場合、3つのうち1つの画素について処理を行うようになる。これにより、演算量が低減されるようにすることができる。
図11に戻り、ステップS104およびステップS105の後、処理は、ステップS106に進む。
ステップS106において、カウンタ設定部62は、y軸の座標値iを1インクリメントする。すなわち、処理対象となる横ライン(i)が、画面下方向1つ隣のラインとされる。
ステップS107において、カウンタ設定部62は、座標値iがy軸上の最大値以上であるか否か、すなわち、i≧COLであるか否かを判定する。
ステップS107において、i≧COLでないと判定された場合、処理は、ステップS103に戻り、これ以降の処理を繰り返す。すなわち、有効領域座標位置決定部41は、画面上の上側の横ライン(0)から下側の横ライン(COL−1)までのそれぞれについて順番に、有効領域の左端の画素の位置および右端の画素の位置の検出処理を繰り返す。
一方、ステップS107において、i≧COLであると判定された場合、すなわち、画面上最も下の横ラインの読み込みを終えた場合、処理はステップS108に進む。
ステップS108において、ライン読み込み部63は、縦ライン(j)を読み込む。最初のステップS108の処理においては、ライン読み込み部63は、縦ライン(0)、すなわち、画面上最も左の縦ラインを読み込む。ステップS108の処理の後、ステップS109およびステップS110が同時に実行される。
ステップS109において、上座標位置検出部66は、黒領域の画素であるか否かを判定するための閾値とその画素値とを比較することによって、画像の縦ライン上の、黒領域の画素でないと判定された画素のうち、上端の画素の座標上の位置を検出する。すなわち、上座標位置検出部66は、上座標位置検出処理を行う。
ここで、図14のフローチャートを参照して、ステップS109に対応する、上座標位置検出処理の詳細な例について説明する。
ステップS171において、カウンタ設定部62は、カウンタrを0に初期化する。ここで、カウンタrは、図10におけるy軸の座標値0乃至COL−1のいずれかの値をとる。以下、カウンタrのカウンタ値を単に変数rで表す。
ステップS172において、上座標位置検出部66は、y軸上の座標値rにおける画素の画素値P(r)と、有効領域の画素であるか否かを判定する閾値Cthとを比較し、P(r)>Cthであるか否かを判定する。すなわち、上座標位置検出部66は、座標値rにおける画素の画素値P(r)が有効領域の画素の画素値であるか否かを判定する。
具体的には、例えば、Cth=25として、画素値のR,G,B成分のいずれかが閾値Cthより大きいか否かが判定される。
ステップS172において、P(r)>Cthであると判定された場合、すなわち、座標値rにおける画素の画素値P(r)が有効領域の画素の画素値であると判定された場合、処理は、ステップS173に進む。
ステップS173において、上座標位置検出部66は、P(r)>Cthである、すなわち、画素値P(r)が有効領域の画素の画素値であると判定された座標値rを出力する。
一方、ステップS172において、P(r)>Cthでないと判定された場合、すなわち、座標値rにおける画素の画素値P(r)が有効領域の画素の画素値でなく、黒領域の画素の画素値であると判定された場合、処理は、ステップS174に進む。
ステップS174において、カウンタ設定部62は、座標値rを1インクリメントする。すなわち、処理対象となる画素が、縦ライン(j)上の下方向1つ隣りの画素とされる。
ステップS175において、カウンタ設定部62は、座標値rがy軸上の最大値以上であるか否か、すなわち、r≧COLであるか否かを判定する。
ステップS175において、r≧COLでないと判定された場合、縦ライン(j)にまだ黒領域の画素であるか否かが判定されていない画素があるので、処理は、ステップS172に戻り、これ以降の処理を繰り返す。
一方、ステップS175において、r≧COLであると判定された場合、縦ライン(j)の全ての画素について黒領域の画素であるか否かを判定したので、処理は、ステップS176に進む。
ステップS176において、カウンタ設定部62は、座標値rを1デクリメントし、処理はステップS173に進む。ステップS173において、上座標位置検出部66は、r=COL−1である座標値rを出力する。この場合、縦ライン(j)は全て黒領域であったことになる。
このように、上座標位置検出部66は、画面の上端から、縦ライン(j)上の画素が黒領域であるか有効領域であるかを判定することによって、有効領域の上端の画素の位置を検出することができる。
また、ステップS174において、座標値rを1インクリメントする、すなわち、処理対象となる画素が、縦ライン(j)上の下方向1つ隣りの画素とされるようにしたが、任意の数インクリメントする、例えば3インクリメントするようにしてもよい。この場合、3つのうち1つの画素について処理を行うようになる。これにより、演算量が低減されるようにすることができる。
図11に戻り、ステップS110において、下座標位置検出部67は、黒領域の画素であるか否かを判定するための閾値とその画素値とを比較することによって、画像の縦ライン上の、黒領域の画素でないと判定された画素のうち、下端の画素の座標上の位置を検出する。すなわち、下座標位置検出部67は、下座標位置検出処理を行う。
ここで、図15のフローチャートを参照して、ステップS110に対応する、下座標位置検出処理の詳細な例について説明する。
ステップS191において、カウンタ設定部62は、カウンタsをCOL−1に初期化する。ここで、カウンタsは、図10におけるy軸の座標値COL−1乃至0のいずれかの値をとる。以下、カウンタsのカウンタ値を単に変数sで表す。
ステップS192において、下座標位置検出部67は、y軸上の座標値sにおける画素の画素値P(s)と、有効領域の画素であるか否かを判定する閾値Cthとを比較し、P(s)>Cthであるか否かを判定する。すなわち、下座標位置検出部67は、座標値sにおける画素の画素値P(s)が有効領域の画素の画素値であるか否かを判定する。
具体的には、例えば、Cth=25として、画素値のR,G,B成分のいずれかが閾値Cthより大きいか否かが判定される。
ステップS192において、P(s)>Cthであると判定された場合、すなわち、座標値sにおける画素の画素値P(s)が有効領域の画素の画素値であると判定された場合、処理は、ステップS193に進む。
ステップS193において、下座標位置検出部67は、P(s)>Cthである、すなわち、画素値P(s)が有効領域の画素の画素値と判定された座標値sを出力する。
一方、ステップS192において、P(s)>Cthでないと判定された場合、すなわち、座標値sにおける画素の画素値P(s)が有効領域の画素の画素値でなく、黒領域の画素の画素値であると判定された場合、処理は、ステップS194に進む。
ステップS194において、カウンタ設定部62は、座標値sを1デクリメントする。すなわち、処理対象となる画素が、縦ライン(j)上の上方向1つ隣りの画素とされる。
ステップS195において、カウンタ設定部62は、座標値sがy軸上の最小値より小さいか否か、すなわち、s<0であるか否かを判定する。
ステップS195において、s<0でないと判定された場合、縦ライン(j)にまだ黒領域の画素であるか否かが判定されていない画素があるので、処理は、ステップS192に戻り、これ以降の処理を繰り返す。
一方、ステップS195において、s<0であると判定された場合、縦ライン(j)の全ての画素について黒領域の画素であるか否かを判定したので、処理は、ステップS196に進む。
ステップS196において、カウンタ設定部62は、座標値sを1インクリメントし、処理はステップS193に進む。ステップS193において、下座標位置検出部67は、s=0である座標値sを出力する。この場合、縦ライン(j)は全て黒領域であったことになる。
このように、下座標位置検出部67は、画面の下端から、縦ライン(j)上の画素が黒領域であるか有効領域であるかを判定することによって、有効領域の下端の画素の位置を検出することができる。
また、ステップS194において、座標値sを1デクリメントする、すなわち、処理対象となる画素が、縦ライン(j)上の上方向1つ隣りの画素とされるようにしたが、任意の数デクリメントする、例えば3デクリメントするようにしてもよい。この場合、3つのうち1つの画素について処理を行うようになる。これにより、演算量が低減されるようにすることができる。
図11に戻り、ステップS109およびステップS110の後、処理は、ステップS111に進む。
ステップS111において、カウンタ設定部62は、x軸の座標値jを1インクリメントする。すなわち、処理対象となる縦ライン(j)が、画面右方向1つ隣のラインとされる。
ステップS112において、カウンタ設定部62は、座標値jがx軸上の最大値以上であるか否か、すなわち、j≧ROWであるか否かを判定する。
ステップS113において、j≧ROWでないと判定された場合、処理は、ステップS108に戻り、これ以降の処理を繰り返す。すなわち、有効領域座標位置決定部41は、画面上の左側の縦ライン(0)から右側の縦ライン(ROW−1)までのそれぞれについて順番に、有効領域の左端の画素の位置および右端の画素の位置の検出処理を繰り返す。
一方、ステップS112において、j≧ROWであると判定された場合、すなわち、画面上の最も右の縦ラインの読み込みを終えた場合、処理は終了する。
このようにして、有効領域検出装置1は、例えば黒領域である無効領域と任意の形状の有効領域とを含む画像において、黒領域以外の有効領域を正確に検出することができる。具体的には、例えば、有効領域検出装置1は、図1に示すクロスハッチ信号に対して、図16に示すように、クロスハッチ信号の端の部分を有効領域であると正確に検出することができる。また、例えば、有効領域検出装置1は、図2に示す吹き出し型の映像信号に対して、図17に示すように、吹き出しの先端部分を有効領域であると正確に検出することができる。
なお、上述した説明において、ステップS104の左座標位置検出処理とステップS105の右座標位置検出処理とを並列で行うようにしたが、直列で行うようにしてもよい。この場合、例えば、左座標位置検出処理において、所定の横ライン(i)上の画素の全てが黒領域であると判定された場合、右座標位置検出処理における所定の横ライン(i)の判定を行わないようにしてもよい。
同様に、上述した説明において、ステップS109の上座標位置検出処理とステップS110の下座標位置検出処理とを並列で行うようにしたが、直列で行うようにしてもよい。この場合、例えば、上座標位置検出処理において、所定の縦ライン(j)上の画素の全てが黒領域であると判定された場合、下座標位置検出処理における所定の縦ライン(j)の判定を行わないようにしてもよい。
また、ステップS106において、y軸の座標値iを1インクリメントする、すなわち、横ライン(i)について1列ずつ処理を行うようにしたが、任意の数インクリメントする、例えば3インクリメントするようにしてもよい。この場合、3列のうち1列の横ラインについて処理を行うようになる。同様に、ステップS111において、x軸の座標値jを1インクリメントする、すなわち、縦ライン(j)について1列ずつ処理を行うようにしたが、任意の数インクリメントする、例えば3インクリメントするようにしてもよい。この場合、3列のうち1列の縦ラインについて処理を行うようになる。これにより、演算量が低減されるようにすることができる。
このようにして、有効領域座標位置決定部41は、それぞれの横ライン(i)についての有効領域の左座標位置および右座標位置、並びにそれぞれの縦ライン(j)についての有効領域の上座標位置および下座標位置を求めることができる。すなわち、フレーム内座標位置決定部12は、有効領域の座標の位置を決定することができる。
さらに、図11のフローチャートの処理においては、横ライン(i)についての処理を先に行ったが、縦ライン(j)についての処理を先に行うようにしてもよい。以下、この場合の処理について説明する。
図18は、フレーム内の有効領域の座標位置決定の処理の他の例を示すフローチャートである。
図18のフローチャートにおけるステップS301およびステップS302の処理は、図11のフローチャートにおけるステップS101およびステップS102の処理のそれぞれと同様であるので、その説明は省略する。図18のフローチャートにおけるステップS303乃至ステップS307の処理は、図11のフローチャートのステップS108乃至ステップS112の処理のそれぞれと同様であるので、その説明は省略する。図18のフローチャートにおけるステップS308乃至ステップS312の処理は、図11のフローチャートのステップS103乃至ステップS107の処理のそれぞれと同様であるので、その説明は省略する。
すなわち、図18のフローチャートのステップS303乃至ステップS312の処理は、図11のフローチャートのステップS103乃至ステップS107の処理とステップS108乃至112の処理との順序が入れ替わったものである。
すなわち、図11のフローチャートの処理においては、横ライン(i)についての処理を先に行ったが、図18のフローチャートの処理のように、縦ライン(j)についての処理を先に行うようにすることもできる。
次に、フレーム内の有効領域の座標位置決定処理のさらに他の例について説明する。
図11のステップS104において、左座標位置検出部64は、黒領域の画素であるか否かを判定するための閾値と画素の画素値とが比較されるとともに、所定の閾値と隣接する画素の画素値との絶対差分値とが比較されることによって、画像の横ライン上の、黒領域の画素でないと判定された画素のうち、左端の画素の座標上の位置を検出するようにしてもよい。図18のステップS309においても同様である。
図19のフローチャートを参照して、図11のステップS104または図18のステップS309に対応する、左座標位置検出処理の詳細な他の例について説明する。
ステップS331において、カウンタ設定部62は、カウンタkを0に初期化する。ここで、カウンタkは、図10におけるx軸の座標値0乃至ROW−1のいずれかの値をとる。以下、カウンタkのカウンタ値を単に変数kで表す。
ステップS332において、左座標位置検出部64は、x軸上の座標値kにおける画素の画素値P(k)と、有効領域の画素であるか否かを判定する閾値Cth1とを比較し、P(k)>Cth1であるか否かを判定する。すなわち、左座標位置検出部64は、座標値kにおける画素の画素値P(k)が有効領域の画素の画素値であるか否かを判定する。
具体的には、例えば、Cth1=40として、画素値のR,G,B成分のいずれかが閾値Cth1より大きいか否かが判定される。
ステップS332において、P(k)>Cth1であると判定された場合、すなわち、kにおける画素の画素値P(k)が有効領域の画素の画素値であると判定された場合、処理は、ステップS333に進む。
ステップS333において、左座標位置検出部64は、P(k)>Cth1である、すなわち、画素値P(k)が有効領域の画素の画素値であると判定された座標値kを出力する。
一方、ステップS332において、P(k)>Cth1でないと判定された場合、処理は、ステップS334に進む。
ステップS334において、左座標位置検出部64は、所定の閾値Cth2と隣接する画素の画素値との絶対差分値である|P(k)−P(k−1)|とを比較し、|P(k)−P(k−1)|>Cth2であるか否かを判定する。
具体的には、例えば、Cth2=10として、隣接する画素の画素値との絶対差分値のR,G,B成分のいずれかが閾値Cth2より大きいか否かが判定される。
ステップS334において、|P(k)−P(k−1)|>Cth2であると判定された場合、処理は、ステップS333に進み、左座標位置検出部64は、|P(k)−P(k−1)|>Cth2であると判定された座標値kを出力する。
一方、ステップS334において、|P(k)−P(k−1)|>Cth2でないと判定された場合、処理は、ステップS335に進む。
図19のフローチャートにおけるステップS335乃至ステップS337の処理は、図12のフローチャートにおけるステップS134乃至S136の処理のそれぞれと同様であるのでその説明は省略する。
このように、左座標位置検出部64は、画面の左端から、横ライン(i)上の画素が黒領域であるか有効領域であるかを判定することによって、有効領域の左端の画素の位置を検出することができるとともに、閾値Cth1を閾値Cthより大きい値に設定し、隣接する画素の画素値との絶対差分値を算出することによって、ノイズの影響により画素の画素値が閾値Cthより大きい値であった場合でも、その画素が有効領域の画素であると誤検出することを防ぐことができる。
同様に、図11のステップS105において、右座標位置検出部65は、黒領域の画素であるか否かを判定するための閾値と画素の画素値とが比較されるとともに、所定の閾値と隣接する画素の画素値との絶対差分値とが比較されることによって、画像の横ライン上の、黒領域の画素でないと判定された画素のうち、右端の画素の座標上の位置を検出するようにしてもよい。図18のステップS310においても同様である。
図20のフローチャートを参照して、図11のステップS105または図18のステップS310に対応する、右座標位置検出処理の詳細な他の例について説明する。
ステップS351において、カウンタ設定部62は、カウンタmを0に初期化する。ここで、カウンタmは、図10におけるx軸の座標値ROW−1乃至0のいずれかの値をとる。以下、カウンタmのカウンタ値を単に変数mで表す。
ステップS352において、右座標位置検出部65は、x軸上の座標値mにおける画素の画素値P(m)と、有効領域の画素であるか否かを判定する閾値Cth1とを比較し、P(m)>Cth1であるか否かを判定する。すなわち、右座標位置検出部65は、座標値mにおける画素の画素値P(m)が有効領域の画素の画素値であるか否かを判定する。
具体的には、例えば、Cth1=40として、画素値のR,G,B成分のいずれかが閾値Cth1より大きいか否かが判定される。
ステップS352において、P(m)>Cth1であると判定された場合、すなわち、座標値mにおける画素の画素値P(m)が有効領域の画素の画素値であると判定された場合、処理は、ステップS353に進む。
ステップS353において、右座標位置検出部65は、P(m)>Cth1である、すなわち、画素値P(m)が有効領域の画素の画素値であると判定された座標値mを出力する。
一方、ステップS352において、P(m)>Cth1でないと判定された場合、処理は、ステップS354に進む。
ステップS354において、右座標位置検出部65は、所定の閾値Cth2と隣接する画素の画素値との絶対差分値である|P(m)−P(m+1)|とを比較し、|P(m)−P(m+1)|>Cth2であるか否かを判定する。
具体的には、例えば、Cth2=10として、隣接する画素の画素値との絶対差分値のR,G,B成分のいずれかが閾値Cth2より大きいか否かが判定される。
ステップS354において、|P(m)−P(m+1)|>Cth2であると判定された場合、処理は、ステップS353に進み、右座標位置検出部65は、|P(m)−P(m+1)|>Cth2であると判定された座標値mを出力する。
一方、ステップS354において、|P(m)−P(m+1)|>Cth2でないと判定された場合、処理は、ステップS355に進む。
図20のフローチャートにおけるステップS355乃至ステップS357の処理は、図13のフローチャートにおけるステップS154乃至S156の処理のそれぞれと同様であるのでその説明は省略する。
このように、右座標位置検出部65は、画面の右端から、横ライン(i)上の画素が黒領域であるか有効領域であるかを判定することによって、有効領域の右端の画素の位置を検出することができるとともに、閾値Cth1を閾値Cthより大きい値に設定し、隣接する画素の画素値との絶対差分値を算出することによって、ノイズの影響により画素の画素値が閾値Cthより大きい値であった場合でも、その画素が有効領域の画素であると誤検出することを防ぐことができる。
同様に、図11のステップS109において、上座標位置検出部66は、黒領域の画素であるか否かを判定するための閾値と画素の画素値とが比較されるとともに、所定の閾値と隣接する画素の画素値との絶対差分値とが比較されることによって、画像の縦ライン上の、黒領域の画素でないと判定された画素のうち、上端の画素の座標上の位置を検出するようにしてもよい。図18のステップS304においても同様である。
図21のフローチャートを参照して、図11のステップS109または図18のステップS304に対応する、上座標位置検出処理の詳細な他の例について説明する。
ステップS371において、カウンタ設定部62は、カウンタrを0に初期化する。ここで、カウンタrは、図10におけるy軸の座標値0乃至COL−1のいずれかの値をとる。以下、カウンタrのカウンタ値を単に変数rで表す。
ステップS372において、上座標位置検出部66は、y軸上の座標値rにおける画素の画素値P(r)と、有効領域の画素であるか否かを判定する閾値Cth1とを比較し、P(r)>Cth1であるか否かを判定する。すなわち、上座標位置検出部66は、座標値rにおける画素の画素値P(r)が有効領域の画素の画素値であるか否かを判定する。
具体的には、例えば、Cth1=40として、画素値のR,G,B成分のいずれかが閾値Cth1より大きいか否かが判定される。
ステップS372において、P(r)>Cth1であると判定された場合、すなわち、座標値rにおける画素の画素値P(r)が有効領域の画素の画素値であると判定された場合、処理は、ステップS373に進む。
ステップS373において、上座標位置検出部66は、P(r)>Cth1である、すなわち、画素値P(r)が有効領域の画素の画素値であると判定された座標値rを出力する。
一方、ステップS372において、P(r)>Cth1でないと判定された場合、処理は、ステップS374に進む。
ステップS374において、左座標位置検出部64は、所定の閾値Cth2と隣接する画素の画素値との絶対差分値である|P(r)−P(r−1)|とを比較し、|P(r)−P(r−1)|>Cth2であるか否かを判定する。
具体的には、例えば、Cth2=10として、隣接する画素の画素値との絶対差分値のR,G,B成分のいずれかが閾値Cth2より大きいか否かが判定される。
ステップS374において、|P(r)−P(r−1)|>Cth2であると判定された場合、処理は、ステップS373に進み、左座標位置検出部64は、|P(r)−P(r−1)|>Cth2であると判定された座標値rを出力する。
一方、ステップS374において、|P(r)−P(r−1)|>Cth2でないと判定された場合、処理は、ステップS375に進む。
図21のフローチャートにおけるステップS375乃至ステップS377の処理は、図14のフローチャートにおけるステップS174乃至S176の処理のそれぞれと同様であるのでその説明は省略する。
このように、上座標位置検出部66は、画面の上端から、縦ライン(j)上の画素が黒領域であるか有効領域であるかを判定することによって、有効領域の上端の画素の位置を検出することができるとともに、閾値Cth1を閾値Cthより大きい値に設定し、隣接する画素の画素値との絶対差分値を算出することによって、ノイズの影響により画素の画素値が閾値Cthより大きい値であった場合でも、その画素が有効領域の画素であると誤検出することを防ぐことができる。
同様に、図11のステップS110において、下座標位置検出部67は、黒領域の画素であるか否かを判定するための閾値と画素の画素値とが比較されるとともに、所定の閾値と隣接する画素の画素値との絶対差分値とが比較されることによって、画像の縦ライン上の、黒領域の画素でないと判定された画素のうち、下端の画素の座標上の位置を検出するようにしてもよい。図18のステップS305においても同様である。
図22のフローチャートを参照して、図11のステップS110または図18のステップS305に対応する、下座標位置検出処理の詳細な他の例について説明する。
ステップS391において、カウンタ設定部62は、カウンタsを0に初期化する。ここで、カウンタsは、図10におけるy軸の座標値COL−1乃至0のいずれかの値をとる。以下、カウンタsのカウンタ値を単に変数sで表す。
ステップS392において、下座標位置検出部67は、y軸上の座標値sにおける画素の画素値P(s)と、有効領域の画素であるか否かを判定する閾値Cth1とを比較し、P(s)>Cth1であるか否かを判定する。すなわち、下座標位置検出部67は、座標値sにおける画素の画素値P(s)が有効領域の画素の画素値であるか否かを判定する。
具体的には、例えば、Cth1=40として、画素値のR,G,B成分のいずれかが閾値Cth1より大きいか否かが判定される。
ステップS392において、P(s)>Cth1であると判定された場合、すなわち、座標値sにおける画素の画素値P(s)が有効領域の画素の画素値であると判定された場合、処理は、ステップS393に進む。
ステップS393において、下座標位置検出部67は、P(s)>Cth1である、すなわち、画素値P(s)が有効領域の画素の画素値であると判定された座標値sを出力する。
一方、ステップS392において、P(s)>Cth1でないと判定された場合、処理は、ステップS394に進む。
ステップS394において、下座標位置検出部67は、所定の閾値Cth2と隣接する画素の画素値との絶対差分値である|P(s)−P(s+1)|とを比較し、|P(s)−P(s+1)|>Cth2であるか否かを判定する。
具体的には、例えば、Cth2=10として、隣接する画素の画素値との絶対差分値のR,G,B成分のいずれかが閾値Cth2より大きいか否かが判定される。
ステップS394において、|P(s)−P(s+1)|>Cth2であると判定された場合、処理は、ステップS393に進み、下座標位置検出部67は、|P(s)−P(s+1)|>Cth2であると判定された座標値sを出力する。
一方、ステップS394において、|P(s)−P(s+1)|>Cth2でないと判定された場合、処理は、ステップS395に進む。
図22のフローチャートにおけるステップS395乃至ステップS397の処理は、図15のフローチャートにおけるステップS194乃至S196の処理のそれぞれと同様であるのでその説明は省略する。
このように、下座標位置検出部67は、画面の下端から、縦ライン(j)上の画素が黒領域であるか有効領域であるかを判定することによって、有効領域の下端の画素の位置を検出することができるとともに、閾値Cth1を閾値Cthより大きい値に設定し、隣接する画素の画素値との絶対差分値を算出することによって、ノイズの影響により画素の画素値が閾値Cthより大きい値であった場合でも、その画素が有効領域の画素であると誤検出することを防ぐことができる。
またさらに、図11および図18のフローチャートの処理においては、横ライン(i)についての処理と縦ライン(j)についての処理とを直列に行ったが、横ライン(i)についての処理と縦ライン(j)についての処理とを並列に行うようにしてもよい。以下、この場合の処理について説明する。
図23は、フレーム内の有効領域の座標位置決定処理のさらに他の例を示すフローチャートである。
図23のフローチャートにおけるステップS501およびステップS502の処理は、図11のステップS101およびステップS102の処理のそれぞれと同様であるので、その説明は省略する。図23のフローチャートにおけるステップS503乃至ステップS507の処理は、図11のフローチャートのステップS103乃至ステップS107の処理のそれぞれと同様であるので、その説明は省略する。図23のフローチャートにおけるステップS508乃至ステップS512の処理は、図11のフローチャートのステップS108乃至ステップS112の処理のそれぞれと同様であるので、その説明は省略する。
すなわち、図23のフローチャートのステップS503乃至ステップS507の処理とステップS508乃至ステップS512の処理とは、図11のフローチャートのステップS103乃至ステップS107の処理とステップS108乃至ステップS112の処理とが並列に処理されるようになったものである。
さらに、図23のフローチャートにおけるステップS504およびステップS505、並びにステップS509およびステップS510の処理は、図12乃至図15のフローチャートを参照して説明した処理、または図19乃至図22のフローチャートを参照して説明した処理と同様であるので、それらの処理についての説明も省略する。
すなわち、図11および図18のフローチャートの処理においては、横ライン(i)についての処理と縦ライン(j)についての処理とを直列に行うようにしたが、図23のフローチャートのように、横ライン(i)についての処理と縦ライン(j)についての処理とを並列に行うようにすることもできる。
このようにして、フレーム内座標位置決定部12は、フレーム内の任意の形状の有効領域の座標位置決定処理を実行し、有効領域の座標の位置を決定することができる。
図24は、図5の有効領域検出装置1におけるフレーム内座標位置決定部12の構成の他の例を示すブロック図である。
図24のフレーム内座標位置決定部12は、有効領域座標位置決定部41および矩形有効領域座標位置決定部101を有する。矩形有効領域座標位置決定部101は、有効領域座標位置決定部41から供給される有効領域の座標位置に基づいて、矩形の有効領域の座標上の位置を決定する。
図25は、矩形有効領域座標位置決定部101の構成の例を示すブロック図である。
矩形有効領域座標位置決定部101は、最左座標位置決定部121、最右座標位置決定部122、最上座標位置決定部123、および最下座標位置決定部124から構成される。
最左座標位置決定部121は、水平方向の列ごとに検出された左端の画素の位置の中から、最も左の画素の位置を決定する。
より具体的には、例えば、最左座標位置決定部121は、図26に示される吹き出し形の有効領域における、横ライン(i)ごとに検出された左端の画素の位置の中から、最も左の画素の位置、すなわち、x軸上の最小の座標値min_xを決定する。
また、最左座標位置決定部121は、検出された最も左の画素の位置と左から2番目の画素の位置との差分が所定の閾値より大きい場合、左から2番目の位置を最も左の位置とする。
さらに、最左座標位置決定部121は、このように求めた最も左の画素の位置と左から3番目の画素の位置との差分が所定の閾値より大きい場合、左から3番目の位置を最も左の位置とし、差分が所定の閾値以下になるまで、これを繰り返す。
最右座標位置決定部122は、水平方向の列ごとに検出された右端の画素の位置の中から、最も右の画素の位置を決定する。
より具体的には、例えば、最右座標位置決定部122は、図26に示される吹き出し形の有効領域における、横ライン(i)ごとに検出された右端の画素の位置の中から、最も右の画素の位置、すなわち、x軸上の最大の座標値max_xを決定する。
また、最右座標位置決定部122は、検出された最も右の画素の位置と右から2番目の画素の位置との差分が所定の閾値より大きい場合、右から2番目の位置を最も右の位置とする。
さらに、最右座標位置決定部122は、このように求めた最も右の画素の位置と右から3番目の画素の位置との差分が所定の閾値より大きい場合、右から3番目の位置を最も右の位置とし、差分が所定の閾値以下になるまで、これを繰り返す。
最上座標位置決定部123は、垂直方向の列ごとに検出された上端の画素の位置の中から、最も上の画素の位置を決定する。
より具体的には、例えば、最上座標位置決定部123は、図26に示される吹き出し形の有効領域における、縦ライン(j)ごとに検出された上端の画素の位置の中から、最も上の画素の位置、すなわち、y軸上の最小の座標値min_yを決定する。
また、最上座標位置決定部123は、検出された最も上の画素の位置と上から2番目の画素の位置との差分が所定の閾値より大きい場合、上から2番目の位置を最も上の位置とする。
さらに、最上座標位置決定部123は、このように求めた最も上の画素の位置と上から3番目の画素の位置との差分が所定の閾値より大きい場合、上から3番目の位置を最も上の位置とし、差分が所定の閾値以下になるまで、これを繰り返す。
最下座標位置決定部124は、垂直方向の列ごとに検出された下端の画素の位置の中から、最も下の画素の位置を決定する。
より具体的には、例えば、最下座標位置決定部124は、図26に示される吹き出し形の有効領域における、縦ライン(j)ごとに検出された下端の画素の位置の中から、最も下の画素の位置、すなわち、y軸上の最大の座標値max_yを決定する。
また、最下座標位置決定部124は、検出された最も下の画素の位置と下から2番目の画素の位置との差分が所定の閾値より大きい場合、下から2番目の位置を最も下の位置とする。
さらに、最下座標位置決定部124は、このように求めた最も下の画素の位置と下から3番目の画素の位置との差分が所定の閾値より大きい場合、下から3番目の位置を最も下の位置とし、差分が所定の閾値以下になるまで、これを繰り返す。
図27は、図7のフローチャートのステップS2に対応する、フレーム内の有効領域の座標位置決定の処理のさらに他の例を示すフローチャートである。
図27のフローチャートにおけるステップS1101乃至ステップS1112の処理は、図11のステップS101およびステップS112の処理のそれぞれと同様であるので、その説明は省略する。さらに、図27のフローチャートにおけるステップS1104およびステップS1105、並びにステップS1109およびステップS1110の処理は、図12乃至図15のフローチャートを参照して説明した処理、または図19乃至図22のフローチャートを参照して説明した処理と同様であるので、それらの処理についての説明も省略する。
ステップS1112の処理が終了した時点で、有効領域座標位置決定部41によって、それぞれの横ライン(i)についての有効領域の左座標位置および右座標位置、並びにそれぞれの縦ライン(j)についての有効領域の上座標位置および下座標位置が求められている。このとき、有効領域座標位置決定部41は、求められた有効領域の左座標位置、右座標位置、上座標位置、および下座標位置を、矩形有効領域座標位置決定部101に供給し、ステップS1113乃至ステップS1116が同時に実行される。
ステップS1113において、最左座標位置決定部121は、水平方向の列ごとに検出された左端の画素の位置の中から、最も左の画素の位置を決定する。すなわち、最左座標位置決定部121は、最左座標位置決定処理を行う。
ここで、図28のフローチャートを参照して、ステップS1113に対応する、最左座標位置決定処理の詳細な例について説明する。
ステップS1131において、最左座標位置決定部121は、有効領域座標位置決定部41から供給されてくる全ての横ライン(i)と、これに対応する左座標位置とを読み込む。
ステップS1132において、最左座標位置決定部121は、最小値除外リストを初期化する。最小値除外リストは、例えば、最左座標位置決定部121に記憶されるリストであって、左座標位置が小さい順に、横ライン番号、すなわちy軸の座標値iと左座標位置とを対応させて蓄える。
ステップS1133において、最左座標位置決定部121は、最小値除外リストに蓄えられているライン以外の最小の左座標を算出する。
ステップS1134において、最左座標位置決定部121は、所定の変数temp_leftに、算出した横ライン番号と左座標とを代入する。所定の変数temp_leftは、横ライン番号と左座標と対応させて一時的に記憶する。
ステップS1135において、最左座標位置決定部121は、所定の変数temp_leftに代入された左座標と最小値除外リストの中の最大値との絶対差分値を算出する。ただし、最初のステップS1135において、最小値除外リストは初期化されているので、最左座標位置決定部121は、所定の変数temp_leftに代入された左座標をそのまま絶対差分値として出力する。
ステップS1136において、最左座標位置決定部121は、算出された絶対差分値と所定の閾値とを比較して、差分が閾値以上であるか否かを判定する。
ステップS1136において、差分が閾値以上であると判定された場合、処理は、ステップS1137に進む。
ステップS1137において、最左座標位置決定部121は、最小値除外リストに、所定の変数temp_leftに代入された横ライン番号と左座標とを加え、処理は、ステップS1133に戻る。
一方、ステップS1136において、差分が閾値以上でないと判定された場合、処理は、ステップS1138に進む。
ステップS1138において、最左座標位置決定部121は、最小値除外リストが空であるか否かを判定する。
ステップS1138において、最小値除外リストが空であると判定された場合、処理は、ステップS1137に進む。
一方、ステップS1138において、最小値除外リストが空でないと判定された場合、処理は、ステップS1139に進む。
ステップS1139において、最左座標位置決定部121は、最小値除外リストの最大値の左座標をx軸上の最小の座標値min_xに設定して、処理は終了する。
このようにして、最左座標位置決定部121は、最小値除外リストを用いて、左座標位置の最小の座標値とその次に小さい座標値とを比較することにより、横ライン(i)ごとに検出された左端の画素の中から、最も左の画素の位置を決定することができる。
図27に戻り、ステップS1114において、最右座標位置決定部122は、水平方向の列ごとに検出された右端の画素の位置の中から、最も右の画素の位置を決定する。すなわち、最右座標位置決定部122は、最右座標位置決定処理を行う。
ここで、図29のフローチャートを参照して、ステップS1114に対応する、最右座標位置決定処理の詳細な例について説明する。
ステップS1151において、最右座標位置決定部122は、有効領域座標位置決定部41から供給されてくる全ての横ライン(i)と、これに対応する右座標位置とを読み込む。
ステップS1152において、最右座標位置決定部122は、最大値除外リストを初期化する。最大値除外リストは、例えば、最右座標位置決定部122に記憶されるリストであって、右座標位置が大きい順に、横ライン番号、すなわちy軸の座標値iと右座標位置とを対応させて蓄える。
ステップS1153において、最右座標位置決定部122は、最大値除外リストに蓄えられているライン以外の最大の右座標を算出する。
ステップS1154において、最右座標位置決定部122は、所定の変数temp_rightに、算出した横ライン番号と右座標とを代入する。所定の変数temp_rightは、横ライン番号と右座標と対応させて一時的に記憶する。
ステップS1155において、最右座標位置決定部122は、所定の変数temp_rightに代入された右座標と最大値除外リストの中の最小値との絶対差分値を算出する。ただし、最初のステップS1155において、最大値除外リストは初期化されているので、最右座標位置決定部122は、所定の変数temp_rightに代入された右座標をそのまま絶対差分値として出力する。
ステップS1156において、最右座標位置決定部122は、算出された絶対差分値と所定の閾値とを比較して、差分が閾値以上であるか否かを判定する。
ステップS1156において、差分が閾値以上であると判定された場合、処理は、ステップS1157に進む。
ステップS1157において、最右座標位置決定部122は、最大値除外リストに、所定の変数temp_rightに代入された横ライン番号と右座標とを加え、処理は、ステップS1153に戻る。
一方、ステップS1156において、差分が閾値以上でないと判定された場合、処理は、ステップS1158に進む。
ステップS1158において、最右座標位置決定部122は、最大値除外リストが空であるか否かを判定する。
ステップS1158において、最小値除外リストが空であると判定された場合、処理は、ステップS1157に進む。
一方、ステップS1158において、最小値除外リストが空でないと判定された場合、処理は、ステップS1159に進む。
ステップS1159において、最右座標位置決定部122は、最大値除外リストの最小値の右座標をx軸上の最大の座標値max_xに設定して、処理は終了する。
このようにして、最右座標位置決定部122は、最大値除外リストを用いて、右座標位置の最大の座標値とその次に大きい座標値と比較することにより、横ライン(i)ごとに検出された右端の画素の中から、最も右の画素の位置を決定することができる。
図27に戻り、ステップS1115において、最上座標位置決定部123は、垂直方向の列ごとに検出された上端の画素の位置の中から、最も上の画素の位置を決定する。すなわち、最上座標位置決定部123は、最上座標位置決定処理を行う。
ここで、図30のフローチャートを参照して、ステップS1115に対応する、最上座標位置決定処理の詳細な例について説明する。
ステップS1171において、最上座標位置決定部123は、有効領域座標位置決定部41から供給されてくる全ての縦ライン(j)と、これに対応する上座標位置とを読み込む。
ステップS1172において、最上座標位置決定部123は、最小値除外リストを初期化する。最小値除外リストは、例えば、最上座標位置決定部123に記憶されるリストであって、上座標位置が小さい順に、縦ライン番号、すなわちx軸の座標値jと上座標位置とを対応させて蓄える。
ステップS1173において、最上座標位置決定部123は、最小値除外リストに蓄えられているライン以外の最小の上座標を算出する。
ステップS1174において、最上座標位置決定部123は、所定の変数temp_upperに、算出した縦ライン番号と上座標とを代入する。所定の変数temp_upperは、縦ライン番号と上座標と対応させて一時的に記憶する。
ステップS1175において、最上座標位置決定部123は、所定の変数temp_upperに代入された上座標と最小値除外リストの中の最大値との絶対差分値を算出する。ただし、最初のステップS1175において、最小値除外リストは初期化されているので、最上座標位置決定部123は、所定の変数temp_upperに代入された上座標をそのまま絶対差分値として出力する。
ステップS1176において、最上座標位置決定部123は、算出された絶対差分値と所定の閾値とを比較して、差分が閾値以上であるか否かを判定する。
ステップS1176において、差分が閾値以上であると判定された場合、処理は、ステップS1177に進む。
ステップS1177において、最上座標位置決定部123は、最小値除外リストに、所定の変数temp_upperに代入された縦ライン番号と上座標とを加え、処理は、ステップS1173に戻る。
一方、ステップS1176において、差分が閾値以上でないと判定された場合、処理は、ステップS1178に進む。
ステップS1178において、最上座標位置決定部123は、最小値除外リストが空であるか否かを判定する。
ステップS1178において、最小値除外リストが空であると判定された場合、処理は、ステップS1177に進む。
一方、ステップS1178において、最小値除外リストが空でないと判定された場合、処理は、ステップS1179に進む。
ステップS1179において、最上座標位置決定部123は、最小値除外リストの最大値の上座標をy軸上の最小の座標値min_yに設定して、処理は終了する。
このようにして、最上座標位置決定部123は、最小値除外リストを用いて、上座標位置の最小の座標値とその次に小さい座標値と比較することにより、縦ライン(j)ごとに検出された上端の画素の中から、最も上の画素の位置を決定することができる。
図27に戻り、ステップS1116において、最下座標位置決定部124は、垂直方向の列ごとに検出された下端の画素の位置の中から、最も下の画素の位置を決定する。すなわち、最下座標位置決定部124は、最下座標位置決定処理を行う。
ここで、図31のフローチャートを参照して、ステップS1116に対応する、最下座標位置決定処理の詳細な例について説明する。
ステップS1191において、最下座標位置決定部124は、有効領域座標位置決定部41から供給されてくる全ての縦ライン(j)と、これに対応する下座標位置とを読み込む。
ステップS1192において、最下座標位置決定部124は、最大値除外リストを初期化する。最大値除外リストは、例えば、最下座標位置決定部124に記憶されるリストであって、下座標位置が大きい順に、縦ライン番号、すなわちx軸の座標値jと下座標位置とを対応させて蓄える。
ステップS1193において、最下座標位置決定部124は、最大値除外リストに蓄えられているライン以外の最大の下座標を算出する。
ステップS1194において、最下座標位置決定部124は、所定の変数temp_lowerに、算出した縦ライン番号と下座標とを代入する。所定の変数temp_lowerは、縦ライン番号と下座標と対応させて一時的に記憶する。
ステップS1195において、最下座標位置決定部124は、所定の変数temp_lowerに代入された下座標と最大値除外リストの中の最小値との絶対差分値を算出する。ただし、最初のステップS1195において、最大値除外リストは初期化されているので、最下座標位置決定部124は、所定の変数temp_lowerに代入された下座標をそのまま絶対差分値として出力する。
ステップS1196において、最下座標位置決定部124は、算出された絶対差分値と所定の閾値とを比較して、差分が閾値以上であるか否かを判定する。
ステップS1196において、差分が閾値以上であると判定された場合、処理は、ステップS1197に進む。
ステップS1197において、最下座標位置決定部124は、最大値除外リストに、所定の変数temp_lowerに代入された縦ライン番号と下座標とを加え、処理は、ステップS1193に戻る。
一方、ステップS1196において、差分が閾値以上でないと判定された場合、処理は、ステップS1198に進む。
ステップS1198において、最下座標位置決定部124は、最大値除外リストが空であるか否かを判定する。
ステップS1198において、最大値除外リストが空であると判定された場合、処理は、ステップS1197に進む。
一方、ステップS1198において、最大値除外リストが空でないと判定された場合、処理は、ステップS1199に進む。
ステップS1199において、最下座標位置決定部124は、最大値除外リストの最小値の下座標をy軸上の最大の座標値max_yに設定して、処理は終了する。
このようにして、最下座標位置決定部124は、最大値除外リストを用いて、下座標位置の最大の座標値とその次に大きい座標値と比較することにより、縦ライン(j)ごとに検出された下端の画素の中から、最も下の画素の位置を決定することができる。
以上のようにして、矩形有効領域座標位置決定部101は、有効領域の座標位置に基づいて、矩形の有効領域の座標上の位置を決定することができる。
さらに、図27のフローチャートの処理においては、横ライン(i)についての処理を先に行ったが、縦ライン(j)についての処理を先に行うようにしてもよい。以下、この場合の処理について説明する。
図32は、フレーム内の有効領域の座標位置決定の処理のさらに他の例を示すフローチャートである。
図32のフローチャートにおけるステップS1301乃至ステップS1312の処理は、図18のフローチャートにおけるステップS301およびステップS312の処理のそれぞれと同様であるので、その説明は省略する。また、図32のフローチャートにおけるステップS1304およびステップS1305、並びにステップS1309およびステップS1310の処理は、図12乃至図15のフローチャートを参照して説明した処理、または図19乃至図22のフローチャートを参照して説明した処理と同様であるので、それらの処理についての説明も省略する。
さらに、図32のフローチャートにおけるステップS1313乃至ステップS1316の処理は、図27のフローチャートにおけるステップS1113乃至ステップS1116の処理のそれぞれと同様であるので、その説明も省略する。
すなわち、図27のフローチャートの処理においては、横ライン(i)についての処理を先に行ったが、図32のフローチャートの処理のように、縦ライン(j)についての処理を先に行うようにすることもできる。
またさらに、図27および図32のフローチャートの処理においては、横ライン(i)についての処理と縦ライン(j)についての処理とを直列に行ったが、横ライン(i)についての処理と縦ライン(j)についての処理とを並列に行うようにしてもよい。以下、この場合の処理について説明する。
図33は、フレーム内の有効領域の座標位置決定の処理のさらに他の例を示すフローチャートである。
図33のフローチャートにおけるステップS1501乃至ステップS1512の処理は、図23のフローチャートにおけるステップS501およびステップS512の処理のそれぞれと同様であるので、その説明は省略する。また、図33のフローチャートにおけるステップS1504およびステップS1505、並びにステップS1509およびステップS1510の処理は、図12乃至図15のフローチャートを参照して説明した処理、または図19乃至図22のフローチャートを参照して説明した処理と同様であるので、それらの処理についての説明も省略する。
さらに、図33のフローチャートにおけるステップS1513乃至ステップS1516の処理は、図27のフローチャートにおけるステップS1113乃至ステップS1116の処理のそれぞれと同様であるので、その説明も省略する。
すなわち、図27および図32のフローチャートの処理においては、横ライン(i)についての処理と縦ライン(j)についての処理とを直列に行うようにしたが、図33のフローチャートのように、横ライン(i)についての処理と縦ライン(j)についての処理とを並列に行うようにすることもできる。
このようにして、フレーム内座標位置決定部12は、フレーム内の任意の形状の有効領域の座標位置決定処理を実行し、さらに、矩形の有効領域の座標位置決定処理を実行することで、矩形の有効領域の座標の位置を決定することができる。
なお、図24のフレーム内座標位置決定部12において、有効領域座標位置設定部41の前にローパスフィルタを設け、ノイズの影響を低減させた有効領域の座標位置を検出するようにしてもよい。この場合、例えば、図27のフローチャートにおけるステップS1113乃至ステップS1116の処理により決定される矩形の有効領域の座標位置は、単純に最左座標位置、最右座標位置、最上座標位置、および最下座標位置より決定されるようにしてもよい。
図34は、図5の有効領域検出装置1におけるフレーム内座標位置決定部12の構成のさらに他の例を示すブロック図である。
図34のフレーム内座標位置決定部12は、有効領域座標位置決定部41および座標位置最適化部161を有する。座標位置最適化部161は、有効領域座標位置決定部41から供給される有効領域の座標の位置、すなわち、それぞれの横ライン(i)についての有効領域の左座標位置および右座標位置、並びにそれぞれの縦ライン(j)についての有効領域の上座標位置および下座標位置に、適切な座標位置を割り当てる。
図35は、座標位置最適化部161の構成の例を示すブロック図である。
座標位置最適化部161は、左座標位置最適化部181、右座標位置最適化部182、上座標位置最適化部183、および下座標位置最適化部184から構成される。
左座標位置最適化部181は、横ライン(i)ごとに検出された左端の画素の位置の中の、最も左の画素の位置と左から2番目の画素の位置との差分が所定の閾値より大きい場合、最も左の画素が検出された横ライン(i)に隣接する横ライン(i−1)および横ライン(i+1)における左端の画素の位置の平均値を最も左の位置とする。さらに、左座標位置最適化部181は、左から2番目の画素の位置と左から3番目の画素の位置との差分が所定の閾値より大きい場合、左から2番目の画素が検出された横ライン(i)に隣接する横ライン(i−1)および横ライン(i+1)における左端の画素の位置の平均値を2番目に左の位置とし、差分が所定の閾値以下になるまで、これを繰り返す。
また、左座標位置最適化部181は、横ライン(i)ごとに検出された左端の画素の位置の中の、最も右の画素の位置と右から2番目の画素の位置との差分が所定の閾値より大きい場合、最も右の画素が検出された横ライン(i)に隣接する横ライン(i−1)および横ライン(i+1)における左端の画素の位置の平均値を最も右の位置とする。さらに、左座標位置最適化部181は、右から2番目の画素の位置と右から3番目の画素の位置との差分が所定の閾値より大きい場合、右から2番目の画素が検出された横ライン(i)に隣接する横ライン(i−1)および横ライン(i+1)における左端の画素の位置の平均値を2番目に右の位置とし、差分が所定の閾値以下になるまで、これを繰り返す。
より具体的には、例えば、左座標位置最適化部181は、図36に示す画像のように、吹き出し形の有効領域の左端の画素であって、有効領域の外側にノイズの影響を受けた画素が存在する場合、この画素が検出された横ラインの上および下に位置する横ラインにおいて検出された左端の画素の座標位置の平均値を、ノイズの影響を受けた画素の座標位置として割り当てる。また、例えば、左座標位置最適化部181は、図示しないが、吹き出し形の有効領域の左端の画素であって、有効領域の内側にノイズの影響を受けた画素が存在する場合にも、同様の処理を行う。すなわち、左座標位置最適化部181は、左座標位置の最適化を行う。
右座標位置最適化部182は、横ライン(i)ごとに検出された右端の画素の位置の中の、最も左の画素の位置と左から2番目の画素の位置との差分が所定の閾値より大きい場合、最も左の画素が検出された横ライン(i)に隣接する横ライン(i−1)および横ライン(i+1)における右端の画素の位置の平均値を最も左の位置とする。さらに、右座標位置最適化部182は、左から2番目の画素の位置と左から3番目の画素の位置との差分が所定の閾値より大きい場合、左から2番目の画素が検出された横ライン(i)に隣接する横ライン(i−1)および横ライン(i+1)における右端の画素の位置の平均値を2番目に左の位置とし、差分が所定の閾値以下になるまで、これを繰り返す。
また、右座標位置最適化部182は、横ライン(i)ごとに検出された右端の画素の位置の中の、最も右の画素の位置と右から2番目の画素の位置との差分が所定の閾値より大きい場合、最も右の画素が検出された横ライン(i)に隣接する横ライン(i−1)および横ライン(i+1)における右端の画素の位置の平均値を最も右の位置とする。さらに、右座標位置最適化部182は、右から2番目の画素の位置と右から3番目の画素の位置との差分が所定の閾値より大きい場合、右から2番目の画素が検出された横ライン(i)に隣接する横ライン(i−1)および横ライン(i+1)における右端の画素の位置の平均値を2番目に右の位置とし、差分が所定の閾値以下になるまで、これを繰り返す。
より具体的には、例えば、右座標位置最適化部182は、図36に示す画像のように、吹き出し形の有効領域の右端の画素であって、有効領域の外側にノイズの影響を受けた画素が存在する場合、この画素が検出された横ラインの上および下に位置する横ラインにおいて検出された右端の画素の座標位置の平均値を、ノイズの影響を受けた画素の座標位置として割り当てる。また、例えば、右座標位置最適化部182は、図示しないが、吹き出し形の有効領域の右端の画素であって、有効領域の内側にノイズの影響を受けた画素が存在する場合にも、同様の処理を行う。すなわち、右座標位置最適化部182は、右座標位置の最適化を行う。
上座標位置最適化部183は、縦ライン(j)ごとに検出された上端の画素の位置の中の、最も上の画素の位置と上から2番目の画素の位置との差分が所定の閾値より大きい場合、最も上の画素が検出された縦ライン(j)に隣接する縦ライン(j−1)および縦ライン(j+1)における上端の画素の位置の平均値を最も上の位置とする。さらに、上座標位置最適化部183は、上から2番目の画素の位置と上から3番目の画素の位置との差分が所定の閾値より大きい場合、上から2番目の画素が検出された縦ライン(j)に隣接する縦ライン(j−1)および縦ライン(j+1)における上端の画素の位置の平均値を2番目に上の位置とし、差分が所定の閾値以下になるまで、これを繰り返す。
また、上座標位置最適化部183は、縦ライン(j)ごとに検出された上端の画素の位置の中の、最も下の画素の位置と下から2番目の画素の位置との差分が所定の閾値より大きい場合、最も下の画素が検出された縦ライン(j)に隣接する縦ライン(j−1)および縦ライン(j+1)における上端の画素の位置の平均値を最も下の位置とする。さらに、上座標位置最適化部183は、下から2番目の画素の位置と下から3番目の画素の位置との差分が所定の閾値より大きい場合、下から2番目の画素が検出された縦ライン(j)に隣接する縦ライン(j−1)および縦ライン(j+1)における上端の画素の位置の平均値を2番目に下の位置とし、差分が所定の閾値以下になるまで、これを繰り返す。
より具体的には、例えば、上座標位置最適化部183は、図36に示す画像のように、吹き出し形の有効領域の上端の画素であって、有効領域の内側にノイズの影響を受けた画素が存在する場合、この画素が検出された縦ラインの左および右に位置する縦ラインにおいて検出された上端の画素の座標位置の平均値を、ノイズの影響を受けた画素の座標位置として割り当てる。また、例えば、上座標位置最適化部183は、図示しないが、吹き出し形の有効領域の上端の画素であって、有効領域の外側にノイズの影響を受けた画素が存在する場合にも、同様の処理を行う。すなわち、上座標位置最適化部183は、上座標位置の最適化を行う。
下座標位置最適化部184は、縦ライン(j)ごとに検出された下端の画素の位置の中の、最も上の画素の位置と上から2番目の画素の位置との差分が所定の閾値より大きい場合、最も上の画素が検出された縦ライン(j)に隣接する縦ライン(j−1)および縦ライン(j+1)における下端の画素の位置の平均値を最も上の位置とする。さらに、下座標位置最適化部184は、上から2番目の画素の位置と上から3番目の画素の位置との差分が所定の閾値より大きい場合、上から2番目の画素が検出された縦ライン(j)に隣接する縦ライン(j−1)および縦ライン(j+1)における下端の画素の位置の平均値を2番目に上の位置とし、差分が所定の閾値以下になるまで、これを繰り返す。
また、下座標位置最適化部184は、縦ライン(j)ごとに検出された下端の画素の位置の中の、最も下の画素の位置と下から2番目の画素の位置との差分が所定の閾値より大きい場合、最も下の画素が検出された縦ライン(j)に隣接する縦ライン(j−1)および縦ライン(j+1)における下端の画素の位置の平均値を最も下の位置とする。さらに、下座標位置最適化部184は、下から2番目の画素の位置と下から3番目の画素の位置との差分が所定の閾値より大きい場合、下から2番目の画素が検出された縦ライン(j)に隣接する縦ライン(j−1)および縦ライン(j+1)における下端の画素の位置の平均値を2番目に下の位置とし、差分が所定の閾値以下になるまで、これを繰り返す。
より具体的には、例えば、下座標位置最適化部184は、図36に示す画像のように、吹き出し形の有効領域の下端の画素であって、有効領域の内側にノイズの影響を受けた画素が存在する場合、この画素が検出された縦ラインの左および右に位置する縦ラインにおいて検出された下端の画素の座標位置の平均値を、ノイズの影響を受けた画素の座標位置として割り当てる。また、例えば、下座標位置最適化部184は、図示しないが、吹き出し形の有効領域の下端の画素であって、有効領域の外側にノイズの影響を受けた画素が存在する場合にも、同様の処理を行う。すなわち、下座標位置最適化部184は、下座標位置の最適化を行う。
図37は、図7のフローチャートのステップS2に対応する、フレーム内の有効領域の座標位置決定の処理のさらに他の例を示すフローチャートである。
図37のフローチャートにおけるステップS2101乃至ステップS2112の処理は、図11のフローチャートにおけるステップS101およびステップS112の処理のそれぞれと同様であるので、その説明は省略する。また、さらに、図37のフローチャートにおけるステップS2104およびステップS2105、並びにステップS2109およびステップS2110の処理は、図12乃至図15のフローチャートを参照して説明した処理、または図19乃至図22のフローチャートを参照して説明した処理と同様であるので、それらの処理についての説明も省略する。
ステップS2112の処理が終了した時点で、有効領域座標位置決定部41によって、それぞれの横ライン(i)についての有効領域の左座標位置および右座標位置、並びにそれぞれの縦ライン(j)についての有効領域の上座標位置および下座標位置が求められている。このとき、有効領域座標位置決定部41は、求められた有効領域の左座標位置、右座標位置、上座標位置、および下座標位置を、座標位置最適化部161に供給し、ステップS2113乃至ステップS2120が同時に実行される。
ステップS2113において、左座標位置最適化部181は、横ライン(i)ごとに検出された左端の画素の位置の中の、最も左の画素の位置と左から2番目の画素の位置との差分が所定の閾値より大きい場合、最も左の画素が検出された横ライン(i)に隣接する横ライン(i−1)および横ライン(i+1)における左端の画素の位置の平均値を最も左の位置とする。すなわち、左座標位置最適化部181は、左端の画素の中の最も左に位置する、すなわち最小の座標値となる左端の画素の位置の最適化を行う。
ここで、図38のフローチャートを参照して、ステップS2113に対応する、左座標最小値最適化の処理の詳細な例について説明する。
ステップS2131において、左座標位置最適化部181は、有効領域座標位置決定部41から供給されてくる全ての横ライン(i)と、これに対応する左座標位置とを読み込む。
ステップS2132において、左座標位置最適化部181は、読み込んだ全ての横ライン(i)の中から、1ライン全てが黒領域であるラインを除外する。
より具体的には、例えば、左座標位置最適化部181は、左座標位置が1ラインの最大値、すなわち、図12または図19のフローチャートを参照して説明した処理によって出力される座標値であって、図10におけるx軸上の座標値kがk=ROW−1であるもの全てを除外する。またさらに、例えば、左座標位置最適化部181は、連続する黒領域であるラインをまとめて除外するようにしてもよい。すなわち、例えば、図26に示されるy軸上の最小の座標値min_yより上側の領域およびy軸上の最大の座標値max_yより下側の領域は除外されるようにしてもよい。また、この場合、y軸上の最小の座標値min_yとy軸上の最大の座標値max_yとの間に1ライン全てが黒領域であるラインが存在する場合でも、これは除外されないものとする。
ステップS2133において、左座標位置最適化部181は、最小値除外リストを初期化する。最小値除外リストは、例えば、左座標位置最適化部181に記憶されるリストであって、左座標位置が小さい順に、横ライン番号、すなわちy軸の座標値iと左座標位置とを対応させて蓄える。
ステップS2134において、左座標位置最適化部181は、最小値除外リストに蓄えられているライン以外の最小の左座標を算出する。
ステップS2135において、左座標位置最適化部181は、所定の変数temp_leftに、算出した横ライン番号と左座標とを代入する。所定の変数temp_leftは、横ライン番号と左座標と対応させて一時的に記憶する。
ステップS2136において、左座標位置最適化部181は、所定の変数temp_leftに代入された左座標と最小値除外リストの中の最大値との絶対差分値を算出する。ただし、最初のステップS2136においては、最小値除外リストは初期化されているので、左座標位置最適化部181は、所定の変数temp_leftに代入された左座標をそのまま絶対差分値として出力する。
ステップS2137において、左座標位置最適化部181は、算出された絶対差分値と所定の閾値とを比較して、差分が閾値以上であるか否かを判定する。
ステップS2137において、差分が閾値以上であると判定された場合、処理は、ステップS2138に進む。
ステップS2138において、左座標位置最適化部181は、最小値除外リストの最大値に該当するラインの左座標に、上下のラインの左座標の値の平均値を割り当てる。ただし、最初のステップS2138においては、最小値除外リストは初期化されているので、何も実行されない。
ステップS2139において、左座標位置最適化部181は、最小値除外リストに所定の変数temp_leftに代入された横ライン番号と左座標とを加え、処理は、ステップS2134に戻る。
一方、ステップS2137において、差分が閾値以上でないと判定された場合、処理は、ステップS2140に進む。
ステップS2140において、左座標位置最適化部181は、最小値除外リストが空であるか否かを判定する。
ステップS2140において、最小値除外リストが空であると判定された場合、処理は、ステップS2139に進む。
一方、ステップS2140において、最小値除外リストが空でないと判定された場合、処理は、終了する。
このようにして、左座標位置最適化部181は、最小値除外リストを用いて、左座標の最小の座標値とその次に小さい座標値とを比較することにより、左端の画素の中の最も左に位置する、すなわち最小の座標値となる左端の画素の位置の最適化を行うことができる。
図37に戻り、ステップS2114において、左座標位置最適化部181は、横ライン(i)ごとに検出された左端の画素の位置の中の、最も右の画素の位置と右から2番目の画素の位置との差分が所定の閾値より大きい場合、最も右の画素が検出された横ライン(i)に隣接する横ライン(i−1)および横ライン(i+1)における左端の画素の位置の平均値を最も右の位置とする。すなわち、左座標位置最適化部181は、左端の画素の中の最も右に位置する、すなわち最大の座標値となる左端の画素の位置の最適化を行う。
ここで、図39のフローチャートを参照して、ステップS2114に対応する、左座標最大値最適化の処理の詳細な例について説明する。
なお、図39のフローチャートにおけるステップS2151およびステップS2152の処理は、図38のフローチャートにおけるステップS2131およびステップS2132の処理のそれぞれと同様であるので、その説明については省略する。
ステップS2153において、左座標位置最適化部181は、最大値除外リストを初期化する。最大値除外リストは、例えば、左座標位置最適化部181に記憶されるリストであって、左座標位置が大さい順に、横ライン番号、すなわちy軸の座標値iと左座標位置とを対応させて蓄える。
ステップS2154において、左座標位置最適化部181は、最大値除外リストに蓄えられているライン以外の最大の左座標を算出する。
ステップS2155において、左座標位置最適化部181は、所定の変数temp_leftに、算出した横ライン番号と左座標とを代入する。所定の変数temp_leftは、横ライン番号と左座標と対応させて一時的に記憶する。
ステップS2156において、左座標位置最適化部181は、所定の変数temp_leftに代入された左座標と最大値除外リストの中の最小値との絶対差分値を算出する。ただし、最初のステップS2156においては、最大値除外リストは初期化されているので、左座標位置最適化部181は、所定の変数temp_leftに代入された左座標をそのまま絶対差分値として出力する。
ステップS2157において、左座標位置最適化部181は、算出された絶対差分値と所定の閾値とを比較して、差分が閾値以上であるか否かを判定する。
ステップS2157において、差分が閾値以上であると判定された場合、処理は、ステップS2158に進む。
ステップS2158において、左座標位置最適化部181は、最大値除外リストの最小値に該当するラインの左座標に、上下のラインの左座標の値の平均値を割り当てる。ただし、最初のステップS2158においては、最大値除外リストは初期化されているので、何も実行されない。
ステップS2159において、左座標位置最適化部181は、最大値除外リストに所定の変数temp_leftに代入された横ライン番号iと左座標とを加え、処理は、ステップS2154に戻る。
一方、ステップS2157において、差分が閾値以上でないと判定された場合、処理は、ステップS2160に進む。
ステップS2160において、左座標位置最適化部181は、最大値除外リストが空であるか否かを判定する。
ステップS2160において、最大値除外リストが空であると判定された場合、処理は、ステップS2159に進む。
一方、ステップS2160において、最大値除外リストが空でないと判定された場合、処理は、終了する。
このようにして、左座標位置最適化部181は、最大値除外リストを用いて、左座標の最大の座標値とその次に大きい座標値とを比較することにより、左端の画素の中の最も右に位置する、すなわち最大の座標値となる左端の画素の位置の最適化を行うことができる。
図37に戻り、ステップS2115において、右座標位置最適化部182は、横ライン(i)ごとに検出された右端の画素の位置の中の、最も左の画素の位置と左から2番目の画素の位置との差分が所定の閾値より大きい場合、最も左の画素が検出された横ライン(i)に隣接する横ライン(i−1)および横ライン(i+1)における右端の画素の位置の平均値を最も左の位置とする。すなわち、右座標位置最適化部182は、右端の画素の中の最も左に位置する、すなわち最小の座標値となる右端の画素の位置の最適化を行う。
ここで、図40のフローチャートを参照して、ステップS2115に対応する、右座標最小値最適化の処理の詳細な例について説明する。
ステップS2171において、右座標位置最適化部182は、有効領域座標位置決定部41から供給されてくる全ての横ライン(i)と、これに対応する右座標位置とを読み込む。
ステップS2172において、右座標位置最適化部182は、読み込んだ全ての横ライン(i)の中から、1ライン全てが黒領域であるラインを除外する。
より具体的には、例えば、右座標位置最適化部182は、右座標位置が1ラインの最小値、すなわち、図13または図20のフローチャートを参照して説明した処理によって出力される座標値であって、図10におけるx軸上の座標値mがm=0であるもの全てを除外する。さらにまた、例えば、右座標位置最適化部182は、連続する黒領域であるラインをまとめて除外するようにしてもよい。すなわち、例えば、図26に示されるy軸上の最小の座標値min_yより上側の領域およびy軸上の最大の座標値max_yより下側の領域は除外されるようにしてもよい。また、この場合、y軸上の最小の座標値min_yとy軸上の最大の座標値max_yとの間に1ライン全てが黒領域であるラインが存在する場合でも、これは除外されないものとする。
ステップS2173において、右座標位置最適化部182は、最小値除外リストを初期化する。最小値除外リストは、例えば、右座標位置最適化部182に記憶されるリストであって、右座標位置が小さい順に、横ライン番号、すなわちy軸の座標値iと右座標位置とを対応させて蓄える。
ステップS2174において、右座標位置最適化部182は、最小値除外リストに蓄えられているライン以外の最小の右座標を算出する。
ステップS2175において、右座標位置最適化部182は、所定の変数temp_rightに、算出した横ライン番号と右座標とを代入する。所定の変数temp_rightは、横ライン番号と右座標と対応させて一時的に記憶する。
ステップS2176において、右座標位置最適化部182は、所定の変数temp_rightに代入された右座標と最小値除外リストの中の最大値との絶対差分値を算出する。ただし、最初のステップS2176においては、最小値除外リストは初期化されているので、右座標位置最適化部182は、所定の変数temp_rightに代入された右座標をそのまま絶対差分値として出力する。
ステップS2177において、右座標位置最適化部182は、算出された絶対差分値と所定の閾値とを比較して、差分が閾値以上であるか否かを判定する。
ステップS2177において、差分が閾値以上であると判定された場合、処理は、ステップS2178に進む。
ステップS2178において、右座標位置最適化部182は、最小値除外リストの最大値に該当するラインの右座標に、上下のラインの右座標の値の平均値を割り当てる。ただし、最初のステップS2178においては、最小値除外リストは初期化されているので、何も実行されない。
ステップS2179において、右座標位置最適化部182は、最小値除外リストに所定の変数temp_rightに代入された横ライン番号と右座標とを加え、処理は、ステップS2174に戻る。
一方、ステップS2177において、差分が閾値以上でないと判定された場合、処理は、ステップS2180に進む。
ステップS2180において、右座標位置最適化部182は、最小値除外リストが空であるか否かを判定する。
ステップS2180において、最小値除外リストが空であると判定された場合、処理は、ステップS2179に進む。
一方、ステップS2180において、最小値除外リストが空でないと判定された場合、処理は、終了する。
このようにして、右座標位置最適化部182は、最小値除外リストを用いて、右座標の最小の座標値とその次に小さい座標値とを比較することにより、右端の画素の中の最も左に位置する、すなわち最小の座標値となる右端の画素の位置の最適化を行うことができる。
図37に戻り、ステップS2116において、右座標位置最適化部182は、横ライン(i)ごとに検出された右端の画素の位置の中の、最も右の画素の位置と右から2番目の画素の位置との差分が所定の閾値より大きい場合、最も右の画素が検出された横ライン(i)に隣接する横ライン(i−1)および横ライン(i+1)における右端の画素の位置の平均値を最も右の位置とする。すなわち、右座標位置最適化部182は、右端の画素の中の最も右に位置する、すなわち最大の座標値となる右端の画素の位置の最適化を行う。
ここで、図41のフローチャートを参照して、ステップS2116に対応する、右座標最大値最適化の処理の詳細な例について説明する。
なお、図41のフローチャートにおけるステップS2191およびステップS2192の処理は、図40のフローチャートにおけるステップS2171およびステップS2172の処理のそれぞれと同様であるので、その説明については省略する。
ステップS2193において、右座標位置最適化部182は、最大値除外リストを初期化する。最大値除外リストは、例えば、右座標位置最適化部182に記憶されるリストであって、右座標位置が大さい順に、横ライン番号、すなわちy軸の座標値iと右座標位置とを対応させて蓄える。
ステップS2194において、右座標位置最適化部182は、最大値除外リストに蓄えられているライン以外の最大の右座標を算出する。
ステップS2195において、右座標位置最適化部182は、所定の変数temp_rightに、算出した横ライン番号と右座標とを代入する。所定の変数temp_rightは、横ライン番号と右座標と対応させて一時的に記憶する。
ステップS2196において、右座標位置最適化部182は、所定の変数temp_rightに代入された右座標と最大値除外リストの中の最小値との絶対差分値を算出する。ただし、最初のステップS2196においては、最大値除外リストは初期化されているので、右座標位置最適化部182は、所定の変数temp_rightに代入された右座標をそのまま絶対差分値として出力する。
ステップS2197において、右座標位置最適化部182は、算出された絶対差分値と所定の閾値とを比較して、差分が閾値以上であるか否かを判定する。
ステップS2197において、差分が閾値以上であると判定された場合、処理は、ステップS2198に進む。
ステップS2198において、右座標位置最適化部182は、最大値除外リストの最小値に該当するラインの右座標に、上下のラインの右座標の値の平均値を割り当てる。ただし、最初のステップS2198においては、最大値除外リストは初期化されているので、何も実行されない。
ステップS2199において、右座標位置最適化部182は、最大値除外リストに所定の変数temp_rightに代入された横ライン番号と右座標とを加え、処理は、ステップS2194に戻る。
一方、ステップS2197において、差分が閾値以上でないと判定された場合、処理は、ステップS2200に進む。
ステップS2200において、右座標位置最適化部182は、最大値除外リストが空であるか否かを判定する。
ステップS2200において、最大値除外リストが空であると判定された場合、処理は、ステップS2199に進む。
一方、ステップS2200において、最大値除外リストが空でないと判定された場合、処理は、終了する。
このようにして、右座標位置最適化部182は、最大値除外リストを用いて、右座標の最大の座標値とその次に大きい座標値とを比較することにより、右端の画素の中の最も右に位置する、すなわち最大の座標値となる右端の画素の位置の最適化を行うことができる。
図37に戻り、ステップS2117において、上座標位置最適化部183は、縦ライン(j)ごとに検出された上端の画素の位置の中の、最も上の画素の位置と上から2番目の画素の位置との差分が所定の閾値より大きい場合、最も上の画素が検出された縦ライン(j)に隣接する縦ライン(j−1)および縦ライン(j+1)における上端の画素の位置の平均値を最も上の位置とする。すなわち、上座標位置最適化部183は、上端の画素の中の最も上に位置する、すなわち最小の座標値となる上端の画素の位置の最適化を行う。
ここで、図42のフローチャートを参照して、ステップS2117に対応する、上座標最小値最適化の処理の詳細な例について説明する。
ステップS2211において、上座標位置最適化部183は、有効領域座標位置決定部41から供給されてくる全ての縦ライン(j)と、これに対応する上座標位置とを読み込む。
ステップS2212において、上座標位置最適化部183は、読み込んだ全ての縦ライン(j)の中から、1ライン全てが黒領域であるラインを除外する。
より具体的には、例えば、上座標位置最適化部183は、上座標位置が1ラインの最大値、すなわち、図14または図21のフローチャートを参照して説明した処理によって出力される座標値であって、図10におけるy軸上の座標値rがr=COL−1であるもの全てを除外する。また、例えば、上座標位置最適化部183は、連続する黒領域であるラインをまとめて除外するようにしてもよい。すなわち、例えば、図26に示されるx軸上の最小の座標値min_xより左側の領域およびx軸上の最大の座標値max_xより右側の領域は除外されるようにしてもよい。また、この場合、x軸上の最小の座標値min_xとx軸上の最大の座標値max_xとの間に1ライン全てが黒領域であるラインが存在する場合でも、これは除外されないものとする。
ステップS2213において、上座標位置最適化部183は、最小値除外リストを初期化する。最小値除外リストは、例えば、上座標位置最適化部183に記憶されるリストであって、上座標位置が小さい順に、縦ライン番号、すなわちx軸の座標値jと上座標位置とを対応させて蓄える。
ステップS2214において、上座標位置最適化部183は、最小値除外リストに蓄えられているライン以外の最小の上座標を算出する。
ステップS2215において、上座標位置最適化部183は、所定の変数temp_upperに、算出した縦ライン番号と上座標とを代入する。所定の変数temp_upperは、縦ライン番号と上座標と対応させて一時的に記憶する。
ステップS2216において、上座標位置最適化部183は、所定の変数temp_upperに代入された上座標と最小値除外リストの中の最大値との絶対差分値を算出する。ただし、最初のステップS2216においては、最小値除外リストは初期化されているので、上座標位置最適化部183は、所定の変数temp_upperに代入された上座標をそのまま絶対差分値として出力する。
ステップS2217において、上座標位置最適化部183は、算出された絶対差分値と所定の閾値とを比較して、差分が閾値以上であるか否かを判定する。
ステップS2217において、差分が閾値以上であると判定された場合、処理は、ステップS2218に進む。
ステップS2218において、上座標位置最適化部183は、最小値除外リストの最大値に該当するラインの上座標に、左右のラインの上座標の値の平均値を割り当てる。ただし、最初のステップS2218においては、最小値除外リストは初期化されているので、何も実行されない。
ステップS2219において、上座標位置最適化部183は、最小値除外リストに所定の変数temp_upperに代入された縦ライン番号と上座標とを加え、処理は、ステップS2214に戻る。
一方、ステップS2217において、差分が閾値以上でないと判定された場合、処理は、ステップS2220に進む。
ステップS2220において、上座標位置最適化部183は、最小値除外リストが空であるか否かを判定する。
ステップS2220において、最小値除外リストが空であると判定された場合、処理は、ステップS2219に進む。
一方、ステップS2220において、最小値除外リストが空でないと判定された場合、処理は、終了する。
このようにして、上座標位置最適化部183は、最小値除外リストを用いて、上座標の最小の座標値とその次に小さい座標値とを比較することにより、上端の画素の中の最も上に位置する、すなわち最小の座標値となる上端の画素の位置の最適化を行うことができる。
図37に戻り、ステップS2118において、上座標位置最適化部183は、縦ライン(j)ごとに検出された上端の画素の位置の中の、最も下の画素の位置と下から2番目の画素の位置との差分が所定の閾値より大きい場合、最も下の画素が検出された縦ライン(j)に隣接する縦ライン(j−1)および縦ライン(j+1)における上端の画素の位置の平均値を最も下の位置とする。すなわち、上座標位置最適化部183は、上端の画素の中の最も下に位置する、すなわち最大の座標値となる上端の画素の位置の最適化を行う。
ここで、図43のフローチャートを参照して、ステップS2118に対応する、上座標最大値最適化の処理の詳細な例について説明する。
なお、図43のフローチャートにおけるステップS2231およびステップS2232の処理は、図42のフローチャートにおけるステップS2211およびステップS2212の処理のそれぞれと同様であるので、その説明については省略する。
ステップS2233において、上座標位置最適化部183は、最大値除外リストを初期化する。最大値除外リストは、例えば、上座標位置最適化部183に記憶されるリストであって、上座標位置が大さい順に、縦ライン番号、すなわちx軸の座標値jと上座標位置とを対応させて蓄える。
ステップS2234において、上座標位置最適化部183は、最大値除外リストに蓄えられているライン以外の最大の上座標を算出する。
ステップS2235において、上座標位置最適化部183は、所定の変数temp_upperに、算出した縦ライン番号と上座標とを代入する。所定の変数temp_upperは、縦ライン番号と上座標と対応させて一時的に記憶する。
ステップS2236において、上座標位置最適化部183は、所定の変数temp_upperに代入された上座標と最大値除外リストの中の最小値との絶対差分値を算出する。ただし、最初のステップS2236においては、最大値除外リストは初期化されているので、上座標位置最適化部183は、所定の変数temp_upperに代入された上座標をそのまま絶対差分値として出力する。
ステップS2237において、上座標位置最適化部183は、算出された絶対差分値と所定の閾値とを比較して、差分が閾値以上であるか否かを判定する。
ステップS2237において、差分が閾値以上であると判定された場合、処理は、ステップS2238に進む。
ステップS2238において、上座標位置最適化部183は、最大値除外リストの最小値に該当するラインの上座標に、左右のラインの上座標の値の平均値を割り当てる。ただし、最初のステップS2238においては、最大値除外リストは初期化されているので、何も実行されない。
ステップS2239において、上座標位置最適化部183は、最大値除外リストに所定の変数temp_upperに代入された縦ライン番号と上座標とを加え、処理は、ステップS2234に戻る。
一方、ステップS2237において、差分が閾値以上でないと判定された場合、処理は、ステップS2240に進む。
ステップS2240において、上座標位置最適化部183は、最大値除外リストが空であるか否かを判定する。
ステップS2240において、最大値除外リストが空であると判定された場合、処理は、ステップS2239に進む。
一方、ステップS2240において、最大値除外リストが空でないと判定された場合、処理は、終了する。
このようにして、上座標位置最適化部183は、最大値除外リストを用いて、上座標の最大の座標値とその次に大きい座標値とを比較することにより、上端の画素の中の最も下に位置する、すなわち最大の座標値となる上端の画素の位置の最適化を行うことができる。
図37に戻り、ステップS2119において、下座標位置最適化部184は、縦ライン(j)ごとに検出された下端の画素の位置の中の、最も上の画素の位置と上から2番目の画素の位置との差分が所定の閾値より大きい場合、最も上の画素が検出された縦ライン(j)に隣接する縦ライン(j−1)および縦ライン(j+1)における下端の画素の位置の平均値を最も上の位置とする。すなわち、下座標位置最適化部184は、下端の画素の中の最も上に位置する、すなわち最小の座標値となる下端の画素の位置の最適化を行う。
ここで、図44のフローチャートを参照して、ステップS2119に対応する、下座標最小値最適化の処理の詳細な例について説明する。
ステップS2251において、下座標位置最適化部184は、有効領域座標位置決定部41から供給されてくる全ての縦ライン(j)と、これに対応する下座標位置とを読み込む。
ステップS2252において、下座標位置最適化部184は、読み込んだ全ての縦ライン(j)の中から、1ライン全てが黒領域であるラインを除外する。
より具体的には、例えば、下座標位置最適化部184は、下座標位置が1ラインの最小値、すなわち、図15または図22のフローチャートを参照して説明した処理によって出力される座標値であって、図10におけるy軸上の座標値sがs=0であるもの全てを除外する。また、例えば、下座標位置最適化部184は、連続する黒領域であるラインをまとめて除外するようにしてもよい。すなわち、例えば、図26に示されるx軸上の最小の座標値min_xより左側の領域およびx軸上の最大の座標値max_xより右側の領域は除外されるようにしてもよい。また、この場合、x軸上の最大の座標値min_xとx軸上の最大の座標値max_xとの間に1ライン全てが黒領域であるラインが存在する場合でも、これは除外されないものとする。
ステップS2253において、下座標位置最適化部184は、最小値除外リストを初期化する。最小値除外リストは、例えば、下座標位置最適化部184に記憶されるリストであって、下座標位置が小さい順に、縦ライン番号、すなわちx軸の座標値jと下座標位置とを対応させて蓄える。
ステップS2254において、下座標位置最適化部184は、最小値除外リストに蓄えられているライン以外の最小の下座標を算出する。
ステップS2255において、下座標位置最適化部184は、所定の変数temp_lowerに、算出した縦ライン番号と下座標とを代入する。所定の変数temp_lowerは、縦ライン番号と下座標と対応させて一時的に記憶する。
ステップS2256において、下座標位置最適化部184は、所定の変数temp_lowerに代入された下座標と最小値除外リストの中の最大値との絶対差分値を算出する。ただし、最初のステップS2256においては、最小値除外リストは初期化されているので、下座標位置最適化部184は、所定の変数temp_lowerに代入された下座標をそのまま絶対差分値として出力する。
ステップS2257において、下座標位置最適化部184は、算出された絶対差分値と所定の閾値とを比較して、差分が閾値以上であるか否かを判定する。
ステップS2257において、差分が閾値以上であると判定された場合、処理は、ステップS2258に進む。
ステップS2258において、下座標位置最適化部184は、最小値除外リストの最大値に該当するラインの下座標に、左右のラインの下座標の値の平均値を割り当てる。ただし、最初のステップS2258においては、最小値除外リストは初期化されているので、何も実行されない。
ステップS2259において、下座標位置最適化部184は、最小値除外リストに所定の変数temp_lowerに代入された縦ライン番号と下座標とを加え、処理は、ステップS2254に戻る。
一方、ステップS2257において、差分が閾値以上でないと判定された場合、処理は、ステップS2260に進む。
ステップS2260において、下座標位置最適化部184は、最小値除外リストが空であるか否かを判定する。
ステップS2260において、最小値除外リストが空であると判定された場合、処理は、ステップS2259に進む。
一方、ステップS2260において、最小値除外リストが空でないと判定された場合、処理は、終了する。
このようにして、下座標位置最適化部184は、最小値除外リストを用いて、下座標の最小の座標値とその次に小さい座標値とを比較することにより、下端の画素の中の最も上に位置する、すなわち最小の座標値となる下端の画素の位置の最適化を行うことができる。
図37に戻り、ステップS2120において、下座標位置最適化部184は、縦ライン(j)ごとに検出された下端の画素の位置の中の、最も下の画素の位置と下から2番目の画素の位置との差分が所定の閾値より大きい場合、最も下の画素が検出された縦ライン(j)に隣接する縦ライン(j−1)および縦ライン(j+1)における下端の画素の位置の平均値を最も下の位置とする。すなわち、下座標位置最適化部184は、下端の画素の中の最も下に位置する、すなわち最大の座標値となる下端の画素の位置の最適化を行う。
ここで、図45のフローチャートを参照して、ステップS2120に対応する、下座標最大値最適化の処理の詳細な例について説明する。
なお、図45のフローチャートにおけるステップS2271およびステップS2272の処理は、図44のフローチャートにおけるステップS2251およびステップS2252の処理のそれぞれと同様であるので、その説明については省略する。
ステップS2273において、下座標位置最適化部184は、最大値除外リストを初期化する。最大値除外リストは、例えば、下座標位置最適化部184に記憶されるリストであって、下座標位置が大きい順に、縦ライン番号、すなわちx軸の座標値jと下座標位置とを対応させて蓄える。
ステップS2274において、下座標位置最適化部184は、最大値除外リストに蓄えられているライン以外の最大の下座標を算出する。
ステップS2275において、下座標位置最適化部184は、所定の変数temp_lowerに、算出した縦ライン番号と下座標とを代入する。所定の変数temp_lowerは、縦ライン番号と下座標と対応させて一時的に記憶する。
ステップS2276において、下座標位置最適化部184は、所定の変数temp_lowerに代入された下座標と最大値除外リストの中の最小値との絶対差分値を算出する。ただし、最初のステップS2276においては、最大値除外リストは初期化されているので、下座標位置最適化部184は、所定の変数temp_lowerに代入された下座標をそのまま絶対差分値として出力する。
ステップS2277において、下座標位置最適化部184は、算出された絶対差分値と所定の閾値とを比較して、差分が閾値以上であるか否かを判定する。
ステップS2277において、差分が閾値以上であると判定された場合、処理は、ステップS2278に進む。
ステップS2278において、下座標位置最適化部184は、最大値除外リストの最小値に該当するラインの下座標に、左右のラインの下座標の値の平均値を割り当てる。ただし、最初のステップS2278においては、最大値除外リストは初期化されているので、何も実行されない。
ステップS2279において、下座標位置最適化部184は、最大値除外リストに所定の変数temp_lowerに代入された縦ライン番号と下座標とを加え、処理は、ステップS2274に戻る。
一方、ステップS2277において、差分が閾値以上でないと判定された場合、処理は、ステップS2280に進む。
ステップS2280において、下座標位置最適化部184は、最大値除外リストが空であるか否かを判定する。
ステップS2280において、最大値除外リストが空であると判定された場合、処理は、ステップS2279に進む。
一方、ステップS2280において、最大値除外リストが空でないと判定された場合、処理は、終了する。
このようにして、下座標位置最適化部184は、最大値除外リストを用いて、下座標の最大の座標値とその次に大きい座標値とを比較することにより、下端の画素の中の最も下に位置する、すなわち最大の座標値となる下端の画素の位置の最適化を行うことができる。
以上のように、座標位置最適化部161は、有効領域座標位置決定部41から供給される有効領域の座標の位置、すなわち、それぞれの横ライン(i)についての有効領域の左座標位置および右座標位置、並びにそれぞれの縦ライン(j)についての有効領域の上座標位置および下座標位置に、適切な座標位置を割り当てることができる。
図37に戻り、ステップS2113乃至ステップS2120の後、処理は終了する。
このようにして、フレーム内座標位置決定部12は、フレーム内の任意の形状の有効領域の座標位置決定処理を実行し、さらに、座標位置最適化処理を実行することで、画像がノイズの影響を受けた場合でも、より正確な有効領域の座標の位置を決定することができる。
なお、フレーム内の有効領域の座標位置決定の処理のさらに他の例として、図37のフローチャートにおけるステップS2101乃至ステップS2112の処理を、図18のフローチャートにおけるステップS301乃至ステップS312の処理、若しくは図23のフローチャートにおけるステップS501乃至ステップS512の処理と同様にするようにしてもよい。
また、上述した説明では、図38乃至図45のフローチャートにおける、1ライン全てが黒領域であるラインを除外する処理を、座標位置最適化部161が行うようにしたが、有効領域座標位置決定部41が行うようにしてもよい。すなわち、ラインごとの有効領域の座標位置が検出されたあとに行うようにしてもよい。
なお、上述した説明において、図37のフローチャートのステップS2113乃至ステップS2120の座標位置の最適化の処理は、図36に示すような1つの座標軸の1つの向きに対して、1つのみのノイズが発生した場合を対象にしている。例えば、8などの予め定めた数を基準として、その数未満の同様のノイズが同じ向き、同じ大きさで発生した場合には、ノイズにより突出している画素の座標位置を検出し、さらにその近傍のラインにおける有効領域の画素の座標位置を用いて、座標位置を平均化することで、座標位置を最適化するようにしてもよい。
さらに、上述した説明において、座標位置の最適化の処理を図37のフローチャートのステップS2113乃至ステップS2120の8処理行うようにしたが、有効領域の外側に対する処理、すなわち、左座標最小値最適化処理、右座標最大値最適化処理、上座標最小値最適化処理、および下座標最大値最適化処理の4処理のみを行うようにしてもよい。
また、上述した説明の各座標位置の最適化の処理において、最適化の対象となる画素の位置として、その画素の上下または左右の2ラインにおける画素の座標位置の平均値を割り当てるようにしたが、例えば、前後フレームの座標位置を用いたり、上下または左右の複数のラインにおける画素の座標位置の中心値を用いたり、上か下かどちらか1列、または左か右かどちらか1列のラインにおける画素の座標位置をそのまま用いたりするようにしてもよい。すなわち、座標位置最適化部161は、最適化される対象となる画素の近傍から予測される最も確からしい値を用いて最適化の処理を行う。
なお、上述の説明において、無効領域は、黒だけが表示される黒領域であるものとして説明したが、その領域自身の画像が有意でない領域であればよい。無効領域は、例えば、白だけが表示される白領域や、特定の色だけが表示される領域(例えば、クロマキー合成に用いられる青色領域など)であってもよい。
さらに、上述した説明においては、処理の対象とする画像は、2次元表示されるものとして説明してきたが、n次元表示されるものであってもよい。例えば、ホログラフィによって空間に描画される3次元像を、処理の対象とするようにしてもよい。
以上のように、有意の領域である有効領域とその他の領域である無効領域とからなる画像が入力されるようにした場合には、入力された画像を処理することができる。また、無効領域の画素であるか否かを判定するための第1の閾値とその画素値とが比較されることによって、画像において水平方向に1列に並ぶ画素の中の、無効領域の画素でないと判定された画素のうち、左端の画素の所定の座標上の位置を検出し、第1の閾値とその画素値とが比較されることによって、画像において水平方向に1列に並ぶ画素の中の、無効領域の画素でないと判定された画素のうち、右端の画素の座標上の位置を検出し、第1の閾値とその画素値とが比較されることによって、画像において垂直方向に1列に並ぶ画素の中の、無効領域の画素でないと判定された画素のうち、上端の画素の座標上の位置を検出し、第1の閾値とその画素値とが比較されることによって、画像において垂直方向に1列に並ぶ画素の中の、無効領域の画素でないと判定された画素のうち、下端の画素の座標上の位置を検出するようにした場合には、無効領域と任意の形状の有効領域とを含む画像において、無効領域以外の有効領域を正確に検出することができる。
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
図46は、図5の有効領域検出装置1のハードウェアにより構成される機能をソフトウェアにより実現する場合のパーソナルコンピュータの一実施の形態の構成を示している。パーソナルコンピュータのCPU301は、パーソナルコンピュータの全体の動作を制御する。また、CPU301は、バス304および入出力インタフェース305を介してユーザからキーボードやマウスなどからなる入力部306から指令が入力されると、それに対応してROM(Read Only Memory)302に格納されているプログラムを実行する。あるいはまた、CPU301は、ドライブ310に接続された磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリを含むリムーバブルメディア311から読み出され、記憶部308にインストールされたプログラムを、RAM(Random Access Memory)303にロードして実行する。これにより、上述した図5の有効領域検出装置1の機能が、ソフトウェアにより実現されている。さらに、CPU301は、通信部309を制御して、外部と通信し、データの授受を実行する。
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム記録媒体は、図46に示すように、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスクを含む)、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア311、または、プログラムが一時的もしくは永続的に格納されるROM302や、記憶部308を構成するハードディスクなどにより構成される。プログラム記録媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインタフェースである通信部309を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
なお、本明細書において、プログラム記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
1 有効領域検出装置, 11 前処理用フレームバッファ, 12 フレーム内座標決定部, 13 フレーム内信頼度計算部, 14,15 後フレームバッファ, 16 処理対象フレームバッファ, 17,18 前フレームバッファ, 19 前フレーム比較部, 20 後フレーム比較部, 21 比較結果判定部, 41 有効領域座標位置決定部, 64 左座標位置検出部, 65 右座標位置検出部, 66 上座標位置検出部, 67 下座標位置検出部, 101 矩形有効領域座標位置決定部, 121 最左座標位置決定部, 122 最右座標位置決定部, 123 最上座標位置決定部, 124 最下座標位置決定部, 161 座標位置最適化部, 181 左座標位置最適化部, 182 右座標位置最適化部, 183 上座標位置最適化部, 184 下座標位置最適化部