public Mat ComputeDescriptor(KeyPointModel keyPoints) { Mat result = new Mat(); Mat image = new Mat(keyPoints.InputFile.fileInfo.FullName); _brief.Compute(image, keyPoints.DetectedKeyPoints, result); return(result); }
public Mat ComputeDescriptor(KeyPointModel keyPoints) { var cudaORB = CreateDetector(); var mat = new Mat(keyPoints.InputFile.fileInfo.FullName); Image <Gray, byte> image = new Image <Gray, byte>(mat.Bitmap); GpuMat gpumat = new GpuMat(image); GpuMat result = new GpuMat(); cudaORB.Compute(gpumat, keyPoints.DetectedKeyPoints, result); var returnResult = result.ToMat(); gpumat.Dispose(); result.Dispose(); cudaORB.Dispose(); return(returnResult); }
private void ComputeDescriptor(KeyPointModel keypoint, IFeatureDescriptor descriptor, bool AddToList = true, bool SaveOnDisk = true) { WindowsFormHelper.AddLogToConsole($"Start computing descriptor for: {keypoint.InputFile.fileInfo.Name.ToString()}\n"); var computedDescriptor = descriptor.ComputeDescriptor(keypoint); var descriptorNode = new DescriptorModel() { Descriptors = computedDescriptor, KeyPoint = keypoint }; WindowsFormHelper.AddLogToConsole($"FINISH computing descriptor for: {keypoint.InputFile.fileInfo.Name.ToString()}\n"); if (AddToList) { ComputedDescriptors.Add(keypoint.ID, descriptorNode); } if (SaveOnDisk) { SaveSiftFile(descriptorNode); } }
public static double GetTwoPointSlop(KeyPointModel start, KeyPointModel end) { return((end.y - start.y) / (end.x - start.x)); }
public static KeyPointModel GetTwoPointVector(KeyPointModel start, KeyPointModel end) { return(new KeyPointModel { x = end.x - start.x, y = end.y - start.y }); }
public static double GetTwoPointLength(KeyPointModel p1, KeyPointModel p2) { return(Math.Sqrt(Math.Pow(p1.x - p2.x, 2) + Math.Pow(p1.y - p2.y, 2))); }