public class IntelligentScissorsMB extends Object
Modifier and Type | Field and Description |
---|---|
protected long |
nativeObj |
Modifier | Constructor and Description |
---|---|
|
IntelligentScissorsMB() |
protected |
IntelligentScissorsMB(long addr) |
Modifier and Type | Method and Description |
---|---|
static IntelligentScissorsMB |
__fromPtr__(long addr) |
IntelligentScissorsMB |
applyImage(Mat image)
Specify input image and extract image features
|
IntelligentScissorsMB |
applyImageFeatures(Mat non_edge,
Mat gradient_direction,
Mat gradient_magnitude)
Specify custom features of input image
Customized advanced variant of applyImage() call.
|
IntelligentScissorsMB |
applyImageFeatures(Mat non_edge,
Mat gradient_direction,
Mat gradient_magnitude,
Mat image)
Specify custom features of input image
Customized advanced variant of applyImage() call.
|
void |
buildMap(Point sourcePt)
Prepares a map of optimal paths for the given source point on the image
Note: applyImage() / applyImageFeatures() must be called before this call
|
protected void |
finalize() |
void |
getContour(Point targetPt,
Mat contour)
Extracts optimal contour for the given target point on the image
Note: buildMap() must be called before this call
|
void |
getContour(Point targetPt,
Mat contour,
boolean backward)
Extracts optimal contour for the given target point on the image
Note: buildMap() must be called before this call
|
long |
getNativeObjAddr() |
IntelligentScissorsMB |
setEdgeFeatureCannyParameters(double threshold1,
double threshold2)
Switch edge feature extractor to use Canny edge detector
Note: "Laplacian Zero-Crossing" feature extractor is used by default (following to original article)
SEE: Canny
|
IntelligentScissorsMB |
setEdgeFeatureCannyParameters(double threshold1,
double threshold2,
int apertureSize)
Switch edge feature extractor to use Canny edge detector
Note: "Laplacian Zero-Crossing" feature extractor is used by default (following to original article)
SEE: Canny
|
IntelligentScissorsMB |
setEdgeFeatureCannyParameters(double threshold1,
double threshold2,
int apertureSize,
boolean L2gradient)
Switch edge feature extractor to use Canny edge detector
Note: "Laplacian Zero-Crossing" feature extractor is used by default (following to original article)
SEE: Canny
|
IntelligentScissorsMB |
setEdgeFeatureZeroCrossingParameters()
Switch to "Laplacian Zero-Crossing" edge feature extractor and specify its parameters
This feature extractor is used by default according to article.
|
IntelligentScissorsMB |
setEdgeFeatureZeroCrossingParameters(float gradient_magnitude_min_value)
Switch to "Laplacian Zero-Crossing" edge feature extractor and specify its parameters
This feature extractor is used by default according to article.
|
IntelligentScissorsMB |
setGradientMagnitudeMaxLimit()
Specify gradient magnitude max value threshold
Zero limit value is used to disable gradient magnitude thresholding (default behavior, as described in original article).
|
IntelligentScissorsMB |
setGradientMagnitudeMaxLimit(float gradient_magnitude_threshold_max)
Specify gradient magnitude max value threshold
Zero limit value is used to disable gradient magnitude thresholding (default behavior, as described in original article).
|
IntelligentScissorsMB |
setWeights(float weight_non_edge,
float weight_gradient_direction,
float weight_gradient_magnitude)
Specify weights of feature functions
Consider keeping weights normalized (sum of weights equals to 1.0)
Discrete dynamic programming (DP) goal is minimization of costs between pixels.
|
protected IntelligentScissorsMB(long addr)
public IntelligentScissorsMB()
public long getNativeObjAddr()
public static IntelligentScissorsMB __fromPtr__(long addr)
public IntelligentScissorsMB setWeights(float weight_non_edge, float weight_gradient_direction, float weight_gradient_magnitude)
weight_non_edge
- Specify cost of non-edge pixels (default: 0.43f)weight_gradient_direction
- Specify cost of gradient direction function (default: 0.43f)weight_gradient_magnitude
- Specify cost of gradient magnitude function (default: 0.14f)public IntelligentScissorsMB setGradientMagnitudeMaxLimit(float gradient_magnitude_threshold_max)
gradient magnitude >= threshold
have zero cost.
Note: Thresholding should be used for images with irregular regions (to avoid stuck on parameters from high-contract areas, like embedded logos).gradient_magnitude_threshold_max
- Specify gradient magnitude max value threshold (default: 0, disabled)public IntelligentScissorsMB setGradientMagnitudeMaxLimit()
gradient magnitude >= threshold
have zero cost.
Note: Thresholding should be used for images with irregular regions (to avoid stuck on parameters from high-contract areas, like embedded logos).public IntelligentScissorsMB setEdgeFeatureZeroCrossingParameters(float gradient_magnitude_min_value)
gradient_magnitude_min_value
- Minimal gradient magnitude value for edge pixels (default: 0, check is disabled)public IntelligentScissorsMB setEdgeFeatureZeroCrossingParameters()
public IntelligentScissorsMB setEdgeFeatureCannyParameters(double threshold1, double threshold2, int apertureSize, boolean L2gradient)
threshold1
- automatically generatedthreshold2
- automatically generatedapertureSize
- automatically generatedL2gradient
- automatically generatedpublic IntelligentScissorsMB setEdgeFeatureCannyParameters(double threshold1, double threshold2, int apertureSize)
threshold1
- automatically generatedthreshold2
- automatically generatedapertureSize
- automatically generatedpublic IntelligentScissorsMB setEdgeFeatureCannyParameters(double threshold1, double threshold2)
threshold1
- automatically generatedthreshold2
- automatically generatedpublic IntelligentScissorsMB applyImage(Mat image)
image
- input image. Type is #CV_8UC1 / #CV_8UC3public IntelligentScissorsMB applyImageFeatures(Mat non_edge, Mat gradient_direction, Mat gradient_magnitude, Mat image)
non_edge
- Specify cost of non-edge pixels. Type is CV_8UC1. Expected values are {0, 1}
.gradient_direction
- Specify gradient direction feature. Type is CV_32FC2. Values are expected to be normalized: x^2 + y^2 == 1
gradient_magnitude
- Specify cost of gradient magnitude function: Type is CV_32FC1. Values should be in range [0, 1]
.image
- Optional parameter. Must be specified if subset of features is specified (non-specified features are calculated internally)public IntelligentScissorsMB applyImageFeatures(Mat non_edge, Mat gradient_direction, Mat gradient_magnitude)
non_edge
- Specify cost of non-edge pixels. Type is CV_8UC1. Expected values are {0, 1}
.gradient_direction
- Specify gradient direction feature. Type is CV_32FC2. Values are expected to be normalized: x^2 + y^2 == 1
gradient_magnitude
- Specify cost of gradient magnitude function: Type is CV_32FC1. Values should be in range [0, 1]
.public void buildMap(Point sourcePt)
sourcePt
- The source point used to find the pathspublic void getContour(Point targetPt, Mat contour, boolean backward)
targetPt
- The target pointcontour
- The list of pixels which contains optimal path between the source and the target points of the image. Type is CV_32SC2 (compatible with std::vector<Point>
)backward
- Flag to indicate reverse order of retrived pixels (use "true" value to fetch points from the target to the source point)public void getContour(Point targetPt, Mat contour)
targetPt
- The target pointcontour
- The list of pixels which contains optimal path between the source and the target points of the image. Type is CV_32SC2 (compatible with std::vector<Point>
)Copyright © 2024. All rights reserved.