robertsrobertsRobertsRobertsroberts (算子)
名称
robertsrobertsRobertsRobertsroberts — 使用罗伯茨(Roberts)滤波器检测边缘。
签名
描述
robertsrobertsRobertsRobertsRobertsroberts calculates the first derivative of an image
and is used as an edge operator. If the following mask describes a
part of the image,
A B
C D
the different filter types are defined as follows:
'roberts_max' max(| A - D |,| B - C |)
'gradient_max' max(| A + B - (C + D)|,| A + C - (B + D)|)
'gradient_sum' |A + B - (C + D)| + |A + C - (B + D)|
If an overflow occurs the result is clipped. The result of the
operator is stored at the pixel with the coordinates of "D".
注意
请注意,若使用域缩减后的图像作为输入,滤波器算子可能会返回意外结果。请参阅 滤波器 一章
执行信息
- 多线程类型:可重入(与非独占算子并行运行)。
- 多线程作用域:全局(可从任何线程调用)。
- 在元组级别上自动并行化。
- 在通道级别上自动并行化。
- 在域级别上自动并行化。
参数
ImageImageImageImageimageimage (输入对象) (multichannel-)image(-array) → objectHImageHObjectHImageHobject (byte / int2 / uint2)
输入图像。
ImageRobertsImageRobertsImageRobertsImageRobertsimageRobertsimage_roberts (输出对象) (multichannel-)image(-array) → objectHImageHObjectHImageHobject * (byte / int2 / uint2)
Roberts-filtered result images.
FilterTypeFilterTypeFilterTypeFilterTypefilterTypefilter_type (输入控制) string → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Filter type.
默认值:
'gradient_sum'
"gradient_sum"
"gradient_sum"
"gradient_sum"
"gradient_sum"
"gradient_sum"
值列表:
'gradient_max'"gradient_max""gradient_max""gradient_max""gradient_max""gradient_max", 'gradient_sum'"gradient_sum""gradient_sum""gradient_sum""gradient_sum""gradient_sum", 'roberts_max'"roberts_max""roberts_max""roberts_max""roberts_max""roberts_max"
示例(HDevelop)
read_image(Image,'fabrik')
roberts(Image,Roberts,'roberts_max')
threshold(Roberts,Margin,128,255)
示例(C)
read_image(&Image,"fabrik");
roberts(Image,&Roberts,"roberts_max");
threshold(Roberts,&Margin,128.0,255.0);
示例(HDevelop)
read_image(Image,'fabrik')
roberts(Image,Roberts,'roberts_max')
threshold(Roberts,Margin,128,255)
示例(HDevelop)
read_image(Image,'fabrik')
roberts(Image,Roberts,'roberts_max')
threshold(Roberts,Margin,128,255)
示例(HDevelop)
read_image(Image,'fabrik')
roberts(Image,Roberts,'roberts_max')
threshold(Roberts,Margin,128,255)
结果
robertsrobertsRobertsRobertsRobertsroberts 在所有参数正确时返回 2 ( H_MSG_TRUE )。 如果输入为空则可设置行为通过 set_system('no_object_result',<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)set_system("no_object_result",<Result>)。如有必要,则抛出异常。
可能的前趋
binomial_filterbinomial_filterBinomialFilterBinomialFilterBinomialFilterbinomial_filter,
gauss_filtergauss_filterGaussFilterGaussFilterGaussFiltergauss_filter
可能的后继
thresholdthresholdThresholdThresholdThresholdthreshold,
skeletonskeletonSkeletonSkeletonSkeletonskeleton
替代
edges_imageedges_imageEdgesImageEdgesImageEdgesImageedges_image,
sobel_ampsobel_ampSobelAmpSobelAmpSobelAmpsobel_amp,
frei_ampfrei_ampFreiAmpFreiAmpFreiAmpfrei_amp,
kirsch_ampkirsch_ampKirschAmpKirschAmpKirschAmpkirsch_amp,
prewitt_ampprewitt_ampPrewittAmpPrewittAmpPrewittAmpprewitt_amp
另见
laplacelaplaceLaplaceLaplaceLaplacelaplace,
highpass_imagehighpass_imageHighpassImageHighpassImageHighpassImagehighpass_image,
bandpass_imagebandpass_imageBandpassImageBandpassImageBandpassImagebandpass_image
模块
基础