类 IntelligentScissorsMB


  • public class IntelligentScissorsMB
    extends java.lang.Object
    智能剪刀图像分割 此类用于查找可用于图像分割的两点之间的路径(轮廓)。 使用示例:代码片段:snippets/imgproc_segmentation.cpp usage_example_intelligent_scissors 参考:"用于图像合成的智能剪刀" Brigham Young University 的 Eric N. Mortensen 和 William A. Barrett 设计的算法 引用:Mortensen95intelligentscissors
    • 字段详情

      • nativeObj

        protected final long nativeObj
    • 构造函数详情

      • IntelligentScissorsMB

        protected IntelligentScissorsMB​(long addr)
      • IntelligentScissorsMB

        public IntelligentScissorsMB()
    • 方法详情

      • getNativeObjAddr

        public long getNativeObjAddr()
      • setWeights

        public IntelligentScissorsMB setWeights​(float weight_non_edge,
                                                float weight_gradient_direction,
                                                float weight_gradient_magnitude)
        指定特征函数的权重 考虑保持权重归一化(权重总和等于 1.0)离散动态规划 (DP) 目标是最小化像素之间的成本。
        参数
        weight_non_edge - 指定非边缘像素的成本(默认值:0.43f)
        weight_gradient_direction - 指定梯度方向函数的成本(默认值:0.43f)
        weight_gradient_magnitude - 指定梯度幅度函数的成本(默认值:0.14f)
        返回
        自动生成
      • setGradientMagnitudeMaxLimit

        public IntelligentScissorsMB setGradientMagnitudeMaxLimit​(float gradient_magnitude_threshold_max)
        指定梯度幅度最大值阈值 零极限值用于禁用梯度幅度阈值(默认行为,如原始文章所述)。否则,梯度幅度 >= 阈值 的像素成本为零。注意:对于具有不规则区域的图像,应使用阈值(以避免停留在高对比度区域的参数上,例如嵌入式徽标)。
        参数
        gradient_magnitude_threshold_max - 指定梯度幅度最大值阈值(默认值:0,禁用)
        返回
        自动生成
      • setGradientMagnitudeMaxLimit

        public IntelligentScissorsMB setGradientMagnitudeMaxLimit()
        指定梯度幅度最大值阈值 零极限值用于禁用梯度幅度阈值(默认行为,如原始文章所述)。否则,梯度幅度 >= 阈值 的像素成本为零。注意:对于具有不规则区域的图像,应使用阈值(以避免停留在高对比度区域的参数上,例如嵌入式徽标)。
        返回
        自动生成
      • setEdgeFeatureZeroCrossingParameters

        public IntelligentScissorsMB setEdgeFeatureZeroCrossingParameters​(float gradient_magnitude_min_value)
        切换到“拉普拉斯零交叉”边缘特征提取器并指定其参数 根据文章,默认使用此特征提取器。实现对具有低幅度噪声的区域进行了额外的滤波。此滤波通过最小梯度幅度参数启用(使用一些较小的值 4、8、16)。注意:此特征提取器的当前实现基于灰度图像的处理(彩色图像首先转换为灰度图像)。注意:Canny 边缘检测器速度稍慢,但效果更好(尤其是在彩色图像上):使用 setEdgeFeatureCannyParameters()。
        参数
        gradient_magnitude_min_value - 边缘像素的最小梯度幅度值(默认值:0,禁用检查)
        返回
        自动生成
      • setEdgeFeatureZeroCrossingParameters

        public IntelligentScissorsMB setEdgeFeatureZeroCrossingParameters()
        切换到“拉普拉斯零交叉”边缘特征提取器并指定其参数 根据文章,默认使用此特征提取器。实现对具有低幅度噪声的区域进行了额外的滤波。此滤波通过最小梯度幅度参数启用(使用一些较小的值 4、8、16)。注意:此特征提取器的当前实现基于灰度图像的处理(彩色图像首先转换为灰度图像)。注意:Canny 边缘检测器速度稍慢,但效果更好(尤其是在彩色图像上):使用 setEdgeFeatureCannyParameters()。
        返回
        自动生成
      • setEdgeFeatureCannyParameters

        public IntelligentScissorsMB setEdgeFeatureCannyParameters​(double threshold1,
                                                                   double threshold2,
                                                                   int apertureSize,
                                                                   boolean L2gradient)
        切换边缘特征提取器以使用 Canny 边缘检测器 注意:默认情况下使用“拉普拉斯零交叉”特征提取器(遵循原始文章)参见:Canny
        参数
        threshold1 - 自动生成
        threshold2 - 自动生成
        apertureSize - 自动生成
        L2gradient - 自动生成
        返回
        自动生成
      • setEdgeFeatureCannyParameters

        public IntelligentScissorsMB setEdgeFeatureCannyParameters​(double threshold1,
                                                                   double threshold2,
                                                                   int apertureSize)
        切换边缘特征提取器以使用 Canny 边缘检测器 注意:默认情况下使用“拉普拉斯零交叉”特征提取器(遵循原始文章)参见:Canny
        参数
        threshold1 - 自动生成
        threshold2 - 自动生成
        apertureSize - 自动生成
        返回
        自动生成
      • setEdgeFeatureCannyParameters

        public IntelligentScissorsMB setEdgeFeatureCannyParameters​(double threshold1,
                                                                   double threshold2)
        切换边缘特征提取器以使用 Canny 边缘检测器 注意:默认情况下使用“拉普拉斯零交叉”特征提取器(遵循原始文章)参见:Canny
        参数
        threshold1 - 自动生成
        threshold2 - 自动生成
        返回
        自动生成
      • applyImage

        public IntelligentScissorsMB applyImage​(Mat image)
        指定输入图像并提取图像特征
        参数
        image - 输入图像。类型为 #CV_8UC1 / #CV_8UC3
        返回
        自动生成
      • applyImageFeatures

        public IntelligentScissorsMB applyImageFeatures​(Mat non_edge,
                                                        Mat gradient_direction,
                                                        Mat gradient_magnitude,
                                                        Mat image)
        指定输入图像的自定义特征 applyImage() 调用的自定义高级变体。
        参数
        non_edge - 指定非边缘像素的成本。类型为 CV_8UC1。预期值为 {0, 1}
        gradient_direction - 指定梯度方向特征。类型为 CV_32FC2。预期值为归一化值:x^2 + y^2 == 1
        gradient_magnitude - 指定梯度幅度函数的成本:类型为 CV_32FC1。值应在范围 [0, 1] 内。
        image - 可选参数。如果指定了特征子集(内部计算未指定的特征),则必须指定。
        返回
        自动生成
      • applyImageFeatures

        public IntelligentScissorsMB applyImageFeatures​(Mat non_edge,
                                                        Mat gradient_direction,
                                                        Mat gradient_magnitude)
        指定输入图像的自定义特征 applyImage() 调用的自定义高级变体。
        参数
        non_edge - 指定非边缘像素的成本。类型为 CV_8UC1。预期值为 {0, 1}
        gradient_direction - 指定梯度方向特征。类型为 CV_32FC2。预期值为归一化值:x^2 + y^2 == 1
        gradient_magnitude - 指定梯度幅度函数的成本:类型为 CV_32FC1。值应在范围 [0, 1] 内。
        返回
        自动生成
      • buildMap

        public void buildMap​(Point sourcePt)
        为图像上给定的源点准备最佳路径映射 注意:在此调用之前必须调用 applyImage() / applyImageFeatures()
        参数
        sourcePt - 用于查找路径的源点
      • getContour

        public void getContour​(Point targetPt,
                               Mat contour,
                               boolean backward)
        提取图像上给定目标点的最佳轮廓 注意:在此调用之前必须调用 buildMap()
        参数
        targetPt - 目标点
        contour - 包含图像源点和目标点之间最佳路径的像素列表。类型为 CV_32SC2(与std::vector<Point>兼容)
        backward - 标志位,指示检索像素的反向顺序(使用“true”值从目标点到源点获取点)
      • getContour

        public void getContour​(Point targetPt,
                               Mat contour)
        提取图像上给定目标点的最佳轮廓 注意:在此调用之前必须调用 buildMap()
        参数
        targetPt - 目标点
        contour - 包含图像源点和目标点之间最佳路径的像素列表。类型为 CV_32SC2(与std::vector<Point>兼容)
      • finalize

        protected void finalize()
                         throws java.lang.Throwable
        覆盖
        java.lang.Object中的finalize 方法
        抛出
        java.lang.Throwable