WIL説明書(C++)  3.0.0
関数

詳解

関数

FVCL_API INT FVCL::Hough::LineHough (const FVCL::CFvMultiData< FVCL::Edge::CFvEdgeData > &edges, const FVCL::Hough::CFvLineHoughParam &param, FVCL::Hough::CFvLineHoughResult *result)
 直線ハフ検出 [詳解]
 
FVCL_API INT FVCL::Hough::LineHough (const FVCL::Edge::CFvEdgeResultD64 &edges, const FVCL::Hough::CFvLineHoughParam &param, FVCL::CFvBuffer< F_LH_LINE > *result)
 直線ハフ検出 [詳解]
 
FVCL_API INT FVCL::Hough::LineHough (const FVCL::Edge::CFvEdgeResultI32 &edges, const FVCL::Hough::CFvLineHoughParam &param, FVCL::CFvBuffer< F_LH_LINE > *result)
 直線ハフ検出 [詳解]
 
FVCL_API INT FVCL::Hough::GetSupportEdges (const FVCL::Hough::CFvLineHoughData &line, const FVCL::CFvMultiData< FVCL::Edge::CFvEdgeData > &edges, INT err_r, INT err_q, FVCL::CFvMultiData< FVCL::Edge::CFvEdgeData > *support_edges, INT *sort_type)
 直線に近いエッジ点列の取得 [詳解]
 
FVCL_API INT FVCL::Hough::GetSupportEdges (const F_LH_LINE &line, const FVCL::Edge::CFvEdgeResultD64 &edges, INT err_r, INT err_q, FVCL::Edge::CFvEdgeResultD64 *support_edges, INT *sort_type=NULL)
 直線に近いエッジ点列の取得 [詳解]
 
FVCL_API INT FVCL::Hough::GetSupportEdges (const F_LH_LINE &line, const FVCL::Edge::CFvEdgeResultI32 &edges, INT err_r, INT err_q, FVCL::Edge::CFvEdgeResultI32 *support_edges, INT *sort_type=NULL)
 直線に近いエッジ点列の取得 [詳解]
 
FVCL_API INT FVCL::Hough::RefineByLSM (FVCL::Hough::CFvLineHoughData *line, const FVCL::CFvMultiData< FVCL::Edge::CFvEdgeData > &edges, INT err_r, INT err_q)
 直線の再検出 [詳解]
 
FVCL_API INT FVCL::Hough::RefineByLSM (F_LH_LINE *line, const FVCL::Edge::CFvEdgeResultD64 &edges, INT err_r, INT err_q, INT *points_num=NULL)
 直線の再検出 [詳解]
 
FVCL_API INT FVCL::Hough::RefineByLSM (F_LH_LINE *line, const FVCL::Edge::CFvEdgeResultI32 &edges, INT err_r, INT err_q, INT *points_num=NULL)
 直線の再検出 [詳解]
 

関数詳解

FVCL::Hough::LineHough ( const FVCL::CFvMultiData< FVCL::Edge::CFvEdgeData > &  edges,
const FVCL::Hough::CFvLineHoughParam param,
FVCL::Hough::CFvLineHoughResult result 
)

直線ハフ検出

namespace FVCL::Hough

勾配付きエッジ点列をハフ空間に投票し、直線を検出します。

引数
[in]edges投票するエッジ点列 (1点以上)
[in]param直線ハフ検出パラメータ
[out]result検出結果
戻り値
FVCL_ErrorCode::_SUCCESS正常終了
FVCL_ErrorCode::LICENSE_ERRORライセンスエラー
FVCL_ErrorCode::INVALID_PARAMETERパラメータエラー
FVCL_ErrorCode::FAILED_TO_ALLOCATEメモリ不足
必要条件:
ヘッダー: FVCLbasic.h
解説:
ハフ投票空間上から、投票スコアの高い順に要求された数の直線を検出します。 但し、投票空間において規定の最小投票数(内部固定)を満たすピークが 要求数に満たない場合には、検出される直線の数はそれよりも少なくなります。
edges には勾配付きのエッジ点列を指定します。
エッジ点の方向は -179~180 の範囲でなければいけません。 また、エッジ点列が param に指定された座標領域(FVCL::Hough::CFvLineHoughParam::m_Area) の範囲を超える場合は、メモリアクセス違反を起こします。 エッジ点列の座標が不明確な場合は、座標領域(FVCL::Hough::CFvLineHoughParam::m_Area)の 左上及び右下共に 0.0 を指定してください。 この場合は、指定されたエッジ点列の座標から領域を自動決定します。
result に、検出結果を格納します。 result の要素数は、検出数で再確保されます。
FVCL::Hough::LineHough ( const FVCL::Edge::CFvEdgeResultD64 edges,
const FVCL::Hough::CFvLineHoughParam param,
FVCL::CFvBuffer< F_LH_LINE > *  result 
)

直線ハフ検出

namespace FVCL::Hough

勾配付きエッジ点列をハフ空間に投票し、直線を検出します。

引数
[in]edges投票するエッジ点列 (1点以上)
[in]param直線ハフ検出パラメータ
[out]result検出結果
戻り値
FVCL_ErrorCode::_SUCCESS正常終了
FVCL_ErrorCode::LICENSE_ERRORライセンスエラー
FVCL_ErrorCode::INVALID_PARAMETERパラメータエラー
FVCL_ErrorCode::FAILED_TO_ALLOCATEメモリ不足
必要条件:
ヘッダー: FVCLbasic.h
解説:
ハフ投票空間上から、投票スコアの高い順に要求された数の直線を検出します。 但し、投票空間において規定の最小投票数(内部固定)を満たすピークが 要求数に満たない場合には、検出される直線の数はそれよりも少なくなります。
edges には勾配付きのエッジ点列を指定します。
エッジ点の方向は -179~180 の範囲でなければいけません。 また、エッジ点列が param に指定された座標領域(FVCL::Hough::CFvLineHoughParam::m_Area) の範囲を超える場合は、メモリアクセス違反を起こします。 エッジ点列の座標が不明確な場合は、座標領域(FVCL::Hough::CFvLineHoughParam::m_Area)の 左上及び右下共に 0.0 を指定してください。 この場合は、指定されたエッジ点列の座標から領域を自動決定します。
result に、検出結果を格納します。 result の要素数は、検出数で再確保されます。
FVCL::Hough::LineHough ( const FVCL::Edge::CFvEdgeResultI32 edges,
const FVCL::Hough::CFvLineHoughParam param,
FVCL::CFvBuffer< F_LH_LINE > *  result 
)

直線ハフ検出

namespace FVCL::Hough

勾配付きエッジ点列をハフ空間に投票し、直線を検出します。

引数
[in]edges投票するエッジ点列 (1点以上)
[in]param直線ハフ検出パラメータ
[out]result検出結果
戻り値
FVCL_ErrorCode::_SUCCESS正常終了
FVCL_ErrorCode::LICENSE_ERRORライセンスエラー
FVCL_ErrorCode::INVALID_PARAMETERパラメータエラー
FVCL_ErrorCode::FAILED_TO_ALLOCATEメモリ不足
必要条件:
ヘッダー: FVCLbasic.h
解説:
ハフ投票空間上から、投票スコアの高い順に要求された数の直線を検出します。 但し、投票空間において規定の最小投票数(内部固定)を満たすピークが 要求数に満たない場合には、検出される直線の数はそれよりも少なくなります。
edges には勾配付きのエッジ点列を指定します。
エッジ点の方向は -179~180 の範囲でなければいけません。 また、エッジ点列が param に指定された座標領域(FVCL::Hough::CFvLineHoughParam::m_Area) の範囲を超える場合は、メモリアクセス違反を起こします。 エッジ点列の座標が不明確な場合は、座標領域(FVCL::Hough::CFvLineHoughParam::m_Area)の 左上及び右下共に 0.0 を指定してください。 この場合は、指定されたエッジ点列の座標から領域を自動決定します。
result に、検出結果を格納します。 result の要素数は、検出数で再確保されます。
FVCL::Hough::GetSupportEdges ( const FVCL::Hough::CFvLineHoughData line,
const FVCL::CFvMultiData< FVCL::Edge::CFvEdgeData > &  edges,
INT  err_r,
INT  err_q,
FVCL::CFvMultiData< FVCL::Edge::CFvEdgeData > *  support_edges,
INT sort_type 
)

直線に近いエッジ点列の取得

namespace FVCL::Hough

直線に近いエッジ点列を取得します。

引数
[in]line直線ハフ検出データ
[in]edgesエッジ点列 (1点以上)
[in]err_rρ方向許容誤差 (0~)
[in]err_qθ方向許容誤差 (0~)
[out]support_edges直線の近くのエッジ点列
[out]sort_typeソート方法
この変数には以下の値が格納されます。 省略する場合は NULL を指定してください。
  • FVCL::Hough::SortType::XSort : X座標でソート
  • FVCL::Hough::SortType::YSort : Y座標でソート

戻り値
FVCL_ErrorCode::_SUCCESS正常終了
FVCL_ErrorCode::LICENSE_ERRORライセンスエラー
FVCL_ErrorCode::INVALID_PARAMETERパラメータエラー
FVCL_ErrorCode::FAILED_TO_ALLOCATEメモリ不足
必要条件:
ヘッダー: FVCLbasic.h
解説:
与えられたエッジ点列と直線から、その直線の近くにある点群を取得します。
line には、直線ハフ検出(LineHough)で得られた結果(複数の直線)の内の 1つを指定してください。
edges には、直線の近くにある可能性のあるエッジ点列を指定します。 直線ハフ検出(LineHough)で指定したエッジ点列をそのまま入力して構いません。 若しくは、何らかの方法によって候補を絞ったものを入力しても結構です。 このエッジ点列の中から直線上にある点が選ばれます。
err_r はエッジ点が直線の近くにあるかどうかを判定するための値です。 具体的には、直線とエッジ点との距離が err_r 以内の場合、このエッジ点が直線の近く にあると判定されます。(下図参照)
err_q はエッジ点が直線の真のエッジ点であるかどうかを判定するための値です。 具体的には、直線の向きとエッジ点の向きとの差の絶対値が err_q 以内の場合、 このエッジ点が直線の真のエッジであると判定されます。(下図参照)
pal_xlhough_refine_line.png
取得された点群は、support_edges に格納して返されます。 support_edges の要素数は、取得された点群の個数で再確保されます。
回答の点群はx座標またはy座標に関してソートされます。 x座標順にソートされるか、y座標順にソートされるかを 呼び出し側で指定することは出来ません。
参照
LineHough(const FVCL::CFvMultiData<FVCL::Edge::CFvEdgeData>& edges, const FVCL::Hough::CFvLineHoughParam& param, FVCL::Hough::CFvLineHoughResult* result)
RefineByLSM(FVCL::Hough::CFvLineHoughData* line, const FVCL::CFvMultiData<FVCL::Edge::CFvEdgeData>& edges, INT err_r, INT err_q)
FVCL::Hough::GetSupportEdges ( const F_LH_LINE &  line,
const FVCL::Edge::CFvEdgeResultD64 edges,
INT  err_r,
INT  err_q,
FVCL::Edge::CFvEdgeResultD64 support_edges,
INT sort_type = NULL 
)

直線に近いエッジ点列の取得

namespace FVCL::Hough

直線に近いエッジ点列を取得します。

引数
[in]line直線ハフ検出データ
[in]edgesエッジ点列 (1点以上)
[in]err_rρ方向許容誤差 (0~)
[in]err_qθ方向許容誤差 (0~)
[out]support_edges直線の近くのエッジ点列
[out]sort_typeソート方法
この変数には以下の値が格納されます。 省略する場合は NULL を指定してください。
  • FVCL::Hough::SortType::XSort : X座標でソート
  • FVCL::Hough::SortType::YSort : Y座標でソート

戻り値
FVCL_ErrorCode::_SUCCESS正常終了
FVCL_ErrorCode::LICENSE_ERRORライセンスエラー
FVCL_ErrorCode::INVALID_PARAMETERパラメータエラー
FVCL_ErrorCode::FAILED_TO_ALLOCATEメモリ不足
必要条件:
ヘッダー: FVCLbasic.h
解説:
与えられたエッジ点列と直線から、その直線の近くにある点群を取得します。
line には、直線ハフ検出で得られた結果(複数の直線)の内の 1つを指定してください。
edges には、直線の近くにある可能性のあるエッジ点列を指定します。 直線ハフ検出で指定したエッジ点列をそのまま入力して構いません。 若しくは、何らかの方法によって候補を絞ったものを入力しても結構です。 このエッジ点列の中から直線上にある点が選ばれます。
err_r はエッジ点が直線の近くにあるかどうかを判定するための値です。 具体的には、直線とエッジ点との距離が err_r 以内の場合、このエッジ点が直線の近く にあると判定されます。(下図参照)
err_q はエッジ点が直線の真のエッジ点であるかどうかを判定するための値です。 具体的には、直線の向きとエッジ点の向きとの差の絶対値が err_q 以内の場合、 このエッジ点が直線の真のエッジであると判定されます。(下図参照)
pal_xlhough_refine_line.png
取得された点群は、support_edges に格納して返されます。 support_edges の要素数は、取得された点群の個数で再確保されます。
回答の点群はx座標またはy座標に関してソートされます。 x座標順にソートされるか、y座標順にソートされるかを 呼び出し側で指定することは出来ません。
参照
LineHough( const FVCL::Edge::CFvEdgeResultD64& edges, const FVCL::Hough::CFvLineHoughParam& param, FVCL::CFvBuffer<F_LH_LINE>* result )
RefineByLSM( F_LH_LINE* line, const FVCL::Edge::CFvEdgeResultD64& edges, INT err_r, INT err_q, INT* points_num )
FVCL::Hough::GetSupportEdges ( const F_LH_LINE &  line,
const FVCL::Edge::CFvEdgeResultI32 edges,
INT  err_r,
INT  err_q,
FVCL::Edge::CFvEdgeResultI32 support_edges,
INT sort_type = NULL 
)

直線に近いエッジ点列の取得

namespace FVCL::Hough

直線に近いエッジ点列を取得します。

引数
[in]line直線ハフ検出データ
[in]edgesエッジ点列 (1点以上)
[in]err_rρ方向許容誤差 (0~)
[in]err_qθ方向許容誤差 (0~)
[out]support_edges直線の近くのエッジ点列
[out]sort_typeソート方法
この変数には以下の値が格納されます。 省略する場合は NULL を指定してください。
  • FVCL::Hough::SortType::XSort : X座標でソート
  • FVCL::Hough::SortType::YSort : Y座標でソート

戻り値
FVCL_ErrorCode::_SUCCESS正常終了
FVCL_ErrorCode::LICENSE_ERRORライセンスエラー
FVCL_ErrorCode::INVALID_PARAMETERパラメータエラー
FVCL_ErrorCode::FAILED_TO_ALLOCATEメモリ不足
必要条件:
ヘッダー: FVCLbasic.h
解説:
与えられたエッジ点列と直線から、その直線の近くにある点群を取得します。
line には、直線ハフ検出で得られた結果(複数の直線)の内の 1つを指定してください。
edges には、直線の近くにある可能性のあるエッジ点列を指定します。 直線ハフ検出で指定したエッジ点列をそのまま入力して構いません。 若しくは、何らかの方法によって候補を絞ったものを入力しても結構です。 このエッジ点列の中から直線上にある点が選ばれます。
err_r はエッジ点が直線の近くにあるかどうかを判定するための値です。 具体的には、直線とエッジ点との距離が err_r 以内の場合、このエッジ点が直線の近く にあると判定されます。(下図参照)
err_q はエッジ点が直線の真のエッジ点であるかどうかを判定するための値です。 具体的には、直線の向きとエッジ点の向きとの差の絶対値が err_q 以内の場合、 このエッジ点が直線の真のエッジであると判定されます。(下図参照)
pal_xlhough_refine_line.png
取得された点群は、support_edges に格納して返されます。 support_edges の要素数は、取得された点群の個数で再確保されます。
回答の点群はx座標またはy座標に関してソートされます。 x座標順にソートされるか、y座標順にソートされるかを 呼び出し側で指定することは出来ません。
参照
LineHough( const FVCL::Edge::CFvEdgeResultI32& edges, const FVCL::Hough::CFvLineHoughParam& param, FVCL::CFvBuffer<F_LH_LINE>* result )
RefineByLSM( F_LH_LINE* line, const FVCL::Edge::CFvEdgeResultI32& edges, INT err_r, INT err_q, INT* points_num )
FVCL::Hough::RefineByLSM ( FVCL::Hough::CFvLineHoughData line,
const FVCL::CFvMultiData< FVCL::Edge::CFvEdgeData > &  edges,
INT  err_r,
INT  err_q 
)

直線の再検出

namespace FVCL::Hough

直線係数を最小二乗法で求め直します。

引数
[in,out]line直線ハフ検出データ
※再検出後、この内容は更新されます。
[in]edgesエッジ点列 (1点以上)
[in]err_rρ方向許容誤差 (0~)
[in]err_qθ方向許容誤差 (0~)
戻り値
FVCL_ErrorCode::_SUCCESS正常終了
FVCL_ErrorCode::LICENSE_ERRORライセンスエラー
FVCL_ErrorCode::INVALID_PARAMETERパラメータエラー
FVCL_ErrorCode::FAILED_TO_ALLOCATEメモリ不足
FVCL_ErrorCode::NOT_CALCULABLE計算不可能
必要条件:
ヘッダー: FVCLbasic.h
解説:
指定された1本の直線とエッジ点群から、その直線の近くにあると判定される点群を 選び出し、これらに対して最小二乗法で直線の方程式を求め直します。
line には、直線ハフ検出(LineHough)で得られた結果(複数の直線)の内の 1つを指定してください。
edges には、直線の近くにある可能性のあるエッジ点列を指定します。 直線ハフ検出(LineHough)で指定したエッジ点列をそのまま入力して構いません。 若しくは、何らかの方法によって候補を絞ったものを入力しても結構です。 このエッジ点列の中から直線上にある点が選ばれます。
err_r 及び err_q は、直線付近のエッジ点群を選び出す為に使用します。 詳しくは、 GetSupportEdges の解説をご参照ください。
参照
LineHough(const FVCL::CFvMultiData<FVCL::Edge::CFvEdgeData>& edges, const FVCL::Hough::CFvLineHoughParam& param, FVCL::Hough::CFvLineHoughResult* result)
GetSupportEdges(const FVCL::Hough::CFvLineHoughData& ine, const FVCL::CFvMultiData<FVCL::Edge::CFvEdgeData>& edges, INT err_r, INT err_q, FVCL::CFvMultiData<FVCL::Edge::CFvEdgeData>* support_edges, INT* sort_type)
FVCL::Hough::RefineByLSM ( F_LH_LINE *  line,
const FVCL::Edge::CFvEdgeResultD64 edges,
INT  err_r,
INT  err_q,
INT points_num = NULL 
)

直線の再検出

namespace FVCL::Hough

直線係数を最小二乗法で求め直します。

引数
[in,out]line直線ハフ検出データ
※再検出後、この内容は更新されます。
[in]edgesエッジ点列 (1点以上)
[in]err_rρ方向許容誤差 (0~)
[in]err_qθ方向許容誤差 (0~)
[in]points_num直線の上にあるエッジ点の数
※省略する場合は NULL を指定してください。
戻り値
FVCL_ErrorCode::_SUCCESS正常終了
FVCL_ErrorCode::LICENSE_ERRORライセンスエラー
FVCL_ErrorCode::INVALID_PARAMETERパラメータエラー
FVCL_ErrorCode::FAILED_TO_ALLOCATEメモリ不足
FVCL_ErrorCode::NOT_CALCULABLE計算不可能
必要条件:
ヘッダー: FVCLbasic.h
解説:
指定された1本の直線とエッジ点群から、その直線の近くにあると判定される点群を 選び出し、これらに対して最小二乗法で直線の方程式を求め直します。
line には、直線ハフ検出で得られた結果(複数の直線)の内の 1つを指定してください。
edges には、直線の近くにある可能性のあるエッジ点列を指定します。 直線ハフ検出で指定したエッジ点列をそのまま入力して構いません。 若しくは、何らかの方法によって候補を絞ったものを入力しても結構です。 このエッジ点列の中から直線上にある点が選ばれます。
err_r 及び err_q は、直線付近のエッジ点群を選び出す為に使用します。 詳しくは、 GetSupportEdges の解説をご参照ください。
参照
LineHough( const FVCL::Edge::CFvEdgeResultD64& edges, const FVCL::Hough::CFvLineHoughParam& param, FVCL::CFvBuffer<F_LH_LINE>* result )
GetSupportEdges( const F_LH_LINE& line, const FVCL::Edge::CFvEdgeResultD64& edges, INT err_r, INT err_q, FVCL::Edge::CFvEdgeResultD64* support_edges, INT* sort_type )
FVCL::Hough::RefineByLSM ( F_LH_LINE *  line,
const FVCL::Edge::CFvEdgeResultI32 edges,
INT  err_r,
INT  err_q,
INT points_num = NULL 
)

直線の再検出

namespace FVCL::Hough

直線係数を最小二乗法で求め直します。

引数
[in,out]line直線ハフ検出データ
※再検出後、この内容は更新されます。
[in]edgesエッジ点列 (1点以上)
[in]err_rρ方向許容誤差 (0~)
[in]err_qθ方向許容誤差 (0~)
[in]points_num直線の上にあるエッジ点の数
※省略する場合は NULL を指定してください。
戻り値
FVCL_ErrorCode::_SUCCESS正常終了
FVCL_ErrorCode::LICENSE_ERRORライセンスエラー
FVCL_ErrorCode::INVALID_PARAMETERパラメータエラー
FVCL_ErrorCode::FAILED_TO_ALLOCATEメモリ不足
FVCL_ErrorCode::NOT_CALCULABLE計算不可能
必要条件:
ヘッダー: FVCLbasic.h
解説:
指定された1本の直線とエッジ点群から、その直線の近くにあると判定される点群を 選び出し、これらに対して最小二乗法で直線の方程式を求め直します。
line には、直線ハフ検出で得られた結果(複数の直線)の内の 1つを指定してください。
edges には、直線の近くにある可能性のあるエッジ点列を指定します。 直線ハフ検出で指定したエッジ点列をそのまま入力して構いません。 若しくは、何らかの方法によって候補を絞ったものを入力しても結構です。 このエッジ点列の中から直線上にある点が選ばれます。
err_r 及び err_q は、直線付近のエッジ点群を選び出す為に使用します。 詳しくは、 GetSupportEdges の解説をご参照ください。
参照
LineHough( const FVCL::Edge::CFvEdgeResultI32& edges, const FVCL::Hough::CFvLineHoughParam& param, FVCL::CFvBuffer<F_LH_LINE>* result )
GetSupportEdges( const F_LH_LINE& line, const FVCL::Edge::CFvEdgeResultI32& edges, INT err_r, INT err_q, FVCL::Edge::CFvEdgeResultI32* support_edges, INT* sort_type )

Documentation copyright © 2007 FAST Corporation. [B-001864]
Generated on 2023年11月02日(木) 10時12分56秒 for WIL説明書(C++) by doxygen 1.8.11