类 IntelligentScissorsMB
- java.lang.Object
-
- org.opencv.imgproc.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
-
-
字段摘要
字段 修饰符和类型 字段 描述 protected longnativeObj
-
构造函数摘要
构造函数 修饰符 构造函数 描述 IntelligentScissorsMB()保护IntelligentScissorsMB(long addr)
-
方法摘要
所有方法 静态方法 实例方法 具体方法 修饰符和类型 方法 描述 static IntelligentScissorsMB__fromPtr__(long addr)IntelligentScissorsMBapplyImage(Mat image)指定输入图像并提取图像特征IntelligentScissorsMBapplyImageFeatures(Mat non_edge, Mat gradient_direction, Mat gradient_magnitude)指定输入图像的自定义特征。applyImage() 调用的自定义高级变体。IntelligentScissorsMBapplyImageFeatures(Mat non_edge, Mat gradient_direction, Mat gradient_magnitude, Mat image)指定输入图像的自定义特征。applyImage() 调用的自定义高级变体。voidbuildMap(Point sourcePt)准备图像上给定源点的最佳路径图 注意: 必须在此调用之前调用 applyImage() / applyImageFeatures()protected voidfinalize()voidgetContour(Point targetPt, Mat contour)提取图像上给定目标点的最佳轮廓 注意: 必须在此调用之前调用 buildMap()voidgetContour(Point targetPt, Mat contour, boolean backward)提取图像上给定目标点的最佳轮廓 注意: 必须在此调用之前调用 buildMap()longgetNativeObjAddr()IntelligentScissorsMBsetEdgeFeatureCannyParameters(double threshold1, double threshold2)切换边缘特征提取器以使用 Canny 边缘检测器 注意: 默认情况下使用 "拉普拉斯零交叉" 特征提取器(遵循原始文章) 参见:CannyIntelligentScissorsMBsetEdgeFeatureCannyParameters(double threshold1, double threshold2, int apertureSize)切换边缘特征提取器以使用 Canny 边缘检测器 注意: 默认情况下使用 "拉普拉斯零交叉" 特征提取器(遵循原始文章) 参见:CannyIntelligentScissorsMBsetEdgeFeatureCannyParameters(double threshold1, double threshold2, int apertureSize, boolean L2gradient)切换边缘特征提取器以使用 Canny 边缘检测器 注意: 默认情况下使用 "拉普拉斯零交叉" 特征提取器(遵循原始文章) 参见:CannyIntelligentScissorsMBsetEdgeFeatureZeroCrossingParameters()切换到 "拉普拉斯零交叉" 边缘特征提取器并指定其参数。根据文章,默认使用此特征提取器。IntelligentScissorsMBsetEdgeFeatureZeroCrossingParameters(float gradient_magnitude_min_value)切换到 "拉普拉斯零交叉" 边缘特征提取器并指定其参数。根据文章,默认使用此特征提取器。IntelligentScissorsMBsetGradientMagnitudeMaxLimit()指定梯度幅度最大值阈值。零限制值用于禁用梯度幅度阈值(默认行为,如原始文章中所述)。IntelligentScissorsMBsetGradientMagnitudeMaxLimit(float gradient_magnitude_threshold_max)指定梯度幅度最大值阈值。零限制值用于禁用梯度幅度阈值(默认行为,如原始文章中所述)。IntelligentScissorsMBsetWeights(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的像素具有零成本。 注意: 阈值应该用于具有不规则区域的图像(以避免卡在高对比度区域的参数上,如嵌入的徽标)。- 参数
gradient_magnitude_threshold_max- 指定梯度幅度最大值阈值(默认值:0,禁用)- 返回
- 自动生成
-
setGradientMagnitudeMaxLimit
public IntelligentScissorsMB setGradientMagnitudeMaxLimit()
指定梯度幅度最大值阈值。零限制值用于禁用梯度幅度阈值(默认行为,如原始文章中所述)。否则,gradient magnitude >= 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 == 1gradient_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 == 1gradient_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- 重写
finalize在类java.lang.Object中- 抛出
java.lang.Throwable
-
-