points_lepetitT_points_lepetitPointsLepetitPointsLepetitpoints_lepetit (算子)
名称
points_lepetitT_points_lepetitPointsLepetitPointsLepetitpoints_lepetit — 使用勒佩蒂特(Lepetit)算子检测兴趣点。
签名
void PointsLepetit(const HObject& Image, const HTuple& Radius, const HTuple& CheckNeighbor, const HTuple& MinCheckNeighborDiff, const HTuple& MinScore, const HTuple& Subpix, HTuple* Row, HTuple* Column)
void HImage::PointsLepetit(Hlong Radius, Hlong CheckNeighbor, Hlong MinCheckNeighborDiff, Hlong MinScore, const HString& Subpix, HTuple* Row, HTuple* Column) const
void HImage::PointsLepetit(Hlong Radius, Hlong CheckNeighbor, Hlong MinCheckNeighborDiff, Hlong MinScore, const char* Subpix, HTuple* Row, HTuple* Column) const
void HImage::PointsLepetit(Hlong Radius, Hlong CheckNeighbor, Hlong MinCheckNeighborDiff, Hlong MinScore, const wchar_t* Subpix, HTuple* Row, HTuple* Column) const
(
Windows only)
static void HOperatorSet.PointsLepetit(HObject image, HTuple radius, HTuple checkNeighbor, HTuple minCheckNeighborDiff, HTuple minScore, HTuple subpix, out HTuple row, out HTuple column)
void HImage.PointsLepetit(int radius, int checkNeighbor, int minCheckNeighborDiff, int minScore, string subpix, out HTuple row, out HTuple column)
描述
points_lepetitpoints_lepetitPointsLepetitPointsLepetitPointsLepetitpoints_lepetit extracts points of interest like corners or
blob-like structures from ImageImageImageImageimageimage. The ImageImageImageImageimageimage is first
smoothed with a median of size 3x3. Then, all the gray values on a circle
with radius RadiusRadiusRadiusRadiusradiusradius around an interest point candidate
(m) are examined. The absolute differences of two diagonally
opposed gray values (m1,m2) on the circle to the central pixel
m is computed. At least one of these differences has to be
larger than MinCheckNeighborDiffMinCheckNeighborDiffMinCheckNeighborDiffMinCheckNeighborDiffminCheckNeighborDiffmin_check_neighbor_diff. All diagonally opposed pixels
on the circle must fulfill that condition. To suppress detection of
points at edges that have a small curvature (aliasing), it is possible
to compute CheckNeighborCheckNeighborCheckNeighborCheckNeighborcheckNeighborcheck_neighbor further differences of circle point
neighbors of m1 and m2 to the center, that as well
fulfill the above criteria. By computing all gray value differences of
the circle points to the center, a mean gray value difference is
determined. That value has to be larger than MinScoreMinScoreMinScoreMinScoreminScoremin_score and
allows to restrict the results to points with high contrast. By computing
the score of all eight neighbors of m, it is possible to fit a quadratic
equation to that. The maxima of that equation determines a subpixel
accurate interest point position. By setting the parameter SubpixSubpixSubpixSubpixsubpixsubpix
to 'interpolation' (default) or 'none', it is possible to turn that refinement
step on or off. The resulting points are returned in RowRowRowRowrowrow and
ColumnColumnColumnColumncolumncolumn. The operator points_lepetitpoints_lepetitPointsLepetitPointsLepetitPointsLepetitpoints_lepetit can especially be
used for very fast interest point extraction. The results are however
less robust than points extracted by points_harrispoints_harrisPointsHarrisPointsHarrisPointsHarrispoints_harris for example.
注意
请注意,若使用域缩减后的图像作为输入,滤波器算子可能会返回意外结果。请参阅 滤波器 一章
执行信息
- 多线程类型:可重入(与非独占算子并行运行)。
- 多线程作用域:全局(可从任何线程调用)。
- 在域级别上自动并行化。
参数
ImageImageImageImageimageimage (输入对象) singlechannelimage → objectHImageHObjectHImageHobject (byte / uint2)
输入图像。
RadiusRadiusRadiusRadiusradiusradius (输入控制) integer → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Radius of the circle.
默认值:
3
建议值:
3, 5, 6, 7, 8, 9, 10, 15
CheckNeighborCheckNeighborCheckNeighborCheckNeighborcheckNeighborcheck_neighbor (输入控制) integer → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Number of checked neighbors on the circle.
默认值:
1
建议值:
1, 2, 3, 5
MinCheckNeighborDiffMinCheckNeighborDiffMinCheckNeighborDiffMinCheckNeighborDiffminCheckNeighborDiffmin_check_neighbor_diff (输入控制) integer → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Threshold of gray value difference to each circle
point.
默认值:
15
建议值:
10, 15, 20, 25, 30, 35, 40, 45, 60, 80
MinScoreMinScoreMinScoreMinScoreminScoremin_score (输入控制) integer → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Threshold of gray value difference to all circle points.
默认值:
30
建议值:
5, 10, 15, 20, 25, 30
SubpixSubpixSubpixSubpixsubpixsubpix (输入控制) string → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Subpixel accuracy of point coordinates.
默认值:
'interpolation'
"interpolation"
"interpolation"
"interpolation"
"interpolation"
"interpolation"
值列表:
'interpolation'"interpolation""interpolation""interpolation""interpolation""interpolation", 'none'"none""none""none""none""none"
RowRowRowRowrowrow (输出控制) point.y-array → HTupleSequence[Union[int, float]]HTupleHtuple (integer / real) (int / long / double) (Hlong / double) (Hlong / double)
Row-coordinates of the detected points.
ColumnColumnColumnColumncolumncolumn (输出控制) point.x-array → HTupleSequence[Union[int, float]]HTupleHtuple (integer / real) (int / long / double) (Hlong / double) (Hlong / double)
Column-coordinates of the detected points.
可能的前趋
gauss_filtergauss_filterGaussFilterGaussFilterGaussFiltergauss_filter
替代
points_foerstnerpoints_foerstnerPointsFoerstnerPointsFoerstnerPointsFoerstnerpoints_foerstner,
points_harrispoints_harrisPointsHarrisPointsHarrisPointsHarrispoints_harris,
points_harris_binomialpoints_harris_binomialPointsHarrisBinomialPointsHarrisBinomialPointsHarrisBinomialpoints_harris_binomial,
points_sojkapoints_sojkaPointsSojkaPointsSojkaPointsSojkapoints_sojka
模块
基础