関心領域のよくある質問(FAQ)

更新しました Nov 27, 2018

使用製品

Software

  • Vision Development Module
  • Vision Assistant
  • Vision Builder for Automated Inspection

Driver

  • Vision Acquisition Software
  • NI-IMAQ
  • NI-IMAQdx

問題

  • 関心領域とは何ですか?  
  • IMAQ Read Barcode VIを使用するとエラーが発生するのはなぜですか?
  • IMAQ Transform ROI VIが負の座標を返すのはなぜですか?
  • Visual BasicでCWIMAQVision.MaskToRegions関数を使用するための画像が大きすぎるのはなぜですか?
  • 自由な形状のROIを抽出するにはどうすればよいですか?  
  • 新しいウィンドウに選択したROIを表示するにはどうすればよいですか?
  • Clamp関数を使用すると不正確/異なる値を返すのはなぜですか?
  • LabWindows/CVIで指定したポイントから長方形ROIを作成するにはどうすればよいですか?
  • ROIは光学式文字認識(OCR)でどのように動作しますか?

解決策

関心領域とは何ですか?

関心領域(ROI: Region of Interest)は、画像解析の中で焦点をおきたい画像を表示されているウィンドウからグラフィカルに選択した領域のことです。この領域は、今後の画像処理で使用することが可能です。このページでは、ROI関数に関する情報と使用方法についても記載されています。

 

IMAQ Read Barcode VIを使用するとエラーが発生するのはなぜですか?

IMAQ Read Barcode VIを使用する際にROI descriptor入力が正しくない場合、エラー -1074395720 「IMAQ Read Barcode、IMAQ Vision: ROIが無効です。」というエラーが発生します。これを解決する最善策は、適切なROI descriptorを出力するために形状をROIに変換するVIを使用することです。Region of Interest ConversionサブパレットにあるVIを使用することができます。このパレットは、関数パレット>>ビジョン&モーション>>Vision Utilities>>Region of Interest>>Region of Interest Conversionにあります。
 

 

IMAQ Transform ROI VIが負の座標を返すのはなぜですか?

IMAQ Transform ROI」VIを使用してROIを回転すると、VIは適切ではない結果となり、負のROI座標を返します。このような結果の場合は、使用しているLabVIEWバージョンでサポートされている最新のNI Visionバージョンを使用しているかどうかを確認してください。NI VisionとLabVIEWバージョンの互換性については、Compatible Versions of Vision Development Module with LabVIEW and LabWindows/CVIを参照してください。


 

Visual BasicでCWIMAQVision.MaskToRegions関数を使用するための画像が大きすぎるのはなぜですか?

この関数は、マスクイメージを領域コレクションに変換します。デフォルトでは、2500ポイントに制限されています。2500ポイント以上を使用したい場合、MaxPointsパラメータを使用したい値に変更することができます。他の方法としては、画像を複数の画像に分割してから分割した画像に対して画像処理をおこないます。すべてのVision関数およびこれらのプロパティやメソッドの詳細は、NI Vision for Visual Basic Reference Helpに記載されています。NI Visionをインストールしている場合、このヘルプはデフォルトでインストールされています。スタートメニュー>>すべてのプログラム>>National Instruments>>Vision>>Documentation>>NI Visionにアクセスして、Vision Helpのショートカットリンクからcwimaq.chmというファイルを開くことでこのヘルプを参照することができます。


 

自由な形状のROIを抽出するにはどうすればよいですか?

NI VisionでImageデータタイプは、現在長方形画像をサポートしています。これは画像データは2D配列形式で保存されている必要があることを意味します。これが理由で、ほとんどのユーザが長方形ROIを選択して抽出しています。

ROIを抽出する迅速な方法は、「IMAQ Construct ROI」VIを使用して長方形のROI descriptorを抽出する方法で、このディスクリプタはオリジナルの画像からROIを抽出するIMAQ Extract Tetragon VIへ渡すことができます。この方法は、長方形ROIを抽出する仕様です。よりしっかりROIを抽出するには下記のとおりです。

自由形状、非長方形、 ROI descriptorは、「IMAQ Construct ROI」VIを使用して抽出させることも可能です。非長方形ROIを抽出するには、下記に示すとおりROI descriptorを抽出した後におこないます。ROI descriptorはマスクに変換させてオリジナルの画像に適用することで、ROI周辺でトリミングされます。「ExtractFreeshapeROI」VIは入力として画像を入手し、新しいポップアップウィンドウでユーザがROIを選択して、新しい画像として抽出したROIを出力します。このVIは、Community Example: Extracting a Freeshape ROIに添付されています。 




 

新しいウィンドウに選択したROIを表示するにはどうすればよいですか?

OI Descriptorを取得することができる場合、ウィンドウ内にROIを表示することができます。ROI Descriptorは、IMAQがROI用の位置情報を保持するために使用する専用のデータクラスタです。IMAQ ConstructROI、IMAQ WindGetROI、IMAQ MaskToROIや関数パレット>>ビジョン&モーション>>Vision Utilities>>Region of Interest>>Region of Interest ConversionにあるVIなどを含むいくつかのIMAQ VIにおいて出力として存在します。Vision Acquisition Software 2009以降を使用している場合、IMAQ Extract Tetragon VIが含まれています。下図に示すように、IMAQ Extract Tetragon VIは、直接入力としてROI Descriptorを取得し、ROI Descriptorで定義された領域の画像を抽出します。それからIMAQ WindDraw VIにこの画像を渡し新しいウィンドウに表示します。


 
Vision Acquisition Software 2009より前のバージョンを使用している場合、異なるウィンドウでROIを表示するにはもう少し追加の手順をおこなう必要があります。まず最初に、ROI Descriptorクラスタをバンドル解除してContours配列を取得する必要があります。この配列を索引する場合、Coordinates配列を含むクラスタを取得することができます。
 

これらの座標は、ROIの長方形情報を示しています。これらの座標とIMAQ Extract VIを使用する場合、ROIである特定の座標で最初の画像の領域のみを含む新しい画像を作成することができます。IMAQ WindDraw VIを使用して自身のウィンドウに新しい画像を表示することができます。具体的には、下記に添付されているDisplay Selected ROI.viというサンプルを参照してください。



 

これら両方の方法は、長方形ROIの選択でのみ使用することができます。長方形ではないROIを表示したい場合、上記で説明した ExtractFreeshapeROI.viのサンプルとIMAQ WindDraw VIを併用することができます。

 
 

Clamp関数を使用すると不正確/異なる値を返すのはなぜですか?

Vision AssistantにおいてClamp関数で特定のオブジェクトの周辺にROIを描いて、距離の測定値が返されます。同じオブジェクトの周辺に異なるROIを描いた場合、最初とは異なる測定値が返されることがあります。これは、クランプ内に来プロファイルの空間によるものです。これらのラインプロファイルは、クランプを横断する距離で始めのエッジを返します。ラインプロファイルが広がれば広がるほど、クランプは実際の測定されるべき外形の最大もしくは最小ポイントを失う可能性が高まります。新しいROIが描かれた際、ラインプロファイルは大きくシフトしてしまうため、異なる結果を返します。

この問題を避けるには、クランプ関数でギャップ値を低くします。これによりラインプロファイル間のスペースを減らします。ギャップ値を減らすと、測定精度は高くなりますが、処理時間が増加します。直線エッジや変化の少ないオブジェクトに対してはギャップ値を大きくします。測定しにくいオブジェクトの詳細な特徴や角度を検出したいときはギャップ値を小さくします。

メモ: LabVIEWでClamp VIを使用する際、ギャップ値はSubsampling Ratioと呼ばれ、Settingsクラスタで設定することができます。




 

LabWindows/CVIで指定したポイントから長方形ROIを作成するにはどうすればよいですか?

ROIデータタイプは、LabWindows/CVIでは定義されてませんが、Vision関数を呼び出すことでROIに修正を加えることが可能です。

たとえば、次のコードは長方形ROIを設定する方法を示しています。

Rect rect = { 80, 10,  55,  340 };
roi = imaqCreateROI();
imaqSetWindowROI(Display, roi);

すべてのVision関数、プロパティおよびメソッドについては、NI Vision for Visual Basic Reference Helpを参照してください。NI Visionをインストールしている場合、このヘルプはデフォルトでインストールされています。スタートメニュー>>すべてのプログラム>>National Instruments>>Vision>>Documentation>>NI Visionにアクセスして、Vision Helpのショートカットリンクからcwimaq.chmというファイルを開くことでこのヘルプを参照することができます。


 

ROIは光学式文字認識(OCR)でどのように動作しますか?

OCRは、学習と読み取りの大きく異なる2つの処理があります。学習時、ROIはコンピュータに学ばせたいオブジェクトの領域を指定する際に用います。読み取り時、ROIはコンピュータが読み取るデータを探す領域となります。 OCRの精度向上や効率向上させるために、ROIを変更することができます。学習中は、ROIを使用してノイズや不要なオブジェクトを省きながら学習させたい画像の領域を指定することができます。 また、読み取り中は読み取りたい画像だけをROIで囲むことができるので、処理時間と精度を高められます。

この記事はお役に立ちましたか?

いいえ