类 IntelligentScissorsMB
- java.lang.Object
-
- org.opencv.imgproc.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
-
-
字段摘要
字段 修饰符和类型 字段 描述 protected long
nativeObj
-
构造函数摘要
构造函数 修饰符 构造函数 描述 IntelligentScissorsMB()
protected
IntelligentScissorsMB(long addr)
-
方法摘要
所有方法 静态方法 实例方法 具体方法 修饰符和类型 方法 描述 static IntelligentScissorsMB
__fromPtr__(long addr)
IntelligentScissorsMB
applyImage(Mat image)
指定输入图像并提取图像特征IntelligentScissorsMB
applyImageFeatures(Mat non_edge, Mat gradient_direction, Mat gradient_magnitude)
指定输入图像的自定义特征 applyImage() 调用的自定义高级变体。IntelligentScissorsMB
applyImageFeatures(Mat non_edge, Mat gradient_direction, Mat gradient_magnitude, Mat image)
指定输入图像的自定义特征 applyImage() 调用的自定义高级变体。void
buildMap(Point sourcePt)
为图像上给定的源点准备最佳路径映射 注意:在此调用之前必须调用 applyImage() / applyImageFeatures()protected void
finalize()
void
getContour(Point targetPt, Mat contour)
提取图像上给定目标点的最佳轮廓 注意:在此调用之前必须调用 buildMap()void
getContour(Point targetPt, Mat contour, boolean backward)
提取图像上给定目标点的最佳轮廓 注意:在此调用之前必须调用 buildMap()long
getNativeObjAddr()
IntelligentScissorsMB
setEdgeFeatureCannyParameters(double threshold1, double threshold2)
切换边缘特征提取器以使用 Canny 边缘检测器 注意:默认情况下使用“拉普拉斯零交叉”特征提取器(遵循原始文章)参见:CannyIntelligentScissorsMB
setEdgeFeatureCannyParameters(double threshold1, double threshold2, int apertureSize)
切换边缘特征提取器以使用 Canny 边缘检测器 注意:默认情况下使用“拉普拉斯零交叉”特征提取器(遵循原始文章)参见:CannyIntelligentScissorsMB
setEdgeFeatureCannyParameters(double threshold1, double threshold2, int apertureSize, boolean L2gradient)
切换边缘特征提取器以使用 Canny 边缘检测器 注意:默认情况下使用“拉普拉斯零交叉”特征提取器(遵循原始文章)参见:CannyIntelligentScissorsMB
setEdgeFeatureZeroCrossingParameters()
切换到“拉普拉斯零交叉”边缘特征提取器并指定其参数 根据文章,默认使用此特征提取器。IntelligentScissorsMB
setEdgeFeatureZeroCrossingParameters(float gradient_magnitude_min_value)
切换到“拉普拉斯零交叉”边缘特征提取器并指定其参数 根据文章,默认使用此特征提取器。IntelligentScissorsMB
setGradientMagnitudeMaxLimit()
指定梯度幅度最大值阈值 零极限值用于禁用梯度幅度阈值(默认行为,如原始文章所述)。IntelligentScissorsMB
setGradientMagnitudeMaxLimit(float gradient_magnitude_threshold_max)
指定梯度幅度最大值阈值 零极限值用于禁用梯度幅度阈值(默认行为,如原始文章所述)。IntelligentScissorsMB
setWeights(float weight_non_edge, float weight_gradient_direction, float weight_gradient_magnitude)
指定特征函数的权重 考虑保持权重归一化(权重总和等于 1.0)离散动态规划 (DP) 目标是最小化像素之间的成本。
-
-
-
方法详情
-
getNativeObjAddr
public long getNativeObjAddr()
-
__fromPtr__
public static IntelligentScissorsMB __fromPtr__(long addr)
-
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
-
-