(57)【特許請求の範囲】
【請求項１】
取得した画像からメータの針が指す角度を算出する算出装置において、
取得した画像に含まれる前記針の画像のエッジを検出する検出部と、
該検出部により検出した前記エッジに対しハフ変換を行い複数の線を抽出する抽出部と、
該抽出部により抽出した前記複数の線に基づき、針の角度を算出する算出部と
を備える算出装置。
【請求項２】
前記算出部は、
前記抽出部により抽出された複数の線の角度を算出する角度算出部と、
該角度算出部により算出した角度の平均値または中央値を針の角度として決定する決定部と
を含む請求項１に記載の算出装置。
【請求項３】
前記抽出部は、ハフ変換により複数の線分を抽出し、
前記算出部は、
基準点を記憶部から読み出す読み出し部と、
線分上の両端点の内、前記基準点からの距離が長い方の端点を読み出す点読み出し部と、
点読み出し部により読み出した各線分の端点と前記基準点との距離が長いものから順に所定数の端点を抽出する端点抽出部と、
該端点抽出部により抽出した端点と前記基準点とに基づき針の角度を算出する角度算出部と
を含む請求項１に記載の算出装置。
【請求項４】
前記抽出部は、ハフ変換により複数の直線を抽出し、
前記算出部は、
基準点を読み出す読み出し部と、
抽出した複数の直線の交点を抽出する交点抽出部と、
該交点抽出部により抽出した交点と前記基準点とに基づき針の角度を算出する角度算出部と
を含む請求項１に記載の算出装置。
【請求項５】
前記算出部は、
前記抽出部により抽出された複数の線の角度を算出する角度算出部と、
該角度算出部により算出した複数の角度を、クラスター分析を行って複数の群に分類する分類部と、
該分類部により分類した複数の群から２つの群を選択する選択部と、
該選択部により選択した２つの群に分類された角度に基づき針の角度を決定する角度決定部と
を含む請求項１に記載の算出装置。
【請求項６】
前記抽出部により抽出された複数の線の角度の分散を算出する分散算出部と、
該分散算出部により算出した分散が閾値を超える場合に、第１警告情報を出力する第１警告出力部と
を備える請求項１から５のいずれか一つに記載の算出装置。
【請求項７】
取り込んだ画像から針の画像を抽出する針抽出部と、
該針抽出部により抽出した針の画像の外接矩形を決定する矩形決定部と、
該矩形決定部により決定した外接矩形の対角線の長さまたは辺の長さが所定長を超える場合に、第２警告情報を出力する第２警告出力部と
を備える請求項１から６のいずれか一つに記載の算出装置。
【請求項８】
取得した画像からメータの針が指す角度を算出する算出装置において、
取得した画像からエッジを検出する検出部と、
該検出部により検出したエッジに対応する複数の線を抽出する抽出部と、
該抽出部により抽出した前記複数の線に基づき、前記針の角度を算出する算出部と、
取得した画像における前記針の画像領域の外接矩形の対角線の長さまたは辺の長さが所定長を超える場合、警告情報を出力する出力部と
を備えることを特徴とする算出装置。
【請求項９】
取得した画像からメータの針が指す角度を算出するコンピュータに用いるプログラムにおいて、
コンピュータを、
取得した画像に含まれる前記針の画像のエッジを検出する検出部と、
該検出部により検出した前記エッジに対しハフ変換を行い複数の線を抽出する抽出部と、
該抽出部により抽出した前記複数の線に基づき、針の角度を算出する算出部と
して機能させるプログラム。
【請求項１０】
取得した画像からメータの針が指す角度を算出するコンピュータに用いるプログラムにおいて、
コンピュータを、
取得した画像からエッジを検出する検出部と、
該検出部により検出したエッジに対応する複数の線を抽出する抽出部と、
該抽出部により抽出した前記複数の線に基づき、前記針の角度を算出する算出部と、
取得した画像における前記針の画像領域の外接矩形の対角線の長さまたは辺の長さが所定長を超える場合、警告情報を出力する出力部と
して機能させるプログラム。
【請求項１１】
制御部を有する算出装置により、取得した画像からメータの針が指す角度を算出する算出方法において、
取得した画像に含まれる前記針の画像のエッジを前記制御部により検出し、
検出した前記エッジに対し前記制御部によりハフ変換を行い複数の線を抽出し、
抽出した前記複数の線に基づき、前記制御部により針の角度を算出する
算出方法。
【請求項１２】
制御部を有する算出装置により、取得した画像からメータの針が指す角度を算出する算出方法において、
取得した画像からエッジを前記制御部により検出し、
検出したエッジに対応する複数の線を前記制御部により抽出し、
抽出した前記複数の線に基づき、前記針の角度を前記制御部により算出し、
取得した画像における前記針の画像領域の外接矩形の対角線の長さまたは辺の長さが所定長を超える場合、前記制御部により警告情報を出力する
算出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、取得した画像からメータの針が指す角度を算出する算出装置等に関する。
【背景技術】
【０００２】
圧力計または温度計等には、針が回転するアナログメータが使用される。メータをカメラで撮影し、画像処理を行うことで針の角度を算出する技術が提案されている（例えば特許文献１乃至５参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−１２０１３３号公報
【特許文献２】特開２００２−１８８９３９号公報
【特許文献３】特開２００１−３５７４０１号公報
【特許文献４】特開平０２−０７１６９９号公報
【特許文献５】特開２００４−３４８５２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、メータの針の形状は様々であり従来の技術では適切な角度を算出することが出来ないという問題があった。
【０００５】
本発明は斯かる事情に鑑みてなされたものである。その目的は、針の形状に応じて、適切な角度を算出することが可能な算出装置等を提供することにある。
【課題を解決するための手段】
【０００６】
本願に開示する算出装置は、取得した画像からメータの針が指す角度を算出する算出装置において、取得した画像に含まれる前記針の画像のエッジを検出する検出部と、該検出部により検出した前記エッジに対しハフ変換を行い複数の線を抽出する抽出部と、該抽出部により抽出した前記複数の線に基づき、針の角度を算出する算出部とを備える。
【発明の効果】
【０００７】
当該装置の一観点によれば、針の形状に応じて、適切な角度を算出することが可能となる。
【図面の簡単な説明】
【０００８】
【図１】算出システムの概要を示す模式図である。
【図２】取り込み画像のイメージを示す説明図である。
【図３】算出装置のハードウェア群を示す説明図である。
【図４】他の形態に係る算出装置のハードウェア群を示すブロック図である。
【図５】ハフ変換後のイメージを示す説明図である。
【図６】角度算出処理の手順を示すフローチャートである。
【図７】角度算出処理の手順を示すフローチャートである。
【図８】線分を示す説明図である。
【図９】角度算出処理の手順を示すフローチャートである。
【図１０】角度算出処理の手順を示すフローチャートである。
【図１１】抽出した複数の直線を示す説明図である。
【図１２】角度算出処理の手順を示すフローチャートである。
【図１３】交点及び領域を示す説明図である。
【図１４】角度算出処理の手順を示すフローチャートである。
【図１５】角度の分類手順を示す説明図である。
【図１６】角度選択処理の手順を示すフローチャートである。
【図１７】角度の除去処理を示す説明図である。
【図１８】角度除去処理の手順を示すフローチャートである。
【図１９】角度除去処理の手順を示すフローチャートである。
【図２０】角度除去の手順を示す説明図である。
【図２１】削除処理の手順を示すフローチャートである。
【図２２】削除処理の手順を示すフローチャートである。
【図２３】針画像の外接矩形を示す説明図である。
【図２４】第２ノイズ判定処理の手順を示すフローチャートである。
【図２５】実施の形態９に係るコンピュータのハードウェア群を示すブロック図である。
【発明を実施するための形態】
【０００９】
実施の形態１
以下実施の形態を、図面を参照して説明する。図１は算出システムの概要を示す模式図である。算出システムは、撮像装置２、算出装置１及び情報処理装置３等を含む。撮像装置２は工場または発電所等の施設に設置される油圧または電圧等を表示するメータを撮像する。撮像した画像データは算出装置１へ出力される。算出装置１はインターネットまたは携帯電話網等の通信網Ｎを介して情報処理装置３と接続されている。算出装置１と情報処理装置３とはＨＴＴＰ（HyperText Transfer Protocol）等により情報を送受信する。情報処理装置３は例えば、パーソナルコンピュータ、ＰＤＡ（Personal Digital Assistance）、または、携帯電話機等である。
【００１０】
算出装置１は撮像した画像を取り込みメータ内の針が指す角度を算出する。図２は取り込み画像のイメージを示す説明図である。ハッチングで示す５Ａが針の画像（以下、針画像５Ａという）であり、基準点（以下、中心点５０という）を中心に時計方向、または、半時計方向に回転する。針の形状は例えば三角形、三角錘または先端が丸みを帯びた三角形等である。本実施形態では針の形状が三角形であるものとして説明する。
【００１１】
算出装置１はエッジ検出を行い、針画像５Ａのエッジを検出する。算出装置１は検出したエッジに対しハフ変換を行い、複数の線５１、５２（以下場合により、線５、直線５、線分５で代表する）を抽出する。本実施形態では画面の左上を原点座標とし、右へ向う方向をＸ軸正方向、下へ向かう方向をＹ軸正方向であるものとして説明する。線５１の角度はＹ軸正方向を０度とし、時計進行方向を正とした場合に、θ１となる。なお、角度の定義はあくまで一例でありこれに限るものではない。また、線５２の角度はθ２となる。算出装置１は例えば線５１及び線５２がなす角度θ１とθ２との平均角度を針画像５Ａが指す角度として算出すれば良い。
【００１２】
算出装置１は算出した角度を情報処理装置３へ、通信網Ｎを介して送信する。なお、算出装置１は角度に対応する計量値（油圧または電圧値）を情報処理装置３へ送信しても良い。また、算出装置１は角度または計量値が所定の閾値を超えた場合にのみ、角度、計量値または警告情報を情報処理装置３へ送信しても良い。本実施の形態においては算出装置１がメータの針の角度を算出する例を挙げて説明するがこれに限るものではない。例えば、撮像装置２は画像データを、通信網Ｎを介して情報処理装置３へ出力する。情報処理装置３は、算出装置１として針の角度を算出しても良い。以下に角度算出処理の詳細を説明する。
【００１３】
図３は算出装置１のハードウェア群を示す説明図である。算出装置１は例えば、パーソナルコンピュータ、制御端末装置、携帯電話機またはＰＤＡ等である。本実施形態では算出装置１をパーソナルコンピュータ（以下、コンピュータ１という）であるものとして説明する。コンピュータ１は制御部としてのＣＰＵ（Central Processing Unit）１１、ＲＡＭ（Random Access Memory）１２、入力部１３、表示部１４、記憶部１５、及び、通信部１６等を含む。
【００１４】
ＣＰＵ１１は、バス１７を介してハードウェア各部と接続されている。ＣＰＵ１１はハードウェア各部を制御すると共に、記憶部１５に格納された制御プログラム１５Ｐに従って、種々のソフトウェア機能を実行する。コンピュータ１には、ＵＳＢ（Universal Serial Bus）等の接続部を介して撮像装置２が接続されている。撮像装置２はデジタルカメラまたはデジタルビデオカメラ等である。撮像装置２から取り込まれた針を含むメータの画像はデジタル化され、デジタル化された画像データはコンピュータ１へ出力される。ＣＰＵ１１は撮像装置２から出力された画像データをＲＡＭ１２に記憶する。なお、本実施形態においては、撮像装置２をコンピュータ１へ接続する例を挙げたがこれに限るものではない。コンピュータ１に内蔵されたカメラを用いても良い。
【００１５】
入力部１３は電源スイッチ、または、音量若しくは画質調整を行う操作ボタン等の入力デバイスであり、受け付けた操作情報をＣＰＵ１１へ出力する。表示部１４は液晶ディスプレイまたは有機ＥＬ（electroluminescence）ディスプレイ等であり、ＣＰＵ１１の指示に従い各種情報を表示する。ＲＡＭ１２は例えばＳＲＡＭ（Static ＲＡＭ）、ＤＲＡＭ（Dynamic ＲＡＭ）、フラッシュメモリ等である。ＲＡＭ１２は、記憶部としても機能し、ＣＰＵ１１による各種プログラムの実行時に発生する種々のデータを一時的に記憶する。
【００１６】
通信部１６は無線ＬＡＮカードまたは携帯電話用通信モジュール等であり、通信網Ｎを介して情報処理装置３との間で情報の送受信を行う。記憶部１５は例えば、ハードディスクまたは大容量フラッシュメモリ等である。記憶部１５は上述した制御プログラム１５Ｐの他、画像処理に用いる各種閾値を記憶した閾値ファイル１５１を記憶している。なお閾値ファイル１５１に記憶した各種閾値は、入力部１３から適宜の値を入力することができる。ＣＰＵ１１は入力部１３から各項目に対する閾値が入力された場合、項目に対応付けて閾値ファイル１５１に記憶する。ＣＰＵ１１は記憶部１５に記憶した制御プログラム１５Ｐを実行することにより、後述する検出部、抽出部、または算出部として機能する。本実施形態においてはＣＰＵ１１が制御プログラム１５Ｐに従い、ソフトウェア処理を実行する例を挙げて説明するがこれに限るものではない。制御プログラム１５Ｐに記述した機能を実行するＬＳＩ（Large-Scale Integration）等のハードウェアにより実行しても良い。
【００１７】
図４は他の形態に係る算出装置１のハードウェア群を示すブロック図である。算出装置１は制御部１００、取得部１０１、検出部１０２、抽出部１０３及び算出部１０４等を含む。制御部１００はマイクロコンピュータ等であり、ＬＳＩ等の取得部１０１、検出部１０２、抽出部１０３及び算出部１０４等を制御する。取得部１０１は撮像装置２から画像データを取得する。取得部１０１は画像データを検出部１０２へ出力する。検出部１０２は画像からエッジを検出する。検出部１０２は検出したエッジを抽出部１０３へ出力する。抽出部１０３はハフ変換を行い複数の線５を抽出する。抽出部１０３は抽出した複数の線５を算出部１０４へ出力する。算出部１０４は抽出した複数の線５に基づき、針の角度を算出する。以下では再び図３を用いてソフトウェアによる処理を説明する。
【００１８】
ＣＰＵ１１はＲＡＭ１２に記憶した画像データを読み出し、エッジ検出を行う。エッジ検出は例えばソーベル（Sobel）、ハイパス、プレウィットまたはラプラシアン等の微分フィルタを用いる。ＣＰＵ１１は検出したエッジに対しハフ変換を行い、複数の直線５を抽出する。なお、ＣＰＵ１１は、閾値の設定に応じて適宜の本数の直線５を抽出することができる。例えば２０本程度を抽出するようにすればよい。
【００１９】
ハフ変換は、画像データから直線５または円弧の検出を行う技術である。例えば、点Ｐ1（ｘ1，ｙ1）を通る任意の直線５は、その直線５に対する原点からの垂線の長さρと、その垂線の成す角度θを用いて、以下の式（１）によって表すことができる。
ρ＝ｘ・cosθ＋ｙ・sinθ    （１）
ここで、直線５上に、Ｐ2（ｘ2，ｙ2）で示す別の点がある場合、点Ｐ2に対するθとρは、点Ｐ1に対するものと同じになる。したがって、θとρが同じである点をカウントし、その個数が所定の閾値以上であれば、そこに直線５が存在する、と導出することができる。
【００２０】
なお、直線５に代えて複数の線分５を抽出しても良い。線分５の抽出はProbabilisticハフ変換を用いればよい。Probabilisticハフ変換は「Randomized or Probabilistic Hough Transform: United Performance Evaluation; Nahum Kiryati他, Pattern Recognition Letters, 2 May 2000」及び「A Probabilistic Hough Transform; N. Kiryati他, Pattern Recognition, Vol. 24, No.4, pp.303-316, 1991」に記載されている。
【００２１】
図５はハフ変換後のイメージを示す説明図である。図５の例ではハフ変換により直線５１乃至５６が抽出された例を示す。点線で示す三角が針画像５Ａである。ＣＰＵ１１はハフ変換により得られた直線５から、各直線５１乃至５６に対応する、角度θ１乃至θ６を算出する。ＣＰＵ１１は角度算出前に第１ノイズ判定処理を行う。ＣＰＵ１１は第１ノイズ判定処理として複数の角度に対する分散を求める。ＣＰＵ１１は閾値ファイル１５１から閾値を読み出す。ＣＰＵ１１は角度の分散が閾値を超える場合、第１警告情報を出力する。第１警告情報は適切な角度を算出することが困難な場合に出力される情報である。例えば、「ノイズの影響により測定ができません。」等のテキストデータまたは音声データを、通信部１６を介して情報処理装置３へ出力する。
【００２２】
その他、抽出した線５が所定数よりも少ない場合、例えば１本以下の場合も、ＣＰＵ１１は第１警告情報を出力しても良い。また、ＣＰＵ１１は抽出した線５が所定数以上（例えば、３０本以上）の場合、第１警告情報を出力しても良い。この場合例えば、「メータが曇っているため、または、汚れているため測定ができません」等のテキストデータまたは音声データを、通信部１６を介して情報処理装置３へ出力する。なお、第１ノイズ判定処理は必ずしも実行する必要はない。
【００２３】
第１ノイズ判定処理の後、ＣＰＵ１１は線５または角度の除去処理を行う。ＣＰＵ１１はノイズである可能性のある線５を除去する処理を行う。図５の例では、線５１〜線５４とは離れた位置にある線５５及び線５６がノイズである可能性が高い。ＣＰＵ１１は中心点５０から線５１〜５６へ向かう法線の長さが所定距離以上の線５を除去する。以下では法線の長さを法線長Ｌという。針の回転中心となる中心点５０の座標は予め記憶部１５に記憶しておけばよい。ユーザは入力部１３から中心点５０の座標を入力することができる。ＣＰＵ１１は入力部１３から入力された中心点５０の座標を記憶部１５に記憶する。なお、ＣＰＵ１１は画像処理により中心点５０の座標を算出しても良い。メータの周囲には弧状の目盛りが存在する。ＣＰＵ１１はエッジ検出により目盛りの円弧線を抽出する。ＣＰＵ１１は円弧線から等距離にある画素を算出する。ＣＰＵ１１は算出した画素の座標を中心点５０としても良い。ＣＰＵ１１は算出した中心点５０をＲＡＭ１２または記憶部１５に記憶しておき、必要に応じて読み出す。
【００２４】
ＣＰＵ１１はハフ変換により得られた直線５１〜５６と中心点５０との法線長Ｌを、それぞれ算出する。なお、直線５を（aX+bY+c）=0、中心点５０の座標を（x1,y1）とした場合、法線長Ｌは、以下の式（２）で表すことができる。
【００２５】
【数１】
0005609183.tif 000002
【００２６】
ＣＰＵ１１は閾値ファイル１５１に記憶された閾値を読み出す。ＣＰＵ１１は各直線５１〜５６に対する法線長Ｌの内、閾値以上の法線長Ｌを有する直線５を除去する。ＣＰＵ１１は法線長Ｌが閾値を超えない直線５を抽出し、以下の角度算出処理を行う。なお、本実施形態においては説明を容易にするために閾値以上の法線長Ｌを除去したがこれに限るものではない。例えば、法線長Ｌの平均長を求め、ＣＰＵ１１は法線長Ｌが平均長よりも所定長以上の法線長Ｌを除去しても良い。なお、以上述べた除去処理は必ずしも実行する必要はない。
【００２７】
ＣＰＵ１１は抽出した線５の角度に基づき、針の角度を算出する。ＣＰＵ１１は抽出した線５の平均角度を針の角度として算出する。その他、ＣＰＵ１１は複数の線５の角度を、小さいものから順にソートし、中央の角度を針の角度として決定しても良い。なお、線５の角度が偶数の場合、最小角度または最大角度のいずれか一つを削除する。ＣＰＵ１１は奇数とした上で中央の角度を針の角度とすればよい。以下本実施形態では、平均角度を用いる例を挙げて説明する。
【００２８】
図６及び図７は角度算出処理の手順を示すフローチャートである。ＣＰＵ１１は撮像装置２から画像データを取得する（ステップＳ６１）。ＣＰＵ１１は取得した画像データをＲＡＭ１２に記憶する（ステップＳ６２）。ＣＰＵ１１は画像データに対しエッジ検出を行う（ステップＳ６３）。ＣＰＵ１１はハフ変換により複数の直線５を抽出する（ステップＳ６４）。ＣＰＵ１１は各直線５のＹ軸に対する角度を算出する（ステップＳ６５）。ＣＰＵ１１は直線５毎に算出した角度をＲＡＭ１２に記憶する（ステップＳ６６）。
【００２９】
ＣＰＵ１１はＲＡＭ１２に記憶した角度の分散を算出する（ステップＳ６７）。ＣＰＵ１１は閾値ファイル１５１から、閾値を読み出す（ステップＳ６８）。ＣＰＵ１１は分散が閾値を超えるか否かを判断する（ステップＳ６９）。ＣＰＵ１１は分散が閾値を超えると判断した場合（ステップＳ６９でＹＥＳ）、記憶部１５から第１警告情報を読み出す（ステップＳ７１）。ＣＰＵ１１は第１警告情報を、通信部１６を介して情報処理装置３へ出力する（ステップＳ７２）。
【００３０】
ＣＰＵ１１は、分散が閾値を超えないと判断した場合（ステップＳ６９でＮＯ）、記憶部１５から中心点５０の座標を読み出す（ステップＳ７３）。ＣＰＵ１１はステップＳ６６で記憶した直線５の直線式を読み出す（ステップＳ７４）。ＣＰＵ１１は式（２）を読み出し、中心点５０の座標及び直線式に基づき、中心点５０から直線５までの法線長Ｌを算出する（ステップＳ７５）。ＣＰＵ１１は記憶部１５から法線長Ｌ用の閾値を読み出す（ステップＳ７６）。
【００３１】
ＣＰＵ１１は法線長Ｌが閾値以上であるか否かを判断する（ステップＳ７７）。ＣＰＵ１１は法線長Ｌが閾値以上であると判断した場合（ステップＳ７７でＹＥＳ）、当該法線長Ｌに係る直線５及び角度をＲＡＭ１２から削除する（ステップＳ７８）。ＣＰＵ１１は法線長Ｌが閾値以上でないと判断した場合（ステップＳ７７でＮＯ）、ステップＳ７８の処理をスキップする。ステップＳ６６でＲＡＭ１２に記憶した全ての直線５について以上の処理を終了したか否かを判断する（ステップＳ７９）。
【００３２】
ＣＰＵ１１は全ての直線５について処理を終了していないと判断した場合（ステップＳ７９でＮＯ）、ＲＡＭ１２から未処理の他の直線５に係る直線式を読み出す（ステップＳ７１０）。その後ＣＰＵ１１は処理をステップＳ７５へ戻す。以上の処理を繰り返すことにより、全ての直線５についての除去処理が行われる。ＣＰＵ１１は全ての直線５について処理を終了したと判断した場合（ステップＳ７９でＹＥＳ）、ＲＡＭ１２から角度を読み出す（ステップＳ７１１）。ＣＰＵ１１は平均角度を算出する（ステップＳ７１２）。ＣＰＵ１１は算出した平均角度を、通信部１６を介して情報処理装置３へ出力する（ステップＳ７１３）。これにより、針の形状が先端に向けてテーパ状となるものであっても、ノイズを除去しつつ適切な角度を求めることが可能となる。
【００３３】
実施の形態２
実施の形態２は線分５の端点を用いる形態に関する。図８は線分５を示す説明図である。ＣＰＵ１１はProbabilisticハフ変換により複数の線分５１〜５４を抽出する。線分５１の両側の端点は５１Ａ、５１Ｂで示している。同様に、線分５２の両端は５２Ａ、５２Ｂ、線分５３の両端は５３Ａ、５３Ｂ、線分５４の両端は５４Ａ、５４Ｂで示す。ＣＰＵ１１は線分５の端点の座標を読み出す。ＣＰＵ１１は線分５の端点の座標の内、中心点５０からの距離が長い方の端点の座標を読み出す。図８の例では、線分５１の端点である５１Ａ、線分５２の端点である５２Ａ、線分５３の端点である５３Ａ、線分５４の端点である５４Ａの座標が読み出される。
【００３４】
ＣＰＵ１１は各線分５の端点の座標と中心点５０の座標との距離が、長いものから順に所定数の端点を抽出する。この所定数は例えば２とすれば良い。図８の例では中心点５０から最も離れた位置にある線分５１の端点である５１Ａと、線分５２の端点である５２Ａとが抽出される。ＣＰＵ１１はこれら抽出した端点の座標の平均値を算出する。図８の例では、５１２Ａが平均座標となる。ＣＰＵ１１はこの算出した平均座標と、中心点５０の座標とを通る直線５の角度を、針の角度として算出する。図８の例では平均座標である５１２Ａと、中心点５０とを通る点線で示す直線５がなす角θを針の角度としている。
【００３５】
図９及び図１０は角度算出処理の手順を示すフローチャートである。ＣＰＵ１１はProbabilisticハフ変換により複数の線分５を抽出する（ステップＳ９１）。ＣＰＵ１１は抽出した各線分５の両端点の座標をＲＡＭ１２に記憶する（ステップＳ９２）。なお、実施の形態１で述べたステップＳ６９の分散を用いた処理、または、ステップＳ７７の法線長Ｌを用いた処理に対する説明は省略する。ＣＰＵ１１は中心点５０の座標を記憶部１５から読み出す（ステップＳ９３）。
【００３６】
ＣＰＵ１１は線分５の両端の座標をＲＡＭ１２から読み出す（ステップＳ９４）。ＣＰＵ１１は中心点５０の座標と、線分５の両端点との距離を算出する（ステップＳ９５）。ＣＰＵ１１は距離が長い方の端点の座標、長い方の距離及び当該座標に係る線分５を対応付けてＲＡＭ１２に記憶する（ステップＳ９６）。ＣＰＵ１１は以上の処理を抽出した全ての線分５に対して終了したか否かを判断する（ステップＳ９７）。ＣＰＵ１１は処理を終了していないと判断した場合（ステップＳ９７でＮＯ）、他の線分５の両端の座標を読み出す（ステップＳ９８）。ＣＰＵ１１はその後処理をステップＳ９５へ戻す。以上の処理により、中心点５０と、各線分５の距離が長い方の端点との距離が算出される。
【００３７】
ＣＰＵ１１は全ての線分５について処理を終了したと判断した場合（ステップＳ９７でＹＥＳ）、距離が長い座標順にソートする（ステップＳ９９）。ＣＰＵ１１は記憶部１５に記憶した所定数を読み出す（ステップＳ１０１）。ＣＰＵ１１は距離が長い座標を所定数抽出する（ステップＳ１０２）。ＣＰＵ１１は抽出した座標の平均座標を算出する（ステップＳ１０３）。ＣＰＵ１１は平均座標と中心点５０の座標とを結ぶ直線式を算出する（ステップＳ１０４）。
【００３８】
ＣＰＵ１１は求めた直線式のＹ軸に対する角度を算出する（ステップＳ１０５）。ＣＰＵ１１は算出した角度を針の角度として、通信部１６を介して、情報処理装置３へ出力する（ステップＳ１０６）。これにより、中心点５０の座標と、平均座標とを結ぶ線５上に存在すると仮定される針先端がなす角度を算出することが可能となる。
【００３９】
本実施の形態２は以上の如きであり、その他は実施の形態１と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
【００４０】
実施の形態３
実施の形態３は抽出した直線５の交点座標と中心点５０とを結ぶ直線５がなす角度を利用する形態に関する。図１１は抽出した複数の直線５を示す説明図である。ＣＰＵ１１はハフ変換により抽出した複数の直線５の交点を抽出する。図１１の例では複数の直線５１乃至５４の交点６１乃至６５（以下、場合により６で代表する。）が抽出されている。ＣＰＵ１１は抽出した複数の交点６の平均座標または重心座標を算出する。本実施形態では交点６の平均座標６６を用いる例を説明する。ＣＰＵ１１は平均座標６６と中心点５０の座標とを通る直線５の角度θ１を算出する。
【００４１】
図１２は角度算出処理の手順を示すフローチャートである。ＣＰＵ１１はハフ変換により複数の直線５を抽出する（ステップＳ１２１）。ＣＰＵ１１は複数の直線５がなす交点６の座標を抽出し、抽出した交点６の座標をＲＡＭ１２に記憶する（ステップＳ１２２）。ＣＰＵ１１は交点６の座標の平均座標６６を算出する（ステップＳ１２３）。なお、ＣＰＵ１１は交点６が１つしかない場合は、当該交点６の座標を平均座標６６とすれば良い。ＣＰＵ１１は中心点５０の座標を記憶部１５から読み出す（ステップＳ１２４）。
【００４２】
ＣＰＵ１１は平均座標６６と中心点５０の座標とを結ぶ直線式を算出する（ステップＳ１２５）。ＣＰＵ１１は当該直線式のＹ軸に対する角度を算出する（ステップＳ１２６）。ＣＰＵ１１は算出した角度を、通信部１６を介して情報処理装置３へ出力する（ステップＳ１２７）。
【００４３】
図１３は交点６及び領域を示す説明図である。ＣＰＵ１１は複数の交点６の中から、密度が高い領域に属する複数の交点６を抽出しても良い。ＣＰＵ１１は例えば、Ｘ軸方向１００画素、Ｙ軸方向１００画素とする複数の領域７１乃至７８（以下、場合により７で代表する。）を生成する。ＣＰＵ１１は各領域７に属する交点６の数を計数する。図１３の例では、領域７１に交点６１乃至６４が４つ、領域７２に交点６５が１つ、領域７４に交点６８が１つ、領域７５に交点６７が１つ存在する。ＣＰＵ１１は領域７あたりの数が最も大きい領域７１を選択する。ＣＰＵ１１は領域７１に存在する交点６１乃至６４を抽出する。
【００４４】
なお、領域７の画素数は一例であり、１００に限るものではない。複数の領域７間の密度を算出できない場合、領域を１００よりも小さく、または、大きくしても良い。ＣＰＵ１１は抽出した交点６１乃至６４の平均座標６６を算出する。その後、ＣＰＵ１１は中心点５０の座標と平均座標６６とを通る直線５がなす角度を算出する。
【００４５】
図１４は角度算出処理の手順を示すフローチャートである。ＣＰＵ１１はハフ変換により複数の直線５を抽出する（ステップＳ１４１）。ＣＰＵ１１は複数の直線５がなす交点６の座標を抽出し、抽出した交点６の座標をＲＡＭ１２に記憶する（ステップＳ１４２）。ＣＰＵ１１は記憶部１５から領域７を形成するＸ軸、Ｙ軸方向それぞれの画素数を読み出す。ＣＰＵ１１は読み出した画素数に基づき、領域７を設定する（ステップＳ１４３）。ＣＰＵ１１は各領域７内に属する交点６の数を計数する（ステップＳ１４４）。
【００４６】
ＣＰＵ１１は最も交点６の数が多い領域７を選択する（ステップＳ１４５）。ＣＰＵ１１は選択した領域７内の交点６を抽出する（ステップＳ１４６）。ＣＰＵ１１は抽出した交点６の座標の平均座標６６を算出する（ステップＳ１４７）。なお、ＣＰＵ１１は平均座標６６に代えて重心座標を算出しても良い。また、ＣＰＵ１１は交点６が１つしかない場合は、当該交点６の座標を平均座標６６とすれば良い。ＣＰＵ１１は中心点５０の座標を記憶部１５から読み出す（ステップＳ１４８）。
【００４７】
ＣＰＵ１１は平均座標６６と中心点５０の座標とを結ぶ直線式を算出する（ステップＳ１４９）。ＣＰＵ１１は当該直線式のＹ軸に対する角度を算出する（ステップＳ１４１０）。ＣＰＵ１１は算出した角度を、通信部１６を介して情報処理装置３へ出力する（ステップＳ１４１１）。これにより、直線５の交点６を活用してより正確な針の角度を算出することが可能となる。
【００４８】
本実施の形態３は以上の如きであり、その他は実施の形態１及び２と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
【００４９】
実施の形態４
実施の形態４はクラスター分析を行い、角度を決定する形態に関する。ＣＰＵ１１は複数の線５の角度をクラスター分析により、複数の群に分類する。図１５は角度の分類手順を示す説明図である。図１５Ａは複数の角度を複数の群に分類した説明図である。図１５Ｂは両端の群を除去した後の群を示す説明図である。図１５Ａに示すように、複数の線５に対応する角度として、10°,21°,22°,24°,25°,29°,30°,32°,33°及び40°が算出されたとする。ＣＰＵ１１はクラスター分析を行い、複数の群に分類する。図１５の例では６つの群に分類されている。なお、クラスター分析は階層的クラスター分析として、重心法、最短距離法、最長距離法、群間平均法またはWard’sクラスター法を用いればよい。また非階層的クラスター分析としてＫ平均法を用いればよい。本実施形態ではＫ平均法を用いる例を挙げて説明する。
【００５０】
ＣＰＵ１１は各群の平均値または中央値を算出する。本実施形態では平均値を、用いる例を挙げて説明する。ＣＰＵ１１は最も小さい平均値をもつ群、及び、最も大きい平均値をもつ群を選択する。図１５Ａの例では、１０°の群と、４０°の群とが選択される。ＣＰＵ１１は選択した一の群の平均値と、選択した他の群の平均値との平均を針の角度として決定する。なお、ＣＰＵ１１は最も小さい平均値をもつ群の最小の角度と、最も大きい平均値をもつ群の最大の角度との平均を針の角度としても良い。また、ＣＰＵ１１は所定の閾値を超える群を削除しても良い。ＣＰＵ１１は各群の平均値間の差の絶対値を算出する。ＣＰＵ１１は差の絶対値が記憶部１５に記憶した閾値（例えば５°）を超える場合、超える群を削除する。
【００５１】
図１５Ｂの例では、閾値を超える１０°の群と、４０°の群とが削除されている。この場合、ＣＰＵ１１は削除後の群の中から、最も小さい平均値をもつ群、及び、最も大きい平均値をもつ群を選択する。図１５Ｂの例では、２１°及び２２°を含む群と、３２°及び３３°を含む群とが選択される。ＣＰＵ１１は選択した一の群の平均値と、選択した他の群の平均値との平均を針の角度として決定する。なお、当該除去処理は必ずしも実行する必要はない。
【００５２】
図１６は角度選択処理の手順を示すフローチャートである。ＣＰＵ１１は複数の線５の角度を算出する（ステップＳ１６１）。ＣＰＵ１１は複数の角度をＫ平均法により複数の群に分類する（ステップＳ１６２）。ＣＰＵ１１は各群の平均角度を算出する（ステップＳ１６３）。ＣＰＵ１１は平均角度間の差の絶対値を算出する（ステップＳ１６４）。ＣＰＵ１１は記憶部１５から閾値を読み出す（ステップＳ１６５）。ＣＰＵ１１は差の絶対値が閾値を超える平均角度を有する群を削除する（ステップＳ１６６）。
【００５３】
ＣＰＵ１１は残った群の中から、平均角度が最大の群と、平均角度が最小の群とを選択する（ステップＳ１６７）。ＣＰＵ１１は最大の平均角度と、最小の平均角度との平均角度を算出する（ステップＳ１６８）。ＣＰＵ１１は算出した角度を、通信部１６を介して情報処理装置３へ出力する（ステップＳ１６９）。これにより、より正確な針の角度を算出することが可能となる。
【００５４】
本実施の形態４は以上の如きであり、その他は実施の形態１乃至３と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
【００５５】
実施の形態５
実施の形態５はクラスター分析を用いた角度の除去処理に関する。ＣＰＵ１１はステップＳ７３〜Ｓ７１０で述べた除去処理に代えて、以下の処理を実行しても良い。図１７は角度の除去処理を示す説明図である。図１７Ａは算出した角度を示す説明図である。図１７Ａに示すように、複数の線５に対応する角度として、10°,21°,22°,24°,25°,29°,30°,32°,33°及び40°が算出されたとする。ＣＰＵ１１はＫ平均法により、角度を複数の群に分類する。図１７Ｂは角度分類後の状態を示す説明図である。図１７Ｂの例では６つの群に分類されている。ＣＰＵ１１は各群間の第１特徴値を算出する。
【００５６】
第１特徴値は、各群の平均角度の差の絶対値、または、群間で隣り合う角度の差の絶対値とすれば良い。例えば、１０°の群と、２１°及び２２°の群との第１特徴値は、平均角度の差の絶対値の場合、１５．７５°となる。また群間で隣り合う角度の差の絶対値の場合、２１°−１０°で１１°となる。また、例えば、２１°及び２２°の群と、２４°及び２５°の群との第１特徴値は、平均角度の差の絶対値の場合、２３°となる。また群間で隣り合う角度の差の絶対値の場合、２４°−２２°で２°となる。本実施形態では、各群間で隣り合う角度の差の絶対値を、第１特徴値であるものとして説明する。
【００５７】
ＣＰＵ１１は記憶部１５から第１閾値を読み出す。第１閾値は例えば３°である。ＣＰＵ１１は第１特徴値に基づき複数の群を組み合わせる。ＣＰＵ１１は第１特徴値が第１閾値以下の群同士を組み合わせる。図１７Ｃは組み合わせ後の群を示す説明図である。図１７Ｃの例では、第１特徴値が第１閾値以下の２１°及び２２°の群と、２４°及び２５°の群とが組み合わされ新たな群を形成する。また、第１特徴値が、第１閾値以下の２９°及び３０°の群と、３２°及び３３°の群とが組み合わされ新たな群を形成する。一方、第１特徴値が第１閾値以下でない１０°の群、及び、４０°の群は元の群のままとなる。これにより、群は４つの新たな群となる。
【００５８】
ＣＰＵ１１は新たな群間の第２特徴値を算出する。第２特徴値は第１特徴値と同じく、各群の平均角度の差の絶対値、または、群間で隣り合う角度の差の絶対値とすれば良い。本実施形態では群間で隣り合う角度の差の絶対値であるものとして説明する。１０°の群と、２１°、２２°、２４°及び２５°の群との第２特徴値は、２１°−１０°で１１°となる。２１°、２２°、２４°及び２５°の群と、２９°、３０°、３２°及び３３°の群との第２特徴値は、２９°−２５°で４°となる。２９°、３０°、３２°及び３３°の群と、４０°の群との第２特徴値は、４０°−３３°で７°となる。
【００５９】
ＣＰＵ１１は記憶部１５から第２閾値を読み出す。この第２閾値は例えば、６°である。ＣＰＵ１１は第２閾値以上の第２特徴値のみを有する群を選択する。図１７の例では、第２閾値以上の第２特徴値のみを有する１０°の群及び４０°の群が選択される。一方、２１°、２２°、２４°及び２５°の群と、２９°、３０°、３２°及び３３°の群との群は、共に、第２閾値よりも小さい第２特徴値４°をも有するため、選択されない。ＣＰＵ１１は選択された群内の角度を削除する。図１７Ｄは残った角度を示す説明図である。１０°及び４０°は削除されることになる。
【００６０】
図１８は角度除去処理の手順を示すフローチャートである。ＣＰＵ１１は複数の線５の角度を算出する（ステップＳ１８１）。ＣＰＵ１１は複数の角度をＫ平均法により複数の群に分類する（ステップＳ１８２）。ＣＰＵ１１は各群間の第１特徴値を算出する（ステップＳ１８３）。ＣＰＵ１１は記憶部１５から第１閾値を読み出す（ステップＳ１８４）。ＣＰＵ１１は第１特徴値が第１閾値以下の群同士を組み合わせる（ステップＳ１８５）。
【００６１】
ＣＰＵ１１は組み合わせ後の群間の第２特徴値を算出する（ステップＳ１８６）。ＣＰＵ１１は記憶部１５から第２閾値を読み出す（ステップＳ１８７）。ＣＰＵ１１は第２閾値以上の第２特徴値のみを有する群を選択する（ステップＳ１８８）。ＣＰＵ１１は選択した群の角度を削除する（ステップＳ１８９）。ＣＰＵ１１は残った群の角度をＲＡＭ１２に記憶する（ステップＳ１８１０）。以降は他の実施形態で述べた針の角度算出処理を実行すればよい。これにより、角度の集中度を考慮して不要な角度を除去でき、精度を向上させることが可能となる。
【００６２】
本実施の形態５は以上の如きであり、その他は実施の形態１乃至４と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
【００６３】
実施の形態６
実施の形態６は平均角度または中央の角度を用いて角度を除去する形態に関する。ＣＰＵ１１は複数の線５の角度の平均角度を算出、または中央の角度を抽出する。本実施形態では平均角度を用いる例を挙げて説明する。ＣＰＵ１１は記憶部１５から閾値を読み出す。ＣＰＵ１１は各角度と平均角度との差の絶対値が閾値を超えるものを除去する。
【００６４】
図１９は角度除去処理の手順を示すフローチャートである。ＣＰＵ１１は複数の線５の角度を算出する（ステップＳ１９１）。ＣＰＵ１１は複数の角度の平均角度を算出する（ステップＳ１９２）。ＣＰＵ１１はステップＳ１９１で算出した複数の角度から一の角度を読み出す（ステップＳ１９３）。ＣＰＵ１１は記憶部１５に記憶した第１閾値を読み出す（ステップＳ１９４）。ＣＰＵ１１はステップＳ１９３で読み出した角度と、ステップＳ１９２で算出した平均角度との差の絶対値が第１閾値を超えるか否かを判断する（ステップＳ１９５）。
【００６５】
ＣＰＵ１１は第１閾値を超えると判断した場合（ステップＳ１９５でＹＥＳ）、当該超える角度を削除する（ステップＳ１９６）。ＣＰＵ１１は第１閾値を超えないと判断した場合（ステップＳ１９５でＮＯ）、ステップＳ１９６の処理をスキップする。ＣＰＵ１１はステップＳ１９１で算出した全ての角度について処理を終了したか否かを判断する（ステップＳ１９７）。ＣＰＵ１１は全ての角度について処理を終了していないと判断した場合（ステップＳ１９７でＮＯ）、処理をステップＳ１９３へ戻す。ＣＰＵ１１は全ての角度について処理を終了したと判断した場合（ステップＳ１９７でＹＥＳ）、削除されていない残った角度をＲＡＭ１２に記憶する（ステップＳ１９８）。これによりノイズの可能性が高い確度を排除でき、精度を向上させることが可能となる。
【００６６】
本実施の形態６は以上の如きであり、その他は実施の形態１乃至５と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
【００６７】
実施の形態７
実施の形態７は最小角度または最大角度に着目して角度を除去する形態に関する。ＣＰＵ１１は複数の角度から最小角度を抽出する。また最小角度の次に大きい第２最小角度を抽出する。ＣＰＵ１１は第２最小角度と最小角度との差の絶対値が記憶部１５に記憶した第１閾値を超える場合、当該最小角度を除去する。図２０は角度除去の手順を示す説明図である。図２０Ａは除去前の角度を示す説明図である。複数の線５の角度として、10°,21°,22°,24°,25°,29°,30°,32°,33°及び40°が算出された。この場合、最小角度は１０°である。また第２最小角度は２１°である。差の絶対値は１１°である。第１閾値は例えば６°である。この場合最小角度である１０°は除去される。図２０Ｂは除去後の角度を示す説明図である。
【００６８】
ＣＰＵ１１は複数の角度から最大角度を抽出する。また最大角度の次に小さい第２最大角度を抽出する。ＣＰＵ１１は最大角度と第２最大角度との差の絶対値が記憶部１５に記憶した第１閾値を超える場合、当該最大角度を除去する。この場合、最大角度は４０°である。また第２最大角度は３３°である。差の絶対値は７°である。この場合最大角度である４０°は除去される。なお、本実施形態では最大角度及び最小角度の双方に着目し削除する形態を示すが、これに限るものではない。いずれか一方のみに着目しても良い。
【００６９】
図２１乃至２２は削除処理の手順を示すフローチャートである。ＣＰＵ１１は複数の線５の角度を算出する（ステップＳ２１１）。ＣＰＵ１１は複数の角度から最小角度を抽出する（ステップＳ２１２）。ＣＰＵ１１は最小角度の次に大きい第２最小角度を抽出する（ステップＳ２１３）。ＣＰＵ１１は第２最小角度と最小角度との差の絶対値を算出する（ステップＳ２１４）。ＣＰＵ１１は記憶部１５から第１閾値を読み出す（ステップＳ２１５）。ＣＰＵ１１は差の絶対値が第１閾値を超えるか否かを判断する（ステップＳ２１６）。
【００７０】
ＣＰＵ１１は差の絶対値が第１閾値を超えると判断した場合（ステップＳ２１６でＹＥＳ）、超える最小角度を削除する（ステップＳ２１７）。ＣＰＵ１１は差の絶対値が第１閾値を超えないと判断した場合（ステップＳ２１６でＮＯ）、ステップＳ２１７の処理をスキップする。ＣＰＵ１１は削除対象の最小角度がこれ以上存在しないかを判断する（ステップＳ２１８）。ＣＰＵ１１は削除対象の最小角度が存在すると判断した場合（ステップＳ２１８でＮＯ）、ステップＳ２１２へ移行する。ＣＰＵ１１は以上の処理を繰り返し行い、第２最小角度と最小角度との差が第１閾値を超える角度を削除していく。ＣＰＵ１１はこれ以上削除対象の最小角度が存在しないと判断した場合（ステップＳ２１８でＹＥＳ）、ステップＳ２１９へ移行する。
【００７１】
ＣＰＵ１１は複数の角度から最大角度を抽出する（ステップＳ２１９）。ＣＰＵ１１は最大角度の次に小さい第２最大角度を抽出する（ステップＳ２２１）。ＣＰＵ１１は最大角度と第２最大角度との差の絶対値を算出する（ステップＳ２２２）。ＣＰＵ１１は差の絶対値が第１閾値を超えるか否かを判断する（ステップＳ２２３）。
【００７２】
ＣＰＵ１１は差の絶対値が第１閾値を超えると判断した場合（ステップＳ２２３でＹＥＳ）、超える最大角度を削除する（ステップＳ２２４）。ＣＰＵ１１は差の絶対値が第１閾値を超えないと判断した場合（ステップＳ２２３でＮＯ）、ステップＳ２２４の処理をスキップする。ＣＰＵ１１は削除対象の最大角度がこれ以上存在しないかを判断する（ステップＳ２２５）。ＣＰＵ１１は削除対象の最大角度が存在すると判断した場合（ステップＳ２２５でＮＯ）、ステップＳ２１９へ移行する。ＣＰＵ１１は以上の処理を繰り返し行い、最大角度と第２最大角度との差が第１閾値を超える角度を削除していく。ＣＰＵ１１はこれ以上削除対象の最大角度が存在しないと判断した場合（ステップＳ２２５でＹＥＳ）、残った角度をＲＡＭ１２に記憶する（ステップＳ２２６）。なお、本実施形態では先に最小角度を削除する処理を行い、その後、最大角度を削除する例を挙げたがこれに限るものではない。反対に、先に最大角度を削除する処理を行い、その後、最小角度を削除する処理を実行しても良い。これによりノイズを含む可能性のある角度を除去でき、精度向上を図ることが可能となる。
【００７３】
本実施の形態７は以上の如きであり、その他は実施の形態１乃至６と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
【００７４】
実施の形態８
実施の形態８は第２ノイズ判定処理に関する。図２３は針画像５Ａの外接矩形を示す説明図である。ＣＰＵ１１はエッジ検出後の針画像５Ａの画素数を計数する。ＣＰＵ１１は画素数が記憶部１５に記憶した閾値を超える場合、撮像装置２とメータとの間に遮蔽物等のノイズが存在すると判断し、第２警告情報を出力する。なお、ＣＰＵ１１は画素数が記憶部１５に記憶した他の閾値以下の場合、第２警告情報を出力しても良い。その他、ＣＰＵ１１は外接矩形に基づきノイズの有無を判定しても良い。ＣＰＵ１１はエッジ検出後の針画像５ＡのＸ軸の最小値ｘ１、及び、最大値ｘ２を抽出する。同様に、ＣＰＵ１１はエッジ検出後の針画像５ＡのＹ軸の最小値ｙ１、及び、最大値ｙ２を抽出する。
【００７５】
ＣＰＵ１１は４つの座標（ｘ１，ｙ１）、（ｘ２、ｙ１）、（ｘ１、ｙ２）及び（ｘ２、ｙ２）により形成される外接矩形を決定する。図２３の例では８で示す点線の領域が外接矩形となる。ＣＰＵ１１は外接矩形８の対角線、長辺または短辺が記憶部１５に記憶した閾値を超える場合に、撮像装置２とメータとの間に遮蔽物等のノイズが存在すると判断し、第２警告情報を出力する。なお、ＣＰＵ１１は対角線、長辺または短辺が記憶部１５に記憶した他の閾値以下の場合に、第２警告情報を出力しても良い。本実施形態では説明を容易にするために、外接矩形８を用い、外接矩形８の対角線が閾値を超える場合に、ノイズが存在する例を挙げて説明する。
【００７６】
図２４は第２ノイズ判定処理の手順を示すフローチャートである。実施の形態１で述べたステップＳ６３とＳ６４との間に以下の処理を実行しても良い。ＣＰＵ１１はエッジ検出後の針画像５Ａを読み出す（ステップＳ２４１）。ＣＰＵ１１は針画像５ＡのＸ軸の最大座標、及び、最小座標を読み出す（ステップＳ２４２）。ＣＰＵ１１は針画像５ＡのＹ軸の最大座標、及び、最小座標を読み出す（ステップＳ２４３）。ＣＰＵ１１はＸ軸及びＹ軸の最大座標及び最小座標に基づき、外接矩形８の４つの座標を決定する（ステップＳ２４４）。
【００７７】
ＣＰＵ１１は４つの座標に基づいて対角線の長さを算出する（ステップＳ２４５）。ＣＰＵ１１は記憶部１５から閾値を読み出す（ステップＳ２４６）。ＣＰＵ１１はステップＳ２４５で算出した対角線の長さが閾値を超えるか否かを判断する（ステップＳ２４７）。ＣＰＵ１１は閾値を超えないと判断した場合（ステップＳ２４７でＮＯ）、ステップＳ６４へ移行し、上述した実施の形態で述べた処理を行う。一方、ＣＰＵ１１は対角線の長さが閾値を超えると判断した場合（ステップＳ２４７でＹＥＳ）、ステップＳ２４８へ移行する。
【００７８】
ＣＰＵ１１は記憶部１５から第２警告情報を読み出す。この第２警告情報は例えば、「撮像装置の前に遮蔽物がある可能性があります」、または、「画像をご確認ください」等のテキスト文、または、音声であればよい。ＣＰＵ１１は第２警告情報を、通信部１６を介して情報処理装置３へ出力する（ステップＳ２４８）。なお、ＣＰＵ１１は表示部１４に第２警告情報を表示、または、図示しないスピーカから第２警告情報を出力しても良い。ＣＰＵ１１はステップＳ６４へ移行することなく処理を終了する。これにより、ノイズを未然に除去でき、測定精度を向上させることが可能となる。
【００７９】
本実施の形態８は以上の如きであり、その他は実施の形態１乃至７と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
【００８０】
実施の形態９
図２５は実施の形態９に係るコンピュータ１のハードウェア群を示すブロック図である。実施の形態１乃至８に係るコンピュータ１を動作させるためのプログラムは、本実施の形態９のように、読み取り部（図示せず）にＵＳＢメモリ、ＣＤ−ＲＯＭ等の可搬型記録媒体１Ａを読み取らせて記憶部１５に記憶しても良い。また、当該プログラムは、インターネット等の通信網Ｎを介して接続される他のサーバコンピュータ（図示せず）からダウンロードすることも可能である。以下に、その内容を説明する。
【００８１】
図２５に示すコンピュータ１は、上述した各種ソフトウェア処理を実行するプログラムを、可搬型記録媒体１Ａによりまたは通信網Ｎを介して他のサーバコンピュータ（図示せず）からダウンロードする。当該プログラムは、制御プログラム１５Ｐとしてインストールされ、ＲＡＭ１２にロードして実行される。これにより、上述したコンピュータ１として機能する。
【００８２】
本実施の形態９は以上の如きであり、その他は実施の形態１乃至８と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
【００８３】
以上の実施の形態１乃至９を含む実施形態に関し、さらに以下の付記を開示する。
【００８４】
（付記１）
取得した画像からメータの針が指す角度を算出する算出装置において、
取得した画像からエッジを検出する検出部と、
該検出部により検出したエッジに対しハフ変換を行い複数の線を抽出する抽出部と、
該抽出部により抽出した複数の線に基づき、針の角度を算出する算出部と
を備える算出装置。
【００８５】
（付記２）
前記算出部は、
前記抽出部により抽出された複数の線の角度を算出する角度算出部と、
該角度算出部により算出した角度の平均値または中央値を針の角度として決定する決定部と
を含む付記１に記載の算出装置。
【００８６】
（付記３）
前記抽出部は、ハフ変換により複数の線分を抽出し、
前記算出部は、
基準点を記憶部から読み出す読み出し部と、
線分上の両端点の内、前記基準点からの距離が長い方の端点を読み出す点読み出し部と、
点読み出し部により読み出した各線分の端点と前記基準点との距離が長いものから順に所定数の端点を抽出する端点抽出部と、
該端点抽出部により抽出した端点と前記基準点とに基づき針の角度を算出する角度算出部と
を含む付記１に記載の算出装置。
【００８７】
（付記４）
前記抽出部は、ハフ変換により複数の直線を抽出し、
前記算出部は、
基準点を読み出す読み出し部と、
抽出した複数の直線の交点を抽出する交点抽出部と、
該交点抽出部により抽出した交点と前記基準点とに基づき針の角度を算出する角度算出部と
を含む付記１に記載の算出装置。
【００８８】
（付記５）
前記算出部は、
前記抽出部により抽出された複数の線の角度を算出する角度算出部と、
該角度算出部により算出した複数の角度を、クラスター分析を行って複数の群に分類する分類部と、
該分類部により分類した複数の群から２つの群を選択する選択部と、
該選択部により選択した２つの群に分類された角度に基づき針の角度を決定する角度決定部と
を含む付記１に記載の算出装置。
【００８９】
（付記６）
前記抽出部は、ハフ変換により複数の直線を抽出し、
基準点を読み出す読み出し部と、
前記抽出した複数の直線と前記基準点との距離を算出する距離算出部と、
該距離算出部により算出した距離が所定距離以上の直線を除去する除去部と
を備える付記１乃至５のいずれか一つに記載の算出装置。
【００９０】
（付記７）
前記抽出部により抽出された複数の線に対する複数の角度を、クラスター分析を行って複数の群に分類する分類部と、
該分類部により分類した各群の角度に基づき、各群間の第１特徴値を算出する第１特徴値算出部と、
該第１特徴値算出部により算出した第１特徴値に基づき、複数の群を組み合わせる組み合わせ部と、
該組み合わせ部により組み合わせた各群の角度に基づき、各群間の第２特徴値を算出する第２特徴値算出部と、
該第２特徴値算出部により算出した第２特徴値に基づき、削除対象となる群を選択する選択部と、
該選択部により選択された群の角度を除去する除去部と
を備える付記１乃至５のいずれか一つに記載の算出装置。
【００９１】
（付記８）
前記抽出部により抽出された複数の線の角度に基づき平均角度または中央の角度を決定する角度決定部と、
該角度決定部により決定した角度から閾値を超える角度を除去する除去部と
を備える付記１乃至５のいずれか一つに記載の算出装置。
【００９２】
（付記９）
前記抽出部により抽出された複数の線の角度の内、最小の角度を抽出する第１抽出部と、
該第１抽出部により抽出された最小の角度の次に大きい第２最小角度を抽出する第２抽出部と、
最小角度と第２最小角度との差が所定値を超える場合に、前記最小角度を除去する除去部と
を備える付記１乃至５のいずれか一つに記載の算出装置。
【００９３】
（付記１０）
前記抽出部により抽出された複数の線の角度の内、最大の角度を抽出する第１最大抽出部と、
該第１最大抽出部により抽出された最大の角度の次に小さい第２最大角度を抽出する第２最大抽出部と、
最大角度と第２最大角度との差が所定値を超える場合に、前記最大角度を除去する最大除去部と
を備える付記９に記載の算出装置。
【００９４】
（付記１１）
前記抽出部により抽出された複数の線の角度の分散を算出する分散算出部と、
該分散算出部により算出した分散が閾値を超える場合に、第１警告情報を出力する第１警告出力部と
を備える付記１乃至１０のいずれか一つに記載の算出装置。
【００９５】
（付記１２）
取り込んだ画像から針の画像を抽出する針抽出部と、
該針抽出部により抽出した針の画像の外接矩形を決定する矩形決定部と、
該矩形決定部により決定した外接矩形の対角線の長さまたは辺の長さが所定長を超える場合に、第２警告情報を出力する第２警告出力部と
を備える付記１乃至１１のいずれか一つに記載の算出装置。
【００９６】
（付記１３）
取得した画像からメータの針が指す角度を算出するコンピュータに用いるプログラムおいて、
コンピュータを、
取得した画像からエッジを検出する検出部と、
該検出部により検出したエッジに対しハフ変換を行い複数の線を抽出する抽出部と、
該抽出部により抽出した複数の線に基づき、針の角度を算出する算出部と
して機能させるプログラム。
【００９７】
（付記１４）
制御部を有する算出装置により、取得した画像からメータの針が指す角度を算出する算出方法において、
取得した画像から前記制御部によりエッジを検出し、
検出したエッジに対し前記制御部によりハフ変換を行い複数の線を抽出し、
抽出した複数の線に基づき、前記制御部により針の角度を算出する
算出方法。
【符号の説明】
【００９８】
１      算出装置、コンピュータ
１Ａ    可搬型記録媒体
２      撮像装置
３      情報処理装置
５      線、直線、線分
５Ａ    針画像
６      交点
７      領域
８      外接矩形
１１    ＣＰＵ
１２    ＲＡＭ
１３    入力部
１４    表示部
１５    記憶部
１５Ｐ  制御プログラム
１６    通信部
５０    中心点
１００  制御部
１０１  取得部
１０２  検出部
１０３  抽出部
１０４  算出部
１５１  閾値ファイル
Ｎ      通信網
【図１】
0005609183.tif 000003
【図２】
0005609183.tif 000004
【図３】
0005609183.tif 000005
【図４】
0005609183.tif 000006
【図５】
0005609183.tif 000007
【図６】
0005609183.tif 000008
【図７】
0005609183.tif 000009
【図８】
0005609183.tif 000010
【図９】
0005609183.tif 000011
【図１０】
0005609183.tif 000012
【図１１】
0005609183.tif 000013
【図１２】
0005609183.tif 000014
【図１３】
0005609183.tif 000015
【図１４】
0005609183.tif 000016
【図１５】
0005609183.tif 000017
【図１６】
0005609183.tif 000018
【図１７】
0005609183.tif 000019
【図１８】
0005609183.tif 000020
【図１９】
0005609183.tif 000021
【図２０】
0005609183.tif 000022
【図２１】
0005609183.tif 000023
【図２２】
0005609183.tif 000024
【図２３】
0005609183.tif 000025
【図２４】
0005609183.tif 000026
【図２５】
0005609183.tif 000027