类 IntelligentScissorsMB


  • public class IntelligentScissorsMB
    extends java.lang.Object
    智能剪刀图像分割。此类用于查找两点之间的路径(轮廓),可用于图像分割。用法示例:SNIPPET: snippets/imgproc_segmentation.cpp usage_example_intelligent_scissors 参考: <a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.138.3811&rep=rep1&type=pdf">"用于图像合成的智能剪刀"</a> 算法由 Eric N. Mortensen 和 William A. Barrett, Brigham Young University 设计 CITE: 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 &gt;= threshold 的像素具有零成本。 注意: 阈值应该用于具有不规则区域的图像(以避免卡在高对比度区域的参数上,如嵌入的徽标)。
        参数
        gradient_magnitude_threshold_max - 指定梯度幅度最大值阈值(默认值:0,禁用)
        返回
        自动生成
      • setGradientMagnitudeMaxLimit

        public IntelligentScissorsMB setGradientMagnitudeMaxLimit()
        指定梯度幅度最大值阈值。零限制值用于禁用梯度幅度阈值(默认行为,如原始文章中所述)。否则,gradient magnitude &gt;= threshold 的像素具有零成本。 注意: 阈值应该用于具有不规则区域的图像(以避免卡在高对比度区域的参数上,如嵌入的徽标)。
        返回
        自动生成
      • 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&lt;Point&gt; 兼容)
        backward - 指示检索到的像素的反向顺序的标志(使用 "true" 值从目标点获取点到源点)
      • getContour

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

        protected void finalize()
                         throws java.lang.Throwable
        重写
        finalize 在类 java.lang.Object
        抛出
        java.lang.Throwable