Files
HawkeyeVision/Hawkeye.VisionBuilder.Workflow/Operations/Edge/SobelOperation.cs
2025-07-14 12:03:59 +02:00

28 lines
815 B
C#

using Hawkeye.VisionBuilder.Workflow.Datatypes;
using Hawkeye.VisionBuilder.Workflow.Operations.Attributes;
using OpenCvSharp;
namespace Hawkeye.VisionBuilder.Workflow.Operations.Edge;
[Category("Edge")]
public class SobelOperation:BaseOperation
{
protected override void InterpretInternal(Context context)
{
if(!CheckImageExists(context)) return;
var sobelY = context.ActiveImage!.ImageData.Sobel(MatType.CV_16S, 0, 1);
var sobelX = context.ActiveImage!.ImageData.Sobel(MatType.CV_16S, 1, 0);
sobelX = sobelX.ConvertScaleAbs() * 0.5;
sobelY = sobelY.ConvertScaleAbs() * 0.5;
sobelX += sobelY;
context.ActiveImage = new HawkeyeImage()
{
ImageData = sobelX
};
Status = "Sobel";
Result = true;
}
}