エッジ検出

Classes

ClassDescription
Public classCFviArcEdge
1次元エッジ検出クラス(円弧上)
Public classCFviBoxEdge
1次エッジ検出クラス(箱指定)
Public classCFviEdge
エッジ検出基本クラス
Public classCFviEdge2D
2次元エッジ検出クラス
Public classCFviEdge2DCorrelation
2次元エッジ検出クラス(相関エッジ法)
Public classCFviEdge2DCorrelationParam
2次元エッジ検出パラメータクラス(相関エッジ法)
Public classCFviEdge2DSobel
2次元エッジ検出クラス(Sobel法)
Public classCFviEdge2DSobelParam
2次元エッジ検出パラメータクラス(Sobel法)
Public classCFviEdgeConnecting
エッジ点の連結
Public classCFviEdgeData
エッジデータ構造クラス
Public classCFviEdgeFilter
微分フィルタ設定構造クラス
Public classCFviEdgeResult
エッジ検出結果クラス
Public classCFviEdgeResultD64
エッジ検出結果 (実数版)
Public classCFviEdgeResultI32
エッジ検出結果 (整数版)
Public classCFviLineEdge
1次エッジ検出クラス(直線上)
Public classCFviPairEdge
1次エッジ検出クラス(両横方向)
Public classCFviRadialEdge
1次エッジ検出クラス(放射線方向)
Public classErrorCode
エラーコード(エッジ検出関連)

Enumerations

EnumerationDescription
Public enumerationDetectMode
並び替えモード
Public enumerationDirection
エッジ極性
Public enumerationMagMode
エッジ勾配強度保持指定フラグ
Public enumerationObjectColor
対象物の色
Public enumerationSaveMode
エッジ勾配方向および強度の保持指定フラグ
Public enumerationScanDirection
エッジの検出方向

Remarks

ここには、エッジ検出関連のクラスを集約しています。


トピック:


構成:

この機能は、検出機能を持つ本体(CFviEdge の派生クラス)と、 エッジデータやパラメータを格納するデータ構造で構成されます。

  • 本体:
    クラス内容
    CFviEdgeエッジ検出の基本クラスです。
    CFviArcEdge円弧上のエッジを検出するクラスです。
    CFviBoxEdge矩形内のエッジを検出するクラスです。
    CFviLineEdge直線上のエッジを検出するクラスです。
    CFviPairEdge指定点から両方向に伸びる直線上のエッジを検出するクラスです。
    CFviRadialEdge指定点から放射状に伸びる直線上のエッジを検出するクラスです。
    CFviEdge2DCorrelation相関エッジ法により画像のエッジを抽出して、エッジの勾配方向および強度を含むエッジ検出を行うクラスです。
    CFviEdge2DSobelソーベル法により画像のエッジを抽出して、エッジの勾配方向および強度を含むエッジ検出を行うクラスです。
  • データ構造:
    クラスデータID内容
    CFviEdgeData10201件分のエッジデータを格納するクラスです。下記の CFviEdgeResult から取得できます。
    CFviEdgeResult1021エッジ検出結果を格納するクラスです。
    CFviEdgeFilter1022 微分フィルタモデルを設定するクラスです。
    CFviLineEdge で使用します。
    CFviEdge2DCorrelationParam1023 相関エッジ法によるエッジ検出(CFviEdge2DCorrelation)で使用されるパラメータを保有します。
    CFviEdge2DSobelParam1024 ソーベル法によるエッジ検出(CFviEdge2DSobel)で使用されるパラメータを保有します。

[↑戻る]


コンポーネント:

エッジ検出の基本クラス(CFviEdge)は、 エッジ検出対象の濃淡画像(CFviImage)を要求し、 エッジ検出を格納するオブジェクト(CFviEdgeResult)を提供します。 実行前に、エッジ検出対象の濃淡画像を SrcImages[0] に設定する必要があります。

但し、CFviEdge クラスは抽象クラスですので、インスタンスの生成は行えません。 実際の処理は派生クラスで実装されています。 派生クラスは、計測位置の設定方法の違いによって分類されています。 詳細については、各クラスの説明をご参照ください。

[↑戻る]


1次元エッジ検出:

ユーザが指定した任意の位置のエッジを検出する機能です。
本ライブラリでは、以下の5種類を実装しています。


これらは、計測位置の指定方法が異なります。

[↑戻る]


2次元エッジ検出:

画像全体のエッジを検出する機能です。
クラス内部に画像のエッジ抽出を行うフィルタ機能を備えています。
本ライブラリでは、以下の2種類を実装しています。


これらは、エッジ抽出を行うフィルタ機能が異なります。
2次元エッジ検出は、エッジ点座標の他、エッジ強度、エッジ勾配(角度)も取得できます。

検出されるエッジデータ:
【エッジ点】


【エッジ強度】


【エッジ勾配】


上図の青い部分の拡大図:

[↑戻る]


エッジ勾配について:

当ライブラリでは、勾配付きエッジについて、以下のように定義しています。
エッジの向きは画像の色で黒(輝度低)から白(輝度高)の方向を向いているものとします。 角度の単位は「度」とします。下の図を参考にしてください。

[↑戻る]