check point
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
using Hawkeye.VisionBuilder.Workflow.Datatypes;
|
||||
using Hawkeye.VisionBuilder.Workflow.Operations.Attributes;
|
||||
using OpenCvSharp;
|
||||
|
||||
namespace Hawkeye.VisionBuilder.Workflow.Operations.Transformations;
|
||||
|
||||
[Category("Transformations")]
|
||||
public class DistanceTransformOperation:BaseOperation
|
||||
{
|
||||
protected override void InterpretInternal(Context context)
|
||||
{
|
||||
if (!CheckImageExists(context)) return;
|
||||
if(!CheckGrayscale(context))return;
|
||||
|
||||
Mat res=new Mat(context.ActiveImage.ImageData.Size(),MatType.CV_8UC1);
|
||||
var distance = context.ActiveImage.ImageData.DistanceTransform(DistanceTypes.C, DistanceTransformMasks.Mask3);
|
||||
|
||||
Cv2.MinMaxLoc(distance, out double minVal, out var maxVal);
|
||||
// clamp the distance transform to 0-255
|
||||
Cv2.Normalize(distance, res, 0, maxVal, NormTypes.MinMax, MatType.CV_8UC1);
|
||||
|
||||
|
||||
|
||||
context.ActiveImage = new HawkeyeImage()
|
||||
{
|
||||
ImageData = res
|
||||
};
|
||||
|
||||
Status = $"Distance transform";
|
||||
Result = true;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user