Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class DescriptorManager {
- private static ORBDetector _detector;
- public static ORBDetector Detector
- => _detector ?? (_detector = new ORBDetector(numberOfFeatures: 700, scaleFactor: 1.2F, nLevels: 10, edgeThreshold: 0));
- public static Mat ExtractDescriptor(Mat mat) {
- var descriptors = new Mat();
- var keyPoints = new VectorOfKeyPoint();
- Detector.DetectAndCompute(mat, null, keyPoints, descriptors,false);
- descriptors.ConvertTo(descriptors, DepthType.Cv8U);
- return descriptors;
- }
- public static Mat ConcatDescriptors(IEnumerable<Mat> descriptors) {
- var mat = descriptors.FirstOrDefault();
- if (mat == null) return null;
- descriptors = descriptors.Skip(1);
- foreach(var descriptor in descriptors) {
- var next = new Mat();
- CvInvoke.VConcat(mat, descriptor, next);
- next.ConvertTo(mat, DepthType.Cv8U);
- }
- mat.ConvertTo(mat, DepthType.Cv8U);
- return mat;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement