area_center_grayarea_center_grayAreaCenterGrayAreaCenterGrayarea_center_gray面积中心灰度(算子)
名称
area_center_grayarea_center_grayAreaCenterGrayAreaCenterGrayarea_center_gray — 计算灰度图像中某个区域的面积和重心。
签名
void AreaCenterGray(const HObject& Regions, const HObject& Image, HTuple* Area, HTuple* Row, HTuple* Column)
HTuple HImage::AreaCenterGray(const HRegion& Regions, HTuple* Row, HTuple* Column) const
double HImage::AreaCenterGray(const HRegion& Regions, double* Row, double* Column) const
HTuple HRegion::AreaCenterGray(const HImage& Image, HTuple* Row, HTuple* Column) const
double HRegion::AreaCenterGray(const HImage& Image, double* Row, double* Column) const
static void HOperatorSet.AreaCenterGray(HObject regions, HObject image, out HTuple area, out HTuple row, out HTuple column)
HTuple HImage.AreaCenterGray(HRegion regions, out HTuple row, out HTuple column)
double HImage.AreaCenterGray(HRegion regions, out double row, out double column)
HTuple HRegion.AreaCenterGray(HImage image, out HTuple row, out HTuple column)
double HRegion.AreaCenterGray(HImage image, out double row, out double column)
def area_center_gray(regions: HObject, image: HObject) -> Tuple[Sequence[float], Sequence[float], Sequence[float]]
def area_center_gray_s(regions: HObject, image: HObject) -> Tuple[float, float, float]
描述
area_center_grayarea_center_grayAreaCenterGrayAreaCenterGrayAreaCenterGrayarea_center_gray 计算由图像 ImageImageImageImageimageimage 定义灰度值的区域 RegionsRegionsRegionsRegionsregionsregions 的面积和重心。该算子与 area_centerarea_centerAreaCenterAreaCenterAreaCenterarea_center 类似,但不同之处在于计算面积和重心时会考虑图像的灰度值。
图像中区域 R 的面积 A,其灰度值为 g(r,c),定义为: 这意味着该区域由灰度值函数g(r,c)的体积所定义。其重心由灰度值g(r,c)的前两个归一化矩定义,即由
确定,其中
请注意,当 AreaAreaAreaAreaareaarea 为零时,质心所在行和列的坐标也将被设置为零。
注意
注意,area_center_grayarea_center_grayAreaCenterGrayAreaCenterGrayAreaCenterGrayarea_center_gray 算子仅考虑给定的 RegionsRegionsRegionsRegionsregionsregions,并忽略输入图像 ImageImageImageImageimageimage 中先前设置的任何域。若设备支持 cl_khr_fp64 和 cl_khr_int64_base_atomics OpenCL 扩展,则可在 OpenCL 设备上执行 area_center_grayarea_center_grayAreaCenterGrayAreaCenterGrayAreaCenterGrayarea_center_gray。
执行信息
- 支持 OpenCL 计算设备。
- 多线程类型:可重入(与非独占算子并行运行)。
- 多线程作用域:全局(可从任何线程调用)。
- 在元组级别上自动并行化。
参数
RegionsRegionsRegionsRegionsregionsregions (输入对象) region(-array) → objectHRegionHObjectHRegionHobject
待检查的区域。
ImageImageImageImageimageimage (输入对象) singlechannelimage → objectHImageHObjectHImageHobject (byte* / direction* / cyclic* / int1* / int2* / uint2* / int4* / real*) *允许用于计算设备
灰度值图像。
AreaAreaAreaAreaareaarea (输出控制) real(-array) → HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
该区域的灰度值体积。
RowRowRowRowrowrow (输出控制) point.y(-array) → HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
灰度值质心的行坐标。
ColumnColumnColumnColumncolumncolumn (输出控制) point.x(-array) → HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
灰度值质心的列坐标。
结果
area_center_grayarea_center_grayAreaCenterGrayAreaCenterGrayAreaCenterGrayarea_center_gray 在所有参数正确且执行过程中未发生错误时返回 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>)。如有必要,则抛出异常。
可能的前趋
thresholdthresholdThresholdThresholdThresholdthreshold,
regiongrowingregiongrowingRegiongrowingRegiongrowingRegiongrowingregiongrowing,
connectionconnectionConnectionConnectionConnectionconnection
替代
area_centerarea_centerAreaCenterAreaCenterAreaCenterarea_center
另见
area_center_xldarea_center_xldAreaCenterXldAreaCenterXldAreaCenterXldarea_center_xld,
elliptic_axis_grayelliptic_axis_grayEllipticAxisGrayEllipticAxisGrayEllipticAxisGrayelliptic_axis_gray
模块
基础