(57)【要約】【課題】  アナログメーターの指針の形状によらず、指針の示す正確な値を得ることができるようにすることを目的とする。【解決手段】  画像処理装置であって、撮像装置により撮影された計器の画像を取得し、当該画像におけるエッジ検出処理の対象となる領域をユーザーの操作に応答して設定し、当該画像のうち設定された領域に対してエッジ検出処理を実行する。また、検出されるエッジ箇所の位置を補正するための値を設定する。検出されたエッジ箇所の位置を設定された値に基づき補正し、補正されたエッジ箇所の位置にしたがって、計器の指針の示す値を算出する。【選択図】  図７
2019096304.tif 000002
【特許請求の範囲】
【請求項１】
画像処理装置であって、
撮像装置により撮影された計器の画像を取得する取得手段と、
前記画像におけるエッジ検出処理の対象となる領域をユーザーの操作に応答して設定する第１の設定手段と、
前記画像のうち前記設定された領域に対してエッジ検出処理を実行する検出手段と、
検出されるエッジ箇所の位置を補正するための値を設定する第２の設定手段と、
前記検出されたエッジ箇所の位置を前記値に基づき補正する補正手段と、
前記補正されたエッジ箇所の位置にしたがって、計器の指針の示す値を算出する算出手段を備えたことを特徴とする画像処理装置。
【請求項２】
前記領域は円環の少なくとも一部であり、前記設定手段は、前記円環の中心、始端、終端、外円の半径および内円の半径のうち少なくとも１つを設定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記エッジ箇所の位置は角度で示され、前記算出手段は、前記計器の最小値と最大値の角度および前記エッジ箇所の角度に基づき、前記計器の指針の示す値を算出することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記領域は矩形であり、前記設定手段は、前記矩形の対向する頂点を設定することを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記エッジ箇所の位置はＹ座標で示され、前記設定手段は、前記計器の最小値と最大値のＹ座標および前記エッジ箇所のＹ座標に基づき、前記計器の指針の示す値を算出することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
検出されるエッジ箇所の個数を予め設定する第３の設定手段を備え、
前記検出されたエッジ箇所の個数が前記予め設定された個数と一致しなければ、通知を行う通知手段をさらに備えたことを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【請求項７】
前記検出された箇所の個数が前記予め設定された個数と一致する範囲で前記領域を変更する変更手段をさらに備えたことを特徴とする請求項６に記載の画像処理装置。
【請求項８】
画像処理装置の制御方法であって、
撮像装置により撮影された計器の画像を取得するステップと、
前記画像におけるエッジ検出処理の対象となる領域をユーザーの操作に応答して設定するステップと、
前記画像のうち前記設定された領域に対してエッジ検出処理を実行するステップと、
検出されるエッジ箇所の位置を補正するための値を設定するステップと、
前記検出されたエッジ箇所の位置を前記値に基づき補正するステップと、
前記補正されたエッジ箇所の位置にしたがって、計器の指針の示す値を算出するステップを備えたことを特徴とする制御方法。
【請求項９】
コンピュータに、
撮像装置により撮影された計器の画像を取得するステップと、
前記画像におけるエッジ検出処理の対象となる領域をユーザーの操作に応答して設定するステップと、
前記画像のうち前記設定された領域に対してエッジ検出処理を実行するステップと、
検出されるエッジ箇所の位置を補正するための値を設定するステップと、
前記検出されたエッジ箇所の位置を前記値に基づき補正するステップと、
前記補正されたエッジ箇所の位置にしたがって、計器の指針の示す値を算出するステップを実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計器が撮影された画像を処理して計器の指針の示す値を読み取るための画像処理装置およびその制御方法およびプログラムに関する。
【背景技術】
【０００２】
従来、温度、圧力、回転数、電流、電圧などの物理量を計測するアナログメーターを撮像装置により撮影し、撮影画像を解析して、アナログメーターの指示針の示す値を出力することが行われている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−１３３５６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１では、指示針の形状について考慮されていないため、指示針の太さや指示針の柄などによっては、誤ったエッジを検出してしまい、正確な計測値を得られないことがあった。
【課題を解決するための手段】
【０００５】
本願に係る発明の一つは、画像処理装置であって、撮像装置により撮影された計器の画像を取得する取得手段と、前記画像におけるエッジ検出処理の対象となる領域をユーザーの操作に応答して設定する第１の設定手段と、前記画像のうち前記設定された領域に対してエッジ検出処理を実行する検出手段と、検出されるエッジ箇所の位置を補正するための値を設定する第２の設定手段と、前記検出されたエッジ箇所の位置を前記値に基づき補正する補正手段と、前記補正されたエッジ箇所の位置にしたがって、計器の指針の示す値を算出する算出手段を備えたことを特徴とする。
【発明の効果】
【０００６】
本発明によれば、アナログメーターの指針の形状によらず、指針の示す正確な値を得ることができる。
【図面の簡単な説明】
【０００７】
【図１】本発明の一実施形態に係るシステム全体の構成の一例を示す図である。
【図２】本発明の一実施形態に係る画像処理装置の設定モードでの動作の一例を示すフローチャート図である。
【図３】本発明の一実施形態に係る画像処理装置の設定モードでの動作の一例を示すフローチャート図である。
【図４】本発明の一実施形態に係るアナログメーター設定画面の一例を示す図である。
【図５】本発明の一実施形態に係るアナログメーター設定画面の一例を示す図である。
【図６】本発明の一実施形態に係るアナログメーター設定画面の一例を示す図である。
【図７】本発明の一実施形態に係るアナログメーター設定画面の一例を示す図である。
【図８】本発明の一実施形態に係る画像処理装置の運転モードでの動作の一例を示すフローチャート図である。
【図９】本発明の一実施形態に係るアナログメーターの概念図である。
【図１０】本発明の一実施形態に係るアナログメーター設定画面の一例を示す図である。
【図１１】本発明の一実施形態に係る画像処理装置の設定モードでの動作の一例を示すフローチャート図である。
【図１２】本発明の一実施形態に係る画像処理装置の設定モードでの動作の一例を示すフローチャート図である。
【図１３】本発明の一実施形態に係るアナログメーター設定画面の一例を示す図である。
【図１４】本発明の一実施形態に係る画像処理装置の運転モードでの動作の一例を示すフローチャート図である。
【図１５】本発明の一実施形態に係るアナログメーターの概念図である。
【発明を実施するための形態】
【０００８】
以下に、図面を参照して、この発明の好適な実施の形態を例示的に詳しく説明する。ただし、この実施形態に記載されている構成要素はあくまで例示であり、この発明の範囲をそれらのみに限定する趣旨のものではない。
【０００９】
（第１の実施例）
本実施例では、円形のアナログメーター（丸型計器）において、温度、圧力、回転数、電流、電圧などの物理量を指し示す指針にしたがって測定値を読取る画像処理装置について説明する。
【００１０】
＜システムの構成＞
図１は、本実施例の画像処理装置１００を含むシステム全体の構成を示す図である。図１において、画像処理装置１００はコンピュータ装置により実現され、所定の制御プログラムを実行することにより以下に説明する画像処理を行う。制御部１０１は、画像処理装置１００全体の制御を行い、例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）により実現される。ＲＯＭ１０２は制御部１０１の動作処理手順（例えばコンピュータの立ち上げ処理や基本入出力処理等のプログラム）を記憶している。ＲＡＭ１０３は、制御部１０１のメインメモリとして機能する。ＲＡＭ１０３には後述の処理を実現するための制御プログラムを含む各種プログラムがハードディスクドライブ１０５等からロードされ制御部１０１によって実行される。また、ＲＡＭ１０３は、制御部１０１が各種処理を実行する際のワークエリアを提供する。ディスプレイ１０４は、制御部１０１の制御下で各種表示を行う。ハードディスクドライブ（以下、ＨＤＤ）１０５は、アプリケーションプログラムやデータ、ライブラリなどの保存及び読み込み用に用いられる。入力装置１０６は、ポインティングデバイスやキーボード等により実現され、ユーザーの操作にしたがってデータの入力を行う。記憶媒体装着ユニット（メディアドライブ）１０７は、着脱可能な記憶媒体を装着し、撮像装置１１２により撮影されて記憶媒体に記憶されたデータを読み出すことを可能とする。ネットワークインターフェイス１０８は、通信回線１１０を介してネットワーク１１１と接続される。このネットワークインターフェイス１０８を介して通信可能な外部機器からデータが送受信される。本実施例では、画像処理装置１００はネットワークインターフェイス１０８を介して撮像装置１１２と接続し、制御部１０１が撮像装置１１２へ撮影指示を行い、撮影により得られた画像を撮像装置１１２から取得し、ＨＤＤ１０５へ記録する。システムバス１０９は上述した各ユニット間を接続し、アドレスバス、データバスおよび制御バスで構成される。
【００１１】
撮像装置１１２は、被写体を撮像することにより画像データを取得し、例えば、デジタルスチルカメラやデジタルムービーカメラ、監視カメラ等、撮像部を備えた電子機器により実現される。撮像装置１１２は通信回路１１３を介してネットワーク１１１と接続され、画像処理装置１００と通信可能となる。アナログメーター１１４は、例えば、温度、圧力、回転数、電流、電圧などの物理量を測定し、測定値を指針により指し示す。
【００１２】
本実施例の画像処理装置１００は、アナログメーター１１４の測定値の読取りを実現するために、設定モードと運転モードの２種類のモードで動作する。設定モードでは、撮像装置１１２により撮影されたアナログメーター１１４の画像にしたがって、アナログメーター１１４の測定値の読取りを実現するために各種情報を予め設定しておく。一方、運転モードでは、設定モードで設定された各種情報に基づいて、撮像装置１１２により撮影されたアナログメーター１１４の画像データを解析し、アナログメーター１１４の測定値を算出する。
【００１３】
なお、本実施例において、画像処理対象とする画像は非圧縮もしくは解凍済みのグレースケールの８ｂｉｔ深度の画像であるものとする。よって、撮像装置１１２は、アナログメーター１１４を撮影することにより得られた画像データをグレースケールの画像データに変換し、ネットワーク１１１を介して画像処理装置１００へ送信する。あるいは、撮像装置１１２はオリジナルの画像データを画像処理装置１００へ送信し、画像処理装置１００が画像データをグレースケールの画像データに変換してもよい。画像処理装置１００は、本実施例の処理対象とするグレースケールの画像データを、ＨＤＤ１０５に保存するものとする。
【００１４】
＜設定モードでの処理＞
まず、本実施例の画像処理装置１００が設定モードで動作するときの処理手順を図面を参照して説明する。
【００１５】
画像処理装置１００の制御部１０１は、アナログメーター読み取り処理を実行するためのアプリケーションプログラムをＨＤＤ１０５から読み出して起動する。制御部１０１は、オペレーティングシステム（ＯＳ）やアプリケーションプログラムにしたがって、以下で説明する動作を実行する。
【００１６】
そして、制御部１０１はアプリケーションプログラムが起動されると、メニュー画面をディスプレイ１０４に表示するよう表示制御し、ユーザーの操作にしたがって、設定モードまたは運転モードのいずれかを選択する。
【００１７】
設定モードが選択された場合の画像処理装置１００の動作を図２と図３のフローチャートを用いて説明する。
【００１８】
まず、制御部１０１は、アナログメーター１１４が撮影された画像を取得するための指示が入力されたかどうかを判定する（Ｓ２０１）。前述のメニュー画面において、設定モードが選択されると、制御部１０１は図４に示すようなアナログメーター設定画面４００をディスプレイ１０４に表示させる。撮影ボタン４０２は、撮像装置１１２に対して撮影を指示し、撮影された画像をＨＤＤ１０５に格納するとともに、ＨＤＤ１０５から撮影画像を読み込む指示を受け付ける領域である。また、読み込みボタン４０３はすでにＨＤＤ１０５に記憶されている画像を読み込む指示を受け付ける領域である。制御部１０１は、撮影ボタン４０２または読み込みボタン４０３へのユーザーの操作を検知すると、画像を取得するための指示が入力されたと判定する。制御部１０１は、撮影ボタン４０２に対するユーザーの操作を受け付けると（Ｓ２０１でＹｅｓ）、ネットワークインターフェイス１０８を介して撮影指示を撮像装置１１２へ送信する。撮像装置１１２は、撮影指示を画像処理装置１００から受信すると、アナログメーター１１４を被写体として撮像処理を実行して画像データを生成し、画像処理装置１００へ送信する。画像処理装置１００はネットワークインターフェイス１０８を介して当該画像データを撮像装置１１２から取得し、ＨＤＤ１０５に記憶し、ＨＤＤ１０５からＲＡＭ１０３に読み出す（Ｓ２０２）。一方、制御部１０１は、読み込みボタン４０３に対するユーザーの操作を受け付けると（Ｓ２０１でＹｅｓ）、ファイルオープンダイアログを表示する。そして、ファイルオープンダイアログにおいてユーザーにより指定された画像データをＨＤＤ１０５からＲＡＭ１０３に読み出す（Ｓ２０２）。
【００１９】
制御部１０１は、図５に示すようにして、ＨＤＤ１０５からＲＡＭ１０３に読み込まれた画像データ５０１を、画像表示エリア４０１に表示させる（Ｓ２０３）。
【００２０】
制御部１０１は、エッジ検出領域指定ボタン６１２への押下操作を受け付けると、エッジ検出領域指定のための図形を描画して表示し、エッジ検出領域の中心点を指定するユーザーの操作を受け付けたかどうか判定する（Ｓ２０４）。例えば、制御部１０１は、画像表示エリア４０１に表示された画像データ５０１上で、ポインティングデバイス（入力装置１０６）の左クリック操作が行われると（Ｓ２０４でＹｅｓ）、その位置の座標をエッジ検出領域の中心点の座標としてＲＡＭ１０３に記憶する（Ｓ２０５）。図６に中心点６２０を示す。なお、画像データ５０１上で、座標の原点は左上に存在するものとし、Ｘ座標は右方向に行くほど増加し、Ｙ座標は下方向に行くほど増加するものとする。
【００２１】
制御部１０１は、図６に示すようにして、中心点６２０を中心とし、カーソル６２９の存在する位置までの距離を半径とする外円の孤６２１を画像データ５０１上に描画する（Ｓ２０６）。ユーザーがポインティングデバイスを操作して外円の孤６２１上のカーソル６２９を移動させ、中心点６２０からの距離を変化させることに応じて半径が変更され、制御部１０１は、外円の孤６２１を描画しなおす。そして、制御部１０１は、外円の半径を指定するユーザーの操作を受け付けたかどうか判定する（Ｓ２０７）。例えば、制御部１０１は、外円の孤６２１上にカーソル６２９が存在する時に、左クリック操作が行われると（Ｓ２０７でＹｅｓ）、そのカーソル６２９の位置から中心点６２０までの距離を外円の半径としてＲＡＭ１０３に記憶する（Ｓ２０８）。そして、制御部１０１は中心点６２０と外円の半径に基づいて、画像表示エリア４０１に表示された画像データ５０１上に円環の少なくとも一部（部分円環）を描画する（Ｓ２０９）。円環の内円の半径の初期値は、外円の半径より所定値（例えば２０ピクセル）小さな値とする。また、部分円環の始点角度と終点角度も所定の初期値を用いて描画される。本実施例では画像表示エリア４０１の垂直方向の中心点６２０を通る線を中心線６１１として、時計回りの方向を正の角度、反時計回りの方向を負の角度とする。例えば、始点角度は中心線６１１から−１４０度、終点角度は、始点角度からの増加角度＋２８０度を初期値として、部分円環が描画される。ユーザーがポインティングデバイスを操作して内円の孤６２２上のカーソル６２９を移動させることに応じて内円の半径が変更される（Ｓ２１０でＹｅｓ）。これによって、制御部１０１は、カーソル６２９の移動の終了位置から中心点６２０までの距離を内円の半径として、ＲＡＭ１０３に記憶し（Ｓ２１１）、内円６２２を描画しなおして表示する（Ｓ２１２）。なお、外円の孤６２１上のカーソル６２９が移動された場合、外円の半径を変更するとともに、外円の半径より所定値（例えば１ピクセル）小さな値を内円の半径としてＲＡＭ１０３に記憶する（Ｓ２１２）。
【００２２】
ユーザーがポインティングデバイスを操作して部分円環の始端６２３上のカーソル６２９を移動させることに応じて、始点角度が変更される（Ｓ２１３でＹｅｓ）。これによって、制御部１０１は、カーソル６２９の移動の終了位置と中心点６２０とを結ぶ線分から中心線６１１までの角度を始点角度としてＲＡＭ１０３に記憶し（Ｓ２１４）、始端６２３を移動させて部分円環を描画しなおして表示する（Ｓ２１５）。なお、始点角度を変更するためのカーソル６２９の移動の終了位置が終端６２４を超える位置であった場合は、中心線６１１から−２２０度を加算した角度を始点角度としてＲＡＭ１０３に記憶する。また、制御部１０１は、始点角度を変更するためのカーソル６２９の移動を終端６２４を超えない位置まで可能とし、超える位置への移動を不可とするように制御してもよい。
【００２３】
ユーザーがポインティングデバイスを操作して部分円環の終端６２４上のカーソル６２９を移動させることに応じて、終点角度が変更される（Ｓ２１６でＹｅｓ）。これによって、制御部１０１は、部分円環の始端６２３とカーソル６２９の移動の終了位置と中心点６２０とを結ぶ線分の角度を、始点角度からの増加角度（終点角度）としてＲＡＭ１０３に記憶する（Ｓ２１７）。そして、終端６２４を移動させて部分円環を描画しなおして表示する（Ｓ２１８）。もし、終点角度を変更するためのカーソル６２９の移動の終了位置が始端６２３を超える位置であった場合は、始点角度から＋３６０度を加算した角度を終点角度としてＲＡＭ１０３に記憶する。また、制御部１０１は、終点角度を変更するためのカーソル６２９の移動を始端６２３を超えない位置まで可能とし、超える位置への移動を不可とするように制御してもよい。
【００２４】
制御部１０１は、ユーザーの操作に応答して、エッジ検出領域７００に関する情報として円環の中心点６２０の座標、始点角度、終点角度をＲＡＭ１０３から読み込み（Ｓ３０１）、アナログメーターの始点角度と終点角度を算出する（Ｓ３０２）。アナログメーターの始点角度はエッジ検出領域の始点角度に所定値（例えば２度）を加算した値、アナログメーターの終点角度はエッジ検出領域の終点角度から所定値（例えば４度）を減算した値とし、それぞれエッジ検出領域内に含まれる位置となるように算出する。算出された値はそれぞれ図７に示す最小値の角度７０１と最大値の角度７０２の欄に初期値として表示される。また、中心線６１１から最小値の角度７０１をなす線分７１１と、最大値の角度７０２をなす線分７１２が画像データ５０１上に表示される。なお、ユーザーは入力装置１０６を操作することで、最小値の角度７０１と最大値の角度７０２に値を入力したり、線分７１１や線分７１２を移動させたりすることにより、アナログメーターの始点角度と終点角度を変更し、ＲＡＭ１０３の値が更新される。
【００２５】
そして、制御部１０１は、エッジ方向７０３とエッジ強度閾値７０４に入力された値にしたがって、エッジ検出領域７００でエッジ検出処理を行い、エッジ箇所を示す座標をＲＡＭ１０３に記憶する（Ｓ３０３）。本実施例では、グレースケールに変換されている画像データ５０１に対してラプラシアンフィルタ処理を適用し、ラプラシアンフィルタ処理した画像のエッジ検出領域７００の始端６２３から終端６２４へ向かってエッジ箇所を探索する。
【００２６】
ここで、本実施例ではエッジ方向７０３は「明から暗」「暗から明」「明から暗と暗から明の両方」の選択肢のうちいずれか１つが設定される。また、エッジ強度閾値７０４は、エッジ箇所として検出される場合の、隣接する画素の値の差分の閾値である。隣接する画素の値の差分が大きいほど濃淡の差が大きく、エッジ強度は強い。例えば、ユーザー操作によりエッジ強度閾値７０４として”３０”が指定されていれば、制御部１０１は、隣接する画素の画素値の差が３０以上である箇所をエッジ箇所の候補として検出する。そして、エッジ方向７０３において「明から暗」が設定されている場合、制御部１０１は検出されたエッジ箇所の候補について隣合う画素の値を比較し、画素値が高いものから低いものに変化する箇所をエッジ箇所と決定する。また、エッジ方向７０３において「暗から明」が設定されている場合、制御部１０１は検出されたエッジ箇所の候補について、隣合う画素の値を比較し、画素値が低いものから高いものに変化する箇所をエッジ箇所と決定する。エッジ方向において「明から暗と暗から明の両方」が設定されている場合、制御部１０１は画素値の変化の方向によらず、エッジ箇所の候補をエッジ箇所として決定する。
【００２７】
制御部１０１は決定されたエッジ箇所の個数が、予め設定された個数と一致するかどうかを判定する（Ｓ３０４）。本実施例では、例えば指針７３０の両端の個数として”２”を予め設定する。なお、指針７３０に装飾の線などがある場合は、２より大きな個数が予め設定されることになる。また、エッジ箇所の画素が隣接している場合は、連続した画素からなる１個のエッジとして数えるものとする。
【００２８】
一致しなければ（Ｓ３０４でＮｏ）、指針７３０以外のエッジが検出されているとして警告ダイアログを表示する（Ｓ３０５）。例えば、アナログメーターにゴミやホコリなどの異物が付着して、指針７３０以外の不要な物体のエッジ箇所が誤検出されていることが考えられる。
【００２９】
一方、一致すれば（Ｓ３０４でＹｅｓ）、制御部１０１は始端６２３に最も近いエッジ箇所を示す第１の補助線７２８を画像データ５０１上に描画して表示する。また、制御部１０１は、第１の補助線７２８と外円の孤６２１の交点７２９と中心点６２０を結ぶ線に対して針幅の補正角度７０５に設定された値をなす第２の補助線７２５を、指針７３０の先端を通る線分として画像データ５０１上に描画して表示する（Ｓ３０６）。
【００３０】
ユーザーは画像データ５０１上に描画された第１の補助線７２８や第２の補助線７２５を確認し、入力装置１０６を操作して第１の補助線７２８や第２の補助線７２５を移動させる。これによって、指針７３０のエッジ箇所や先端の箇所を修正し、針幅の補正角度７０５の値を変更することができる。また、針幅の補正角度７０５の値を直接、修正することもできる。制御部１０１は、針幅の補正角度７０５を修正する操作が行われたことを検知すると（Ｓ３０７でＹｅｓ）、針幅の補正角度の値をＲＡＭ１０３に記憶するとともに（Ｓ３０８）、第１の補助線７２８や第２の補助線７２５を描画しなおして表示する（Ｓ３０９）。
【００３１】
また、制御部１０１は、アナログメーターの最小値７２１と最大値７２２をユーザーの操作に応答して入力する（Ｓ３１０）。なお、画像データ５０１に対して文字認識処理を実行し、最小値７２１と最大値７２２を自動的に取得して入力するようにしてもよい。
【００３２】
そして、制御部１０１は、ユーザーの操作に応答して、通知を行うための測定値の条件７２３を設定する（Ｓ３１１）。制御部１０１は、運転モードで動作するとき、アナログメーターの指針７３０が所定値の範囲外又は所定値の範囲内を指し示せば、通知を行う。
【００３３】
そして、制御部１０１は終了ボタン７３１へのユーザーの操作を受け付けると（Ｓ３１２でＹｅｓ）、設定モードでの動作を終了する。なお、設定モードでの動作を終了すると、引き続いて、運転モードでの動作を開始し、アナログメーター設定画面４００の代わりに運転モードの画面（図示せず）をディスプレイ１０４に表示させるようにしてもよい。
【００３４】
＜運転モードでの処理＞
次に、本実施例の画像処理装置１００が運転モードで動作するときの処理手順を図面を参照して説明する。
【００３５】
画像処理装置１００の制御部１０１は、アナログメーター読み取り処理を実行するためのアプリケーションプログラムをＨＤＤ１０５から読み出して起動する。制御部１０１は、オペレーティングシステム（ＯＳ）やアプリケーションプログラムにしたがって、以下で説明する動作を実行する。
【００３６】
そして、制御部１０１はアプリケーションプログラムが起動されると、メニュー画面をディスプレイ１０４に表示するよう表示制御し、ユーザーの操作にしたがって、設定モードまたは運転モードのいずれかを選択する。
【００３７】
運転モードが選択された場合の本実施例の画像処理装置１００の動作を図８のフローチャートを用いて説明する。
【００３８】
画像処理装置１００はネットワークインターフェイス１０８を介して撮像装置１１２と接続し、制御部１０１が撮像装置１１２へ撮影指示を行い、撮影により得られた画像を撮像装置１１２から取得し、ＨＤＤ１０５に記憶する（Ｓ８０１）。なお、設定モードのときにステップＳ２０２で取得された画像と同じ位置で撮像装置１１２がアナログメーター１１４を撮影するものとする。撮像装置１１２は撮像処理を行って画像を画像処理装置１００へ定期的に送信してもよいし、連続的にストリーミング配信してもよい。あるいは、画像処理装置１００が定期的に撮影を指示し、それに応じて、撮像装置１１２が定期的に撮影を行い、画像を画像処理装置１００へ送信するようにしてもよい。
【００３９】
制御部１０１は撮像装置１１２から取得された画像をグレースケールに変換して画面に表示する（Ｓ８０２）。なお、撮像装置１１２が画像のグレースケールへの変換を行い、画像処理装置１００は変換済みの画像を受信するようにしてもよい。
【００４０】
制御部１０１はステップＳ３０３と同様にしてグレースケールに変換された画像データに対してラプラシアンフィルタを適用し、ラプラシアンフィルタを行った画像のエッジ検出領域においてエッジ検出処理を行う（Ｓ８０３）。制御部１０１はステップＳ３０４と同様にして、検出されたエッジ箇所の個数が、予め設定された個数と一致するかどうかを判定する（Ｓ８０４）。一致しなければ、（Ｓ８０４でＮｏ）、指針７３０以外のエッジが検出されているとして警告ダイアログを表示する（Ｓ８０５）。一方、一致すれば（Ｓ８０４でＹｅｓ）、制御部１０１はエッジ検出領域の始端に最も近いエッジとエッジ検出領域の外円の孤との交点と、アナログメーターの中心点６２０を結ぶ線を算出する（Ｓ８０６）。制御部１０１はステップＳ８０６で算出された線に対して針幅の補正角度７０５に設定された値を加算した角度をなす線上に指針７３０の先端が存在すると特定し、当該補正された角度をＲＡＭ１０３に記憶する（Ｓ８０７）。
【００４１】
そして、制御部１０１は指針７３０の示す値を算出し、算出された値をＨＤＤ１０５に記憶する（Ｓ８０８）。なお、算出された値は計測日時などの属性情報と関連付けてＨＤＤ１０５に記憶される。
【００４２】
ステップＳ８０８の算出処理について図９に示すアナログメーター１１４の概念図を用いて説明する。最小角度（ｄｅｇＭｉｎ）９０１は、中心線６１１から最小値の角度７０１に設定された角度である。最大角度（ｄｅｇＩｎｃ）９０２は、最小角度に最大値の角度７０２を加算した角度である。指針の角度（ｄｅｇＥｄｇｅ）９０３は最小角度９０１から指針７３０のエッジまでの角度である。針幅補正角度値（ｄｅｇＷＮ）９０４は針幅の補正角度７０５に設定された角度である。
【００４３】
そして、最小値７２１に設定された値をｖａｌＭｉｎ、最大値７２２に設定された値をｖａｌＭａｘとして、指針７３０の示す値ｖａｌＮｅｅｄｌｅの算出式を式１に示す。
ｖａｌＮｅｅｄｌｅ  ＝  （ｄｅｇＷＮ＋ｄｅｇＥｄｇｅ）×（ｖａｌＭａｘ−ｖａｌＭｉｎ）  ÷  ｄｅｇＩｎｃ  ＋  ｖａｌＭｉｎ              ・・・式１
【００４４】
ｄｅｇＥｄｇｅ９０３が４３度、針幅補正角度ｄｅｇＷＮ９０４が２度、最大角度ｄｅｇＩｎｃが２７０度、最小値ｖａｌＭｉｎが０、最大値ｖａｌＭａｘが６とすると、ｖａｌＮｅｅｄｌｅは”１”となる。
【００４５】
ｄｅｇＥｄｇｅ９０３が２０５度、針幅補正角度ｄｅｇＷＮ９０４が５度、最大角度ｄｅｇＩｎｃが２７０度、最小値ｖａｌＭｉｎが０、最大値ｖａｌＭａｘが６とすると、ｖａｌＮｅｅｄｌｅは有効桁数小数点第二位までとすると”４．４４”となる。
【００４６】
続いて、制御部１０１は、ステップＳ８０８で算出された値が、条件７２３を満たすかどうかを判定し（Ｓ８０９）、満たすと判定されれば（Ｓ８０９でＹｅｓ）、通知を行う（Ｓ８１０）。例えば、制御部１０１は警告ダイアログをディスプレイ１０４に表示する。また、警告ダイアログへの操作にしたがって、運転モードを継続するか否かの指示を受け付けるようにしてもよい。また、警告ダイアログは画像データの上に表示し、画像データには、エッジ検出領域、エッジ検出位置、指針７３０の先端を通る補助線などを表示するようにしてもよい。
【００４７】
そして、制御部１０１は終了の操作を受け付けると（Ｓ８１１でＹｅｓ）、運転モードでの動作を終了する。
【００４８】
以上のようにして、本実施例の画像処理装置１００は、設定モードにおいて、撮像装置１１２からアナログメーターの画像を取得して目盛や指針について予め設定をしておく。そして、画像処理装置１００は運転モードにおいて、撮像装置１１２からアナログメーターの画像を取得し、予め設定された値にしたがって、指針７３０を検出し、指針７３０の指す値を算出する。そして、算出された指針７３０の指し示す値をＨＤＤ１０５に記録したり、所定の条件を満たす場合に通知したりする。
【００４９】
なお、本実施例では、運転モード時に制御部１０１はエッジ検出領域で検出されたエッジの個数が所定値と一致しない場合に警告を出すようにしたが（Ｓ８０５）、これに限らない。例えば、より信頼性を上げるために、始点方向と終点方向からエッジをそれぞれ検出して、各エッジと中心点６２０を結んだ線のなす角度が針幅補正角度の２倍程度の角度であるかを判定し、そうでなければ誤検出があるとして、警告を出すようにしてもよい。
【００５０】
また、本実施例では、運転モード時に制御部１０１はエッジ検出領域で検出されたエッジの個数が所定値と一致しない場合に、警告を表示し、計測を中断するようにしたが、これに限らない。例えば、計測を継続し、算出した値に対する信頼度が低いことを通知するようにしてもよい。
【００５１】
また、本実施例では、運転モード時に制御部１０１はエッジ検出領域で検出されたエッジから中心線上においてエッジ検出を行う領域を新たに設定してエッジ検出の精度をあげるようにしてもよい。図１５は、アナログメーター設定画面において、中心線上においてエッジ検出を行う領域を新たに設定する概念を説明するための図である。図１５でエッジ検出領域は図７と同じである。ここで、６２１、６２２の曲線および６２３、６２４の直線で囲まれたエッジ検出領域においてエッジ７２８を検出した場合、エッジ７２８と中心点を結んだ直線上で針幅領域を新たにエッジ検出領域１５０１に設定し、エッジ検出領域１５０１でエッジが検出できることでエッジ検出できたものとすることでエッジの誤検出を回避することができる。
【００５２】
上記のエッジ検出領域を追加してエッジ検出する処理はステップＳ３０３で実施する。またステップＳ８０３で実施することで、針幅補正角度でエッジの誤検出を回避する方法と組み合わせて行うこともできる。
【００５３】
また、本実施例では、設定モード時に、エッジ検出領域で検出された値の個数が所定値と一致する範囲で、エッジ検出領域の外円の半径を広げるようにしてもよい。エッジ検出領域の外円の半径が広がるほどに、指針７３０の角度の変化を詳細に検知することが可能になるためである。
【００５４】
また、本実施例では、エッジ検出処理においてラプラシアンフィルタを用いたが、高周波成分を検出できるフィルタであれば他のフィルタでもよい。フィルタサイズが大きい場合には、エッジ検出領域の始端６２３や終端６２４に指針があっても検出できるように、針幅補正角度も加味して、エッジ検出領域の始端６２３と終端６２４の位置を広げるものとする。
【００５５】
また、最小値の角度７０１や最大値の角度７０２が、エッジ検出領域外になる場合には、当該角度が含まれるようにエッジ検出領域の始端６２３や終端６２４も変更するものとする。
【００５６】
上述の通り、ユーザーが、撮像装置により撮影されたアナログメーターの画像を見ながら、エッジ検出領域を調整することができるので、エッジ検出領域外の不要なエッジを検出することがなくなり、指針７３０の値を誤検出する可能性を低減することができる。
【００５７】
また、本実施例によれば、指針のエッジから先端までの幅を針幅の補正角度に設定された値によって調整することができる。これにより、指針の形状が太い場合や細い場合であっても、指針の形状によらず、指針の指す値を正確に算出することが可能となる。
【００５８】
また、本実施例によれば、設定モードにおいて、ユーザーは表示されたエッジ検出領域を見ながら、簡易な操作で調整することができる。また、運転モードで動作中であっても設定を変更できるようにしてもよい。
【００５９】
また、本実施例によれば、エッジ検出領域において検出されたエッジの個数を所定値と比較し、異なれば警告を出すようにした。よって、エッジ検出領域に異物が入るなどして、誤検出が行われている可能性をユーザーに通知することができる。
【００６０】
また、本実施例によれば、運転モードの際に、測定値が所定の条件を満たす場合や、測定値の信頼性が低い場合に、測定対象となった画像に重畳してエッジ検出領域等の設定情報やエッジ検出位置に基づく補助線を表示する。これによって、ユーザーは状況を簡単に確認することができる。
【００６１】
（第２の実施例）
本実施例では、円形のアナログメーターの代わりに、棒状のアナログメーター（角型計器）において、温度、圧力、回転数、電流、電圧などの物理量を指し示す指針にしたがって測定値を読取る画像処理装置について説明する。なお、上述の第１の実施例と同様の構成については説明を省略する。
【００６２】
＜設定モードでの処理＞
まず、本実施例の画像処理装置１００が設定モードで動作するときの処理手順を図１１、図１２、図１３を参照して説明する。
【００６３】
画像処理装置１００の制御部１０１は、アナログメーター読み取り処理を実行するためのアプリケーションプログラムをＨＤＤ１０５から読み出して起動する。制御部１０１は、オペレーティングシステム（ＯＳ）やアプリケーションプログラムにしたがって、以下で説明する動作を実行する。そして、制御部１０１は図２のステップＳ２０１〜Ｓ２０３と同様の処理を実行し、図１０に示すようなアナログメーター設定画面１０００をディスプレイ１０４に表示させる。
【００６４】
制御部１０１は、画像表示エリア４０１に表示された画像データ１００１上で、ポインティングデバイス（入力装置１０６）のドラッグ開始操作と終了操作が行われると（Ｓ１１０４でＹｅｓ）、それぞれの位置（１３０１，１３０２）の座標を矩形領域の対向する頂点としてＲＡＭ１０３に記憶する（Ｓ１１０５）。そして、矩形領域を描画してエッジ検出領域１００４として表示する（Ｓ１１０６）。
【００６５】
制御部１０１は、ユーザーの操作に応答して、エッジ検出領域１００４に関する情報として頂点の座標をＲＡＭ１０３から読み込む（Ｓ１２０１）。エッジ検出領域１００４の始点１３０１のＹ座標から所定値を減算した値と終点１３０２のＹ座標に所定値を加算した値をそれぞれアナログメーターの始点座標と終点座標として算出する（Ｓ１２０２）。すなわち、アナログメーターの始点と終点が含まれるようにエッジ検出領域１００４を調整して設定する。ここで、所定値は例えば２ピクセルとする。また、それぞれの所定値は異なっていてもよい。なお、本実施例において、座標は画像表示エリア４０１に表示されている画像データ１００１の左上を原点とした値で表すものとする。
【００６６】
そして、制御部１０１はステップＳ３０３と同様にして、エッジ方向７０３とエッジ強度閾値７０４に入力された値にしたがって、エッジ検出領域１００４でエッジ検出処理を行い、エッジ箇所を示す座標をＲＡＭ１０３に記憶する（Ｓ１２０３）。制御部１０１はステップＳ３０４と同様にして、決定されたエッジ箇所の個数が、予め設定された個数と一致するかどうかを判定する（Ｓ１２０４）。本実施例では所定値を”１”とする。なお、本実施例では、所定値を”１”とするが、ユーザーが任意に指定できるようにしてもよい。指針が複数の線で構成されるような場合であっても計測が可能となる。
【００６７】
一致すれば（Ｓ１２０４でＹｅｓ）、決定されたエッジ箇所を通る水平の線の位置のＹ座標を指針１００５の座標の初期値とする。そして、制御部１０１は、各補助線を画像データ１００１上に表示する（Ｓ１２０６）。具体的には、始点１３０１と終点１３０２を対向する頂点とする矩形をエッジ検出領域として示す補助線１３２１が表示される。また、Ｓ１２０１で取得されたエッジ検出領域１００４の始点を示す補助線１３２３と終点を示す補助線１３２４、Ｓ１２０２で算出されたアナログメーターの始点を示す補助線１３２６と、終点を示す補助線１３２７が表示される。また、Ｓ１２０５で算出された指針１００５の位置を示す補助線１３２５が描画される。ここで、針幅の補正座標１３３１が設定されている場合は、その値を反映して指針１００５の位置の座標を補正してＲＡＭ１０３に記憶し、補助線１３２５を移動させて表示する。
【００６８】
また、制御部１０１は最小値の座標１３３２と最大値の座標１３３３にアナログメーターの始点の座標と対応する値と終点の座標と対応する値をそれぞれ設定して表示する（Ｓ１２０７）。
【００６９】
そして、制御部１０１は、ユーザーの操作に応答して、通知を行うための測定値の条件７２３を設定する（Ｓ１２０８）。制御部１０１は、運転モードで動作するとき、アナログメーターの指針１００５が所定値の範囲外又は所定値の範囲内を指し示せば、通知を行う。
【００７０】
そして、制御部１０１は終了ボタン７３１へのユーザーの操作を受け付けると（Ｓ３１２でＹｅｓ）、設定モードでの動作を終了する。なお、設定モードでの動作を終了すると、引き続いて、運転モードでの動作を開始し、アナログメーター設定画面１０００の代わりに運転モードの画面（図示せず）をディスプレイ１０４に表示させるようにしてもよい。
【００７１】
＜運転モードでの処理＞
次に、本実施例の画像処理装置１００が運転モードで動作するときの処理手順を図面を参照して説明する。画像処理装置１００の制御部１０１は、アナログメーター読み取り処理を実行するためのアプリケーションプログラムをＨＤＤ１０５から読み出して起動する。制御部１０１は、オペレーティングシステム（ＯＳ）やアプリケーションプログラムにしたがって、以下で説明する動作を実行する。なお、第１の実施例と同様の動作や構成については説明を省略する。
【００７２】
運転モードが選択された場合の本実施例の画像処理装置１００の動作を図１４のフローチャートを用いて説明する。制御部１０１は図８のステップＳ８０１〜Ｓ８０５と同様の処理を実行する。なお、本実施例ではＳ８０４での比較対象の予め設定されるエッジの個数は”１”とする。そして、制御部１０１はステップＳ８０３で検出されたエッジ箇所のＹ座標を指針１００５の座標として取得し（Ｓ１４０６）、針の幅補正座標１３３１に設定された値を減算して指針の座標を更新してＲＡＭ１０３に記憶する（Ｓ１４０７）。
【００７３】
そして、制御部１０１は指針１００５の示す値を算出し、算出された値をＨＤＤ１０５に記憶する（Ｓ１４０８）。なお、算出された値は計測日時などの属性情報と関連付けてＨＤＤ１０５に記憶される。ステップＳ１４０８の算出処理について説明する。最小値座標１３３２をｙＭｉｎ、最大値座標１３３３をｙＭａｘ、指針１００５の座標をｙＥｄｇｅ、針幅補正座標ｙＷＮ、最小値１３３４をｖａｌＭｉｎ、最大値１３３５をｖａｌＭａｘとして、針の示す値ｖａｌＮｅｅｄｌｅの算出式を式２に示す。
ｖａｌＮｅｅｄｌｅ＝（（ｙＥｄｇｅ−ｙＷＮ）−ｙＭｉｎ）×（ｖａｌＭａｘ−ｖａｌＭｉｎ）÷  （ｙＭａｘ  −  ｙＭｉｎ  ）＋  ｖａｌＭｉｎ      ・・・式２
【００７４】
例えば、指針１００５の座標ｙＥｄｇｅが３５０、針幅補正座標ｄｅｇＷＮが０、最小値座標ｙＭｉｎが８２０、最大値座標ｙＭａｘが２０、最小値ｖａｌＭｉｎが０、最大値ｖａｌＭａｘが８とすると、ｖａｌＮｅｅｄｌｅは、４．７となる。また、指針１００５の座標ｙＥｄｇｅが６４２、針幅補正座標ｄｅｇＷＮが２、最小値座標ｙＭｉｎが１２４０、最大値座標ｙＭａｘが４０、最小値ｖａｌＭｉｎが０、最大値ｖａｌＭａｘが１２とすると、ｖａｌＮｅｅｄｌｅは、６となる。
【００７５】
そして、制御部１０１はステップＳ８０９〜Ｓ８１１と同様の処理を実行する。
【００７６】
以上説明した通り、本実施形態の画像処理装置によれば、計測対象となるアナログメーターが棒状であっても、ユーザーは簡易な設定のみで、指針の示す値を読取ることが可能となる。
【００７７】
（他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2019096304.tif 000003
【図２】
2019096304.tif 000004
【図３】
2019096304.tif 000005
【図４】
2019096304.tif 000006
【図５】
2019096304.tif 000007
【図６】
2019096304.tif 000008
【図７】
2019096304.tif 000009
【図８】
2019096304.tif 000010
【図９】
2019096304.tif 000011
【図１０】
2019096304.tif 000012
【図１１】
2019096304.tif 000013
【図１２】
2019096304.tif 000014
【図１３】
2019096304.tif 000015
【図１４】
2019096304.tif 000016
【図１５】
2019096304.tif 000017