|
WIL説明書(C++)
3.1.0
|
非極大値の抑制(エッジ勾配を利用) [詳解]
非極大値の抑制(エッジ勾配を利用)
namespace FVCL::Filter
非極大抑制は、画像に対して1次微分を施した後に実行されます。 注目画素の勾配を、勾配方向に隣接した2つの画素の勾配と比較します。 注目画素の勾配が隣接した画素の勾配より大きかった場合、局所的な最大値となり勾配強度は保持されて後の処理に利用されます。 そうでない場合は、0が設定されます。
非極大抑制は、細線化のような効果があります。 しかしながら、勾配方向を考慮しており、処理結果は必ずしも1画素の幅の線になるとは限りません。
なお、出力画像の周囲1画素は0になります。 また、 与えられたx方向とy方向のエッジ勾配強度は、互いに絶対値演算がなされて、エッジ勾配強度として処理に利用されます。
Threshold は勾配の非常に小さい値を取り除くために利用されます。 1以上の値を与えてください。
| 項目 | 数 | 定数 |
| 入力画像 | 2 | SrcImageCount |
| 出力画像 | 1 | DstImageCount |
FVCL::Filter::CFvNms の継承関係図公開型 | |
| enum | { SrcImageCount = 2, DstImageCount = 1 } |
公開メンバ関数 | |
| CFvNms () | |
| コンストラクタ [詳解] | |
| CFvNms (const FVCL::Data::CFvImage *magx, const FVCL::Data::CFvImage *magy, FVCL::Data::CFvImage *dst) | |
| 初期値指定コンストラクタ [詳解] | |
| CFvNms (const FVCL::Data::CFvImage *magx, const FVCL::Data::CFvImage *magy, FVCL::Data::CFvImage *dst, DOUBLE threshold) | |
| 初期値指定コンストラクタ [詳解] | |
| virtual | ~CFvNms () |
| デストラクタ [詳解] | |
| virtual bool | Execute () |
| 処理の実行 [詳解] | |
| virtual bool | IsValid () const |
| 入出力画像の有効性検査 [詳解] | |
| virtual bool | Validate (INT option=0) const |
| 出力画像の有効化 [詳解] | |
| virtual FVCL::ImageSize | GetValidSize (INT index, INT option=0) const |
| 出力画像の有効サイズの取得 [詳解] | |
| virtual CFvNms & | operator= (const CFvNms &src) |
| 代入オペレータ (=) [詳解] | |
| virtual bool | operator== (const CFvNms &src) const |
| 比較オペレータ (==) [詳解] | |
| virtual bool | operator!= (const CFvNms &src) const |
| 比較オペレータ (!=) [詳解] | |
| virtual bool | SetThreshold (DOUBLE value) |
| 閾値の設定 [詳解] | |
| virtual DOUBLE | GetThreshold () const |
| 閾値の取得 [詳解] | |
基底クラス FVCL::CFvImageParser に属する継承公開メンバ関数 | |
| CFvImageParser () | |
| コンストラクタ [詳解] | |
| virtual | ~CFvImageParser () |
| デストラクタ [詳解] | |
| bool | SetSrcImage (INT index, const FVCL::Data::CFvImage *image) |
| 入力画像の設定 [詳解] | |
| const FVCL::Data::CFvImage * | GetSrcImage (INT index) const |
| 入力画像の取得 [詳解] | |
| INT | GetSrcImageCount () const |
| 入力画像コレクションの許容量の取得 [詳解] | |
| bool | SetDstImage (INT index, FVCL::Data::CFvImage *image) |
| 出力画像の設定 [詳解] | |
| FVCL::Data::CFvImage * | GetDstImage (INT index) const |
| 出力画像の取得 [詳解] | |
| INT | GetDstImageCount () const |
| 出力画像コレクションの許容量の取得 [詳解] | |
| virtual CFvImageParser & | operator= (const CFvImageParser &src) |
| 代入オペレータ (=) [詳解] | |
| virtual bool | operator== (const CFvImageParser &src) const |
| 比較オペレータ (==) [詳解] | |
| virtual bool | operator!= (const CFvImageParser &src) const |
| 比較オペレータ (!=) [詳解] | |
基底クラス FVCL::CFvObject に属する継承公開メンバ関数 | |
| CFvObject () | |
| 標準のコンストラクタ [詳解] | |
| virtual | ~CFvObject () |
| デストラクタ [詳解] | |
| INT | SetErrorCode (INT err) |
| エラーコードの設定 [詳解] | |
| INT | SetErrorCode (INT err) const |
| エラーコードの設定 [詳解] | |
| INT | GetErrorCode () const |
| エラーコードの取得 [詳解] | |
| bool | SetAllocateOption (INT value) |
| 画像領域確保時のオプションの設定 [詳解] | |
| INT | GetAllocateOption () const |
| 画像領域確保時のオプションの取得 [詳解] | |
| void * | operator new (size_t uiSize) |
| new オペレータ [詳解] | |
| void * | operator new[] (size_t uiSize) |
| new[] オペレータ [詳解] | |
| void | operator delete (void *pvObject) |
| delete オペレータ [詳解] | |
| void | operator delete[] (void *pvObject) |
| delete[] オペレータ [詳解] | |
| void * | operator new (size_t uiSize, LPCSTR szFileName, INT iLine) |
| new オペレータ [詳解] | |
| void * | operator new[] (size_t uiSize, LPCSTR szFileName, INT iLine) |
| new[] オペレータ [詳解] | |
| void | operator delete (void *pvObject, LPCSTR szFileName, INT iLine) |
| delete オペレータ [詳解] | |
| void | operator delete[] (void *pvObject, LPCSTR szFileName, INT iLine) |
| delete[] オペレータ [詳解] | |
| virtual CFvObject & | operator= (const CFvObject &src) |
| 代入オペレータ [詳解] | |
| virtual bool | operator== (const CFvObject &src) const |
| 比較オペレータ (==) [詳解] | |
| virtual bool | operator!= (const CFvObject &src) const |
| 比較オペレータ (!=) [詳解] | |
静的公開メンバ関数 | |
| static INT | CheckValidity (const FVCL::Data::CFvImage &src) |
| 入力画像の有効性検査 [詳解] | |
| static INT | CheckValidityDst (const FVCL::Data::CFvImage &dst) |
| 出力画像の有効性検査 [詳解] | |
基底クラス FVCL::CFvObject に属する継承静的公開メンバ関数 | |
| static bool | SetDefaultAllocateOption (INT value) |
| 既定の画像領域確保時のオプションの設定 [詳解] | |
| static INT | GetDefaultAllocateOption () |
| 既定の画像領域確保時のオプションの取得 [詳解] | |
限定公開変数類 | |
| DOUBLE | m_Threshold |
| 閾値 [詳解] | |
基底クラス FVCL::CFvImageParser に属する継承限定公開変数類 | |
| INT | m_cpu_mode |
| CPUモード [詳解] | |
| CFvArray< FVCL::Data::CFvImage const * > | m_SrcImages |
| 入力画像コレクション [詳解] | |
| CFvArray< FVCL::Data::CFvImage * > | m_DstImages |
| 出力画像コレクション [詳解] | |
基底クラス FVCL::CFvObject に属する継承限定公開変数類 | |
| INT | m_ErrorCode |
| エラーコード [詳解] | |
| INT | m_AllocateOption |
| 画像領域確保時のオプション [詳解] | |
その他の継承メンバ | |
基底クラス FVCL::CFvObject に属する継承限定公開メンバ関数 | |
| INT | fnCPUCheck () |
| CPU情報の取得 [詳解] | |
| anonymous enum |
| FVCL::Filter::CFvNms::CFvNms | ( | ) |
コンストラクタ
標準のコンストラクタです。
| FVCL::Filter::CFvNms::CFvNms | ( | const FVCL::Data::CFvImage * | magx, |
| const FVCL::Data::CFvImage * | magy, | ||
| FVCL::Data::CFvImage * | dst | ||
| ) |
初期値指定コンストラクタ
初期値を指定してオブジェクトを構築します。
| [in] | magx | 入力画像(X方向のエッジ勾配強度画像) |
| [in] | magy | 入力画像(Y方向のエッジ勾配強度画像) |
| [in] | dst | 出力画像(エッジ勾配強度画像) |
| FVCL::Filter::CFvNms::CFvNms | ( | const FVCL::Data::CFvImage * | magx, |
| const FVCL::Data::CFvImage * | magy, | ||
| FVCL::Data::CFvImage * | dst, | ||
| DOUBLE | threshold | ||
| ) |
初期値指定コンストラクタ
初期値を指定してオブジェクトを構築します。
| [in] | magx | 入力画像(X方向のエッジ勾配強度画像) |
| [in] | magy | 入力画像(Y方向のエッジ勾配強度画像) |
| [in] | dst | 出力画像(エッジ勾配強度画像) |
| [in] | threshold | 非常に小さい勾配を取り除くための閾値 [初期値:0、範囲:0~] |
| CFveBadParamException | パラメータに誤りが有ります。 |
|
virtual |
デストラクタ
|
virtual |
処理の実行
現在、メンバ変数に設定されている入力画像を処理し、結果を出力画像へ格納します。
| true | 正常 |
| false | 異常 GetErrorCodeメソッドによりエラーコードを取得できます。 |
| 値 | 定数 | 内容 |
| 51 | FVCL_ErrorCode::LICENSE_ERROR | ライセンスエラー |
| 1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | 領域の確保に失敗しました。 |
| 11 | FVCL_ErrorCode::INVALID_PARAMETER | パラメータに誤りがあります。 |
| 12 | FVCL_ErrorCode::INVALID_OBJECT | 指定された画像オブジェクトが無効です。 |
| その他 | 入出力画像が有効でなければ IsValid のエラーコードが設定されます。 |
FVCL::CFvImageParserを実装しています。
|
virtual |
入出力画像の有効性検査
現在、メンバ変数に設定されている入力画像と出力画像の有効性を確認します。
| true | 正常 |
| false | 異常 GetErrorCodeメソッドによりエラーコードを取得できます。 |
| 値 | 定数 | 内容 |
| 81 | FVCL_ErrorCode::HAVE_NOT_IMAGE | 画像オブジェクトが設定されていません。 |
| 91 | FVCL_ErrorCode::INVALID_SRC_IMAGETYPE | 入力側の画像種別が不正です。 |
| 92 | FVCL_ErrorCode::INVALID_DST_IMAGETYPE | 出力側の画像種別が不正です。 |
| 93 | FVCL_ErrorCode::NOMATCH_IMAGETYPE | 入力画像と出力画像の画像種別が一致していません。 |
| 99 | FVCL_ErrorCode::NOMATCH_CHANNEL | 入力画像と出力画像のチャネル数が一致していません。 |
| 19 | FVCL_ErrorCode::INVALID_PROCAREA | 画像オブジェクトの処理範囲が許容値外です。 |
| その他 | 入力画像が有効でなければ CheckValidity の戻り値が設定されます。 |
FVCL::CFvImageParserを実装しています。
|
virtual |
出力画像の有効化
現在、メンバ変数に設定されている出力画像を有効化します。
| [in] | option | 挙動制御オプション
|
| true | 正常 |
| false | 異常 GetErrorCodeメソッドによりエラーコードを取得できます。 |
| 値 | 定数 | 内容 |
| 81 | FVCL_ErrorCode::HAVE_NOT_IMAGE | 入力画像または出力画像が設定されていません。 |
| 1 | FVCL_ErrorCode::FAILED_TO_ALLOCATE | 処理の途中でメモリ確保に失敗しました。メモリが不足しています。 |
| 11 | FVCL_ErrorCode::INVALID_PARAMETER | 引数に誤りがあります。 |
| その他 | 入力画像が有効でなければ CheckValidity の戻り値が設定されます。 |
FVCL::CFvImageParserを実装しています。
|
virtual |
出力画像の有効サイズの取得
現在設定されている入力画像を処理する為に必要な出力画像のサイズを取得します。
出力画像を必要としない画像処理の場合は例外(FVCL_ErrorCode::NOT_SUPPORTED)を発行します。
| [in] | index | 出力画像の配列指標 [0~(GetDstImageCount-1)] ※複数の出力が有る場合、指標によって取得される情報が異なる場合があります。 |
| [in] | option | 挙動制御オプション [0:既定の動作] ※指定できる範囲は派生クラスにより異なります。派生クラスの Validate の説明を参照ください。 |
| FVCL::CFveException | 処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。 |
| 値 | 定数 | 内容 |
| 21 | FVCL_ErrorCode::NOT_SUPPORTED | サポートされていません。 |
| 11 | FVCL_ErrorCode::INVALID_PARAMETER | 指定された引数に誤りがあります。 |
| 81 | FVCL_ErrorCode::HAVE_NOT_IMAGE | 画像オブジェクトが設定されていません。 |
| 91 | FVCL_ErrorCode::INVALID_SRC_IMAGETYPE | 入力側の画像種別が不正です。 |
| 94 | FVCL_ErrorCode::INVALID_SRC_IMAGESIZE | 入力側の画像のサイズが無効です。 |
| 97 | FVCL_ErrorCode::INVALID_SRC_CHANNEL | 入力側の画像のチャネル数が無効です。 |
| 19 | FVCL_ErrorCode::INVALID_PROCAREA | 処理範囲に誤りがあります。 |
FVCL::CFvImageParserを再実装しています。
|
static |
|
static |
|
virtual |
代入オペレータ (=)
同一クラスのオブジェクトの内容を自身に代入します。
| [in] | src | 代入するオブジェクトへの参照 |
|
virtual |
比較オペレータ (==)
同一クラスのオブジェクトの内容と自身を比較します。
| [in] | src | 比較対象のオブジェクトへの参照 |
| true | 一致 |
| false | 不一致 |
|
virtual |
比較オペレータ (!=)
同一クラスのオブジェクトの内容と自身を比較します。
| [in] | src | 比較対象のオブジェクトへの参照 |
| true | 不一致 |
| false | 一致 |
|
virtual |
閾値の設定
非常に小さい勾配を取り除くための閾値を設定します。
| [in] | value | 閾値 [初期値:0、範囲:0~] |
| true | 正常 |
| false | 異常 |
|
virtual |
閾値の取得
|
protected |
閾値